/* v0.4 */
:root{ --lcf-blue:#1e88e5; --lcf-gray:#f5f7fb; --lcf-text:#0f172a; }
.lcf-modal.lcf-hidden{ display:none !important; }

.lcf-card{ font-family: 'Plus Jakarta Sans', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background:#fff; border-radius:20px; box-shadow:0 16px 40px rgba(15,23,42,.08); max-width:900px; margin:20px auto; padding:24px; }
.lcf-head h2{ margin:0 0 6px; color:var(--lcf-blue); font-weight:700; font-size:28px; }
.lcf-sub{ color:#64748b; margin:0 0 18px; }

/* Avatares y estados */
.lcf-avatars{ display:flex; gap:18px; flex-wrap:wrap; margin-bottom:18px; }
.lcf-avatar{ background:var(--lcf-gray); border:2px solid transparent; border-radius:18px; padding:12px 14px; cursor:pointer; text-align:center; transition:transform .15s ease, border-color .15s ease, filter .15s ease, opacity .15s ease; }
.lcf-avatar img{ width:72px; height:72px; border-radius:50%; object-fit:cover; }
.lcf-avatar span{ display:block; margin-top:8px; font-weight:700; color:#0b1220; }
.lcf-avatar:hover{ transform:translateY(-2px); border-color:var(--lcf-blue); }
.lcf-avatar.is-dim{ filter:grayscale(100%); opacity:.45; }
.lcf-avatar.is-selected{ border-color:var(--lcf-blue); box-shadow:0 0 0 3px rgba(30,136,229,.15); }

/* Mes y calendario */
.lcf-monthbar{ display:flex; align-items:center; justify-content:space-between; margin:8px 0 10px; }
.lcf-month{ font-weight:800; color:#0b1220; }
.lcf-nav{ background:#eef2f7; border:none; border-radius:10px; width:36px; height:36px; font-size:20px; cursor:pointer; }
.lcf-month-grid{ display:grid; grid-template-columns: repeat(7, 1fr); gap:8px; margin-bottom:14px; }
.lcf-day, .lcf-dayname{ text-align:center; padding:10px 0; border-radius:12px; }
.lcf-dayname{ font-weight:700; color:#475569; }
.lcf-day{ background:#fff; border:1px solid #e5e7eb; cursor:pointer; transition:.12s; position:relative; }
.lcf-day:hover{ background:#f6faff; border-color:var(--lcf-blue); }
.lcf-day.lcf-today{ border-color:var(--lcf-blue); box-shadow:0 0 0 2px rgba(30,136,229,.1) inset; }
.lcf-day.lcf-other{ opacity:.35; }
.lcf-day.lcf-selected{ background:var(--lcf-blue); color:#fff; }
.lcf-dot{ position:absolute; bottom:6px; left:50%; transform:translateX(-50%); background:var(--lcf-blue); color:#fff; font-size:11px; line-height:16px; height:16px; min-width:16px; padding:0 6px; border-radius:12px; }

/* Chips de horas y listas */
.lcf-chiplist, .lcf-existing, .lcf-chipgrid{ display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.lcf-chip, .lcf-chip-del{ border:1px solid #e5e7eb; border-radius:999px; padding:8px 12px; background:#fff; cursor:pointer; font-weight:600; }
.lcf-chip:hover{ border-color:var(--lcf-blue); }
.lcf-chip-del{ background:#fee2e2; border-color:#fecaca; }

/* Slots internos */
.lcf-btn{ background:var(--lcf-blue); color:#fff; border:none; padding:12px 18px; border-radius:999px; font-weight:700; cursor:pointer; transition:transform .12s ease, box-shadow .12s ease; }
.lcf-btn:hover{ transform:translateY(-1px); box-shadow:0 8px 18px rgba(30,136,229,.25); }
.lcf-form{ margin-top:12px; }
.lcf-row{ display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.lcf-row input, .lcf-row select{ border:1px solid #e5e7eb; padding:12px 14px; border-radius:14px; font-size:15px; }

/* Modal */
.lcf-modal{ position:fixed; inset:0; background:rgba(15,23,42,.45); display:flex; align-items:center; justify-content:center; z-index:9999; }
.lcf-modal-box{ background:#fff; border-radius:20px; padding:24px; width:520px; max-width:94vw; text-align:left; box-shadow:0 20px 60px rgba(0,0,0,.25); animation:lcf-pop .18s ease; }
.lcf-modal-btn{ margin-top:12px; width:100%; }
.lcf-check{ display:none; }
@keyframes lcf-pop { from{ transform:scale(.96); opacity:.6;} to{ transform:scale(1); opacity:1;} }

@media (max-width: 680px){
  .lcf-avatar img{ width:60px; height:60px; }
}
