/* mocks.css — Mock UI styles for calendario, WhatsApp, ficha, etc. */

/* ── Calendar ─────────────────────────────────────────────────── */
.cal-mock{
  background: var(--paper);
  border-radius: var(--radius);
  overflow: hidden;
  font-family: 'Inter', sans-serif;
  font-size: 12.5px;
  color: var(--text);
  border: 1px solid var(--line);
  height: 100%;
  display: flex; flex-direction: column;
}
.cal-mock__chrome{
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px;
  background: var(--paper-2);
  border-bottom: 1px solid var(--line);
}
.cal-mock__title{
  display: flex; align-items: center; gap: 12px;
  font-size: 12px; color: var(--text-2);
}
.cal-mock__dots{ display: inline-flex; gap: 6px; }
.cal-mock__dots i{ width: 10px; height: 10px; border-radius: 50%; }
.cal-mock__view{ display: inline-flex; gap: 2px; padding: 2px; background: var(--paper-3); border-radius: 8px; }
.cal-mock__seg{
  border: 0; background: transparent; height: 24px; padding: 0 10px;
  font: inherit; font-size: 11.5px; cursor: pointer;
  border-radius: 6px; color: var(--text-2);
}
.cal-mock__seg.is-active{ background: var(--paper); color: var(--text); box-shadow: 0 1px 3px rgba(0,0,0,.06); }
.cal-mock__head{
  display: grid;
  grid-template-columns: 60px repeat(6, 1fr);
  border-bottom: 1px solid var(--line);
}
.cal-mock__hcol{
  padding: 10px 8px;
  font-size: 11.5px;
  color: var(--text-2);
  font-weight: 500;
  border-left: 1px solid var(--line);
}
.cal-mock__hcol--time{ border-left: 0; }
.cal-mock__grid{
  display: grid;
  grid-template-columns: 60px 1fr;
  flex: 1;
}
.cal-mock__times{
  display: flex; flex-direction: column;
}
.cal-mock__time{
  height: 36px;
  padding: 4px 8px;
  font-size: 10.5px;
  color: var(--text-3);
  border-bottom: 1px solid var(--line);
  font-variant-numeric: tabular-nums;
}
.cal-mock__cols{
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}
.cal-mock__col{
  position: relative;
  border-left: 1px solid var(--line);
}
.cal-mock__slot{
  height: 36px;
  border-bottom: 1px solid var(--line);
}
.cal-mock__appt{
  position: absolute;
  left: 3px; right: 3px;
  border-radius: 6px;
  padding: 4px 6px;
  font-size: 11px;
  font-weight: 500;
  overflow: hidden;
  display: flex; flex-direction: column; gap: 1px;
}
.cal-mock__appt-title{ font-weight: 600; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-mock__appt-sub{ font-size: 10px; opacity: .8; }

/* ── WhatsApp mock ────────────────────────────────────────────── */
.wa-mock{
  background: #E5DDD5;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.4), transparent 25%),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,.3), transparent 25%);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex; flex-direction: column;
  height: 100%;
  min-height: 460px;
  font-family: 'Inter', sans-serif;
  font-size: 13.5px;
}
.wa-mock__head{
  background: #075E54;
  color: #fff;
  padding: 12px 14px;
  display: flex; align-items: center; gap: 12px;
}
.wa-mock__avatar{
  width: 36px; height: 36px;
  background: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
}
.wa-mock__heads{ flex: 1; display: flex; flex-direction: column; }
.wa-mock__name{ font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.wa-mock__status{ font-size: 11.5px; color: rgba(255,255,255,.7); }
.wa-mock__verified{
  width: 16px; height: 16px;
  display: flex; align-items: center; justify-content: center;
}
.wa-mock__body{
  flex: 1;
  padding: 14px;
  display: flex; flex-direction: column; gap: 6px;
  overflow: hidden;
}
.wa-mock__msg{
  align-self: flex-start;
  max-width: 78%;
  background: #fff;
  border-radius: 8px;
  padding: 6px 10px 4px;
  position: relative;
  box-shadow: 0 1px 1px rgba(0,0,0,.08);
  display: flex; flex-direction: column; gap: 2px;
  font-size: 13.5px;
  line-height: 1.4;
  color: #303030;
}
.wa-mock__msg.is-me{
  align-self: flex-end;
  background: #DCF8C6;
}
.wa-mock__text{ white-space: pre-line; }
.wa-mock__time{
  align-self: flex-end;
  font-size: 10px;
  color: rgba(0,0,0,.45);
  display: inline-flex; align-items: center; gap: 4px;
}
.wa-mock__check{ color: #4FC3F7; font-style: normal; font-size: 11px; }
.wa-mock__card{
  display: flex; flex-direction: column; gap: 6px;
  margin-bottom: 4px;
  padding: 8px;
  background: #f7f7f7;
  border-radius: 6px;
}
.wa-mock__card-row{
  display: flex; gap: 8px; align-items: center;
  font-size: 13px;
}
.wa-mock__card-actions{
  display: flex; gap: 6px;
  padding-top: 6px;
  border-top: 1px solid rgba(0,0,0,.08);
}
.wa-mock__card-actions button{
  flex: 1;
  appearance: none; border: 0;
  background: transparent;
  color: #075E54;
  font: inherit;
  font-weight: 600;
  font-size: 12.5px;
  padding: 6px;
  border-radius: 4px;
  cursor: pointer;
}
.wa-mock__card-actions button:first-child{ background: #075E54; color: #fff; }
.wa-mock__compose{
  display: flex; align-items: center; gap: 10px;
  padding: 8px 14px;
  background: #f0f0f0;
  color: #999;
  font-size: 13px;
}
.wa-mock__compose span{ flex: 1; padding: 8px 12px; background: #fff; border-radius: 999px; }

/* ── Phone frame ──────────────────────────────────────────────── */
.phone-frame{
  width: 240px;
  aspect-ratio: 240 / 500;
  border-radius: 36px;
  background: #0a0c10;
  padding: 8px;
  position: relative;
  box-shadow: 0 32px 64px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.08) inset;
}
.phone-frame__notch{
  position: absolute;
  top: 14px; left: 50%; transform: translateX(-50%);
  width: 80px; height: 22px;
  background: #000;
  border-radius: 999px;
  z-index: 2;
}
.phone-frame__screen{
  width: 100%; height: 100%;
  border-radius: 28px;
  background: var(--paper);
  overflow: hidden;
  position: relative;
  display: flex; flex-direction: column;
}
.bs{
  display: flex; flex-direction: column;
  height: 100%;
  padding: 44px 16px 16px;
  font-size: 12.5px;
  color: var(--text);
  gap: 10px;
}
.bs__top{ display: flex; flex-direction: column; gap: 4px; align-items: center; text-align: center; padding: 4px 0 4px; }
.bs__logo{ font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
.bs__sub{ font-size: 11.5px; color: var(--text-2); }
.bs__check{
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--phone-accent, #FE2C55);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 6px;
  box-shadow: 0 8px 20px rgba(254,44,85,.4);
}
.bs__section-title{ font-size: 11px; color: var(--text-2); text-transform: uppercase; letter-spacing: .04em; margin-top: 4px; }
.bs__item{
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--paper);
}
.bs__item.is-active{ border-color: var(--phone-accent); background: rgba(254,44,85,.04); }
.bs__item-t{ font-size: 12.5px; font-weight: 500; }
.bs__item-s{ font-size: 11px; color: var(--text-2); }
.bs__radio{
  width: 16px; height: 16px;
  border-radius: 50%;
  border: 1.5px solid var(--line-strong);
  position: relative;
  flex-shrink: 0;
}
.bs__item.is-active .bs__radio{ border-color: var(--phone-accent); }
.bs__item.is-active .bs__radio::after{
  content: ""; position: absolute; inset: 3px;
  border-radius: 50%; background: var(--phone-accent);
}
.bs__cta{
  margin-top: auto;
  height: 40px;
  background: var(--phone-accent);
  color: #fff;
  border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 600;
  font-size: 13px;
  box-shadow: 0 8px 20px rgba(254,44,85,.32);
}
.bs__cta--ghost{
  background: transparent; color: var(--text);
  border: 1px solid var(--line-strong); box-shadow: none;
  margin-top: 0;
}
.bs__days{ display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
.bs__day{
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 8px 0;
  border-radius: 8px;
  background: var(--paper-2);
  font-size: 10px;
  color: var(--text-2);
}
.bs__day b{ font-size: 14px; color: var(--text); font-weight: 600; }
.bs__day.is-active{ background: var(--ink); color: rgba(255,255,255,.6); }
.bs__day.is-active b{ color: #fff; }
.bs__slots{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.bs__slot{
  padding: 9px 0;
  text-align: center;
  border-radius: 8px;
  border: 1px solid var(--line);
  font-size: 12px;
  font-weight: 500;
  background: var(--paper);
}
.bs__slot.is-active{ background: var(--phone-accent); color: #fff; border-color: var(--phone-accent); }
.bs__slot.is-disabled{ color: var(--text-3); text-decoration: line-through; opacity: .5; }
.bs__summary{
  background: var(--paper-2);
  border-radius: 10px;
  padding: 12px;
  display: flex; flex-direction: column; gap: 8px;
}
.bs__sum-row{
  display: flex; justify-content: space-between;
  font-size: 12px;
}
.bs__sum-row span{ color: var(--text-2); }
.bs__sum-row b{ font-weight: 600; }

/* ── Patient record ───────────────────────────────────────────── */
.pat-mock{
  background: var(--paper);
  border-radius: var(--radius);
  border: 1px solid var(--line);
  padding: 20px;
  height: 100%;
  display: flex; flex-direction: column; gap: 16px;
  font-size: 13px;
}
.pat-mock__head{
  display: flex; align-items: center; gap: 14px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--line);
}
.pat-mock__avatar{ width: 56px; height: 56px; border-radius: 50%; flex-shrink: 0; }
.pat-mock__name{ font-size: 18px; font-weight: 600; letter-spacing: -0.015em; }
.pat-mock__meta{ font-size: 12px; color: var(--text-2); }
.pat-mock__tag{
  margin-left: auto;
  font-size: 11px; font-weight: 600;
  padding: 4px 10px;
  background: rgba(46,160,67,.12);
  color: #1f7a32;
  border-radius: 999px;
}
.pat-mock__tabs{
  display: flex; gap: 14px;
  font-size: 12.5px;
  color: var(--text-2);
  border-bottom: 1px solid var(--line);
}
.pat-mock__tabs span{ padding: 8px 0; cursor: default; position: relative; }
.pat-mock__tabs .is-active{ color: var(--text); font-weight: 600; }
.pat-mock__tabs .is-active::after{
  content: ""; position: absolute; left: 0; right: 0; bottom: -1px;
  height: 2px; background: var(--primary);
}
.pat-mock__grid{
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px;
}
.pat-mock__field{
  background: var(--paper-2);
  padding: 10px 12px;
  border-radius: 10px;
  display: flex; flex-direction: column; gap: 2px;
}
.pat-mock__field span{ font-size: 11px; color: var(--text-2); }
.pat-mock__field b{ font-size: 13.5px; font-weight: 600; }
.pat-mock__notes{ display: flex; flex-direction: column; gap: 10px; }
.pat-mock__notes-h{ font-size: 11px; color: var(--text-2); text-transform: uppercase; letter-spacing: .04em; }
.pat-mock__note{
  display: flex; gap: 10px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
}
.pat-mock__note i{ width: 4px; align-self: stretch; border-radius: 4px; flex-shrink: 0; }
.pat-mock__note b{ font-size: 12.5px; }
.pat-mock__note p{ margin: 4px 0 0; font-size: 12px; color: var(--text-2); line-height: 1.5; }

/* ── Schedule ─────────────────────────────────────────────────── */
.sched-mock{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  font-size: 13px;
  height: 100%;
}
.sched-mock__head{
  font-size: 12px; color: var(--text-2);
  text-transform: uppercase; letter-spacing: .04em;
  margin-bottom: 12px;
}
.sched-mock__row{
  display: flex; align-items: center; gap: 8px;
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}
.sched-mock__row:last-child{ border-bottom: 0; }
.sched-mock__day{
  width: 88px; font-weight: 500; font-size: 13px;
}
.sched-mock__chip{
  font-size: 12px;
  padding: 4px 10px;
  background: rgba(254,44,85,.08);
  color: var(--primary);
  border: 1px solid rgba(254,44,85,.16);
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.sched-mock__add{
  appearance: none; border: 1px dashed var(--line-strong);
  background: transparent;
  width: 24px; height: 24px;
  border-radius: 999px;
  font: inherit; color: var(--text-3);
  cursor: pointer;
}
.sched-mock__closed{ font-size: 12px; color: var(--text-3); font-style: italic; }
.sched-mock__toggle{
  margin-left: auto;
  width: 32px; height: 18px;
  background: var(--paper-3);
  border-radius: 999px;
  position: relative;
  flex-shrink: 0;
}
.sched-mock__toggle::after{
  content: ""; position: absolute;
  top: 2px; left: 2px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #fff;
  transition: transform .25s var(--ease-out);
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.sched-mock__toggle.is-on{ background: var(--primary); }
.sched-mock__toggle.is-on::after{ transform: translateX(14px); }
.sched-mock__row.is-off .sched-mock__day{ color: var(--text-3); }

/* ── Team ─────────────────────────────────────────────────────── */
.team-mock{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  height: 100%;
  display: flex; flex-direction: column;
}
.team-mock__head{
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 8px;
}
.team-mock__head span{
  font-size: 12px; color: var(--text-2);
  text-transform: uppercase; letter-spacing: .04em;
}
.team-mock__head button{
  appearance: none; border: 1px solid var(--line-strong);
  background: var(--paper);
  font: inherit; font-size: 12px; font-weight: 500;
  padding: 6px 12px;
  border-radius: 999px;
  cursor: pointer;
}
.team-mock__row{
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}
.team-mock__row:last-child{ border-bottom: 0; }
.team-mock__id{ display: flex; flex-direction: column; min-width: 140px; }
.team-mock__id b{ font-size: 13px; font-weight: 600; }
.team-mock__id span{ font-size: 11.5px; color: var(--text-2); }
.team-mock__perms{
  margin-left: auto;
  display: flex; gap: 4px; flex-wrap: wrap;
}
.team-mock__perm{
  font-size: 11px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--paper-2);
  color: var(--text-3);
  border: 1px solid var(--line);
}
.team-mock__perm.is-on{
  background: rgba(254,44,85,.08);
  color: var(--primary);
  border-color: rgba(254,44,85,.16);
}

/* ── HCE / Odontograma ────────────────────────────────────────── */
.hce-mock{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px;
  height: 100%;
  display: flex; flex-direction: column; gap: 12px;
}
.hce-mock__head{
  display: flex; justify-content: space-between; align-items: center;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.hce-mock__head span{ font-size: 14px; font-weight: 600; }
.hce-mock__head button{
  appearance: none; border: 0;
  background: var(--ink); color: #fff;
  font: inherit; font-size: 12px; font-weight: 500;
  padding: 6px 14px;
  border-radius: 999px;
  cursor: pointer;
}
.hce-mock__tabs{ display: flex; gap: 14px; font-size: 12.5px; color: var(--text-2); border-bottom: 1px solid var(--line); }
.hce-mock__tabs span{ padding: 6px 0; }
.hce-mock__tabs .is-active{ color: var(--text); font-weight: 600; border-bottom: 2px solid var(--primary); margin-bottom: -1px; }
.hce-mock__odonto{
  display: grid;
  grid-template-columns: repeat(16, 1fr);
  gap: 4px;
  padding: 12px 0;
}
.hce-mock__tooth{
  display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.hce-mock__crown{
  width: 100%; aspect-ratio: 1;
  background: #f0f1f4;
  border-radius: 4px 4px 6px 6px;
  border: 1px solid var(--line);
}
.hce-mock__num{ font-size: 9px; color: var(--text-3); }
.hce-mock__tooth.is-issue .hce-mock__crown{
  background: rgba(254,44,85,.18);
  border-color: rgba(254,44,85,.5);
}
.hce-mock__tooth.is-treated .hce-mock__crown{
  background: rgba(40,110,220,.18);
  border-color: rgba(40,110,220,.5);
}
.hce-mock__legend{
  display: flex; gap: 16px; font-size: 12px; color: var(--text-2);
}
.hce-mock__legend span{ display: inline-flex; align-items: center; gap: 6px; }
.hce-mock__legend i{ width: 10px; height: 10px; border-radius: 3px; }

/* ── Profile bento art ─────────────────────────────────────────── */
.profile-art{ position: absolute; inset: 0; }
.profile-art--psy{
  background:
    radial-gradient(ellipse at 30% 40%, rgba(180,150,255,.7), transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(120,80,200,.7), transparent 55%),
    linear-gradient(135deg, #2a1f4d, #4a2f7d 50%, #6b3e9c);
}
.profile-art--dental{
  background:
    radial-gradient(ellipse at 70% 30%, rgba(120,200,255,.7), transparent 55%),
    radial-gradient(ellipse at 20% 80%, rgba(60,140,220,.7), transparent 55%),
    linear-gradient(135deg, #0b3358, #1a4f8a 50%, #2a6bb0);
}
.profile-art--med{
  background:
    radial-gradient(ellipse at 30% 70%, rgba(255,120,140,.7), transparent 55%),
    radial-gradient(ellipse at 80% 20%, rgba(254,44,85,.5), transparent 55%),
    linear-gradient(135deg, #4d1424, #8a2541 50%, #b03056);
}
.profile-art--spa{
  background:
    radial-gradient(ellipse at 60% 40%, rgba(255,180,140,.7), transparent 55%),
    radial-gradient(ellipse at 20% 90%, rgba(255,140,80,.7), transparent 55%),
    linear-gradient(135deg, #5e2e1a, #a0552a 50%, #d6804a);
}
.profile-art--physio{
  background:
    radial-gradient(ellipse at 30% 30%, rgba(120,220,180,.7), transparent 55%),
    radial-gradient(ellipse at 80% 80%, rgba(40,160,120,.7), transparent 55%),
    linear-gradient(135deg, #0e3a2c, #1a6b50 50%, #2a8f6e);
}
.profile-art--aesthetic{
  background:
    radial-gradient(ellipse at 70% 40%, rgba(255,180,220,.7), transparent 55%),
    radial-gradient(ellipse at 20% 80%, rgba(220,120,180,.7), transparent 55%),
    linear-gradient(135deg, #4d1838, #8a2861 50%, #b8408a);
}
.profile-art::after{
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.55));
}
