:root{
  --bg:#f6f7fb;--card:#fff;--text:#1f2937;--muted:#6b7280;--primary:#2563eb;--primary-2:#1d4ed8;--border:#e5e7eb;--danger:#dc2626;--success:#16a34a;--warning:#f59e0b;--info:#0ea5e9;--sidebar:#0f172a;--sidebar-hover:#1e293b;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif} a{text-decoration:none;color:inherit}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr}.login-hero{background:linear-gradient(135deg,#0f172a,#1d4ed8);color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:center}.login-hero h1{font-size:42px;line-height:1.05;margin:0 0 16px}.login-hero p{font-size:18px;opacity:.9;max-width:650px}.login-card-wrap{display:flex;align-items:center;justify-content:center;padding:28px}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 12px 30px rgba(15,23,42,.06)}.login-card{width:min(430px,100%);padding:30px}.form-row{display:grid;gap:8px;margin-bottom:14px} label{font-size:13px;font-weight:700;color:#374151} input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 12px;font:inherit;background:#fff} textarea{min-height:90px;resize:vertical}.btn{border:0;border-radius:12px;padding:11px 14px;font-weight:800;cursor:pointer;background:var(--primary);color:#fff;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn:hover{background:var(--primary-2)}.btn.secondary{background:#e5e7eb;color:#111827}.btn.danger{background:var(--danger)}.btn.success{background:var(--success)}.btn.warning{background:var(--warning);color:#111827}.btn.small{padding:7px 10px;border-radius:9px;font-size:12px}.demo-users{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:12px;padding:12px;font-size:13px;color:#475569;margin-top:14px}.app{display:flex;min-height:100vh}.sidebar{width:270px;background:var(--sidebar);color:#cbd5e1;position:fixed;inset:0 auto 0 0;padding:18px;overflow:auto}.brand{color:#fff;font-weight:900;font-size:19px;margin-bottom:22px;display:flex;align-items:center;gap:10px}.brand-dot{width:13px;height:13px;border-radius:99px;background:#60a5fa;box-shadow:0 0 0 6px rgba(96,165,250,.15)}.nav{display:grid;gap:6px}.nav a{padding:11px 12px;border-radius:12px;font-weight:700}.nav a:hover,.nav a.active{background:var(--sidebar-hover);color:#fff}.sidebar-footer{margin-top:24px;border-top:1px solid rgba(255,255,255,.08);padding-top:16px;font-size:12px;color:#94a3b8}.main{margin-left:270px;width:calc(100% - 270px);padding:22px}.topbar{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:18px}.topbar h1{margin:0;font-size:26px}.user-pill{background:#fff;border:1px solid var(--border);border-radius:999px;padding:9px 12px;font-size:13px;color:#475569}.grid{display:grid;gap:16px}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:18px}.kpi .label{color:var(--muted);font-size:13px;font-weight:800}.kpi .value{font-size:30px;font-weight:900;margin-top:8px}.kpi .hint{font-size:12px;color:var(--muted);margin-top:4px}
.kpi-conflito{border:2px solid #fca5a5!important;background:#fff5f5!important;cursor:pointer;transition:box-shadow .15s}
.kpi-conflito:hover{box-shadow:0 0 0 4px rgba(220,38,38,.15)!important}.panel{padding:18px}.panel h2{margin:0 0 14px;font-size:18px}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden}.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;font-size:14px;vertical-align:top}.table th{background:#f8fafc;color:#475569;font-size:12px;text-transform:uppercase;letter-spacing:.04em}.badge{display:inline-flex;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800}.badge.open{background:#ffedd5;color:#9a3412}.badge.filled{background:#dcfce7;color:#166534}.badge.info{background:#dbeafe;color:#1d4ed8}.badge.danger{background:#fee2e2;color:#991b1b}.toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap}.filters{display:flex;gap:10px;flex-wrap:wrap}.filters select,.filters input{width:auto;min-width:180px}.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:30;align-items:center;justify-content:center;padding:20px}.modal{width:min(720px,100%);max-height:90vh;overflow-y:auto;overflow-x:hidden;background:#fff;border-radius:18px;padding:20px;box-shadow:0 30px 70px rgba(0,0,0,.25)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-header h2{margin:0}.close{border:0;background:#f1f5f9;border-radius:10px;padding:8px 10px;cursor:pointer}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-wrap{background:#fff;border:1px solid var(--border);border-radius:18px;padding:16px}.notice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;padding:12px;color:#1e40af;margin-bottom:14px}.kanban{display:grid;grid-template-columns:330px 1fr;gap:16px}.professional-list{display:grid;gap:10px}.drag-doc{padding:10px;border:1px solid var(--border);border-radius:12px;background:#f8fafc;cursor:grab}.muted{color:var(--muted)}.hidden{display:none!important}@media(max-width:900px){.login-page{grid-template-columns:1fr}.login-hero{padding:30px}.sidebar{position:relative;width:100%;inset:auto}.app{display:block}.main{margin-left:0;width:100%}.grid.cols-4,.grid.cols-3,.grid.cols-2,.form-grid,.kanban{grid-template-columns:1fr}.filters select,.filters input{width:100%}}
.modal.wide{width:min(1050px,100%)}
.color-line{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--muted);font-weight:700}.color-line i{display:inline-block;width:14px;height:14px;border-radius:4px;margin-right:5px;vertical-align:-2px;border:1px solid rgba(0,0,0,.12)}
.checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}.check{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#334155}.check input{width:auto}
.rules-head,.rule-row{display:grid;grid-template-columns:2.1fr 110px 110px 110px 80px 130px;gap:10px;align-items:center}.rules-head{background:#f8fafc;border:1px solid var(--border);border-radius:12px 12px 0 0;padding:10px;color:#475569;font-size:12px;text-transform:uppercase}.rule-row{border:1px solid var(--border);border-top:0;padding:10px}.rule-row:last-child{border-radius:0 0 12px 12px}.rule-days{display:flex;gap:8px;flex-wrap:wrap}.rule-row input[type=time],.rule-row input[type=number]{padding:8px}.agenda-filter{align-items:end}.agenda-filter label{display:block;margin-right:-6px;padding:0 0 11px 0}
@media(max-width:900px){.checks{grid-template-columns:1fr}.rules-head{display:none}.rule-row{grid-template-columns:1fr}.rule-days{display:grid;grid-template-columns:repeat(2,1fr)}}


/* Melhorias visuais da agenda e temas */
body{transition:background .18s,color .18s}.card,.panel,.calendar-wrap,.modal,.user-pill,input,select,textarea,.table,.drag-doc{background:var(--card);color:var(--text);border-color:var(--border)}
input,select,textarea{background:var(--card);color:var(--text)}label,.check{color:var(--text)}.table th,.rules-head{background:var(--card2);color:var(--muted)}.btn.secondary{background:var(--card2);color:var(--text);border:1px solid var(--border)}.notice{background:color-mix(in srgb, var(--primary) 12%, transparent);border-color:color-mix(in srgb, var(--primary) 35%, transparent);color:var(--primary)}
.fc{--fc-border-color:var(--border);--fc-page-bg-color:var(--card);--fc-neutral-bg-color:var(--card2);--fc-list-event-hover-bg-color:var(--card2);color:var(--text)}.fc .fc-toolbar-title{text-transform:lowercase}.fc .fc-button{background:var(--sidebar-hover);border-color:var(--sidebar-hover);font-weight:800}.fc .fc-button-primary:not(:disabled).fc-button-active,.fc .fc-button-primary:not(:disabled):active{background:var(--primary);border-color:var(--primary)}.fc .fc-daygrid-day-frame{min-height:116px}.fc .fc-daygrid-event{white-space:normal!important;border-radius:8px!important;margin:2px 3px!important;padding:0!important;overflow:hidden}.fc .fc-daygrid-event-harness{margin-top:2px}.fc .fc-event-main{padding:0!important}.evt-card{padding:5px 30px 10px 7px;line-height:1.2;min-height:38px;position:relative}.evt-time{font-size:11px;font-weight:900;opacity:.95}.evt-title{font-size:12px;font-weight:900;white-space:normal}.evt-sub{font-size:10px;opacity:.9;white-space:normal}.evt-card-trocado{box-shadow:inset 0 0 0 2px rgba(255,255,255,.55)}.evt-troca-icon{position:absolute;right:4px;bottom:4px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-size:15px;font-weight:900;line-height:1;border:2px solid #fff;box-shadow:0 3px 10px rgba(0,0,0,.32);z-index:2}.fc-timegrid-event .evt-card{min-height:50px}.fc-list-event-title{color:var(--text)}.calendar-wrap{overflow-x:auto}#calendar{min-width:980px}
#ts-trigger{position:fixed;right:24px;bottom:24px;z-index:1000;width:50px;height:50px;border-radius:50%;border:1px solid var(--border);background:var(--card2);color:var(--text);box-shadow:0 12px 30px rgba(0,0,0,.22);font-size:22px;cursor:pointer}#ts-panel{position:fixed;right:24px;bottom:86px;z-index:999;width:292px;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:15px;box-shadow:0 18px 50px rgba(0,0,0,.35);display:none}#ts-panel.open{display:block}.ts-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:900;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.ts-header button{border:0;background:transparent;color:var(--muted);font-size:20px;cursor:pointer}.ts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.ts-card{border:1px solid var(--border);background:var(--card2);border-radius:12px;overflow:hidden;padding:0;cursor:pointer;color:var(--text)}.ts-card.ts-active{outline:2px solid var(--primary)}.ts-preview{height:42px;display:flex;gap:2px;padding:4px}.ts-preview i{flex:1;border-radius:5px}.ts-label{font-size:10px;font-weight:800;padding:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
@media(max-width:900px){#calendar{min-width:760px}.fc .fc-daygrid-day-frame{min-height:96px}}
/* Painel de temas estilo TweakCN */
#ts-panel{width:360px;max-height:75vh;overflow:auto;padding:0;border-radius:18px;background:var(--card);}
.ts-header{position:sticky;top:0;background:var(--card);z-index:2;margin:0;padding:14px 16px;border-bottom:1px solid var(--border);}
.ts-current{font-size:12px;color:var(--muted);padding:12px 16px 0 16px;}
.ts-search{width:calc(100% - 32px);margin:12px 16px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--card2);color:var(--text);outline:none;}
.ts-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 18%, transparent)}
.ts-grid{display:grid;grid-template-columns:1fr;gap:0;padding:0 8px 12px 8px;}
.ts-card{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:10px;padding:8px;border-radius:12px;background:transparent;border:0;text-align:left;}
.ts-card:hover{background:var(--card2)}
.ts-card.ts-active{outline:0;background:color-mix(in srgb, var(--primary) 14%, var(--card2));}
.ts-preview{height:28px;padding:0;display:flex;gap:4px;background:transparent;}
.ts-preview i{height:18px;margin-top:5px;border-radius:5px;border:1px solid rgba(0,0,0,.06)}
.ts-label{font-size:14px;font-weight:800;padding:0;color:var(--text)}
.ts-note{font-size:11px;color:var(--muted);padding:0 16px 16px 16px;}
@media(max-width:640px){#ts-panel{left:12px;right:12px;width:auto}.ts-card{grid-template-columns:64px 1fr}}

/* Ajustes v6 - foco de profissional e drag controlado */
#external{display:grid;gap:10px}.drag-doc{display:block;text-decoration:none;color:inherit}.drag-doc.selected{outline:3px solid var(--primary);background:color-mix(in srgb, var(--primary) 12%, var(--card));box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 14%, transparent)}.focus-clear{width:100%;margin-bottom:10px}.fc-event{cursor:pointer}.fc-event.fc-event-draggable{cursor:grab}.fc-event.fc-event-dragging{cursor:grabbing}

/* Ajustes v7 - foco mantém os demais turnos quase transparentes */
.fc .evento-desfocado {
  opacity: .50;
  filter: grayscale(.12);
}
.fc .evento-desfocado .evt-card {
  color: #111827;
}

/* v8 - feriados/bloqueios */
.color-dot{display:inline-block;width:18px;height:18px;border-radius:6px;border:1px solid var(--border);vertical-align:middle}
.fc .dia-bloqueado{background:color-mix(in srgb,var(--bloq-color,#64748b) 13%,transparent)!important}
.fc .dia-bloqueado .fc-daygrid-day-frame{position:relative}
.fc .dia-bloqueado .fc-daygrid-day-number{font-weight:900;color:var(--bloq-color,#64748b)}
.blocked-label{position:absolute;left:5px;right:5px;bottom:4px;font-size:10px;font-weight:900;color:var(--text);background:color-mix(in srgb,var(--bloq-color,#64748b) 22%,var(--card));border:1px solid color-mix(in srgb,var(--bloq-color,#64748b) 45%,transparent);border-radius:8px;padding:3px 5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}

/* v13 - feriado/bloqueio em várias linhas, sem cortar o texto */
.blocked-label{
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  line-height:1.15!important;
  max-height:none!important;
  bottom:auto!important;
  top:34px!important;
  z-index:3!important;
}
.fc .dia-bloqueado .fc-daygrid-day-frame{overflow:visible!important;}
.fc .dia-bloqueado{background:color-mix(in srgb,var(--bloq-color,#64748b) 18%,transparent)!important;}

/* ── v14: suporte a fontes por tema (TweakCN) ── */
:root { --font-body: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
body,
input, select, textarea, button, .btn,
.modal, .card, .table, .nav a,
.topbar h1, h1, h2, h3, p, span, label, div,
.sidebar, .kpi, .muted, .badge, .drag-doc {
  font-family: var(--font-body), sans-serif;
}

/* ── sidebar renomeada para Gemm ── */
.brand::after { content: none; }

/* ── permissoes: código inline */
code { background: var(--card2); border: 1px solid var(--border); border-radius: 6px; padding: 2px 6px; font-size: 12px; font-family: monospace; color: var(--primary); }

/* ── login hero: garante que a imagem não quebre em telas pequenas ── */
.login-card-wrap { display: flex; align-items: center; justify-content: center; padding: 28px; background: var(--bg); }

/* ── v14.1: Tabela de permissões editável ── */
.perm-toggle, .perm-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 900;
  border: 2px solid transparent;
  transition: background .15s, color .15s, transform .1s, border-color .15s;
  cursor: default;
}
.perm-toggle {
  cursor: pointer;
  background: var(--card2);
  border-color: var(--border);
}
.perm-toggle:hover { transform: scale(1.12); border-color: var(--primary); }
.perm-toggle:active { transform: scale(.96); }
.perm-on  { color: var(--success); }
.perm-off { color: var(--muted); }
.perm-toggle.perm-on  { background: color-mix(in srgb, var(--success) 14%, var(--card2)); border-color: color-mix(in srgb, var(--success) 35%, transparent); }
.perm-toggle.perm-off { background: var(--card2); }

/* ── v14.2: visão do médico na agenda ── */

/* Kanban sem painel lateral (modo médico) */
.kanban-medico {
  display: block; /* remove grid de 2 colunas */
}
.kanban-medico .calendar-wrap {
  width: 100%;
}

/* Legenda de cores na topbar */
.agenda-legenda {
  display: flex;
  gap: 14px;
  align-items: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.legenda-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.legenda-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 4px;
  border: 1px solid rgba(0,0,0,.10);
  flex-shrink: 0;
}

.legenda-item-troca {
  white-space: nowrap;
}
.legenda-swap-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: linear-gradient(135deg,#2563eb,#7c3aed);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
  flex-shrink: 0;
}

/* Turno de outro profissional — desfocado mas clicável para solicitar troca */
.fc .turno-outro {
  opacity: .55 !important;
  cursor: pointer !important;
}
.fc .turno-outro:hover {
  opacity: .85 !important;
}
.fc .turno-outro .evt-card-outro {
  opacity: 1;
}
.evt-card-outro .evt-time {
  font-size: 10px;
  opacity: .7;
}

/* Meu turno — destaque extra */
.fc .turno-proprio {
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px currentColor;
}

/* ── v14.3: legenda de bloqueio com padrão diferenciado ── */
.legenda-dot-bloq {
  /* padrão de listras diagonais sutis sobre a cor do bloqueio */
  background-image: repeating-linear-gradient(
    135deg,
    rgba(255,255,255,.22) 0px,
    rgba(255,255,255,.22) 2px,
    transparent 2px,
    transparent 6px
  ) !important;
  background-blend-mode: overlay;
  border: 1px solid rgba(0,0,0,.18) !important;
}

/* ── v14.4: página de configurações — abas ── */
.cfg-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 2px solid var(--border);
  padding-bottom: 0;
}
.cfg-tab {
  border: 0;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
  font-size: 14px;
  padding: 10px 18px;
  border-radius: 10px 10px 0 0;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color .15s, border-color .15s, background .15s;
  font-family: var(--font-body);
}
.cfg-tab:hover { color: var(--text); background: var(--card2); }
.cfg-tab.active { color: var(--primary); border-bottom-color: var(--primary); background: var(--card2); }

/* Indica vínculos usados na tabela de configurações */
.cfg-use-count { font-size: 12px; color: var(--muted); }

/* ── v14.5: barra de pesquisa global ── */
.search-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 6px 12px;
}
.search-bar input {
  flex: 1;
  border: 0;
  background: transparent;
  font-size: 14px;
  color: var(--text);
  padding: 6px 0;
  outline: none;
  font-family: var(--font-body);
  min-width: 0;
}
.search-bar input::placeholder { color: var(--muted); }
.search-clear {
  border: 0;
  background: var(--card2);
  color: var(--muted);
  border-radius: 8px;
  padding: 4px 8px;
  font-size: 13px;
  cursor: pointer;
  font-family: var(--font-body);
  flex-shrink: 0;
}
.search-clear:hover { background: var(--danger); color: #fff; }
.search-count {
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  font-weight: 700;
  flex-shrink: 0;
  border-left: 1px solid var(--border);
  padding-left: 10px;
}

/* ── v14.5: formulário de bloqueio — horário e preview ── */
.bloq-hora-wrap {
  background: var(--card2);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-top: 14px;
}
.bloq-preview-wrap { margin-top: 10px; }
.bloq-preview {
  background: color-mix(in srgb, var(--primary) 8%, var(--card2));
  border: 1px solid color-mix(in srgb, var(--primary) 25%, transparent);
  border-radius: 12px;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--text);
}
.bloq-dias {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.bloq-dia-pill {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 3px 9px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text);
}

/* ── v14.6: visual melhorado para bloqueios parciais e intervalos ── */

/* Dia com bloqueio de período parcial — listras diagonais sutis para indicar "apenas parte do dia" */
.fc .dia-bloqueado-parcial {
  background: repeating-linear-gradient(
    135deg,
    color-mix(in srgb, var(--bloq-color, #64748b) 14%, transparent) 0px,
    color-mix(in srgb, var(--bloq-color, #64748b) 14%, transparent) 4px,
    transparent 4px,
    transparent 14px
  ) !important;
}

/* Mantém o dia inteiro bloqueado com cor sólida */
.fc .dia-bloqueado:not(.dia-bloqueado-parcial) {
  background: color-mix(in srgb, var(--bloq-color, #64748b) 18%, transparent) !important;
}

/* Label de bloqueio parcial — ícone diferente e borda tracejada */
.blocked-label-parcial {
  background: color-mix(in srgb, var(--bloq-color, #64748b) 28%, var(--card)) !important;
  border-style: dashed !important;
  opacity: .9;
}

/* ── v14.7: Sistema de trocas e comunicações ── */

/* Badge no menu de navegação */
.nav a { position: relative; }
.nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--danger);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  margin-left: 8px;
  vertical-align: middle;
  animation: pulse-badge .6s ease-in-out 2;
}
@keyframes pulse-badge {
  0%,100%{transform:scale(1)} 50%{transform:scale(1.25)}
}


/* turno-outro — regra consolidada acima */

/* Modal de solicitação de troca */
.troca-info {
  display: flex;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
}
.troca-lado { flex: 1; }
.troca-label { font-size: 12px; font-weight: 800; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.troca-card {
  border: 2px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  background: var(--card2);
  font-size: 14px;
  line-height: 1.5;
}
.troca-alvo { border-color: var(--warning); background: color-mix(in srgb, var(--warning) 10%, var(--card2)); }
.troca-seta { font-size: 28px; color: var(--muted); flex-shrink: 0; }
.troca-select {
  width: 100%;
  padding: 10px 12px;
  border: 2px solid var(--border);
  border-radius: 12px;
  background: var(--card2);
  color: var(--text);
  font-size: 14px;
  font-family: var(--font-body);
}

/* Grid de comunicações */
.com-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: start;
}
@media(max-width:900px){ .com-grid{ grid-template-columns:1fr; } }

/* Cards de notificação de troca */
.troca-notif-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 16px;
  margin-bottom: 12px;
  transition: border-color .15s;
}
.troca-pendente {
  border-color: var(--warning);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--warning) 18%, transparent);
}
.troca-notif-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}
.troca-notif-body { font-size: 14px; line-height: 1.6; }
.troca-notif-turnos {
  display: flex;
  gap: 10px;
  align-items: center;
  margin: 10px 0;
}
.troca-mini-card {
  flex: 1;
  background: var(--card2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px;
  font-size: 13px;
  line-height: 1.4;
}
.troca-mini-card.troca-alvo { border-color: var(--warning); background: color-mix(in srgb, var(--warning) 10%, var(--card2)); }
.troca-seta-mini { font-size: 20px; color: var(--muted); flex-shrink: 0; }
.troca-msg {
  background: var(--card2);
  border-left: 3px solid var(--primary);
  border-radius: 0 8px 8px 0;
  padding: 8px 12px;
  font-size: 13px;
  color: var(--muted);
  margin-top: 8px;
}

/* ── Overlay clicável sobre turno-outro — garante clique independente do FC ── */
.troca-overlay {
  position: absolute;
  inset: 0;
  z-index: 10;
  cursor: pointer;
  background: transparent;
}
.troca-overlay:hover {
  background: rgba(255,255,255,.12);
}

/* ── Turnos de outros profissionais — lista HTML pura abaixo do calendário ── */
.outros-turnos-wrap { margin-top: 8px; }
.outros-turnos-lista {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
  margin-top: 8px;
}
.outro-turno-card {
  background: var(--card);
  border: 2px solid var(--border);
  border-radius: 14px;
  padding: 12px 14px;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, transform .1s;
  position: relative;
  overflow: hidden;
}
.outro-turno-card:not(.outro-passado):hover {
  border-color: var(--primary);
  box-shadow: 0 4px 18px color-mix(in srgb, var(--primary) 20%, transparent);
  transform: translateY(-2px);
}
.outro-turno-card.outro-passado {
  opacity: .45;
  cursor: not-allowed;
}
.outro-turno-data    { font-size: 12px; color: var(--muted); font-weight: 700; }
.outro-turno-horario { font-size: 13px; font-weight: 900; margin: 3px 0; }
.outro-turno-prof    { font-size: 14px; font-weight: 800; }
.outro-turno-agenda  { font-size: 12px; color: var(--muted); }
.outro-troca-btn {
  margin-top: 8px;
  font-size: 11px;
  font-weight: 800;
  color: var(--primary);
  background: color-mix(in srgb, var(--primary) 10%, transparent);
  border-radius: 8px;
  padding: 4px 8px;
  display: inline-block;
}
.outro-passado-label {
  margin-top: 8px;
  font-size: 11px;
  color: var(--muted);
}


.badge.secondary{background:var(--card2);color:var(--muted);border:1px solid var(--border)}
.troca-cell-msg{font-size:12px;line-height:1.45;margin-bottom:6px;max-width:320px;white-space:normal}

/* Filtro e celular na agenda */
.agenda-prof-search{margin:10px 0 12px}
.agenda-prof-search input{width:100%;min-width:0;padding:10px 12px;border-radius:12px}
.prof-celular{display:inline-block;margin-top:3px;font-size:12px}
.evt-cel{font-size:10px;line-height:1.15;font-weight:700;opacity:.95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.outro-turno-cel{font-size:12px;color:var(--muted);margin-top:2px}

.troca-filter-bar{
  display:flex;
  align-items:end;
  justify-content:flex-start;
  gap:14px;
  flex-wrap:wrap;
  padding:12px 14px;
  margin:0 0 16px;
  background:var(--card);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:0 6px 18px rgba(15,23,42,.04);
}
.troca-filter-bar.inline-table-filter{
  margin:10px 0 14px;
  background:#f8fafc;
  box-shadow:none;
}
.mini-filter-field{
  margin:0;
  display:grid;
  gap:6px;
  min-width:360px;
}
.mini-filter-field.status-field{
  min-width:190px;
}
.mini-filter-field input,
.mini-filter-field select{
  width:100%;
  min-width:0;
}
@media(max-width:900px){
  .mini-filter-field,.mini-filter-field.status-field{min-width:100%;}
}


.lote-box{
  border:1px solid var(--border);
  border-radius:16px;
  padding:14px;
  background:var(--card2);
  margin-top:12px;
  overflow:hidden;
}
.lote-box > label{
  display:block;
  margin-bottom:10px;
  color:var(--text);
}
.lote-options{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:8px;
}
.lote-radio{
  display:grid;
  grid-template-columns:22px 1fr;
  align-items:start;
  gap:10px;
  width:100%;
  min-width:0;
  padding:11px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--card);
  cursor:pointer;
}
.lote-radio:has(input:checked){
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(37,99,235,.10);
}
.lote-radio input{margin-top:2px;width:auto;min-width:auto}
.lote-radio span{display:grid;gap:3px;min-width:0;overflow:hidden}
.lote-radio b{font-size:13px;line-height:1.25;white-space:normal;color:var(--text)}
.lote-radio small{font-size:11.5px;color:var(--muted);line-height:1.35;white-space:normal}
.lote-periodo{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:12px;
}
.lote-periodo input{width:100%;}
.lote-preview{
  margin-top:12px;
  max-height:270px;
  overflow-y:auto;
  overflow-x:hidden;
  border:1px solid var(--border);
  border-radius:14px;
  padding:12px;
  background:var(--card);
}
.lote-preview-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
  color:var(--muted);
  font-size:12px;
  border-bottom:1px solid var(--border);
  padding-bottom:9px;
}
.lote-preview-head b{color:var(--text);font-size:13px;white-space:nowrap}
.lote-preview-head span{text-align:right;line-height:1.3}
.lote-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.lote-turno-card{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:10px;
  align-items:start;
  min-width:0;
  width:100%;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--card2);
  cursor:pointer;
}
.lote-turno-card:hover{border-color:var(--primary)}
.lote-turno-card:has(input:checked){background:#eff6ff;border-color:#93c5fd}
.lote-turno-card input{margin-top:3px;width:auto;min-width:auto}
.lote-turno-info{display:grid;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;min-width:0;font-size:12px;line-height:1.2}
.lote-turno-info b{font-size:13px;color:var(--text);white-space:nowrap}
.lote-turno-info span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}
.lote-turno-info small{font-size:11px;color:var(--muted);white-space:nowrap}
@media(max-width:720px){
  .lote-periodo{grid-template-columns:1fr}
  .lote-preview-head{flex-direction:column}
  .lote-preview-head span{text-align:left}
  .lote-turno-info{grid-template-columns:1fr;gap:3px}
  .lote-turno-info span{white-space:normal;overflow:visible}
}



/* ─── RESPONSIVIDADE GERAL ─────────────────────────────────────────────── */
.mobile-menu-btn,.sidebar-close,.sidebar-backdrop{display:none}
.table-wrap,.responsive-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.table{min-width:720px}
.card,.panel,.calendar-wrap{max-width:100%}
img,svg,canvas,video{max-width:100%;height:auto}

@media (max-width: 1180px){
  .main{padding:18px}
  .grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .topbar{align-items:flex-start;flex-wrap:wrap}
  .topbar h1{font-size:24px}
  .toolbar{align-items:stretch}
  .filters{width:100%}
  .filters input,.filters select{flex:1 1 220px;min-width:0}
}

@media (max-width: 980px){
  body{overflow-x:hidden}
  .app{display:block;min-height:100vh}
  .mobile-menu-btn{display:inline-flex;align-items:center;justify-content:center;position:fixed;left:12px;top:12px;z-index:1002;width:44px;height:44px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);box-shadow:0 8px 24px rgba(15,23,42,.18);font-size:22px;font-weight:900}
  .sidebar{position:fixed;left:0;top:0;bottom:0;width:min(86vw,310px);transform:translateX(-105%);transition:transform .22s ease;z-index:1003;box-shadow:20px 0 50px rgba(0,0,0,.28)}
  .sidebar-close{display:inline-flex;margin-left:auto;border:0;background:rgba(255,255,255,.10);color:#fff;border-radius:10px;width:34px;height:34px;align-items:center;justify-content:center;font-size:22px;cursor:pointer}
  .sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1001;opacity:0;pointer-events:none;transition:opacity .2s ease}
  body.mobile-menu-open .sidebar{transform:translateX(0)}
  body.mobile-menu-open .sidebar-backdrop{opacity:1;pointer-events:auto}
  body.mobile-menu-open{overflow:hidden}
  .main{margin-left:0;width:100%;padding:70px 14px 18px}
  .topbar{gap:10px;margin-bottom:14px}
  .topbar h1{font-size:22px;line-height:1.15}
  .user-pill{font-size:12px;padding:8px 10px}
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr 1fr}
  .kanban{grid-template-columns:1fr}
  .professional-list{max-height:none}
  .calendar-wrap{padding:10px;border-radius:14px}
  #calendar{min-width:860px}
  .fc .fc-toolbar{gap:8px;flex-wrap:wrap}
  .fc .fc-toolbar-title{font-size:22px!important}
  .fc .fc-button{padding:7px 9px!important;font-size:13px!important}
  .agenda-legenda{justify-content:flex-start!important;gap:8px!important;flex-wrap:wrap!important}
  .modal-backdrop{padding:10px;align-items:flex-start;overflow-y:auto}
  .modal{width:100%;max-height:calc(100vh - 20px);border-radius:16px;padding:16px}
  .modal-header h2{font-size:22px}
  .form-grid{grid-template-columns:1fr}
  .rules-head{display:none}
  .rule-row{grid-template-columns:1fr;gap:8px;border-top:1px solid var(--border);border-radius:12px;margin-bottom:10px}
  .checks{grid-template-columns:1fr}
  .filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .filters input,.filters select{width:100%;min-width:0}
}

@media (max-width: 680px){
  .main{padding:64px 10px 14px}
  .login-hero{padding:26px 20px}.login-hero h1{font-size:32px}.login-hero p{font-size:15px}.login-card-wrap{padding:18px}.login-card{padding:22px}
  .topbar{display:block}.topbar > *+*{margin-top:10px}
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}
  .kpi{padding:14px}.kpi .value{font-size:25px}
  .panel{padding:14px;border-radius:14px}
  .toolbar{display:grid;grid-template-columns:1fr;gap:10px}
  .filters{grid-template-columns:1fr}
  .btn{width:100%;min-height:42px}
  .btn.small{width:auto;min-height:auto}
  input,select,textarea{font-size:16px;min-height:44px}
  .table{min-width:660px}.table th,.table td{padding:10px 9px;font-size:13px}
  .calendar-wrap{margin-left:-2px;margin-right:-2px}
  #calendar{min-width:780px}
  .fc .fc-toolbar{display:grid!important;grid-template-columns:1fr;align-items:stretch!important}
  .fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap}
  .fc .fc-toolbar-title{text-align:center;font-size:20px!important}
  .evt-card{padding:5px 26px 9px 6px}.evt-title{font-size:11px}.evt-time{font-size:10px}.evt-sub{font-size:9px}
  .evt-troca-icon{width:19px;height:19px;font-size:13px}
  .modal{padding:14px}.modal-header{align-items:flex-start}.close{min-width:38px}
  .recorrencia-box,.batch-box,.lote-box{max-width:100%;overflow-x:hidden}
  .recorrencia-opcoes,.batch-options{grid-template-columns:1fr!important}
  .batch-list,.lote-list,.recorrencia-lista{max-height:280px;overflow-y:auto;overflow-x:hidden}
  #ts-trigger{right:14px;bottom:14px;width:44px;height:44px}
  #ts-panel{right:10px;left:10px;bottom:66px;width:auto}
}

@media (max-width: 420px){
  .main{padding-left:8px;padding-right:8px}
  .card,.panel,.calendar-wrap,.modal{border-radius:12px}
  #calendar{min-width:720px}
  .sidebar{width:90vw}
}


/* ─────────────────────────────────────────────────────────────
   Gemm - ajustes de marca e layout profissional
   ───────────────────────────────────────────────────────────── */
.login-page-gemm{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr);
  background:var(--bg);
}
.login-hero-clean{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:100vh;
  padding:56px;
  background:#0f172a;
}
.login-hero-clean .login-hero-img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center top;
}
.login-hero-clean .login-hero-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(7,18,38,.34) 0%,rgba(7,18,38,.22) 46%,rgba(7,18,38,.78) 100%),
             linear-gradient(to bottom,rgba(7,18,38,.10) 0%,rgba(7,18,38,.45) 68%,rgba(7,18,38,.86) 100%);
}
.login-hero-content-clean{
  position:relative;
  z-index:2;
  max-width:880px;
}
.login-hero-content-clean h1{
  color:#fff;
  font-size:clamp(34px,4.2vw,66px);
  line-height:1.02;
  letter-spacing:-.04em;
  margin:0;
  text-shadow:0 4px 20px rgba(0,0,0,.45);
}
.login-card-wrap-clean{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px;
  background:radial-gradient(circle at 50% 0%, color-mix(in srgb,var(--primary) 11%, transparent), transparent 36%), var(--bg);
}
.login-card-clean{
  width:min(460px,100%);
  padding:34px;
  border-radius:24px;
  box-shadow:0 24px 70px rgba(15,23,42,.14);
}
.login-brand-block{
  display:flex;
  justify-content:center;
  margin-bottom:20px;
}
.login-logo-img{
  display:block;
  width:min(300px,100%);
  max-height:118px;
  object-fit:contain;
  border-radius:16px;
}
.login-card-clean h2{
  margin:0 0 6px;
  font-size:28px;
  letter-spacing:-.02em;
  text-align:center;
}
.login-subtitle{
  text-align:center;
  margin:0 0 24px;
  line-height:1.45;
}
.brand-gemm{
  margin-bottom:22px;
  padding:2px 0 8px;
  justify-content:space-between;
  gap:12px;
}
.sidebar-logo-img{
  width:190px;
  max-width:calc(100% - 48px);
  height:58px;
  object-fit:contain;
  object-position:left center;
  border-radius:12px;
  display:block;
}
.brand-dot{display:none!important;}
.sidebar-close{flex-shrink:0;}
@media(max-width:980px){
  .login-page-gemm{grid-template-columns:1fr;}
  .login-hero-clean{min-height:34vh;padding:28px 22px;}
  .login-card-wrap-clean{padding:22px;align-items:flex-start;}
  .login-card-clean{padding:26px;border-radius:20px;}
  .login-logo-img{width:min(260px,100%);max-height:100px;}
  .sidebar-logo-img{width:176px;height:54px;}
}
@media(max-width:560px){
  .login-hero-clean{min-height:30vh;padding:24px 18px;}
  .login-hero-clean .login-hero-img{object-position:center top;}
  .login-hero-content-clean h1{font-size:30px;}
  .login-card-wrap-clean{padding:16px 12px 22px;}
  .login-card-clean{padding:22px 18px;}
  .login-card-clean h2{font-size:24px;}
  .login-logo-img{width:230px;max-height:92px;}
}

/* ─────────────────────────────────────────────────────────────
   GEMM mobile-first polish / responsivo PC, tablet e celular
   ───────────────────────────────────────────────────────────── */
html, body { max-width: 100%; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
.table-responsive, .table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table { min-width: 720px; }

.mobile-menu-btn,
.sidebar-close,
.sidebar-backdrop { display: none; }

.brand-gemm { min-height: 52px; display:flex; align-items:center; justify-content:space-between; gap:10px; }
.sidebar-logo-img { max-width: 170px; max-height: 42px; object-fit: contain; }

.topbar { gap: 12px; }
.topbar > * { min-width: 0; }
.filters { align-items: end; }
.filters input,
.filters select,
.filters .btn { min-height: 44px; }

.modal { width: min(760px, calc(100vw - 24px)); max-height: calc(100vh - 24px); overflow: auto; }
.modal.wide { width: min(1120px, calc(100vw - 24px)); }
.modal-backdrop { padding: 12px; align-items: center; }

/* Agenda: evita que o calendário quebre a página no celular */
.calendar-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
#calendar { min-width: 900px; }
.fc .fc-toolbar.fc-header-toolbar { flex-wrap: wrap; gap: 8px; }
.fc .fc-toolbar-title { font-size: clamp(20px, 2.6vw, 30px); }
.agenda-legenda { flex-wrap: wrap; justify-content: flex-end; }

/* Recorrência: cards simples e sem overflow horizontal */
.recorrencia-box, .bulk-box, .recurrence-box { max-width: 100%; overflow: hidden; }
.recorrencia-lista, .bulk-list, .recurrence-list { max-width: 100%; overflow-x: hidden; }
.recorrencia-item, .bulk-item, .recurrence-item { min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 1180px) {
  .grid.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid.cols-2 { grid-template-columns: 1fr; }
  .main { padding: 20px; }
}

@media (max-width: 980px) {
  body { font-size: 15px; }
  .app, .shell, #shell { min-height: 100vh; }
  .mobile-menu-btn { display: inline-flex; align-items:center; justify-content:center; position: fixed; top: 12px; left: 12px; z-index: 1200; width: 44px; height: 44px; border-radius: 14px; border: 1px solid var(--border); background: var(--card); color: var(--text); box-shadow: 0 8px 24px rgba(0,0,0,.15); font-size: 22px; }
  .sidebar { position: fixed; inset: 0 auto 0 0; width: min(84vw, 320px); transform: translateX(-105%); transition: transform .22s ease; z-index: 1190; box-shadow: 20px 0 50px rgba(0,0,0,.35); }
  .sidebar-close { display: inline-flex; width: 36px; height: 36px; align-items:center; justify-content:center; border:0; border-radius: 12px; background: rgba(255,255,255,.08); color:#fff; font-size: 24px; }
  .sidebar-backdrop { position: fixed; inset: 0; background: rgba(2,6,23,.55); z-index: 1180; }
  body.mobile-menu-open .sidebar { transform: translateX(0); }
  body.mobile-menu-open .sidebar-backdrop { display:block; }
  .main { margin-left: 0 !important; width: 100%; padding: 72px 14px 18px; }
  .topbar { flex-direction: column; align-items: stretch; margin-bottom: 14px; }
  .topbar h1 { font-size: 24px; }
  .user-pill { align-self:flex-start; }
  .filters { display:grid; grid-template-columns: 1fr 1fr; gap: 10px; width: 100%; }
  .filters label { margin: 0; }
  .filters input, .filters select, .filters button { width: 100%; min-width: 0; }
  .card, .panel { border-radius: 18px; padding: 16px; }
  .grid.cols-4, .grid.cols-3, .grid.cols-2 { grid-template-columns: 1fr 1fr; gap: 12px; }
  .kanban { grid-template-columns: 1fr !important; }
  #external { max-height: 300px; overflow:auto; padding-right: 4px; }
  #calendar { min-width: 820px; }
  .fc .fc-daygrid-day-frame { min-height: 88px; }
  .evt-card { padding: 5px 28px 8px 7px; }
  .agenda-legenda { justify-content: flex-start; font-size: 12px; }
  .login-page { grid-template-columns: 1fr !important; min-height: 100dvh; }
  .login-hero { min-height: 40dvh; }
  .login-card-wrap { padding: 18px; }
  .login-card { width: min(100%, 430px); }
}

@media (max-width: 640px) {
  .main { padding: 66px 10px 14px; }
  .topbar h1 { font-size: 22px; }
  .grid.cols-4, .grid.cols-3, .grid.cols-2, .grid { grid-template-columns: 1fr !important; }
  .filters { grid-template-columns: 1fr; }
  .form-grid { grid-template-columns: 1fr !important; }
  .form-row, .form-row label, input, select, textarea, button { font-size: 15px; }
  input, select, textarea { min-height: 44px; }
  .btn { min-height: 42px; }
  .modal { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 18px; }
  .modal-header { position: sticky; top: 0; background: var(--card); z-index: 2; }
  .table { min-width: 680px; font-size: 13px; }
  .kpi .value { font-size: 28px; }
  #calendar { min-width: 780px; }
  .fc .fc-button { padding: 7px 9px !important; font-size: 12px !important; }
  .fc .fc-toolbar-title { font-size: 20px; }
  .fc .fc-daygrid-day-frame { min-height: 82px; }
  .login-hero { min-height: 34dvh; }
  .login-hero-content h1 { font-size: clamp(28px, 8vw, 42px); }
  .login-card-wrap { padding: 14px; }
  #ts-trigger { width: 46px; height: 46px; right: 14px; bottom: 14px; }
  #ts-panel { left: 10px; right: 10px; bottom: 70px; width: auto; max-height: 70vh; }
}
