/* Recorrência — same restrained product system as Clientes and Comandas. */
.rec-workspace { max-width:1280px; margin:0 auto; color:var(--cat-text); }
.rec-breadcrumb { display:flex;gap:12px;font-size:14px;color:var(--cat-muted);margin-bottom:24px; }
.rec-breadcrumb span { color:var(--cat-border); }
.rec-heading { display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:32px; }
.rec-heading h1,.rec-heading h2 { font-family:var(--font-ui);font-size:36px;line-height:1.2;font-weight:650;letter-spacing:-.035em;margin:0 0 8px; }
.rec-heading p { font-size:16px;color:var(--cat-muted);margin:0; }
.rec-overview { display:grid;grid-template-columns:1.25fr 1fr 1fr 1.15fr;border:1px solid var(--cat-border);border-radius:16px;background:var(--cat-surface);margin-bottom:32px;overflow:hidden; }
.rec-overview:has(article:nth-child(3):last-child) { grid-template-columns:1.3fr 1fr 1.2fr; }
.rec-overview article { display:flex;flex-direction:column;gap:12px;padding:24px;min-width:0; }
.rec-overview article+article { border-left:1px solid var(--cat-border); }
.rec-overview article>span { font-size:14px;font-weight:500;color:var(--cat-muted); }
.rec-overview strong { display:block;font-size:28px;font-weight:650;line-height:1.2;letter-spacing:-.025em;font-variant-numeric:tabular-nums; }
.rec-overview small { display:block;font-size:13px;font-weight:400;line-height:1.5;color:var(--cat-muted);letter-spacing:0; }
.rec-overview .rec-coverage { background:var(--cat-tint); }
.rec-coverage strong,.rec-overview .rec-coverage>span { color:var(--cat-accent); }
.rec-coverage>div { display:flex;align-items:center;gap:12px; }
.rec-coverage progress { width:100%;height:6px;border:0;border-radius:4px;overflow:hidden;accent-color:var(--cat-action); }
.rec-coverage progress::-webkit-progress-bar { background:var(--cat-border); }
.rec-coverage progress::-webkit-progress-value { background:var(--cat-action); }
.rec-opportunity strong small { display:inline;font-size:14px; }
.rec-text-button { display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 0;border:0;background:none;color:var(--cat-accent);font-size:14px;font-weight:600;cursor:pointer;text-align:left; }
.rec-overview .rec-text-button { margin-top:-8px; }
.rec-directory { border:1px solid var(--cat-border);border-radius:16px;background:var(--cat-surface); }
.rec-toolbar { display:flex;align-items:center;flex-wrap:wrap;gap:16px;padding:24px; }
.rec-segments { display:flex;gap:4px;background:var(--cat-subtle);border-radius:8px;padding:4px; }
.rec-segments button { min-height:40px;padding:8px 16px;border:0;border-radius:6px;font-size:14px;font-weight:600;background:none;color:var(--cat-muted);cursor:pointer; }
.rec-segments [aria-pressed=true] { background:var(--cat-surface);color:var(--cat-text);box-shadow:0 1px 3px #00000012; }
.rec-search { position:relative;display:flex;align-items:center;flex:1;min-width:220px;max-width:420px;margin-left:auto; }
.rec-search>svg { position:absolute;left:14px;color:var(--cat-muted);pointer-events:none; }
.rec-search input { width:100%;min-height:48px;padding:10px 12px 10px 42px;border:1px solid var(--cat-control);border-radius:8px;color:var(--cat-text);background:var(--cat-surface);font:inherit;font-size:16px; }
.rec-filterbar { display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 24px;border-top:1px solid var(--cat-border);border-bottom:1px solid var(--cat-border);font-size:14px;color:var(--cat-muted); }
.rec-filterbar .form-select { width:auto;min-width:180px;font-size:14px; }
#rec-count { margin-left:auto; }
.rec-columns,.rec-row { display:grid;grid-template-columns:minmax(260px,1.65fr) minmax(150px,1fr) minmax(165px,1fr) minmax(120px,.7fr);gap:24px;padding:20px 24px;align-items:center; }
.rec-columns { font-size:13px;font-weight:600;color:var(--cat-muted);padding-block:16px; }
.rec-row { width:100%;text-align:left;background:transparent;border:0;border-top:1px solid var(--cat-border);color:var(--cat-text);cursor:pointer;font:inherit; }
.rec-row:last-child { border-radius:0 0 16px 16px; }
.rec-row:hover { background:var(--cat-bg); }
.rec-row:focus-visible { outline:2px solid var(--cat-action);outline-offset:-3px; }
.rec-row>span,.rec-person>span:last-child { min-width:0; }
.rec-person { display:flex;align-items:center;gap:12px; }
.rec-avatar { display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--cat-tint);color:var(--cat-accent);font-size:14px;font-weight:600; }
.rec-row strong { display:block;font-size:14px;font-weight:600;line-height:1.5; }
.rec-person strong { font-size:16px; }
.rec-row small,.rec-booking small,.rec-reservation small { display:block;font-size:13px;color:var(--cat-muted);line-height:1.6;margin-top:4px; }
.rec-confirmation { display:flex!important;align-items:center;gap:6px;font-weight:600; }
.rec-confirmation>svg { flex:0 0 auto; }
.rec-confirmation.is-attention { color:var(--rec-attention-ink,#80530a); }
.rec-confirmation.is-positive { color:var(--cat-accent); }
.rec-confirm-choice { display:flex; align-items:flex-start; gap:12px; padding:16px; margin:0 0 24px; border:1px solid var(--cat-border); border-radius:8px; background:var(--cat-bg); cursor:pointer; font-size:14px; line-height:1.5; }
.rec-confirm-choice input { width:20px; height:20px; margin:0; flex:0 0 auto; accent-color:var(--cat-action); }
.rec-confirm-choice strong,.rec-confirm-choice small { display:block; }
.rec-confirm-choice small { margin-top:4px; color:var(--cat-muted); font-size:13px; }
.rec-row .rec-consent { display:flex;align-items:center;gap:6px; }
.rec-state { display:flex;align-items:center;justify-content:space-between;gap:8px; }
.rec-state>span:last-child:not(.rec-status) { font-size:24px;color:var(--cat-muted); }
.rec-status { display:inline-flex;padding:4px 8px;border-radius:6px;font-size:13px;line-height:1.5;font-weight:600;white-space:normal; }
.rec-status.is-active { color:var(--cat-accent);background:var(--cat-tint); }
.rec-status.is-paused { color:var(--cat-muted);background:var(--cat-subtle); }
.rec-status.is-attention { color:var(--rec-attention-ink,#80530a);background:var(--rec-attention-bg,#fff3d8); }
.rec-empty { text-align:center;padding:56px 24px;color:var(--cat-muted); }
.rec-empty h2 { margin:16px 0 8px;font:600 20px var(--font-ui);color:var(--cat-text); }
.rec-empty p { margin:0 0 24px;font-size:14px; }
.rec-pagination { display:flex;justify-content:flex-end;align-items:center;gap:12px;padding:16px 24px;color:var(--cat-muted);font-size:14px; }
.rec-pagination:empty { display:none; }
.modal-overlay:has(.rec-dialog) { padding:24px; }
.modal-container.rec-dialog { max-width:760px;max-height:calc(100dvh - 48px);border-radius:16px; }
#modal-container.rec-dialog .modal-body { padding:0; }
.rec-dialog .rec-dialog-content,.rec-dialog [data-editor-panel] { padding:24px; }
.rec-dialog [data-editor-panel][hidden] { display:none!important; }
.rec-dialog .rec-intro { margin:0 0 24px;font-size:16px;line-height:1.5;color:var(--cat-muted); }
.rec-dialog .form-group { margin-bottom:24px;min-width:0; }
.rec-dialog .form-label { font-size:14px;font-weight:600;text-transform:none;letter-spacing:0; }
.rec-dialog .form-select,.rec-dialog .form-input { width:100%;min-width:0; }
.rec-dialog .client-picker-input { padding-left:40px;padding-right:44px; }
.rec-dialog input[type=search]::-webkit-search-cancel-button { -webkit-appearance:none; }
.rec-dialog .field-help { font-size:13px;line-height:1.5;display:block;margin-top:8px;color:var(--cat-muted); }

.rec-dialog .rec-notice { display:flex;align-items:flex-start;gap:12px;background:var(--cat-bg);border-radius:8px;padding:16px;margin:0 0 24px;color:var(--cat-muted);font-size:14px;line-height:1.5; }
.rec-notice>svg { flex-shrink:0;margin-top:2px; }
.rec-notice strong { color:var(--cat-text);font-weight:600; }
.rec-cadence { margin:0 0 24px;border:1px solid var(--cat-border);border-radius:12px;overflow:hidden;background:var(--cat-surface); }
.rec-cadence h3 { margin:0;padding:16px 20px;font:600 16px var(--font-ui);border-bottom:1px solid var(--cat-border); }
.rec-cadence ul { list-style:none;margin:0;padding:0; }
.rec-cadence li { display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-bottom:1px solid var(--cat-border);font-size:14px; }
.rec-cadence li strong { color:var(--cat-text);font-weight:600; }
.rec-cadence-status { display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--cat-muted);text-align:right; }
.rec-cadence-status.is-attention { color:var(--rec-attention-ink,#80530a); }
.rec-cadence-status.is-positive { color:var(--cat-accent); }
.rec-cadence p { margin:0;padding:14px 20px 0;color:var(--cat-muted);font-size:13px;line-height:1.5; }
.rec-cadence p:last-child { padding-bottom:16px; }
.rec-history { border:1px solid var(--cat-border);border-radius:8px;margin-bottom:24px;padding:0 16px; }
.rec-history summary { cursor:pointer;padding:16px 0;font-size:14px;font-weight:600; }
.rec-history>div { padding:12px 0;border-top:1px solid var(--cat-border);font-size:14px; }
.rec-history span,.rec-history small { display:block;color:var(--cat-muted);margin-top:4px; }
#rec-slots { display:flex;gap:8px;flex-wrap:wrap; }
.rec-time-slot { min-height:44px;min-width:72px;border:1px solid var(--cat-control);border-radius:8px;background:var(--cat-surface);color:var(--cat-text);font:inherit;font-size:14px;cursor:pointer; }
.rec-time-slot[aria-pressed=true] { background:var(--cat-action);color:var(--cat-action-text);border-color:var(--cat-action); }
.rec-muted { color:var(--cat-muted);font-size:14px;line-height:1.5; }
.rec-reservation { display:flex;gap:16px;align-items:center;padding:20px;background:var(--cat-tint);color:var(--cat-accent);border-radius:12px;margin:0 0 24px;font-size:16px;line-height:1.5; }
.rec-reservation strong { display:block; }
.rec-reservation small { color:var(--cat-accent); }
.rec-detail-heading { display:flex;align-items:center;gap:16px;margin-bottom:24px; }
.rec-detail-heading>div { min-width:0;flex:1; }
.rec-detail-heading h2 { margin:0;font:600 24px var(--font-ui);letter-spacing:-.02em;overflow-wrap:anywhere; }
.rec-detail-heading p { margin:8px 0 0;font-size:14px;color:var(--cat-muted); }
.rec-facts { display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 24px; }
.rec-facts dt { color:var(--cat-muted);font-size:13px;margin-bottom:8px; }
.rec-facts dd { margin:0;font-size:16px; }
.rec-detail-actions { display:flex;flex-wrap:wrap;gap:12px; }
.rec-detail-actions a { text-decoration:none; }
.rec-management { margin-top:24px;padding-top:24px;border-top:1px solid var(--cat-border); }
.rec-management h3 { margin:0;font:600 16px var(--font-ui); }
.rec-management p { color:var(--cat-muted);font-size:14px;line-height:1.5;margin:8px 0 16px; }
.rec-management>div { display:flex;gap:12px;flex-wrap:wrap; }
.rec-success { text-align:center;padding:16px 0 32px; }
.rec-success>svg { color:var(--cat-accent); }
.rec-success h2 { font:600 24px var(--font-ui);margin:16px 0; }
.rec-success p { font-size:20px;margin:8px 0;color:var(--cat-text); }
.rec-success span { color:var(--cat-muted);font-size:14px; }
.rec-eligible-row { display:flex;gap:12px;align-items:center;padding:16px 0;border-top:1px solid var(--cat-border); }
.rec-eligible-row>div { flex:1;min-width:0; }
.rec-eligible-row strong { font-size:16px; }
.rec-eligible-row small { display:block;color:var(--cat-muted);font-size:13px;margin-top:6px; }
.rec-dialog .modal-footer { padding:16px 24px;gap:12px; }
@media(max-width:1200px) {
  .rec-columns,.rec-row { grid-template-columns:minmax(200px,1.5fr) minmax(125px,.8fr) minmax(150px,1fr) minmax(105px,.6fr);gap:16px; }
  .rec-overview article { padding:20px; }
  .rec-overview strong { font-size:24px; }
}
@media(max-width:760px) {
  .rec-heading { align-items:flex-start;flex-wrap:wrap;gap:16px; }
  .rec-heading h1,.rec-heading h2 { font-size:28px; }
  .rec-overview,.rec-overview:has(article:nth-child(3):last-child) { grid-template-columns:1fr 1fr; }
  .rec-overview article { padding:16px;gap:8px; }
  .rec-overview article:nth-child(3) { border-left:0; }
  .rec-overview article:nth-child(n+3) { border-top:1px solid var(--cat-border); }
  .rec-overview:has(article:nth-child(3):last-child) article:last-child { grid-column:1/-1; }
  .rec-coverage>div { align-items:flex-start;flex-direction:column;gap:4px; }
  .rec-toolbar { padding:16px;gap:12px; }
  .rec-search { order:3;flex:1 1 100%;max-width:none;min-width:0; }
  .rec-segments { flex:1; }
  .rec-segments button { padding-inline:10px;flex:1; }
  .rec-filterbar { padding:16px;gap:8px; }
  .rec-filterbar>label { flex-basis:100%; }
  .rec-filterbar .form-select { width:100%; }
  #rec-count { margin:8px auto 0 0; }
  .rec-columns { display:none; }
  .rec-row { grid-template-columns:1fr 1fr;padding:20px 16px;gap:16px; }
  .rec-person { grid-column:1/-1; }
  .rec-state { grid-column:1/-1; }
  .rec-booking strong { font-size:14px; }
}
@media(max-width:540px) {
  .modal-overlay:has(.rec-dialog) { padding:0; }
  .modal-container.rec-dialog { width:100%;height:100dvh;max-height:100dvh;border-radius:0;margin:0; }
  .rec-dialog .rec-dialog-content,.rec-dialog [data-editor-panel] { padding:16px; }
  .rec-dialog .catalog-editor-tabs { padding-inline:16px;gap:20px; }
  .rec-dialog .catalog-editor-tabs button { font-size:14px; }
  .rec-dialog .modal-footer { padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));gap:8px; }
  .rec-dialog .modal-footer .btn { white-space:normal;flex:1; }

  .rec-facts { gap:20px; }
  .rec-detail-heading { flex-wrap:wrap; }
  .rec-detail-heading .rec-status { margin-left:60px; }
  .rec-dialog .rec-reservation { padding:16px; }
  .rec-cadence li { align-items:flex-start;flex-direction:column;gap:6px;padding-inline:16px; }
  .rec-cadence-status { justify-content:flex-start;text-align:left; }
  .rec-cadence h3,.rec-cadence p { padding-inline:16px; }
  .rec-eligible-row { flex-wrap:wrap; }
  .rec-eligible-row button { margin-left:56px; }
  .rec-pagination { flex-wrap:wrap;padding-inline:16px; }
  .rec-pagination>span { flex-basis:100%; }
  #rec-export { font-size:0;gap:0;padding:12px; }
}

:root[data-theme="dark"] .rec-dialog { color-scheme:dark; }
:root[data-theme="light"] .rec-dialog { color-scheme:light; }
/* Cadastro de recorrência com as três perguntas do método (ns-* em method.css). */
.rec-dialog .ns-plan #rec-slots { margin: 12px 0; }
.rec-dialog .ns-q .rec-reservation { margin: 8px 0 0; }
.rec-dialog .ns-q .rec-reservation strong { margin: 0; font-size: inherit; color: inherit; }
.rec-dialog .rec-time-input { max-width: 160px; margin: 0 0 4px; }
