  /* ── TOKENS AICLAB · versión viva (ref: OportunidadesArteDesarrollo v2) ── */
  :root {
    --ink:          #1a1a18;
    --ink2:         #3a3a36;
    --warm:         #C8A96E;
    --warm-text:    #8B6010;
    --warm2:        #FBF0D8;
    --cream:        #fdfcfa;
    --surface:      #ffffff;
    --mid:          #9a9890;
    --border:       #e8e4dc;
    --light:        #f7f4ee;
    --green:        #5c7a5c;
    --green-light:  #ecf2ea;
    --indigo:       #3f5e94;
    --indigo-light: #e8edf6;
    --danger:       #c4604a;
    --accent:       #C4881A;
    --accent-light: #FBF0D8;
    --terracota:    #c4604a;
    --terracota-light: #fbece6;
    --morado:       #6b5b95;
    --morado-light: #efebf5;
    --serif:        'Cormorant Garamond', Georgia, serif;
    --sans:         'DM Sans', system-ui, sans-serif;
    --radius:       14px;
    --radius-sm:    10px;
  }

  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  html, body { height: 100%; font-family: var(--sans); background: var(--cream);
    background-image: radial-gradient(circle at 1px 1px, rgba(200,169,110,0.12) 1px, transparent 0);
    background-size: 22px 22px;
    color: var(--ink); font-size: 15px; }
  button { font-family: var(--sans); cursor: pointer; }
  input, textarea, select { font-family: var(--sans); font-size: 13px; }
  a { color: inherit; text-decoration: none; }

  /* ── LAYOUT ── */
  #app { display: flex; flex-direction: column; min-height: 100vh; }

  /* ── TOPBAR ── */
  #topbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0 2rem; height: 76px;
    background: var(--ink); border-bottom: 1px solid var(--ink2);
    position: sticky; top: 0; z-index: 100; flex-shrink: 0;
  }
  #topbar::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px; background: var(--warm);
  }
  .logo { display: flex; align-items: center; gap: 14px; }
  .logo-sep { width: 1px; height: 28px; background: rgba(196,136,26,0.5); }
  .logo-title {
    font-family: var(--serif); font-size: 22px; font-weight: 400;
    color: #fff; letter-spacing: 0.01em;
  }
  .nav-links { display: flex; gap: 0; }
  .nav-btn {
    background: none; border: none; padding: 0 18px; height: 60px;
    font-size: 12px; font-family: var(--sans); color: rgba(255,255,255,0.65);
    border-bottom: 2px solid transparent; letter-spacing: 0.06em;
    text-transform: uppercase; font-weight: 400;
    transition: color .15s, border-color .15s, background .15s;
  }
  .nav-btn:hover { color: #ffffff; background: rgba(255,255,255,0.06); }
  .nav-btn.active { color: #ffffff; border-bottom-color: var(--warm); font-weight: 600; background: rgba(196,136,26,0.12); }
  .topbar-right { display: flex; align-items: center; gap: 10px; }
  .role-badge {
    font-size: 11px; font-family: var(--sans); padding: 6px 14px;
    border: 1px solid rgba(196,136,26,0.6); color: var(--warm);
    cursor: pointer; letter-spacing: 0.08em; text-transform: uppercase;
    background: rgba(196,136,26,0.08); transition: background .2s; font-weight: 500;
  }
  .role-badge:hover { background: rgba(196,136,26,0.18); }
  .role-badge.socio  { background: rgba(196,136,26,0.18); color: var(--warm); border-color: var(--warm); }
  .role-badge.cliente { background: rgba(196,136,26,0.18); color: var(--warm); border-color: var(--warm); }
  .role-badge.aiclab  { background: rgba(196,136,26,0.18); color: var(--warm); border-color: var(--warm); }

  /* ── MAIN ── */
  #main { flex: 1; overflow-y: auto; }

  /* ── SCREENS ── */
  .screen { display: none; }
  .screen.active { display: block; }
  #screen-welcome { min-height: calc(100vh - 60px); display: none; flex-direction: column; align-items: center; padding: 4rem 2rem 5rem; background: var(--ink); }
  #screen-welcome.active { display: flex; }

  /* ── WELCOME ── */
  .welcome-eyebrow {
    font-size: 10px; letter-spacing: 0.25em; text-transform: uppercase;
    color: rgba(196,136,26,0.6); margin-bottom: 1.25rem; font-family: var(--sans);
  }
  .welcome-title {
    font-family: var(--serif); font-size: 2.4rem; font-weight: 300;
    color: var(--surface); line-height: 1.15; text-align: center;
    margin-bottom: 0.75rem; max-width: 600px;
  }
  .welcome-title em { font-style: italic; color: var(--warm); display: block; }
  .welcome-sub {
    font-family: var(--sans); font-size: 13px; color: rgba(255,255,255,0.4);
    text-align: center; margin-bottom: 3rem; max-width: 480px; line-height: 1.7;
  }

  /* ── FLOW DIAGRAM ── */
  .flow-diagram {
    width: 100%; max-width: 800px;
    background: var(--ink2); border: 0.5px solid rgba(196,136,26,0.15);
    border-left: 3px solid var(--warm);
    padding: 2rem 1.75rem 1.75rem;
    margin-bottom: 3rem;
  }
  .flow-title {
    font-family: var(--sans); font-size: 9px; letter-spacing: 0.25em;
    color: rgba(196,136,26,0.5); text-transform: uppercase; text-align: center;
    margin-bottom: 1.75rem;
  }
  .flow-node { border-radius: 0 !important; }
  .flow-node.c { background: rgba(196,136,26,0.12); border: 0.5px solid rgba(196,136,26,0.3); color: rgba(255,255,255,0.85); }
  .flow-node.a { background: rgba(196,136,26,0.08); border: 0.5px solid rgba(196,136,26,0.25); color: rgba(255,255,255,0.85); }
  .flow-node.s { background: rgba(196,136,26,0.06); border: 0.5px solid rgba(196,136,26,0.2); color: rgba(255,255,255,0.85); }
  .flow-node.gray { background: rgba(255,255,255,0.04); border: 0.5px solid rgba(255,255,255,0.1); color: rgba(255,255,255,0.5); }
  .flow-node strong { color: var(--warm); }
  .flow-node span { color: rgba(255,255,255,0.45); }
  .flow-validated { background: rgba(196,136,26,0.15); color: var(--warm); border-radius: 0 !important; }
  .flow-note { border: 0.5px dashed rgba(196,136,26,0.2); color: rgba(255,255,255,0.3); border-radius: 0 !important; }

  /* ── TERMS BOX ── */
  #terms-box {
    background: rgba(255,255,255,0.04) !important;
    border: 0.5px solid rgba(196,136,26,0.3) !important;
  }
  #terms-box label { color: rgba(255,255,255,0.6) !important; }
  #terms-box a { color: var(--warm) !important; }
  #terms-hint { color: rgba(196,136,26,0.7) !important; }

  /* ── WELCOME ACTION BUTTONS ── */
  .welcome-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 1.5rem; }
  .btn-enter {
    padding: 12px 28px; font-family: var(--sans);
    font-size: 11px; font-weight: 500; border: none;
    letter-spacing: 0.12em; text-transform: uppercase;
    transition: opacity .2s; cursor: pointer;
  }
  .btn-enter:hover { opacity: 0.82; }
  .btn-enter.cliente { background: var(--warm); color: var(--ink); }
  .btn-enter.socio   { background: transparent; color: var(--warm); border: 0.5px solid rgba(196,136,26,0.5); }
  .btn-enter.aiclab  { background: transparent; color: rgba(255,255,255,0.5); border: 0.5px solid rgba(255,255,255,0.15); }
  .welcome-hint { font-family: var(--sans); font-size: 11px; color: rgba(255,255,255,0.2); text-align: center; }

  /* ── INNER SCREENS ── */
  .inner-wrap { max-width: 900px; margin: 0 auto; padding: 2.5rem 2rem; }
  .page-title { font-family: var(--serif); font-size: 1.6rem; font-weight: 300; margin-bottom: 0.25rem; color: var(--ink); }
  .page-sub { font-family: var(--sans); font-size: 12px; color: var(--mid); margin-bottom: 2rem; }

  /* ── FORM CARDS ── */
  .form-card {
    background: var(--surface); border: 0.5px solid var(--border);
    border-left: 3px solid var(--warm);
    padding: 1.5rem 1.75rem; margin-bottom: 1rem;
  }
  .card-title {
    font-family: var(--sans); font-size: 10px; font-weight: 600;
    letter-spacing: 0.15em; text-transform: uppercase; color: var(--mid);
    margin-bottom: 1rem; display: flex; align-items: center; gap: 8px;
  }
  .card-title .icon { font-size: 14px; }
  .validated-tag {
    font-size: 9px; background: var(--green-light); color: var(--green);
    padding: 2px 6px; font-weight: 600; letter-spacing: 0.08em;
  }
  .field { margin-bottom: 0.75rem; }
  .field:last-child { margin-bottom: 0; }
  .field label {
    display: block; font-family: var(--sans); font-size: 10px;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--mid); margin-bottom: 5px;
  }
  .field label .req { color: var(--danger); }
  .field label .opt { font-style: italic; opacity: 0.7; text-transform: none; letter-spacing: 0; }
  .field input[type=text], .field input[type=email], .field input[type=url], .field input[type=tel],
  .field textarea, .field select {
    width: 100%; border: 0.5px solid var(--border); background: var(--cream);
    color: var(--ink); padding: 9px 12px; font-size: 13px;
    font-family: var(--sans); outline: none; transition: border-color .2s;
  }
  .field input:focus, .field textarea:focus, .field select:focus { border-color: var(--warm); background: var(--surface); }
  .field textarea { resize: vertical; min-height: 70px; }
  .field-hint { font-family: var(--sans); font-size: 10px; color: var(--mid); margin-top: 3px; }
  .two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

  /* ── PILLS ── */
  .pill-group { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
  .pill {
    font-size: 11px; font-family: var(--sans); padding: 4px 12px;
    border: 0.5px solid var(--border); background: var(--cream);
    color: var(--mid); cursor: pointer; transition: all .12s;
    user-select: none; letter-spacing: 0.04em;
  }
  .pill:hover { border-color: var(--warm); color: var(--ink); }
  .pill.on { background: var(--ink); border-color: var(--ink); color: var(--surface); }

  /* ── TAXONOMIA ── */
  .tax-box { border: 0.5px solid var(--border); overflow: hidden; }
  .tax-l1 { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; background: var(--light); cursor: pointer; }
  .tax-l1 + .tax-l1 { border-top: 0.5px solid var(--border); }
  .tax-l1 label { font-size: 12px; font-weight: 500; font-family: var(--sans); cursor: pointer; display: flex; align-items: center; gap: 8px; color: var(--ink); }
  .tax-expand { font-size: 10px; font-family: var(--sans); color: var(--mid); background: none; border: none; cursor: pointer; letter-spacing: 0.08em; }
  .tax-l2 { padding: 6px 12px 8px 30px; border-top: 0.5px solid var(--border); display: none; background: var(--surface); }
  .tax-l2.open { display: block; }
  .tax-l2-item { display: flex; align-items: center; gap: 6px; padding: 3px 0; font-family: var(--sans); font-size: 11px; color: var(--mid); }
  .tax-l2-item input { cursor: pointer; }
  .tax-otros { border-top: 0.5px solid var(--border); padding: 7px 12px; background: var(--surface); }
  .tax-otros label { font-family: var(--sans); font-size: 11px; color: var(--mid); display: flex; align-items: center; gap: 6px; cursor: pointer; }
  .tax-otros input[type=text] { margin-top: 5px; width: 100%; }

  .info-note {
    font-family: var(--sans); font-size: 11px; color: var(--mid);
    background: var(--light); padding: 8px 11px; margin-bottom: 0.75rem;
    border-left: 2px solid rgba(196,136,26,0.4); line-height: 1.5;
  }
  .validate-note {
    font-family: var(--sans); font-size: 11px; color: var(--green);
    background: var(--green-light); padding: 8px 11px; margin-top: 0.75rem;
    border-left: 2px solid var(--green); line-height: 1.5;
  }

  /* ── PROGRESS ── */
  .progress-bar { display: flex; gap: 3px; margin-bottom: 1.5rem; }
  .prog-step { flex: 1; height: 2px; background: var(--border); }
  .prog-step.done { background: var(--green); }
  .prog-step.now  { background: var(--warm); }

  /* ── SUBMIT ── */
  .submit-row { display: flex; justify-content: space-between; align-items: center; margin-top: 0.5rem; gap: 12px; }
  .submit-hint { font-family: var(--sans); font-size: 11px; color: var(--mid); max-width: 360px; }
  .btn-submit {
    padding: 11px 24px; border: none; font-family: var(--sans);
    font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
    background: var(--ink); color: var(--surface); cursor: pointer; white-space: nowrap;
    transition: opacity .15s;
  }
  .btn-submit:hover { opacity: 0.85; }
  .btn-submit.accent { background: var(--warm); color: var(--ink); }
  .btn-submit.green  { background: var(--green); color: var(--surface); }

  /* ── OPP CARDS ── */
  .opp-card {
    background: var(--surface); border: 0.5px solid var(--border);
    padding: 1.25rem 1.5rem; margin-bottom: 1px; transition: border-color .2s;
  }
  .opp-card:hover { border-color: rgba(196,136,26,0.5); }
  .opp-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
  .opp-card-title { font-family: var(--serif); font-size: 17px; font-weight: 400; color: var(--ink); }
  .opp-card-org { font-family: var(--sans); font-size: 11px; color: var(--mid); margin-bottom: 6px; }
  .opp-card-desc { font-family: var(--sans); font-size: 13px; color: var(--mid); line-height: 1.7; margin-bottom: 8px; }
  .opp-tags { display: flex; flex-wrap: wrap; gap: 4px; }
  .opp-tag { font-size: 10px; font-family: var(--sans); padding: 2px 8px; letter-spacing: 0.06em; background: var(--light); color: var(--mid); }
  .opp-tag.green  { background: var(--green-light); color: var(--green); }
  .opp-tag.amber  { background: rgba(196,136,26,0.12); color: #7A5810; }
  .status-pill { font-size: 10px; font-family: var(--sans); padding: 3px 9px; white-space: nowrap; flex-shrink: 0; font-weight: 500; letter-spacing: 0.06em; }
  .status-pill.pending   { background: rgba(196,136,26,0.1); color: #8B6010; }
  .status-pill.validated { background: var(--green-light); color: var(--green); }

  /* ── PROFILE CARDS ── */
  .profile-card { background: var(--surface); border: 0.5px solid var(--border); padding: 1.25rem 1.5rem; margin-bottom: 1px; }
  .profile-card-top { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
  .avatar {
    width: 42px; height: 42px; background: var(--ink);
    border: 0.5px solid rgba(196,136,26,0.4);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--serif); font-size: 14px; color: var(--warm); flex-shrink: 0;
  }
  .profile-name { font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink); }
  .profile-title { font-family: var(--sans); font-size: 10px; color: var(--warm); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }

  /* ── TABS ── */
  .tabs { display: flex; gap: 0; border-bottom: 1px solid var(--border); margin-bottom: 1.5rem; }
  .tab {
    font-family: var(--sans); font-size: 12px; padding: 10px 20px;
    border: none; background: none; color: var(--mid); cursor: pointer;
    border-bottom: 2px solid transparent; transition: all .15s; letter-spacing: 0.04em;
  }
  .tab.active { color: var(--ink); border-bottom-color: var(--warm); font-weight: 500; }
  .tab:hover:not(.active) { color: var(--ink); }

  /* ── ADMIN ITEMS ── */
  .admin-item {
    background: var(--surface); border: 0.5px solid var(--border);
    padding: 1rem 1.25rem; margin-bottom: 1px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
  }
  .admin-info { flex: 1; min-width: 0; }
  .admin-name { font-family: var(--sans); font-size: 13px; font-weight: 500; color: var(--ink); }
  .admin-detail { font-family: var(--sans); font-size: 11px; color: var(--mid); margin-top: 2px; }
  .btn-validate {
    font-family: var(--sans); font-size: 10px; font-weight: 600; letter-spacing: 0.1em;
    text-transform: uppercase; padding: 6px 14px; border: none; cursor: pointer;
    white-space: nowrap; background: var(--warm); color: var(--ink); transition: opacity .15s;
  }
  .btn-validate:hover { opacity: 0.85; }
  .btn-validate.done { background: var(--light); color: var(--mid); cursor: default; }
  .btn-validate.green { background: var(--green); color: var(--surface); }

  /* ── SECTION LABEL ── */
  .section-label {
    font-family: var(--sans); font-size: 9px; font-weight: 600;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--mid);
    margin-bottom: 0.75rem; margin-top: 1.25rem;
  }
  .section-label:first-child { margin-top: 0; }

  /* ── EMPTY STATE ── */
  .list-empty { text-align: center; padding: 4rem 1rem; color: var(--mid); font-family: var(--sans); font-size: 13px; }
  .list-empty strong { display: block; font-family: var(--serif); font-size: 20px; font-weight: 300; color: var(--mid); margin-bottom: 6px; }

  /* ── FILTERS ── */
  #filtros-oport, #filtros-socios {
    background: var(--surface) !important; border: 0.5px solid var(--border) !important;
    border-left: 3px solid var(--warm) !important;
  }

  /* ══════════════════════════════════════════════════════════
     MÁS ALEGRÍA · cabeceras con carácter, tarjetas con color,
     pequeños movimientos que dan vida sin salirse de la marca.
     ══════════════════════════════════════════════════════════ */

  /* Cabeceras: una barrita de color con degradado encima del título,
     y el título con más peso y un punto de color en vez de gris plano. */
  .page-title {
    font-size: 1.9rem !important;
    font-weight: 400 !important;
    color: var(--ink) !important;
    position: relative;
    padding-top: 14px;
    margin-bottom: 0.5rem !important;
  }
  .page-title::before {
    content: '';
    position: absolute; top: 0; left: 0;
    width: 46px; height: 4px; border-radius: 4px;
    background: linear-gradient(90deg, var(--warm), var(--terracota));
  }
  .page-sub { font-size: 13px !important; }

  /* Tarjetas: colorines suaves rotando por categoría, más aire, y un
     ligero "aparecer" al cargar en vez de aparecer de golpe. */
  @keyframes aiclabAparece { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
  .opp-card, .form-card { animation: aiclabAparece .35s ease both; }
  .opp-card { border-left: 5px solid var(--warm); }
  .opp-card:nth-of-type(4n+2) { border-left-color: var(--green); }
  .opp-card:nth-of-type(4n+3) { border-left-color: var(--indigo); }
  .opp-card:nth-of-type(4n+4) { border-left-color: var(--morado); }
  .opp-card-title { font-size: 18px !important; }

  /* Pestañas: la activa con más presencia, el resto con un hover vivo. */
  .nav-btn {
    padding: 14px 20px; background: none; border: none; border-bottom: 2.5px solid transparent;
    font-family: var(--sans); font-size: 12.5px; font-weight: 500; letter-spacing: 0.03em;
    color: var(--ink2) !important; cursor: pointer; transition: color .15s, border-color .15s;
    text-transform: none !important; height: auto !important;
  }
  .nav-btn:hover { color: var(--warm-text) !important; background: none !important; border-bottom-color: rgba(200,169,110,0.4); }

  /* Botones de acción secundarios (Validar, Contratar, Enviar…) con
     un pelín más de chispa al pasar el ratón. */
  button { transition: transform .12s ease, box-shadow .12s ease; }
  button:hover { transform: translateY(-1px); }
  button:active { transform: translateY(0); }

  /* Topbar con un degradado sutil en vez de negro plano, y el badge
     de rol con un puntito de color a modo de "estás aquí". */
  #topbar { background: linear-gradient(120deg, var(--ink), #24241f); }
  .role-badge::before { content: '● '; color: var(--warm); }

  /* Etiquetas de estado con algo más de color y peso. */
  .status-pill { font-weight: 700 !important; padding: 4px 11px !important; }

  .aiclab-gate-bg {
    background: radial-gradient(circle at 15% 20%, rgba(196,96,74,0.22), transparent 45%),
                radial-gradient(circle at 85% 78%, rgba(92,122,92,0.22), transparent 45%),
                #1a1a18;
    min-height: 100%;
  }
  .aiclab-gate-bg .page-title { color: #fff !important; }
  .aiclab-gate-bg .page-sub { color: rgba(255,255,255,0.75); }
  .aiclab-gate-bg label { color: rgba(255,255,255,0.85); }

  .toast {
    position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
    background: var(--ink); color: var(--warm); font-family: var(--sans); font-size: 12px;
    letter-spacing: 0.06em; padding: 10px 22px; z-index: 999;
    opacity: 0; transition: opacity .3s; pointer-events: none;
    border-left: 3px solid var(--warm);
  }
  .toast.show { opacity: 1; }

  /* ── MODAL NORMAS ── */
  #modal-normas {
    display: none; position: fixed; inset: 0; z-index: 999;
    background: rgba(26,26,24,0.85); align-items: flex-start; justify-content: center;
    padding: 20px; pointer-events: none;
  }
  #modal-normas.open { display: flex; pointer-events: auto; }
  #modal-inner {
    background: var(--cream); width: 100%; max-width: 760px;
    max-height: calc(100vh - 40px); overflow-y: auto;
    position: relative; border-left: 3px solid var(--warm);
    border: 0.5px solid var(--border); border-left: 3px solid var(--warm);
  }
  #modal-header {
    position: sticky; top: 0; background: var(--ink);
    border-bottom: 1px solid var(--ink2); padding: 12px 20px;
    display: flex; align-items: center; justify-content: space-between; z-index: 10;
  }
  #modal-header .modal-title { font-family: var(--sans); font-size: 11px; font-weight: 500; color: rgba(255,255,255,0.6); letter-spacing: 0.1em; text-transform: uppercase; }
  #modal-close {
    background: none; border: 0.5px solid rgba(196,136,26,0.3); padding: 4px 12px;
    font-family: var(--sans); font-size: 11px; color: var(--warm); cursor: pointer; transition: background .2s;
  }
  #modal-close:hover { background: rgba(196,136,26,0.1); }
  #modal-content { padding: 2rem 2.5rem 3rem; }
  #modal-content .doc-eyebrow { font-family: var(--sans); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--warm); margin-bottom: 0.75rem; }
  #modal-content h1 { font-family: var(--serif); font-size: 2rem; font-weight: 300; color: var(--ink); margin-bottom: 0.5rem; }
  #modal-content .doc-meta { font-family: var(--sans); font-size: 12px; color: var(--mid); margin-bottom: 2rem; padding-bottom: 1.5rem; border-bottom: 0.5px solid var(--border); }
  #modal-content .toc { background: var(--light); padding: 1.25rem 1.5rem; margin-bottom: 2rem; border-left: 2px solid rgba(196,136,26,0.4); }
  #modal-content .toc-title { font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase; color: var(--warm); margin-bottom: 0.75rem; }
  #modal-content .toc ol { padding-left: 1.25rem; }
  #modal-content .toc li { margin-bottom: 0.3rem; }
  #modal-content .toc a { font-family: var(--sans); font-size: 13px; color: var(--ink); }
  #modal-content .toc a:hover { color: var(--warm); }
  #modal-content section { margin-bottom: 2rem; }
  #modal-content h2 { font-family: var(--serif); font-size: 1.1rem; font-weight: 400; color: var(--ink); border-top: 1px solid var(--border); padding-top: 0.75rem; margin-bottom: 0.75rem; }
  #modal-content h3 { font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--ink); margin: 1rem 0 0.4rem; letter-spacing: 0.06em; text-transform: uppercase; }
  #modal-content p { margin-bottom: 0.75rem; font-size: 14px; font-family: var(--sans); line-height: 1.7; }
  #modal-content ul, #modal-content ol { padding-left: 1.4rem; margin-bottom: 0.75rem; }
  #modal-content li { font-size: 13px; font-family: var(--sans); margin-bottom: 0.3rem; line-height: 1.6; }
  #modal-content .highlight { background: rgba(196,136,26,0.08); border-left: 2px solid var(--warm); padding: 0.75rem 1rem; margin: 0.75rem 0; font-size: 13px; font-family: var(--sans); }
  #modal-content .highlight strong { color: var(--warm); }
  #modal-content .note { background: var(--green-light); border-left: 2px solid var(--green); padding: 0.75rem 1rem; margin: 0.75rem 0; font-size: 12px; font-family: var(--sans); color: var(--green); }

  /* ── IDENTIFICATION PANELS ── */
  #socio-id-panel, #cliente-id-panel {
    background: var(--surface) !important; border: 0.5px solid var(--border) !important;
    border-left: 3px solid var(--warm) !important;
  }

  /* ══════════════════════════════════════════════════════
     OVERRIDES — versión visual "alegre" (redondeada, cálida)
     No tocan estructura ni lógica, solo reforman el lenguaje
     visual: radios, sombras, acentos de color por categoría.
     ══════════════════════════════════════════════════════ */

  #topbar { background: linear-gradient(120deg, var(--ink) 0%, #2b2620 55%, #3a2f22 100%);
    box-shadow: 0 2px 18px rgba(0,0,0,0.18); border-bottom: none; }
  #topbar::before { width: 4px; background: linear-gradient(180deg, var(--warm), var(--terracota)); }
  .nav-btn { border-radius: 100px 100px 0 0; }
  .nav-btn.active { background: rgba(200,169,110,0.16); }
  .role-badge { border-radius: 100px; }

  #screen-welcome { background:
    radial-gradient(circle at 15% 20%, rgba(196,96,74,0.25), transparent 45%),
    radial-gradient(circle at 85% 80%, rgba(92,122,92,0.25), transparent 45%),
    var(--ink); }
  .flow-diagram { border-radius: var(--radius); border-left: 4px solid var(--warm);
    box-shadow: 0 20px 50px rgba(0,0,0,0.25); }
  .flow-node, .flow-validated, .flow-note { border-radius: var(--radius-sm) !important; }
  .btn-enter { border-radius: 100px; }
  .btn-enter.cliente { background: linear-gradient(120deg, var(--warm), #d9bc88); transition: transform .15s, box-shadow .15s; }
  .btn-enter.cliente:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(200,169,110,0.35); }
  #terms-box { border-radius: var(--radius-sm) !important; }

  .form-card { border-radius: var(--radius); border-left: 4px solid var(--terracota);
    box-shadow: 0 10px 30px rgba(26,26,24,0.06); transition: box-shadow .2s, transform .2s; }
  .form-card:hover { box-shadow: 0 14px 34px rgba(26,26,24,0.1); }
  .field input, .field textarea, .field select { border-radius: var(--radius-sm); }
  .pill { border-radius: 100px; }
  .pill.on { background: linear-gradient(120deg, var(--ink), var(--ink2)); }
  .tax-box { border-radius: var(--radius); overflow: hidden; }
  .tax-l1:first-child { border-radius: var(--radius) var(--radius) 0 0; }
  .info-note, .validate-note { border-radius: var(--radius-sm); }
  .prog-step { border-radius: 100px; }

  .btn-submit, .btn-validate { border-radius: 100px; transition: transform .15s, box-shadow .15s, opacity .15s; }
  .btn-submit.accent, .btn-validate { background: linear-gradient(120deg, var(--warm), #d9bc88); }
  .btn-submit:hover, .btn-validate:hover { transform: translateY(-1px); box-shadow: 0 8px 18px rgba(200,169,110,0.3); }

  .opp-card { border-radius: var(--radius); margin-bottom: 12px; box-shadow: 0 2px 10px rgba(26,26,24,0.04);
    transition: box-shadow .2s, transform .2s; }
  .opp-card:hover { box-shadow: 0 14px 30px rgba(26,26,24,0.1); transform: translateY(-2px); }
  .opp-tag, .status-pill { border-radius: 100px; }
  .opp-tag.green { background: var(--green-light); color: var(--green); }
  .opp-tag.amber { background: var(--terracota-light); color: var(--terracota); }

  .profile-card { border-radius: var(--radius); margin-bottom: 12px; box-shadow: 0 2px 10px rgba(26,26,24,0.04);
    transition: transform .2s, box-shadow .2s; position: relative; overflow: hidden; }
  .profile-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(26,26,24,0.1); }
  .profile-card::before { content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background: linear-gradient(90deg, var(--warm), var(--terracota)); }
  .avatar { border-radius: 50%; border: 2px solid var(--warm);
    background: linear-gradient(135deg, var(--ink), var(--ink2)); }

  .tabs { border-bottom: 1px solid var(--border); }
  .tab { border-radius: 100px 100px 0 0; }
  .tab.active { background: var(--light); }

  .admin-item { border-radius: var(--radius); margin-bottom: 10px; box-shadow: 0 2px 10px rgba(26,26,24,0.04); }

  .toast { border-radius: 100px; border-left: none; box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    border: 1px solid rgba(200,169,110,0.3); }

  #modal-inner { border-radius: var(--radius); border-left: 4px solid var(--warm);
    box-shadow: 0 30px 80px rgba(0,0,0,0.3); overflow-y: auto; }
  #modal-header { border-radius: var(--radius) var(--radius) 0 0; }
  #modal-close { border-radius: 100px; }
  #modal-content .toc { border-radius: var(--radius-sm); border-left: 3px solid var(--warm); }
  #modal-content .highlight, #modal-content .note { border-radius: var(--radius-sm); }

  #filtros-oport, #filtros-socios { border-radius: var(--radius) !important; border-left: 4px solid var(--warm) !important; }
  #socio-id-panel, #cliente-id-panel { border-radius: var(--radius) !important; border-left: 4px solid var(--warm) !important; }

  /* franjas de color por categoría — eco del cartel de teatro */
  .opp-card[data-cat="Empresa"]      { border-left: 5px solid var(--green); }
  .opp-card[data-cat="Pedagogía"]    { border-left: 5px solid var(--indigo); }
  .opp-card[data-cat="Salud"]        { border-left: 5px solid var(--terracota); }
  .opp-card[data-cat="Pensamiento"]  { border-left: 5px solid var(--morado); }

  /* ── COLOR DORADO LEGIBLE SOBRE FONDO CLARO ── */
  /* Usar --warm-text (#8B6010) para texto; --warm para decoración en fondos oscuros */
  .warm-text { color: var(--warm-text) !important; }
  a[style*="color:var(--warm-text)"] { color: var(--warm-text) !important; }

  /* ── GUÍA DE PASOS ── */
  .guia-step {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    padding: 1.1rem 1.4rem;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 14px;
    margin-bottom: 10px;
    position: relative;
    transition: box-shadow .2s, transform .2s;
  }
  .guia-step.done {
    opacity: .6;
  }
  .guia-step.current {
    border-color: var(--warm);
    border-left: 4px solid var(--warm);
    box-shadow: 0 6px 24px rgba(200,169,110,0.15);
  }
  .guia-step.next {
    border-color: rgba(200,169,110,0.35);
    background: rgba(200,169,110,0.04);
  }
  .guia-step.aiclab-step {
    background: var(--light);
    border-color: var(--border);
  }
  .guia-step.aiclab-step .step-icon-wrap {
    background: var(--ink);
  }
  .step-icon-wrap {
    width: 40px; height: 40px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    font-size: 17px;
    background: var(--light);
  }
  .guia-step.done .step-icon-wrap  { background: var(--green-light); }
  .guia-step.current .step-icon-wrap { background: linear-gradient(135deg,var(--warm),#d9bc88); }
  .step-body { flex: 1; min-width: 0; }
  .step-label {
    font-size: 9px; letter-spacing: .18em; text-transform: uppercase;
    font-weight: 700; margin-bottom: 3px;
  }
  .guia-step.done    .step-label { color: var(--green); }
  .guia-step.current .step-label { color: var(--warm-text); }
  .guia-step.next    .step-label { color: var(--warm-text); opacity:0.6; }
  .guia-step.pending .step-label { color: var(--mid); }
  .guia-step.aiclab-step .step-label { color: var(--ink); }
  .step-title {
    font-family: var(--serif);
    font-size: 17px; font-weight: 500;
    color: var(--ink); margin-bottom: 3px; line-height: 1.2;
  }
  .guia-step.done .step-title { color: var(--mid); text-decoration: line-through; }
  .step-desc {
    font-size: 12.5px; color: var(--mid); line-height: 1.65;
  }
  .guia-step.current .step-desc { color: var(--ink2); }
  .step-next-hint {
    margin-top: 5px;
    font-size: 11px; color: rgba(200,169,110,0.8);
    display: flex; align-items: center; gap: 5px; font-weight: 600;
  }
  .step-connector {
    width: 2px; height: 14px;
    background: var(--border);
    margin: 0 0 0 33px;
  }
