:root {
  color-scheme: light;
  --pf-blue-980: #04101f;
  --pf-blue-950: #071b2c;
  --pf-blue-900: #0b2842;
  --pf-blue-800: #0d395e;
  --pf-blue-650: #126f9a;
  --pf-cyan: #00a9b7;
  --pf-cyan-soft: #76dbe2;
  --pf-pink: #F8A198;
  --pf-pink-strong: #F8A198;
  --pf-rose-soft: #ffe5dc;
  --pf-graphite: #172335;
  --pf-muted: #64748b;
  --pf-bg: #f7fbff;
  --pf-card: rgba(255,255,255,.88);
  --pf-card-solid: #ffffff;
  --pf-border: rgba(13,57,94,.12);
  --pf-border-strong: rgba(0,169,183,.25);
  --pf-shadow: 0 24px 80px rgba(7,27,44,.12);
  --pf-shadow-soft: 0 14px 42px rgba(7,27,44,.09);
  --pf-sidebar-width: 306px;
  --pf-sidebar-collapsed: 104px;
  --pf-page-gutter: clamp(16px, 2.4vw, 34px);
  --pf-radius-xl: 32px;
  --pf-radius-lg: 22px;
  --pf-ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--pf-graphite);
  background:
    radial-gradient(circle at 8% 8%, rgba(0,169,183,.22), transparent 34%),
    radial-gradient(circle at 92% 4%, rgba(248,161,152,.32), transparent 32%),
    radial-gradient(circle at 76% 86%, rgba(107,216,223,.18), transparent 36%),
    linear-gradient(135deg, #fff9f8 0%, #f4fbff 48%, #f8fdff 100%);
  overflow-x: hidden;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: linear-gradient(rgba(13,57,94,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(13,57,94,.045) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.7), transparent 78%);
}
body.menu-open { overflow: hidden; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }

@keyframes pf-fade-up { from { opacity: 0; transform: translateY(16px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes pf-slide-left { from { opacity: 0; transform: translateX(-28px); } to { opacity: 1; transform: translateX(0); } }
@keyframes pf-float { 0%,100% { transform: translate3d(0,0,0) rotate(-1deg); } 50% { transform: translate3d(0,-7px,0) rotate(1deg); } }
@keyframes pf-glow { 0%,100% { opacity: .55; filter: blur(18px); } 50% { opacity: .9; filter: blur(24px); } }
@keyframes pf-pulse { 0%,100% { transform: scale(1); opacity: .72; } 50% { transform: scale(1.05); opacity: 1; } }

.custom-scroll { scrollbar-width: thin; scrollbar-color: rgba(0,169,183,.55) rgba(7,27,44,.08); }
.custom-scroll::-webkit-scrollbar { width: 10px; height: 10px; }
.custom-scroll::-webkit-scrollbar-track { background: rgba(7,27,44,.06); border-radius: 999px; }
.custom-scroll::-webkit-scrollbar-thumb { background: linear-gradient(var(--pf-cyan), var(--pf-pink)); border-radius: 999px; border: 2px solid rgba(255,255,255,.8); }

.page-center { min-height: 100vh; display: grid; place-items: center; padding: clamp(20px,4vw,44px); }
.card {
  width: min(100%, 980px);
  border: 1px solid var(--pf-border);
  background: var(--pf-card);
  backdrop-filter: blur(20px);
  border-radius: var(--pf-radius-xl);
  box-shadow: var(--pf-shadow);
  padding: clamp(24px,4vw,42px);
  animation: pf-fade-up .56s var(--pf-ease) both;
  position: relative;
  overflow: hidden;
}
.card::after { content:""; position:absolute; width:240px; height:240px; right:-80px; top:-100px; background:radial-gradient(circle, rgba(248,161,152,.34), transparent 68%); pointer-events:none; animation: pf-glow 5s ease-in-out infinite; }
.brand-row { display:flex; align-items:center; gap:18px; margin-bottom:28px; min-width:0; }
.brand-logo-box { display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.65); background:rgba(255,255,255,.64); box-shadow:0 16px 38px rgba(7,27,44,.08); border-radius:24px; padding:11px 14px; }
.brand-logo { width:220px; max-width:min(48vw,260px); height:auto; object-fit:contain; display:block; }
.brand-logo-icon { width:48px; height:48px; object-fit:contain; display:block; }
.eyebrow { margin:0 0 8px; color:var(--pf-pink-strong); font-weight:900; letter-spacing:.08em; text-transform:uppercase; font-size:.76rem; }
h1 { margin:0; font-size:clamp(2rem,4.6vw,4.15rem); line-height:.99; letter-spacing:-.055em; max-width:980px; }
h2 { margin:0 0 12px; font-size:clamp(1.35rem,2.4vw,2rem); letter-spacing:-.035em; }
h3 { margin:0 0 10px; font-size:1.06rem; }
p { color:var(--pf-muted); line-height:1.65; }

.shell { display:grid; grid-template-columns:var(--pf-sidebar-width) minmax(0, 1fr); min-height:100vh; transition:grid-template-columns .34s var(--pf-ease); }
.shell.sidebar-collapsed { grid-template-columns:var(--pf-sidebar-collapsed) minmax(0, 1fr); }
.sidebar {
  position: sticky;
  top:0;
  height:100vh;
  display:flex;
  flex-direction:column;
  gap:18px;
  background: radial-gradient(circle at 18% 8%, rgba(248,161,152,.24), transparent 36%), radial-gradient(circle at 72% 4%, rgba(0,169,183,.32), transparent 42%), linear-gradient(180deg, var(--pf-blue-950), var(--pf-blue-900) 54%, #061624);
  color:#fff;
  padding:20px 18px;
  box-shadow:20px 0 60px rgba(7,27,44,.16);
  overflow:hidden;
  z-index:20;
}
.sidebar::after { content:""; position:absolute; inset:auto -60px 8% auto; width:160px; height:160px; border-radius:999px; background:rgba(248,161,152,.18); filter:blur(20px); pointer-events:none; }
.sidebar-brand-area { position:relative; z-index:2; display:flex; align-items:flex-start; gap:10px; }
.sidebar-brand {
  width:100%; min-height:82px; display:flex; align-items:center; gap:12px; border:0; border-radius:24px; padding:13px 14px; background:rgba(255,255,255,.075); color:#fff; cursor:pointer; text-align:left; transition:background .24s var(--pf-ease), transform .24s var(--pf-ease); position:relative; overflow:visible;
}
.sidebar-brand:hover { background:rgba(255,255,255,.12); transform:translateY(-1px); }
.postit-glow { position:absolute; inset:13px 18px auto 18px; height:44px; border-radius:14px; background:linear-gradient(135deg, rgba(248,161,152,.85), rgba(0,169,183,.72)); transform:rotate(-2.2deg) translateY(12px); box-shadow:0 16px 26px rgba(0,0,0,.18); opacity:.7; animation:pf-float 4.8s ease-in-out infinite; }
.sidebar-brand .brand-full { width:192px; max-width:100%; height:auto; object-fit:contain; transition:opacity .22s var(--pf-ease), width .24s var(--pf-ease); position:relative; z-index:2; filter:drop-shadow(0 9px 12px rgba(0,0,0,.18)); }
.sidebar-brand .brand-icon { width:52px; height:52px; object-fit:contain; display:none; flex:0 0 auto; position:relative; z-index:2; filter:drop-shadow(0 8px 12px rgba(0,0,0,.22)); }
.sidebar-collapse-hint { margin-left:auto; width:28px; height:28px; display:grid; place-items:center; border-radius:10px; color:rgba(255,255,255,.72); background:rgba(255,255,255,.08); transition:transform .28s var(--pf-ease), opacity .22s var(--pf-ease); position:relative; z-index:2; }
.nav { display:grid; gap:7px; margin-top:4px; position:relative; z-index:1; overflow:auto; padding-right:3px; }
.nav a { display:flex; align-items:center; gap:12px; min-height:46px; text-decoration:none; padding:11px 13px; border-radius:15px; color:rgba(255,255,255,.78); font-weight:800; transition:background .2s var(--pf-ease), color .2s var(--pf-ease), transform .2s var(--pf-ease); position:relative; }
.nav a::before { content:""; position:absolute; inset:8px auto 8px 0; width:3px; border-radius:99px; background:transparent; transition:background .2s var(--pf-ease); }
.nav a.active, .nav a:hover { background:rgba(255,255,255,.105); color:#fff; transform:translateX(2px); }
.nav a.active::before { background:linear-gradient(var(--pf-cyan), var(--pf-pink)); }
.nav-icon { width:24px; height:24px; flex:0 0 24px; display:grid; place-items:center; border-radius:10px; background:rgba(255,255,255,.08); font-size:1.02rem; }
.nav-label { white-space:nowrap; transition:opacity .18s var(--pf-ease), transform .18s var(--pf-ease); }
.sidebar-footer { margin-top:auto; border:1px solid rgba(255,255,255,.1); border-radius:20px; padding:14px; background:rgba(255,255,255,.06); color:rgba(255,255,255,.72); font-size:.82rem; line-height:1.45; transition:opacity .18s var(--pf-ease); position:relative; z-index:1; }
.shell.sidebar-collapsed .sidebar { padding-inline:14px; }
.shell.sidebar-collapsed .sidebar-brand { justify-content:center; padding-inline:8px; }
.shell.sidebar-collapsed .sidebar-brand .brand-full, .shell.sidebar-collapsed .sidebar-collapse-hint, .shell.sidebar-collapsed .nav-label, .shell.sidebar-collapsed .sidebar-footer { opacity:0; pointer-events:none; width:0; transform:translateX(-8px); overflow:hidden; }
.shell.sidebar-collapsed .sidebar-brand .brand-icon { display:block; animation:pf-float 4s ease-in-out infinite; }
.shell.sidebar-collapsed .postit-glow { inset:18px 10px auto 10px; height:38px; transform:rotate(-5deg) translateY(8px); }
.shell.sidebar-collapsed .nav a { justify-content:center; padding-inline:8px; }
.shell.sidebar-collapsed .nav a:hover { transform:translateX(0) scale(1.035); }

.main { min-width:0; width:100%; padding:var(--pf-page-gutter); padding-right:calc(var(--pf-page-gutter) + 8px); }
.content-frame { width:100%; max-width:none; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:24px; animation:pf-fade-up .45s var(--pf-ease) both; }
.topbar-title { min-width:0; }
.topbar-actions { display:flex; gap:10px; align-items:center; }
.icon-btn, .mobile-menu-btn, .mobile-close-btn, .kebab { display:grid; place-items:center; border:1px solid var(--pf-border); border-radius:15px; background:rgba(255,255,255,.78); color:var(--pf-blue-900); box-shadow:var(--pf-shadow-soft); cursor:pointer; transition:transform .2s var(--pf-ease), box-shadow .2s var(--pf-ease), background .2s var(--pf-ease); }
.icon-btn { width:44px; height:44px; }
.icon-btn:hover, .mobile-menu-btn:hover, .mobile-close-btn:hover, .kebab:hover { transform:translateY(-2px); box-shadow:0 18px 42px rgba(7,27,44,.13); }
.profile-wrap { position:relative; }
.profile-btn { height:48px; display:grid; grid-template-columns:28px auto; grid-template-rows:1fr 1fr; column-gap:9px; align-items:center; border:1px solid var(--pf-border); border-radius:18px; background:rgba(255,255,255,.78); padding:7px 12px; box-shadow:var(--pf-shadow-soft); cursor:pointer; color:var(--pf-blue-900); }
.profile-btn span { grid-row:1 / span 2; font-size:1.2rem; }
.profile-btn strong { font-size:.86rem; line-height:1; }
.profile-btn small { color:var(--pf-muted); font-weight:800; line-height:1; }
.profile-menu { position:absolute; top:calc(100% + 10px); right:0; width:270px; border:1px solid var(--pf-border); background:rgba(255,255,255,.96); backdrop-filter:blur(18px); border-radius:20px; box-shadow:var(--pf-shadow); padding:9px; z-index:40; animation:pf-fade-up .22s var(--pf-ease) both; }
.profile-menu a, .profile-menu button { width:100%; display:flex; align-items:center; gap:10px; text-align:left; color:var(--pf-blue-900); text-decoration:none; border:0; background:transparent; padding:12px; border-radius:14px; cursor:pointer; font-weight:850; }
.profile-menu a:hover, .profile-menu button:hover { background:linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.13)); }

.mobile-topbar { display:none; position:sticky; top:0; z-index:25; align-items:center; justify-content:space-between; padding:11px 14px; background:rgba(255,255,255,.9); backdrop-filter:blur(18px); border-bottom:1px solid var(--pf-border); }
.mobile-brand-wrap { position:relative; padding:6px 9px; border-radius:18px; background:rgba(255,255,255,.72); box-shadow:var(--pf-shadow-soft); }
.mobile-brand-wrap::before { content:""; position:absolute; inset:12px 12px auto 12px; height:28px; border-radius:12px; background:linear-gradient(135deg, rgba(248,161,152,.62), rgba(0,169,183,.58)); transform:rotate(-2deg) translateY(8px); z-index:-1; }
.mobile-logo { width:164px; display:block; }
.mobile-menu-btn { width:48px; height:48px; gap:4px; }
.mobile-menu-btn span { width:20px; height:2px; background:var(--pf-blue-900); border-radius:999px; display:block; }
.mobile-close-btn { display:none; width:42px; height:42px; font-size:1.55rem; }
.mobile-menu-backdrop { position:fixed; inset:0; background:rgba(4,16,31,.5); backdrop-filter:blur(4px); z-index:28; }

.hero-panel, .surface-panel { position:relative; width:100%; padding:clamp(22px,4vw,40px); border:1px solid var(--pf-border); border-radius:var(--pf-radius-xl); background:linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.66)), radial-gradient(circle at 20% 20%, rgba(0,169,183,.16), transparent 38%), radial-gradient(circle at 88% 8%, rgba(248,161,152,.22), transparent 38%); box-shadow:var(--pf-shadow); overflow:hidden; animation:pf-fade-up .56s var(--pf-ease) both; }
.hero-panel::before { content:""; position:absolute; width:1px; height:120%; top:-10%; left:68%; background:linear-gradient(transparent, rgba(0,169,183,.3), transparent); transform:rotate(22deg); }
.page-heading-row { display:flex; gap:16px; align-items:flex-start; position:relative; z-index:1; }
.big-number-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px; margin-top:28px; }
.big-number-card { border:1px solid var(--pf-border); border-radius:24px; padding:20px; background:rgba(255,255,255,.8); box-shadow:0 12px 32px rgba(7,27,44,.06); transition:transform .22s var(--pf-ease), box-shadow .22s var(--pf-ease); position:relative; overflow:hidden; }
.big-number-card::after { content:""; position:absolute; width:92px; height:92px; border-radius:999px; right:-28px; top:-28px; background:radial-gradient(circle, rgba(248,161,152,.26), transparent 70%); }
.big-number-card:hover { transform:translateY(-3px); box-shadow:0 18px 42px rgba(7,27,44,.1); }
.big-number-card span { display:block; color:var(--pf-muted); font-weight:900; font-size:.82rem; }
.big-number-card strong { display:block; font-size:clamp(2rem,4vw,3rem); letter-spacing:-.06em; color:var(--pf-blue-900); margin:7px 0 2px; }
.big-number-card small { color:var(--pf-blue-650); font-weight:850; }
.module-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px; margin-top:26px; }
.module-card { border:1px solid var(--pf-border); border-radius:24px; padding:20px; background:rgba(255,255,255,.76); box-shadow:var(--pf-shadow-soft); position:relative; min-height:130px; }
.module-card:hover { transform:translateY(-2px); transition:transform .2s var(--pf-ease); }
.kebab { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:12px; box-shadow:none; }
.module-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:16px; background:linear-gradient(135deg, rgba(0,169,183,.16), rgba(248,161,152,.2)); color:var(--pf-blue-900); font-size:1.3rem; flex:0 0 auto; margin-bottom:14px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; padding:0 19px; border-radius:16px; border:0; background:linear-gradient(135deg, var(--pf-blue-800), var(--pf-cyan)); color:#fff; font-weight:900; text-decoration:none; box-shadow:0 14px 32px rgba(0,169,183,.26); cursor:pointer; transition:transform .22s var(--pf-ease), box-shadow .22s var(--pf-ease), filter .22s var(--pf-ease); }
.btn:hover { transform:translateY(-2px); box-shadow:0 18px 40px rgba(0,169,183,.32); filter:saturate(1.05); }
.btn-secondary, .btn.cancel { background:rgba(255,255,255,.86); color:var(--pf-blue-900); border:1px solid var(--pf-border); box-shadow:none; }
.btn-danger { background:linear-gradient(135deg, #c2415b, var(--pf-pink-strong)); }
.btn-ok { background:linear-gradient(135deg, var(--pf-cyan), var(--pf-blue-650)); }
.btn-edit { background:linear-gradient(135deg, var(--pf-blue-800), #7753d9); }
.badge { display:inline-flex; align-items:center; gap:8px; padding:9px 13px; border-radius:999px; background:linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.14)); color:var(--pf-blue-800); border:1px solid var(--pf-border-strong); font-weight:900; font-size:.85rem; white-space:nowrap; }
.codebox { background:#081a2b; color:#c8fbff; border:1px solid rgba(107,216,223,.25); border-radius:18px; padding:18px; overflow:auto; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; box-shadow:inset 0 0 0 1px rgba(255,255,255,.03); }

.form-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px; margin-top:20px; }
.form-field { display:grid; gap:8px; }
.form-field.full { grid-column:1 / -1; }
.form-field label { color:var(--pf-blue-900); font-weight:900; font-size:.86rem; }
.input, .select, .textarea { width:100%; border:1px solid var(--pf-border); background:rgba(255,255,255,.9); border-radius:16px; padding:13px 14px; color:var(--pf-graphite); outline:none; transition:border .18s var(--pf-ease), box-shadow .18s var(--pf-ease), background .18s var(--pf-ease); }
.textarea { min-height:110px; resize:vertical; }
.input:focus, .select:focus, .textarea:focus { border-color:var(--pf-cyan); box-shadow:0 0 0 4px rgba(0,169,183,.13); background:#fff; }
.form-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:18px; }

.demo-grid { display:grid; grid-template-columns:minmax(0, .9fr) minmax(0, 1.1fr); gap:18px; margin-top:26px; }
.demo-stack { display:grid; gap:18px; }
.table-wrap { border:1px solid var(--pf-border); border-radius:24px; overflow:hidden; background:rgba(255,255,255,.82); box-shadow:var(--pf-shadow-soft); }
.table-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px; border-bottom:1px solid var(--pf-border); background:linear-gradient(135deg, rgba(0,169,183,.08), rgba(248,161,152,.09)); }
.table-toolbar .input { max-width:280px; min-height:42px; padding:10px 12px; }
.table-scroll { max-height:288px; overflow:auto; }
table { width:100%; border-collapse:collapse; min-width:680px; }
th, td { padding:14px 15px; text-align:left; border-bottom:1px solid rgba(13,57,94,.08); }
th { position:sticky; top:0; z-index:1; background:#f7fbff; color:var(--pf-blue-900); font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
th::after { content:'↕'; margin-left:7px; color:var(--pf-cyan); }
td { color:#344256; font-weight:700; }
.infinite-loader { display:flex; align-items:center; justify-content:center; gap:10px; padding:14px; color:var(--pf-blue-650); font-weight:900; }
.infinite-loader::before { content:''; width:10px; height:10px; border-radius:50%; background:var(--pf-pink-strong); animation:pf-pulse 1.1s infinite; }

.agenda-board { display:grid; grid-template-columns:repeat(4, minmax(190px,1fr)); gap:14px; overflow:auto; padding-bottom:8px; }
.agenda-col { min-height:280px; border:1px dashed rgba(13,57,94,.18); border-radius:24px; background:rgba(255,255,255,.55); padding:14px; }
.agenda-col h3 { display:flex; justify-content:space-between; align-items:center; font-size:.95rem; color:var(--pf-blue-900); }
.appointment-card { margin-top:12px; border:1px solid var(--pf-border); border-radius:20px; padding:14px; background:#fff; box-shadow:0 12px 28px rgba(7,27,44,.08); cursor:grab; position:relative; }
.appointment-card:active { cursor:grabbing; }
.appointment-card strong { display:block; color:var(--pf-blue-900); }
.appointment-card small { color:var(--pf-muted); font-weight:850; }
.appointment-card .kebab { top:10px; right:10px; }
.calendar-mini { display:grid; grid-template-columns:repeat(7, minmax(0,1fr)); gap:8px; margin-top:12px; }
.calendar-mini span, .calendar-mini button { min-height:48px; border:1px solid var(--pf-border); border-radius:15px; background:rgba(255,255,255,.72); color:var(--pf-blue-900); font-weight:900; }
.calendar-mini button.has-card { background:linear-gradient(135deg, rgba(0,169,183,.16), rgba(248,161,152,.18)); box-shadow:var(--pf-shadow-soft); }

.modal-demo { border:1px solid var(--pf-border); border-radius:28px; background:rgba(255,255,255,.86); box-shadow:var(--pf-shadow); overflow:hidden; }
.modal-header, .modal-footer { padding:16px 18px; background:linear-gradient(135deg, rgba(7,27,44,.96), rgba(13,57,94,.92)); color:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.modal-header h3 { margin:0; color:#fff; }
.modal-header small { color:rgba(255,255,255,.68); font-weight:800; }
.modal-body { max-height:260px; overflow:auto; padding:18px; background:linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,255,255,.74)); }
.modal-footer { background:rgba(255,255,255,.92); color:var(--pf-graphite); justify-content:flex-end; border-top:1px solid var(--pf-border); }
.wait-card { display:flex; gap:16px; align-items:center; border:1px solid var(--pf-border); border-radius:22px; padding:16px; background:rgba(255,255,255,.8); }
.wait-card img { width:128px; max-width:36vw; animation:pf-float 3.4s ease-in-out infinite; filter:drop-shadow(0 10px 16px rgba(7,27,44,.12)); }
.progress-line { height:9px; border-radius:999px; background:rgba(13,57,94,.1); overflow:hidden; margin-top:12px; }
.progress-line span { display:block; height:100%; width:68%; border-radius:inherit; background:linear-gradient(90deg, var(--pf-cyan), var(--pf-pink)); animation:pf-pulse 1.6s infinite; }
.loading-toast { position:fixed; right:18px; bottom:18px; z-index:9999; display:flex; align-items:center; gap:12px; min-width:280px; max-width:min(420px, calc(100vw - 36px)); background:rgba(7,27,44,.96); color:#fff; padding:12px 14px; border-radius:20px; box-shadow:0 18px 52px rgba(7,27,44,.28); font-weight:850; animation:pf-fade-up .22s var(--pf-ease) both; }
.loading-toast img { width:92px; background:rgba(255,255,255,.95); border-radius:14px; padding:4px 6px; animation:pf-float 3s ease-in-out infinite; }
.loading-toast small { display:block; color:rgba(255,255,255,.66); font-weight:700; margin-top:2px; }

@media (max-width: 1100px) {
  .demo-grid { grid-template-columns:1fr; }
  .agenda-board { grid-template-columns:repeat(4, minmax(220px,1fr)); }
}
@media (max-width: 860px) {
  .mobile-topbar { display:flex; }
  .shell, .shell.sidebar-collapsed { display:block; min-height:calc(100vh - 72px); }
  .sidebar { position:fixed; inset:0 auto 0 0; width:min(86vw, 340px); height:100vh; transform:translateX(-105%); transition:transform .34s var(--pf-ease); border-radius:0 30px 30px 0; padding:18px; z-index:30; }
  .sidebar.mobile-open { transform:translateX(0); animation:pf-slide-left .34s var(--pf-ease) both; }
  .mobile-close-btn { display:grid; flex:0 0 auto; }
  .sidebar-brand { cursor:default; }
  .sidebar-brand .brand-full { width:198px; }
  .shell.sidebar-collapsed .sidebar-brand .brand-full { opacity:1; pointer-events:auto; width:198px; transform:none; overflow:visible; }
  .shell.sidebar-collapsed .sidebar-brand .brand-icon { display:none; }
  .shell.sidebar-collapsed .sidebar-collapse-hint { display:none; }
  .shell.sidebar-collapsed .nav-label { opacity:1; pointer-events:auto; width:auto; transform:none; overflow:visible; }
  .shell.sidebar-collapsed .nav a { justify-content:flex-start; padding-inline:13px; }
  .shell.sidebar-collapsed .sidebar-footer { opacity:1; width:auto; transform:none; pointer-events:auto; }
  .main { padding:18px 14px 24px; }
  .topbar { flex-direction:column; align-items:flex-start; }
  .topbar-actions { width:100%; justify-content:space-between; }
  .profile-menu { left:0; right:auto; }
  .big-number-grid { grid-template-columns:1fr; }
  .module-grid { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .page-heading-row { flex-direction:column; }
}
@media (max-width: 620px) {
  h1 { font-size:clamp(2rem, 11vw, 3rem); }
  .brand-row { align-items:flex-start; flex-direction:column; }
  .brand-logo { width:200px; max-width:78vw; }
  .card, .hero-panel, .surface-panel { border-radius:24px; padding:20px; }
  .mobile-logo { width:142px; }
  .profile-btn strong, .profile-btn small { display:none; }
  .profile-btn { grid-template-columns:1fr; width:48px; padding:0; place-items:center; }
  .profile-btn span { grid-row:auto; }
  .modal-header, .modal-footer { flex-direction:column; align-items:flex-start; }
  .modal-footer { align-items:stretch; }
  .modal-footer .btn { width:100%; }
  .wait-card { flex-direction:column; align-items:flex-start; }
}
.btn.secondary { background:rgba(255,255,255,.86); color:var(--pf-blue-900); border:1px solid var(--pf-border); box-shadow:none; }

/* v0.1.5 ajustes: z-index, inputs, calendário avançado e correção do bloco azul escuro */
:root {
  --pf-indigo-950: #1b2451;
  --pf-indigo-900: #25306d;
  --pf-lilac-800: #4c4a88;
  --pf-shell-bg: #fff7f4;
  --pf-sidebar-bg: linear-gradient(180deg, #fff7f4 0%, #f6fbff 48%, #fff4ef 100%);
  --pf-sidebar-text: #26305f;
  --pf-menu-hover: linear-gradient(135deg, rgba(28, 183, 201, .14), rgba(255, 111, 151, .15));
  --pf-field-h: 48px;
}
body {
  background:
    radial-gradient(circle at 12% 8%, rgba(248,161,152,.22), transparent 33%),
    radial-gradient(circle at 88% 5%, rgba(28,183,201,.20), transparent 32%),
    radial-gradient(circle at 70% 92%, rgba(122,108,255,.10), transparent 35%),
    linear-gradient(135deg, #fff8f5 0%, #f6fbff 46%, #fff7f4 100%);
}
.sidebar {
  background: var(--pf-sidebar-bg);
  color: var(--pf-sidebar-text);
  border-right: 1px solid rgba(38,48,95,.08);
  box-shadow: 22px 0 60px rgba(38,48,95,.10);
  z-index: 800;
}
.sidebar::after { background: rgba(248,161,152,.18); }
.sidebar-brand {
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(38,48,95,.09);
  box-shadow: 0 16px 38px rgba(38,48,95,.10);
  min-height: 94px;
}
.sidebar-brand:hover { background: #fff; }
.postit-glow {
  inset: 9px 8px auto 8px;
  height: 76px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(255,208,96,.96), rgba(248,161,152,.92) 56%, rgba(255,255,255,.90));
  transform: rotate(-2deg) translateY(10px);
  opacity: .96;
  box-shadow: 0 18px 28px rgba(148,86,24,.20), inset 0 1px 0 rgba(255,255,255,.65);
  filter: none;
}
.sidebar-brand .brand-full,
.sidebar-brand .brand-icon { filter: drop-shadow(0 10px 10px rgba(86,42,76,.16)); }
.sidebar-collapse-hint {
  color: #31406f;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(38,48,95,.08);
}
.nav a { color: rgba(38,48,95,.74); margin-bottom: 4px; }
.nav a.active, .nav a:hover { background: var(--pf-menu-hover); color: #1c275d; }
.nav-icon { background: rgba(28,183,201,.12); color: #26305f; }
.sidebar-footer { background: rgba(255,255,255,.76); border-color: rgba(38,48,95,.08); color: rgba(38,48,95,.68); }
.profile-wrap { z-index: 5000; }
.profile-menu {
  position: absolute;
  z-index: 99999 !important;
  background: rgba(255,255,255,.985);
  border: 1px solid rgba(248,161,152,.18);
  box-shadow: 0 28px 90px rgba(38,48,95,.22);
}
.topbar { position: relative; z-index: 2000; }
.main { overflow: visible; }
.mobile-menu-backdrop { z-index: 850; }
@media (max-width: 860px) { .sidebar { z-index: 900; } .profile-menu { position: fixed; right: 14px; top: 76px; left: auto; } }

/* Campos oficiais para dados reais do banco */
.form-field label { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.field-hint { color: var(--pf-muted); font-size: .72rem; font-weight: 800; }
.input, .select, .textarea {
  min-height: var(--pf-field-h);
  border-radius: 15px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(38,48,95,.12);
}
.input[data-mask], .input[autocomplete="tel"], .input[inputmode="numeric"] { letter-spacing: .01em; }
.input.invalid { border-color: #ef4444; box-shadow: 0 0 0 4px rgba(239,68,68,.10); }
.input.valid { border-color: rgba(28,183,201,.54); }
.field-error { display:none; margin-top: 7px; color:#be123c; font-size:.78rem; font-weight:850; }
.input.invalid + .field-error { display:block; }
.form-row-gap { row-gap: 18px; }

/* Calendário premium interativo baseado no padrão de produto */
.calendar-pro {
  border: 1px solid rgba(38,48,95,.10);
  background: rgba(255,255,255,.82);
  border-radius: 28px;
  box-shadow: var(--pf-shadow-soft);
  overflow: hidden;
}
.calendar-pro-header {
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  padding: 18px;
  border-bottom: 1px solid rgba(38,48,95,.08);
  background: linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,248,251,.94));
}
.calendar-nav, .calendar-views { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.calendar-nav button, .calendar-views button {
  border:1px solid rgba(38,48,95,.10); background:#fff; color:#26305f; border-radius:13px; min-height:38px; padding:0 12px; cursor:pointer; font-weight:900;
}
.calendar-views button.active { background: linear-gradient(135deg, var(--pf-cyan), var(--pf-pink)); color:#fff; border-color:transparent; }
.calendar-title { font-size:1.25rem; font-weight:950; letter-spacing:-.035em; color:#26305f; }
.calendar-pro-grid { min-width: 840px; }
.calendar-weekdays, .calendar-month-grid { display:grid; grid-template-columns:repeat(7, minmax(120px,1fr)); }
.calendar-weekdays { background: rgba(38,48,95,.045); border-bottom: 1px solid rgba(38,48,95,.08); }
.calendar-weekdays span { padding:12px 14px; color:rgba(38,48,95,.64); font-weight:950; font-size:.8rem; text-transform:uppercase; letter-spacing:.05em; }
.calendar-day {
  min-height:138px; padding:10px; border-right:1px solid rgba(38,48,95,.07); border-bottom:1px solid rgba(38,48,95,.07);
  background: rgba(255,255,255,.72); display:flex; flex-direction:column; gap:8px;
}
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day.muted { background:rgba(246,251,255,.58); color:rgba(38,48,95,.36); }
.calendar-day.today { background:linear-gradient(180deg, rgba(28,183,201,.10), rgba(255,255,255,.86)); box-shadow: inset 0 0 0 2px rgba(28,183,201,.22); }
.calendar-date { display:flex; justify-content:space-between; align-items:center; font-weight:950; color:#26305f; }
.calendar-count { font-size:.7rem; padding:3px 7px; border-radius:999px; background:rgba(248,161,152,.13); color:#b94a3e; }
.cal-event { border:0; text-align:left; border-radius:13px; padding:8px 9px; background:linear-gradient(135deg, rgba(28,183,201,.14), rgba(248,161,152,.13)); color:#26305f; cursor:grab; box-shadow:0 8px 18px rgba(38,48,95,.08); }
.cal-event strong { display:block; font-size:.78rem; }
.cal-event small { display:block; color:rgba(38,48,95,.62); margin-top:2px; }
.calendar-scroll { overflow:auto; }
.calendar-week-view, .calendar-day-view { display:none; min-width: 840px; }
.calendar-pro[data-view="week"] .calendar-month-grid, .calendar-pro[data-view="week"] .calendar-weekdays.month-only { display:none; }
.calendar-pro[data-view="week"] .calendar-week-view { display:grid; grid-template-columns:72px repeat(7, minmax(120px,1fr)); }
.calendar-pro[data-view="day"] .calendar-month-grid, .calendar-pro[data-view="day"] .calendar-weekdays { display:none; }
.calendar-pro[data-view="day"] .calendar-day-view { display:grid; grid-template-columns:86px minmax(560px,1fr); }
.time-cell { min-height:74px; padding:10px; border-right:1px solid rgba(38,48,95,.07); border-bottom:1px solid rgba(38,48,95,.07); color:rgba(38,48,95,.55); font-weight:900; background:rgba(255,255,255,.62); }
.slot-cell { min-height:74px; padding:8px; border-right:1px solid rgba(38,48,95,.07); border-bottom:1px solid rgba(38,48,95,.07); background:rgba(255,255,255,.72); }
.slot-cell .cal-event { margin-bottom:7px; }
@media (max-width: 860px) { .calendar-pro { border-radius:22px; } .calendar-pro-grid, .calendar-week-view, .calendar-day-view { min-width: 760px; } .calendar-day { min-height:122px; } }

/* Linha, card e submenu com mais respiro */
.table-scroll table { border-collapse: separate; border-spacing: 0 8px; }
tbody tr { background: rgba(255,255,255,.78); box-shadow: 0 8px 18px rgba(38,48,95,.04); }
tbody td:first-child { border-radius: 14px 0 0 14px; }
tbody td:last-child { border-radius: 0 14px 14px 0; }
.module-card, .appointment-card, .agenda-col { position: relative; }
.card-menu {
  position:absolute; right:10px; top:44px; min-width:190px; border:1px solid rgba(38,48,95,.10); background:#fff; border-radius:16px; padding:8px; box-shadow:0 20px 70px rgba(38,48,95,.18); z-index:30; display:none;
}
.card-menu.open { display:block; animation: pf-fade-up .18s var(--pf-ease) both; }
.card-menu button { width:100%; text-align:left; border:0; background:transparent; padding:10px; border-radius:11px; color:#26305f; font-weight:850; cursor:pointer; }
.card-menu button:hover { background:var(--pf-menu-hover); }

/* v0.1.5 — Correção solicitada: volta da paleta anterior aprovada + remoção do bloco azul escuro da área de teste */
:root {
  --pf-blue-980: #04101f;
  --pf-blue-950: #071b2c;
  --pf-blue-900: #0b2842;
  --pf-blue-800: #0d395e;
  --pf-blue-650: #126f9a;
  --pf-cyan: #00a9b7;
  --pf-cyan-soft: #76dbe2;
  --pf-pink: #F8A198;
  --pf-pink-strong: #F8A198;
  --pf-rose-soft: #ffe5dc;
  --pf-graphite: #172335;
  --pf-muted: #64748b;
  --pf-bg: #f7fbff;
  --pf-card: rgba(255,255,255,.88);
  --pf-card-solid: #ffffff;
  --pf-border: rgba(13,57,94,.12);
  --pf-border-strong: rgba(0,169,183,.25);
}
body {
  background:
    radial-gradient(circle at 8% 8%, rgba(0,169,183,.22), transparent 34%),
    radial-gradient(circle at 92% 4%, rgba(248,161,152,.32), transparent 32%),
    radial-gradient(circle at 76% 86%, rgba(107,216,223,.18), transparent 36%),
    linear-gradient(135deg, #fff9f8 0%, #f4fbff 48%, #f8fdff 100%);
}
.sidebar {
  background:
    radial-gradient(circle at 18% 8%, rgba(248,161,152,.24), transparent 36%),
    radial-gradient(circle at 72% 4%, rgba(0,169,183,.32), transparent 42%),
    linear-gradient(180deg, var(--pf-blue-950), var(--pf-blue-900) 54%, #061624);
  color: #fff;
  border-right: 0;
  box-shadow: 20px 0 60px rgba(7,27,44,.16);
}
.sidebar::after { background: rgba(248,161,152,.18); }
.sidebar-brand {
  background: rgba(255,255,255,.075);
  color: #fff;
  border: 0;
  box-shadow: none;
  min-height: 94px;
}
.sidebar-brand:hover { background: rgba(255,255,255,.12); }
.sidebar-collapse-hint {
  color: rgba(255,255,255,.72);
  background: rgba(255,255,255,.08);
  border: 0;
}
.nav a { color: rgba(255,255,255,.78); }
.nav a.active, .nav a:hover {
  background: linear-gradient(135deg, rgba(0,169,183,.18), rgba(248,161,152,.18));
  color: #fff;
}
.nav-icon {
  background: rgba(255,255,255,.09);
  color: #fff;
}
.sidebar-footer {
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.09);
  color: rgba(255,255,255,.68);
}
.postit-glow {
  inset: 8px 10px auto 10px;
  height: 78px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(248,161,152,.94), rgba(0,169,183,.84));
  transform: rotate(-2.2deg) translateY(10px);
  opacity: .88;
  box-shadow: 0 18px 30px rgba(0,0,0,.20);
  animation: pf-float 4.8s ease-in-out infinite;
}

.codebox {
  background:
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,248,251,.94) 52%, rgba(246,251,255,.96));
  color: var(--pf-graphite);
  border: 1px solid rgba(0,169,183,.20);
  border-left: 5px solid var(--pf-pink-strong);
  border-radius: 20px;
  box-shadow: 0 18px 44px rgba(7,27,44,.08), inset 0 1px 0 rgba(255,255,255,.86);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.codebox::selection { background: rgba(248,161,152,.35); }

.profile-menu,
.card-menu {
  z-index: 99999 !important;
}

@media (max-width: 860px) {
  .sidebar {
    background:
      radial-gradient(circle at 18% 8%, rgba(248,161,152,.24), transparent 36%),
      radial-gradient(circle at 72% 4%, rgba(0,169,183,.32), transparent 42%),
      linear-gradient(180deg, var(--pf-blue-950), var(--pf-blue-900) 54%, #061624);
  }
}

/* v0.1.6 — Ajuste final do post-it e padrão de aguarde conforme identidade PetFunny */
:root {
  --pf-postit-yellow: #fff9db;
  --pf-postit-yellow-strong: #fff1a8;
  --pf-postit-border: rgba(245, 197, 66, .52);
}

/* Post-it da logo: amarelo bem claro, somente 15% de transparência e cobrindo a área da logo */
.postit-glow {
  inset: 4px 4px auto 4px !important;
  height: calc(100% - 10px) !important;
  min-height: 82px;
  border-radius: 26px 24px 28px 22px;
  background:
    linear-gradient(135deg, rgba(255, 252, 224, .85) 0%, rgba(255, 249, 219, .85) 50%, rgba(255, 241, 168, .85) 100%) !important;
  border: 1px solid var(--pf-postit-border);
  opacity: 1 !important;
  transform: rotate(-1.8deg) translateY(4px) !important;
  box-shadow:
    0 18px 34px rgba(148, 104, 18, .16),
    inset 0 1px 0 rgba(255,255,255,.78),
    inset 0 -18px 28px rgba(245,197,66,.10) !important;
  filter: none !important;
}
.postit-glow::before {
  content: "";
  position: absolute;
  inset: 9px 12px auto auto;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.86), rgba(255,241,168,.12) 68%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92);
}
.sidebar-brand .brand-full,
.sidebar-brand .brand-icon {
  opacity: .86;
  filter: drop-shadow(0 10px 12px rgba(92, 67, 18, .16)) saturate(.96) !important;
}
.shell.sidebar-collapsed .postit-glow {
  inset: 7px 8px auto 8px !important;
  height: 66px !important;
  min-height: 66px;
  border-radius: 22px;
  transform: rotate(-4deg) translateY(5px) !important;
}

/* Modal/cartão de aguarde em formato post-it */
.wait-card {
  position: relative;
  overflow: visible;
  border: 1px solid var(--pf-postit-border) !important;
  border-radius: 26px 24px 30px 22px !important;
  padding: 22px 22px 22px 20px !important;
  background:
    linear-gradient(135deg, rgba(255,252,224,.90), rgba(255,249,219,.86) 52%, rgba(255,241,168,.84)) !important;
  box-shadow:
    0 22px 52px rgba(148,104,18,.14),
    inset 0 1px 0 rgba(255,255,255,.82) !important;
  transform: rotate(-.45deg);
}
.wait-card::before {
  content: "";
  position: absolute;
  width: 92px;
  height: 26px;
  left: 34px;
  top: -14px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .58);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 10px 20px rgba(148,104,18,.10);
  transform: rotate(-3deg);
}
.wait-card img {
  background: rgba(255,255,255,.34);
  border: 1px solid rgba(255,255,255,.46);
  border-radius: 18px;
  padding: 8px 10px;
  opacity: .78;
  filter: drop-shadow(0 10px 16px rgba(92, 67, 18, .13)) saturate(.96) !important;
}
.wait-card strong { color: var(--pf-blue-900); }
.wait-card p { color: rgba(23,35,53,.70); }
.wait-card .progress-line {
  background: rgba(255,255,255,.56);
  border: 1px solid rgba(245,197,66,.24);
}

/* Toast real de loading: também como post-it, sem bloco azul pesado */
.loading-toast {
  background:
    linear-gradient(135deg, rgba(255,252,224,.94), rgba(255,249,219,.90) 52%, rgba(255,241,168,.88)) !important;
  color: var(--pf-blue-900) !important;
  border: 1px solid var(--pf-postit-border);
  border-radius: 26px 24px 30px 22px !important;
  box-shadow: 0 24px 70px rgba(148,104,18,.20), inset 0 1px 0 rgba(255,255,255,.82) !important;
  transform: rotate(-.35deg);
}
.loading-toast::before {
  content: "";
  position: absolute;
  width: 82px;
  height: 22px;
  left: 24px;
  top: -12px;
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(255,255,255,.74);
  box-shadow: 0 9px 18px rgba(148,104,18,.12);
  transform: rotate(-4deg);
}
.loading-toast img {
  background: rgba(255,255,255,.36) !important;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 18px !important;
  opacity: .78;
  filter: drop-shadow(0 9px 14px rgba(92, 67, 18, .13)) saturate(.96) !important;
}
.loading-toast small { color: rgba(23,35,53,.58) !important; }

.sidebar-footer .copyright { display:block; margin-top:8px; font-size:.72rem; font-weight:800; color:rgba(38,48,95,.56); line-height:1.35; }
.shell:not(.sidebar-collapsed) .sidebar-footer .copyright { opacity:.9; }

/* v0.3 auth refinements */
.login-card { max-width: 760px; }
.login-form { margin-top: 26px; display: grid; gap: 16px; }
.login-actions { justify-content: flex-end; }
.login-feedback {
  border-radius: 16px;
  padding: 13px 15px;
  font-weight: 850;
  background: rgba(244, 63, 94, .10);
  color: #be123c;
  border: 1px solid rgba(244, 63, 94, .18);
}
.login-feedback[data-type="success"] {
  background: rgba(0, 169, 183, .10);
  color: var(--pf-blue-800);
  border-color: rgba(0, 169, 183, .24);
}
.login-helper {
  margin-top: 20px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(255, 249, 224, .85);
  border: 1px solid rgba(230, 190, 80, .24);
  color: #6b5a1f;
}
button:disabled, .btn:disabled {
  opacity: .62;
  cursor: not-allowed;
  transform: none !important;
}
.profile-btn strong {
  max-width: 190px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* v0.4 — Ambientes: loja pública, admin fechado e aplicativo do cliente fechado */
.landing-page {
  min-height: 100vh;
  padding: clamp(18px, 3vw, 36px);
  background:
    radial-gradient(circle at 8% 10%, rgba(0,169,183,.20), transparent 34%),
    radial-gradient(circle at 88% 4%, rgba(248,161,152,.25), transparent 32%),
    linear-gradient(135deg, #fff9f8 0%, #f4fbff 48%, #f8fdff 100%);
}
.landing-nav {
  width: min(1180px, 100%);
  margin: 0 auto 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
  border: 1px solid var(--pf-border);
  border-radius: 28px;
  background: rgba(255,255,255,.80);
  box-shadow: var(--pf-shadow-soft);
  backdrop-filter: blur(18px);
  position: sticky;
  top: 14px;
  z-index: 50;
}
.landing-logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 60px;
  padding: 8px 14px;
  text-decoration: none;
}
.landing-logo span {
  position: absolute;
  inset: 7px 4px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,252,224,.85), rgba(255,241,168,.85));
  border: 1px solid var(--pf-postit-border);
  transform: rotate(-1.8deg);
  box-shadow: 0 16px 30px rgba(148,104,18,.12);
}
.landing-logo img { position: relative; z-index: 1; width: 198px; max-width: 46vw; opacity: .88; }
.landing-nav nav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.landing-nav nav a:not(.btn) { text-decoration: none; color: var(--pf-blue-900); font-weight: 900; padding: 10px 12px; border-radius: 14px; }
.landing-nav nav a:not(.btn):hover { background: rgba(0,169,183,.09); }
.landing-hero, .landing-section {
  width: min(1180px, 100%);
  margin: 0 auto;
  border: 1px solid var(--pf-border);
  border-radius: 34px;
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.66));
  box-shadow: var(--pf-shadow);
  padding: clamp(26px, 5vw, 58px);
  overflow: hidden;
  position: relative;
}
.landing-hero { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(280px, .58fr); gap: 28px; align-items: center; }
.landing-hero::after, .landing-section::after {
  content: "";
  position: absolute;
  width: 280px;
  height: 280px;
  right: -90px;
  top: -110px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(248,161,152,.26), transparent 70%);
  pointer-events: none;
}
.landing-card-stack { display: grid; gap: 14px; position: relative; z-index: 1; }
.landing-card-stack article {
  border: 1px solid var(--pf-border);
  border-radius: 24px;
  padding: 20px;
  background: rgba(255,255,255,.84);
  box-shadow: var(--pf-shadow-soft);
  transform: rotate(-1deg);
}
.landing-card-stack article:nth-child(2) { transform: rotate(1.2deg); }
.landing-card-stack article:nth-child(3) { transform: rotate(-.4deg); }
.landing-card-stack strong { display: block; font-size: 1.1rem; color: var(--pf-blue-900); }
.landing-card-stack span { color: var(--pf-muted); font-weight: 850; }
.landing-section { margin-top: 22px; }
.landing-footer, .client-footer {
  width: min(1180px, 100%);
  margin: 22px auto 0;
  text-align: center;
  color: var(--pf-muted);
  font-weight: 850;
}

.client-login-page .postit-auth-card::before {
  content: "";
  position: absolute;
  width: 120px;
  height: 30px;
  left: 42px;
  top: -14px;
  border-radius: 999px;
  background: rgba(255,255,255,.60);
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 12px 22px rgba(148,104,18,.10);
  transform: rotate(-3deg);
}
.client-app-shell {
  min-height: 100vh;
  padding: clamp(16px, 3vw, 32px);
  background:
    radial-gradient(circle at 10% 6%, rgba(0,169,183,.18), transparent 32%),
    radial-gradient(circle at 92% 5%, rgba(248,161,152,.24), transparent 32%),
    linear-gradient(135deg, #fff9f8 0%, #f4fbff 48%, #f8fdff 100%);
}
.client-topbar {
  width: min(1060px, 100%);
  margin: 0 auto 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--pf-border);
  border-radius: 26px;
  background: rgba(255,255,255,.84);
  box-shadow: var(--pf-shadow-soft);
  position: sticky;
  top: 12px;
  z-index: 40;
}
.client-brand { position: relative; display: inline-flex; align-items: center; padding: 8px 14px; min-height: 58px; }
.client-brand img { width: 190px; position: relative; z-index: 1; opacity: .86; }
.client-postit { position: absolute; inset: 7px 4px; border-radius: 22px; background: linear-gradient(135deg, rgba(255,252,224,.85), rgba(255,241,168,.85)); border: 1px solid var(--pf-postit-border); transform: rotate(-2deg); }
.client-hero, .client-content {
  width: min(1060px, 100%);
  margin: 0 auto;
  border: 1px solid var(--pf-border);
  border-radius: 32px;
  background: rgba(255,255,255,.78);
  box-shadow: var(--pf-shadow);
  padding: clamp(24px, 4vw, 42px);
}
.client-content { margin-top: 18px; }
.client-profile-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.15));
  border: 1px solid var(--pf-border-strong);
  color: var(--pf-blue-900);
  font-weight: 950;
}
.client-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 22px;
}
.client-card {
  border: 1px solid var(--pf-border);
  border-radius: 24px;
  padding: 20px;
  background: rgba(255,255,255,.78);
  box-shadow: var(--pf-shadow-soft);
  min-height: 160px;
}
.client-card span { font-size: 2rem; display: block; margin-bottom: 12px; }
.client-card h3 { color: var(--pf-blue-900); }
.client-card p { margin-bottom: 0; }

.environment-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  border: 1px solid var(--pf-border);
  color: var(--pf-blue-900);
  font-weight: 900;
}

@media (max-width: 900px) {
  .landing-nav { align-items: flex-start; flex-direction: column; position: relative; top: 0; }
  .landing-nav nav { justify-content: flex-start; }
  .landing-hero { grid-template-columns: 1fr; }
  .client-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .landing-nav nav a:not(.btn), .landing-nav .btn { width: 100%; justify-content: center; }
  .client-card-grid { grid-template-columns: 1fr; }
  .client-brand img, .landing-logo img { width: 154px; }
}

/* v0.5 Dashboard operacional */
.dashboard-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.dashboard-hero-copy { max-width:820px; }
.dashboard-actions { margin-top:0; }
.dashboard-metrics-grid { display:grid; grid-template-columns:repeat(6, minmax(150px,1fr)); gap:16px; margin:22px 0; }
.dashboard-metric-card {
  min-height:166px;
  border:1px solid var(--pf-border);
  background:linear-gradient(160deg, rgba(255,255,255,.94), rgba(255,249,248,.74));
  border-radius:26px;
  padding:18px;
  box-shadow:var(--pf-shadow-soft);
  position:relative;
  overflow:hidden;
  animation:pf-fade-up .46s var(--pf-ease) both;
}
.dashboard-metric-card::after { content:""; position:absolute; width:120px; height:120px; right:-42px; top:-44px; border-radius:999px; background:radial-gradient(circle, rgba(248,161,152,.28), transparent 68%); pointer-events:none; }
.dashboard-metric-card span { display:block; color:var(--pf-muted); font-weight:900; font-size:.82rem; margin-top:16px; }
.dashboard-metric-card strong { display:block; margin-top:8px; font-size:clamp(1.55rem,2.6vw,2.35rem); letter-spacing:-.055em; color:var(--pf-blue-900); }
.dashboard-metric-card small { display:block; margin-top:6px; color:var(--pf-muted); line-height:1.35; font-weight:750; }
.metric-icon { width:42px; height:42px; border-radius:16px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(0,169,183,.16), rgba(248,161,152,.18)); box-shadow:inset 0 0 0 1px rgba(255,255,255,.56); }
.dashboard-layout-grid { display:grid; grid-template-columns:minmax(0, 1.7fr) minmax(300px, .82fr); gap:20px; margin-top:20px; align-items:start; }
.dashboard-second-row { grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); }
.dashboard-side-stack { display:grid; gap:20px; }
.panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.panel-heading h2 { margin-bottom:0; }
.panel-heading.compact { margin-top:18px; }
.dashboard-main-panel { min-width:0; }
.dashboard-table-wrap .table-scroll { max-height:420px; }
.dashboard-table-wrap td strong { display:block; color:var(--pf-graphite); }
.dashboard-table-wrap td small { display:block; color:var(--pf-muted); margin-top:4px; font-weight:750; }
.status-pill { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:7px 10px; border-radius:999px; font-size:.75rem; font-weight:950; white-space:nowrap; border:1px solid transparent; }
.status-agendado { background:rgba(13,57,94,.08); color:var(--pf-blue-800); border-color:rgba(13,57,94,.12); }
.status-confirmado { background:rgba(0,169,183,.12); color:#087481; border-color:rgba(0,169,183,.20); }
.status-em-atendimento { background:rgba(248,161,152,.18); color:#a74452; border-color:rgba(248,161,152,.32); }
.status-finalizado { background:rgba(34,197,94,.12); color:#15803d; border-color:rgba(34,197,94,.18); }
.status-cancelado, .status-nao-compareceu { background:rgba(239,68,68,.10); color:#b91c1c; border-color:rgba(239,68,68,.18); }
.alert-list, .insight-list, .upcoming-list { display:grid; gap:12px; }
.alert-card { border-radius:18px; padding:14px; border:1px solid var(--pf-border); background:rgba(255,255,255,.78); }
.alert-card strong { display:block; color:var(--pf-blue-900); margin-bottom:5px; }
.alert-card p { margin:0; line-height:1.45; }
.alert-warning { border-color:rgba(245,158,11,.25); background:rgba(255,251,235,.78); }
.alert-success { border-color:rgba(34,197,94,.20); background:rgba(240,253,244,.78); }
.alert-info { border-color:rgba(0,169,183,.22); background:rgba(236,254,255,.68); }
.insight-list article { display:flex; align-items:flex-start; gap:10px; padding:13px; border-radius:18px; background:linear-gradient(135deg, rgba(0,169,183,.09), rgba(248,161,152,.11)); border:1px solid var(--pf-border); }
.insight-list p { margin:0; }
.dashboard-calendar .calendar-day { min-height:118px; }
.dashboard-card-list { display:grid; gap:12px; max-height:455px; overflow:auto; padding-right:4px; }
.dashboard-appointment-card { border:1px solid var(--pf-border); background:rgba(255,255,255,.84); box-shadow:var(--pf-shadow-soft); }
.appointment-time { display:inline-flex; width:max-content; padding:6px 9px; border-radius:999px; background:rgba(0,169,183,.12); color:#087481; font-weight:950; font-size:.78rem; margin-bottom:9px; }
.appointment-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:12px; }
.appointment-meta > span:last-child { font-weight:950; color:var(--pf-blue-900); }
.dashboard-appointment-card em { display:inline-block; margin-top:10px; color:var(--pf-pink-strong); font-style:normal; font-weight:950; }
.upcoming-list article { padding:13px; border:1px solid var(--pf-border); border-radius:18px; background:rgba(255,255,255,.72); }
.upcoming-list strong { display:block; color:var(--pf-blue-900); }
.upcoming-list small { color:var(--pf-muted); font-weight:750; display:block; margin-top:4px; }
.empty-state { border:1px dashed var(--pf-border-strong); border-radius:20px; padding:18px; background:rgba(255,255,255,.56); }
.empty-state strong { color:var(--pf-blue-900); }
.empty-state p { margin-bottom:0; }
.status-breakdown { display:grid; grid-template-columns:repeat(6, minmax(130px,1fr)); gap:12px; }
.status-breakdown article { border:1px solid var(--pf-border); background:rgba(255,255,255,.76); border-radius:20px; padding:14px; display:grid; gap:12px; }
.status-breakdown strong { font-size:2rem; letter-spacing:-.05em; color:var(--pf-blue-900); }
.dashboard-json { margin-top:16px; }
@media (max-width: 1280px) { .dashboard-metrics-grid { grid-template-columns:repeat(3, minmax(0,1fr)); } .status-breakdown { grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width: 980px) { .dashboard-layout-grid, .dashboard-second-row { grid-template-columns:1fr; } .dashboard-metrics-grid { grid-template-columns:repeat(2, minmax(0,1fr)); } }
@media (max-width: 620px) { .dashboard-metrics-grid, .status-breakdown { grid-template-columns:1fr; } .dashboard-hero { align-items:flex-start; } .dashboard-actions { width:100%; } .dashboard-actions .btn { width:100%; justify-content:center; } }

/* v0.6 Tutores & Pets — CRUD premium, listagens e formulários reais */
.stack-md { display:grid; gap:18px; }
.stack-lg { display:grid; gap:24px; }
.between { justify-content:space-between; }
.section-toolbar { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; flex-wrap:wrap; }
.filter-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.filter-row .input { min-width:min(360px, 78vw); }
.premium-table { width:100%; min-width:860px; border-collapse:separate; border-spacing:0 10px; }
.premium-table th { text-align:left; padding:10px 14px; color:var(--pf-muted); font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; }
.premium-table td { padding:14px; background:rgba(255,255,255,.86); border-top:1px solid rgba(13,57,94,.08); border-bottom:1px solid rgba(13,57,94,.08); vertical-align:middle; }
.premium-table td:first-child { border-left:1px solid rgba(13,57,94,.08); border-radius:18px 0 0 18px; }
.premium-table td:last-child { border-right:1px solid rgba(13,57,94,.08); border-radius:0 18px 18px 0; }
.premium-table td strong { display:block; color:var(--pf-graphite); }
.premium-table td small { display:block; color:var(--pf-muted); margin-top:3px; }
.tag-wrap { display:flex; flex-wrap:wrap; gap:6px; }
.mini-badge { display:inline-flex; align-items:center; min-height:24px; border-radius:999px; padding:3px 9px; background:linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.16)); color:var(--pf-blue-800); font-size:.74rem; font-weight:900; }
.status-pill { display:inline-flex; align-items:center; gap:6px; min-height:30px; border-radius:999px; padding:5px 11px; font-weight:950; font-size:.78rem; }
.status-pill.ok { background:rgba(0,169,183,.14); color:var(--pf-blue-800); }
.status-pill.muted-pill { background:rgba(100,116,139,.12); color:var(--pf-muted); }
.row-actions { display:flex; gap:8px; align-items:center; }
.infinite-list { max-height:62vh; overflow:auto; padding-right:4px; }
.infinite-loader { text-align:center; padding:14px; color:var(--pf-muted); font-weight:900; }
.premium-modal { border:0; padding:0; background:transparent; width:min(920px, calc(100vw - 28px)); }
.premium-modal::backdrop { background:rgba(7,27,44,.48); backdrop-filter:blur(8px); }
.modal-card { background:rgba(255,255,255,.96); border:1px solid rgba(13,57,94,.12); border-radius:28px; box-shadow:0 30px 110px rgba(7,27,44,.22); overflow:hidden; max-height:min(86vh, 820px); display:flex; flex-direction:column; }
.modal-header, .modal-footer { flex:0 0 auto; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:18px 22px; background:rgba(255,255,255,.9); border-bottom:1px solid rgba(13,57,94,.08); }
.modal-footer { border-top:1px solid rgba(13,57,94,.08); border-bottom:0; justify-content:flex-end; }
.modal-body { padding:22px; overflow:auto; }
.form-field { display:grid; gap:8px; color:var(--pf-graphite); font-weight:900; font-size:.86rem; }
.form-grid .span-2 { grid-column:1 / -1; }
.textarea { resize:vertical; min-height:110px; padding:14px 16px; }
.cards-scroll { max-height:66vh; overflow:auto; padding:2px 6px 8px 2px; }
.pet-card-grid { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:16px; }
.pet-card { overflow:visible; min-height:260px; }
.pet-avatar { width:58px; height:58px; border-radius:22px; display:grid; place-items:center; font-size:1.45rem; font-weight:950; color:#fff; background:linear-gradient(135deg, var(--pf-cyan), var(--pf-pink)); box-shadow:0 14px 30px rgba(13,57,94,.14); margin-bottom:12px; }
.pet-meta { display:grid; gap:6px; margin:14px 0; color:var(--pf-muted); font-size:.84rem; }
.pet-note { min-height:48px; }
.muted { color:var(--pf-muted); }
@media (max-width: 1180px) { .pet-card-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) {
  .section-toolbar { display:grid; }
  .filter-row, .filter-row .input, .filter-row .select, .filter-row .btn { width:100%; min-width:0; }
  .pet-card-grid { grid-template-columns:1fr; }
  .form-grid { grid-template-columns:1fr; }
  .premium-modal { width:calc(100vw - 18px); }
  .modal-header, .modal-footer, .modal-body { padding:16px; }
}

/* v0.6.1 - Configurações centrais, SEO e cadastros-base de pets */
.config-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; align-items:start; }
.mini-panel { border:1px solid var(--pf-border); background:rgba(255,255,255,.72); border-radius:24px; padding:18px; box-shadow:var(--pf-shadow-soft); min-width:0; }
.mini-panel h3 { margin-bottom:14px; }
.data-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 12px; border:1px solid rgba(13,57,94,.09); background:rgba(255,255,255,.88); border-radius:16px; box-shadow:0 8px 22px rgba(7,27,44,.055); margin-bottom:10px; }
.data-row strong { display:block; color:var(--pf-graphite); }
.data-row small { display:block; color:var(--pf-muted); margin-top:3px; line-height:1.35; }
.data-row .actions { display:flex; align-items:center; gap:7px; flex:0 0 auto; }
.status-pill.ok { background:linear-gradient(135deg, rgba(0,169,183,.15), rgba(118,219,226,.16)); color:var(--pf-blue-800); border-color:rgba(0,169,183,.22); }
.status-pill.muted-pill { background:rgba(100,116,139,.12); color:#64748b; border-color:rgba(100,116,139,.18); }
@media (max-width: 1180px) { .config-grid { grid-template-columns:1fr; } }

/* v0.6.2 - Configurações operacionais: tipos de serviços, funcionamento e slots por hora */
.service-type-grid { grid-template-columns:repeat(3, minmax(0, 1fr)); }
.service-type-card { display:grid; gap:16px; }
.service-type-card .actions { justify-content:flex-end; }
.hours-grid { display:grid; grid-template-columns:repeat(7, minmax(160px, 1fr)); gap:14px; }
.hour-card { border:1px solid var(--pf-border); background:rgba(255,255,255,.78); box-shadow:var(--pf-shadow-soft); border-radius:22px; padding:16px; display:grid; gap:13px; min-width:0; }
.hour-card > strong { color:var(--pf-blue-900); font-size:.98rem; }
.toggle-line { display:flex; align-items:center; gap:8px; font-weight:900; color:var(--pf-graphite); }
.toggle-line input { width:18px; height:18px; accent-color:var(--pf-cyan); }
.hour-inputs { display:grid; gap:9px; }
.hour-inputs label { display:grid; gap:6px; font-size:.78rem; font-weight:900; color:var(--pf-muted); }
.hour-inputs .input { min-height:42px; padding:8px 10px; }
.schedule-scroll { overflow:auto; border:1px solid var(--pf-border); border-radius:24px; background:rgba(255,255,255,.72); box-shadow:var(--pf-shadow-soft); }
.slot-matrix { min-width:980px; display:grid; grid-template-columns:96px repeat(7, minmax(112px, 1fr)); gap:1px; background:rgba(13,57,94,.08); }
.slot-head, .slot-hour, .slot-cell-input { background:rgba(255,255,255,.92); min-height:58px; display:flex; align-items:center; justify-content:center; padding:10px; }
.slot-head { font-weight:950; color:var(--pf-blue-900); text-transform:uppercase; letter-spacing:.045em; font-size:.76rem; background:linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.12)), rgba(255,255,255,.94); }
.slot-hour { justify-content:flex-start; font-weight:950; color:var(--pf-blue-800); }
.slot-cell-input { gap:7px; flex-direction:column; font-weight:850; color:var(--pf-muted); font-size:.72rem; }
.slot-cell-input .input { min-height:38px; width:72px; text-align:center; padding:6px 8px; font-weight:950; color:var(--pf-blue-900); }
.sticky-cell { position:sticky; left:0; z-index:2; box-shadow:8px 0 18px rgba(7,27,44,.07); }
.slot-head.sticky-cell { z-index:3; }
@media (max-width: 1280px) { .hours-grid, .service-type-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .hours-grid, .service-type-grid { grid-template-columns:1fr; } .slot-matrix { min-width:860px; } }


/* v0.6.3 — Espaçamento vertical premium e loading real de página com o gif do projeto */
:root { --pf-page-section-gap: clamp(28px, 3.4vw, 54px); --pf-card-row-gap: clamp(22px, 2.4vw, 36px); }
body.has-page-loading { cursor: progress; }
.content-frame { display: grid; gap: var(--pf-page-section-gap); align-content: start; }
.hero-panel, .surface-panel, .module-card, .table-wrap, .calendar-pro, .settings-card, .dashboard-metric-card, .client-card, .landing-section, .landing-hero { margin-block: 0; }
.module-grid, .big-number-grid, .dashboard-metrics-grid, .dashboard-layout-grid, .client-card-grid, .settings-grid, .pet-card-grid, .operational-grid, .option-list, .dashboard-side-stack, .demo-grid { row-gap: var(--pf-card-row-gap) !important; }
.dashboard-metrics-grid { margin: var(--pf-card-row-gap) 0 var(--pf-page-section-gap); }
.dashboard-layout-grid { margin-top: 0; }
.stack-lg { gap: var(--pf-page-section-gap) !important; }
.stack-md { gap: var(--pf-card-row-gap) !important; }
.table-scroll { padding-bottom: 8px; }
tr + tr td { border-top: 4px solid transparent; }

.page-loading-modal {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 24px;
  background:
    radial-gradient(circle at 18% 16%, rgba(255, 232, 143, .42), transparent 34%),
    radial-gradient(circle at 82% 12%, rgba(0, 169, 183, .16), transparent 35%),
    radial-gradient(circle at 72% 82%, rgba(255, 157, 152, .20), transparent 38%),
    rgba(253, 251, 244, .76);
  backdrop-filter: blur(14px) saturate(1.03);
  animation: pf-loader-in .22s var(--pf-ease) both;
}
.page-loading-modal[hidden] { display: none !important; }
.page-loading-modal.is-hiding { animation: pf-loader-out .18s var(--pf-ease) both; }
.postit-loading-card {
  position: relative;
  width: min(92vw, 430px);
  min-height: 330px;
  display: grid;
  align-items: center;
  justify-items: center;
  gap: 14px;
  padding: 34px 30px 28px;
  border-radius: 30px 34px 28px 36px;
  border: 1px solid rgba(196, 152, 49, .20);
  background:
    linear-gradient(160deg, rgba(255, 252, 211, .96), rgba(255, 247, 181, .88) 58%, rgba(255, 236, 164, .86)),
    repeating-linear-gradient(0deg, rgba(149, 117, 38, .045) 0 1px, transparent 1px 28px);
  box-shadow: 0 34px 110px rgba(54, 39, 16, .18), 0 12px 28px rgba(7, 27, 44, .10), inset 0 1px 0 rgba(255,255,255,.9);
  transform: rotate(-1.2deg);
  overflow: visible;
}
.postit-loading-card::before {
  content: "";
  position: absolute;
  inset: 14px 14px auto 14px;
  height: 18px;
  border-radius: 18px;
  background: linear-gradient(90deg, rgba(255,255,255,.55), rgba(255,255,255,.16), rgba(255,255,255,.55));
  opacity: .9;
}
.postit-loading-card::after {
  content: "";
  position: absolute;
  width: 76px;
  height: 76px;
  right: -18px;
  bottom: -18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(248,161,152,.26), rgba(0,169,183,.16));
  filter: blur(.2px);
  transform: rotate(9deg);
  z-index: -1;
}
.postit-tape {
  position: absolute;
  top: -18px;
  width: 128px;
  height: 38px;
  border-radius: 11px;
  background: rgba(255,255,255,.45);
  border: 1px solid rgba(255,255,255,.44);
  box-shadow: 0 8px 18px rgba(74,50,16,.08);
  transform: rotate(2deg);
}
.page-loading-visual {
  position: relative;
  width: 184px;
  height: 150px;
  display: grid;
  place-items: center;
}
.page-loading-dog {
  width: 104px;
  height: 104px;
  object-fit: contain;
  image-rendering: auto;
  filter: drop-shadow(0 14px 18px rgba(83, 52, 6, .17));
  animation: pf-dog-float 1.38s ease-in-out infinite;
}
.page-loading-logo {
  position: absolute;
  width: 178px;
  max-width: 178px;
  height: auto;
  object-fit: contain;
  opacity: .18;
  mix-blend-mode: multiply;
  transform: translateY(48px) rotate(1.4deg);
  pointer-events: none;
}
.page-loading-copy { text-align: center; display: grid; gap: 7px; position: relative; z-index: 2; }
.page-loading-copy strong { color: var(--pf-blue-900); font-size: 1.2rem; letter-spacing: -.02em; }
.page-loading-copy small { color: rgba(38, 48, 95, .68); font-weight: 850; line-height: 1.45; }
.page-loading-progress {
  width: min(100%, 260px);
  height: 9px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,.68);
  box-shadow: inset 0 0 0 1px rgba(196, 152, 49, .13);
}
.page-loading-progress span {
  display: block;
  width: 42%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--pf-pink), var(--pf-cyan));
  animation: pf-loading-bar 1.12s var(--pf-ease) infinite;
}
@keyframes pf-loader-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes pf-loader-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes pf-dog-float { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-8px) rotate(1.5deg); } }
@keyframes pf-loading-bar { 0% { transform: translateX(-110%); } 100% { transform: translateX(260%); } }
@media (max-width: 620px) {
  .postit-loading-card { width: min(94vw, 360px); min-height: 300px; padding: 30px 22px 24px; }
  .page-loading-visual { width: 160px; height: 132px; }
  .page-loading-dog { width: 92px; height: 92px; }
  .page-loading-logo { width: 154px; }
}

/* v0.6.4 · fotos em tutores/pets e slots por horário de funcionamento */
.person-cell { display:flex; align-items:center; gap:12px; min-width:220px; }
.photo-avatar { width:46px; height:46px; border-radius:16px; object-fit:cover; flex:0 0 auto; display:inline-grid; place-items:center; border:1px solid rgba(0,169,183,.20); background:linear-gradient(135deg, rgba(0,169,183,.14), rgba(248,161,152,.18)); box-shadow:0 12px 28px rgba(7,27,44,.10); color:var(--pf-blue-900); font-weight:950; letter-spacing:-.04em; }
.photo-avatar.avatar-initials { font-size:.92rem; }
.photo-avatar.photo-preview { width:96px; height:96px; border-radius:26px; font-size:1.35rem; }
.photo-upload-field { padding:14px; border-radius:22px; background:rgba(255,255,255,.62); border:1px dashed rgba(0,169,183,.28); }
.photo-upload-row { display:flex; align-items:center; gap:16px; margin-top:8px; }
.grow { flex:1; min-width:0; }
.pet-card .photo-avatar.pet-avatar { width:74px; height:74px; border-radius:24px; font-size:1.45rem; margin-bottom:10px; }
.slot-head { display:flex; flex-direction:column; gap:2px; }
.slot-head small { font-size:.68rem; color:var(--pf-muted); text-transform:none; letter-spacing:0; }
.muted-slot { opacity:.52; }
.disabled-slot { align-items:center; justify-content:center; background:rgba(100,116,139,.07); color:rgba(100,116,139,.72); font-size:.74rem; font-weight:800; text-align:center; }
.slot-empty { padding:24px; color:var(--pf-muted); font-weight:800; }
.span-8 { grid-column:1 / -1; }
@media (max-width: 760px) { .photo-upload-row { align-items:flex-start; flex-direction:column; } .person-cell { min-width:180px; } }

/* v0.7 Serviços: cards, badges e listagem premium */
.service-card-grid { margin-top: 34px; }
.service-card { min-height: 210px; display:flex; flex-direction:column; gap:12px; }
.service-card h3 { padding-right: 42px; }
.service-card-meta { margin-top:auto; display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.service-card-meta strong { font-size:1.25rem; color:var(--pf-blue-800); }
.service-card-meta span { display:inline-flex; align-items:center; min-height:30px; padding:6px 10px; border-radius:999px; background:rgba(0,169,183,.10); color:var(--pf-blue-800); font-weight:900; font-size:.78rem; }
.info-pill { background:rgba(0,169,183,.12); color:var(--pf-blue-800); border:1px solid rgba(0,169,183,.22); }
.soft-warning { margin-top:22px; background:linear-gradient(135deg, rgba(255,244,202,.92), rgba(255,231,228,.92)); border:1px solid rgba(245,158,11,.22); border-radius:22px; padding:18px; box-shadow:0 14px 34px rgba(148,86,24,.10); }
.soft-warning p { margin:6px 0 14px; }
.premium-table td small { display:block; margin-top:4px; color:var(--pf-muted); }

/* v0.7.1 - status da agenda configuráveis */
.status-dot {
  display:inline-block;
  width:12px;
  height:12px;
  border-radius:999px;
  margin-right:8px;
  box-shadow:0 0 0 4px rgba(0,169,183,.10);
  vertical-align:middle;
}
.appointment-status-card h3 { display:flex; align-items:center; gap:2px; }
.status-breakdown article { min-height:96px; }
.status-breakdown .status-pill[style] { border-color: color-mix(in srgb, var(--status-color) 38%, transparent); background: color-mix(in srgb, var(--status-color) 13%, white); color: var(--pf-blue-900); }

/* v0.8 Agenda operacional */
.agenda-list-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.appointment-card { min-height: 210px; display:flex; flex-direction:column; gap:12px; cursor:grab; }
.appointment-card:active { cursor:grabbing; }
.status-pill { --status-color: var(--pf-cyan); display:inline-flex; width:max-content; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; background: color-mix(in srgb, var(--status-color) 16%, white); color: var(--pf-blue-900); border:1px solid color-mix(in srgb, var(--status-color) 36%, transparent); font-weight:900; font-size:.78rem; }
.status-pill::before { content:""; width:9px; height:9px; border-radius:999px; background:var(--status-color); box-shadow:0 0 0 4px color-mix(in srgb, var(--status-color) 18%, transparent); }
.service-check-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)); gap:14px; margin-top:14px; }
.service-check-card { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:12px; align-items:center; padding:14px; border:1px solid var(--pf-border); border-radius:18px; background:rgba(255,255,255,.82); box-shadow:0 12px 26px rgba(7,27,44,.06); cursor:pointer; }
.service-check-card input { width:19px; height:19px; accent-color:var(--pf-cyan); }
.service-check-card strong, .service-check-card small { display:block; }
.service-check-card small { color:var(--pf-muted); margin-top:3px; }
.service-check-card b { white-space:nowrap; color:var(--pf-blue-800); }
.soft-card { background:rgba(255,255,255,.62); box-shadow:none; }
.card-kebab-wrap { position:absolute; right:14px; top:14px; z-index:4; }
.kebab-btn { width:34px; height:34px; border:1px solid var(--pf-border); border-radius:12px; background:rgba(255,255,255,.84); color:var(--pf-blue-900); font-weight:950; cursor:pointer; }
.card-kebab-wrap:hover .card-menu, .card-kebab-wrap:focus-within .card-menu { display:block; }
.calendar-day .cal-event, .slot-cell .cal-event { width:100%; }
@media (max-width: 760px) { .service-check-grid { grid-template-columns:1fr; } .agenda-list-grid { grid-template-columns:1fr; } }


/* v0.9 Pacotes e Assinaturas */
.page-section { margin-top: clamp(28px, 4vw, 54px); }
.spacious-grid { gap: clamp(20px, 2.6vw, 34px); margin-bottom: clamp(28px, 4vw, 54px); }
.cards-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap: clamp(20px, 2.4vw, 32px); }
.package-card { display:flex; flex-direction:column; gap:14px; min-height:250px; }
.package-meta { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.package-meta strong { color:var(--pf-blue-800); font-size:1.35rem; }
.package-meta span { padding:7px 10px; border-radius:999px; background:rgba(0,169,183,.10); color:var(--pf-blue-800); font-weight:900; font-size:.78rem; }
.check-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:12px; margin-top:12px; }
.check-card { display:flex; gap:10px; align-items:flex-start; padding:13px; border:1px solid var(--pf-border); border-radius:16px; background:rgba(255,255,255,.82); cursor:pointer; }
.check-card input { margin-top:5px; }
.check-card strong { display:block; color:var(--pf-graphite); }
.check-card small { display:block; color:var(--pf-muted); margin-top:3px; }
.toggle-line { display:flex; align-items:center; gap:10px; padding:14px 16px; border-radius:16px; background:rgba(255,250,222,.76); border:1px solid rgba(255,214,102,.45); font-weight:900; color:var(--pf-blue-800); margin-top:18px; }
.nested-panel { margin-top:22px; padding:18px; }
.card-actions { margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }


/* v0.9.1 — Ajustes finos da agenda: loading, status board, drag & drop e espaçamento mais compacto */
:root {
  --pf-page-section-gap: clamp(18px, 2.1vw, 34px);
  --pf-card-row-gap: clamp(14px, 1.7vw, 24px);
}
.content-frame { gap: var(--pf-page-section-gap); }
.hero-panel.stack-lg { gap: clamp(14px, 1.6vw, 22px) !important; }
.hero-panel p, .module-card p, .section-toolbar p { margin-top: 4px; margin-bottom: 0; }
.section-toolbar { margin-bottom: 2px; }
.agenda-floating-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  padding: 0 2px;
  margin: -2px 0 2px;
}
.agenda-floating-actions .actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.agenda-view-tabs {
  padding:7px;
  border:1px solid var(--pf-border);
  background:rgba(255,255,255,.74);
  border-radius:18px;
  box-shadow:0 12px 26px rgba(7,27,44,.06);
}
.status-board {
  display:grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(280px, 1fr);
  gap:16px;
  overflow:auto;
  padding: 2px 4px 10px 2px;
}
.status-column {
  min-height: 320px;
  border:1px solid color-mix(in srgb, var(--status-color) 28%, rgba(13,57,94,.10));
  border-radius:24px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--status-color) 10%, white), rgba(255,255,255,.86));
  box-shadow: var(--pf-shadow-soft);
  padding:14px;
}
.status-column header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.status-column header strong {
  width:34px;
  height:34px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:var(--pf-blue-900);
  background:rgba(255,255,255,.8);
  border:1px solid color-mix(in srgb, var(--status-color) 24%, transparent);
}
.status-dropzone {
  min-height:235px;
  display:grid;
  gap:12px;
  align-content:start;
  border-radius:20px;
  transition: background .18s var(--pf-ease), box-shadow .18s var(--pf-ease), outline-color .18s var(--pf-ease);
}
.status-dropzone.is-over {
  outline:2px dashed color-mix(in srgb, var(--status-color) 60%, var(--pf-cyan));
  outline-offset:4px;
  background:color-mix(in srgb, var(--status-color) 8%, transparent);
  box-shadow: inset 0 0 0 999px rgba(255,255,255,.22);
}
.empty-status-slot {
  min-height:92px;
  display:grid;
  place-items:center;
  text-align:center;
  padding:16px;
  border:1px dashed color-mix(in srgb, var(--status-color) 35%, rgba(13,57,94,.18));
  border-radius:18px;
  color:var(--pf-muted);
  font-weight:850;
  background:rgba(255,255,255,.56);
}
.status-tinted-card {
  border-color: color-mix(in srgb, var(--status-color) 35%, rgba(13,57,94,.10));
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--status-color) 10%, white), rgba(255,255,255,.92));
  box-shadow: 0 14px 34px color-mix(in srgb, var(--status-color) 14%, rgba(7,27,44,.10));
}
.status-tinted-card::before {
  content:"";
  position:absolute;
  left:0;
  top:16px;
  bottom:16px;
  width:5px;
  border-radius:0 999px 999px 0;
  background:var(--status-color);
}
.appointment-card.is-dragging { opacity:.58; transform:scale(.98); }
.cal-event {
  background:linear-gradient(135deg, color-mix(in srgb, var(--status-color, var(--pf-cyan)) 20%, white), rgba(255,255,255,.82));
  border:1px solid color-mix(in srgb, var(--status-color, var(--pf-cyan)) 34%, transparent);
  box-shadow:0 8px 18px color-mix(in srgb, var(--status-color, var(--pf-cyan)) 16%, rgba(38,48,95,.08));
}
.calendar-pro { margin-top: 0; }
.calendar-pro-header { padding-block: 14px; }
.agenda-list-grid { row-gap: clamp(14px, 1.7vw, 24px) !important; }
@media (max-width: 760px) {
  .agenda-floating-actions, .agenda-floating-actions .actions { width:100%; }
  .agenda-floating-actions .btn, .agenda-view-tabs, .agenda-view-tabs button { flex:1; justify-content:center; }
  .status-board { grid-auto-columns:minmax(250px, 86vw); }
}

/* v1.0 Financeiro */
.finance-page.compact-stack { gap: 26px; }
.outside-toolbar.finance-toolbar {
  display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap;
  margin-bottom: 2px;
}
.no-card-actions { margin:0; }
.finance-grid-2 { grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 26px; }
.finance-card { min-height: 320px; }
.finance-bars, .finance-category-list { display:grid; gap: 12px; margin-top: 18px; }
.finance-bar-row { display:grid; grid-template-columns: 58px minmax(0,1fr) 150px; gap: 12px; align-items:center; color: var(--pf-muted); font-weight: 850; }
.finance-bar-row small { text-align:right; font-size:.76rem; }
.finance-bar-track { height: 14px; border-radius:999px; background: rgba(13,57,94,.08); position:relative; overflow:hidden; box-shadow: inset 0 0 0 1px rgba(255,255,255,.9); }
.finance-bar-track i, .finance-bar-track b { position:absolute; left:0; top:0; height:50%; border-radius:999px; display:block; }
.finance-bar-track i { background: linear-gradient(90deg, var(--pf-cyan), var(--pf-cyan-soft)); }
.finance-bar-track b { top:50%; background: linear-gradient(90deg, var(--pf-pink), var(--pf-pink-strong)); opacity:.88; }
.finance-category-pill { display:grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 12px; align-items:center; padding: 13px 14px; border-radius: 18px; border:1px solid var(--pf-border); background: rgba(255,255,255,.75); box-shadow: 0 10px 26px rgba(7,27,44,.06); }
.finance-category-pill strong { color: var(--pf-blue-900); text-transform:capitalize; }
.finance-category-pill span { font-size:.78rem; font-weight:850; color: var(--pf-muted); }
.finance-category-pill b { grid-row: 1 / span 2; grid-column:2; color: var(--pf-blue-900); }
.finance-category-pill.expense { border-color: rgba(248,161,152,.28); background: rgba(255,231,228,.42); }
.finance-list-card { padding: 22px; }
.table-header-filters { align-items:flex-start; gap: 16px; }
.filter-row { display:grid; grid-template-columns: minmax(220px,1.4fr) minmax(120px,.65fr) minmax(130px,.65fr) minmax(150px,.8fr); gap:12px; width:min(100%, 760px); }
.finance-cards-list { display:grid; gap: 12px; max-height: 620px; overflow:auto; padding: 4px 8px 4px 2px; }
.finance-transaction-card { position:relative; display:grid; grid-template-columns: 52px minmax(0,1fr) auto; gap:14px; align-items:center; padding: 16px 52px 16px 16px; border-radius: 22px; background: rgba(255,255,255,.82); border:1px solid var(--pf-border); box-shadow: 0 12px 34px rgba(7,27,44,.07); }
.finance-transaction-card.income { border-left: 6px solid var(--pf-cyan); }
.finance-transaction-card.expense { border-left: 6px solid var(--pf-pink-strong); }
.finance-transaction-card.paid { opacity:.86; }
.finance-transaction-card.canceled { opacity:.55; filter:grayscale(.2); }
.avatar-initials { width:52px; height:52px; border-radius:17px; display:grid; place-items:center; font-weight:950; color:#fff; background: linear-gradient(135deg, var(--pf-cyan), var(--pf-pink)); box-shadow: 0 12px 24px rgba(0,169,183,.18); }
.finance-transaction-title { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.finance-transaction-title strong { color: var(--pf-blue-900); }
.finance-transaction-title span { padding: 5px 9px; border-radius:999px; font-size:.72rem; font-weight:950; color: var(--pf-blue-900); background: rgba(0,169,183,.10); }
.finance-transaction-main p { margin:5px 0 2px; }
.finance-transaction-main small { color: var(--pf-muted); font-weight:800; }
.finance-transaction-value { display:grid; justify-items:end; gap:8px; min-width: 130px; }
.finance-transaction-value strong { font-size:1.12rem; color: var(--pf-blue-900); }
.btn-small { min-height: 34px; padding: 0 12px; border-radius: 12px; font-size:.82rem; }
.list-footer-actions { display:flex; justify-content:center; margin-top: 16px; }
.premium-modal.finance-modal-card { width:min(94vw, 840px); }
.premium-modal.small-modal { width:min(94vw, 620px); }
.form-field.wide { grid-column: 1 / -1; }
.empty-state { padding: 26px; border:1px dashed var(--pf-border-strong); border-radius:22px; text-align:center; color:var(--pf-muted); background:rgba(255,255,255,.62); }
@media (max-width: 1080px) { .finance-grid-2 { grid-template-columns:1fr; } .filter-row { grid-template-columns:1fr 1fr; width:100%; } }
@media (max-width: 720px) { .finance-transaction-card { grid-template-columns: 42px minmax(0,1fr); padding-right:42px; } .finance-transaction-value { grid-column: 1 / -1; justify-items:start; } .filter-row { grid-template-columns:1fr; } .finance-bar-row { grid-template-columns:1fr; } .finance-bar-row small { text-align:left; } }

/* v1.1 - Comandas e Recibos */
.compact-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.document-modal-card { max-width: 980px; }
.document-preview { padding: 8px; }
.print-document {
  background: #fff;
  color: var(--pf-graphite);
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 28px;
  padding: clamp(20px, 3vw, 34px);
  box-shadow: 0 22px 64px rgba(7,27,44,.10);
}
.doc-brand { display:flex; align-items:center; gap:18px; padding-bottom:18px; border-bottom:1px solid rgba(13,57,94,.10); }
.doc-brand img { width: 190px; max-width: 46vw; height:auto; object-fit:contain; }
.doc-brand strong { display:block; font-size:1.06rem; }
.doc-brand small { display:block; color:var(--pf-muted); margin-top:4px; }
.doc-head { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; padding:22px 0; }
.doc-head h2 { margin-bottom: 6px; }
.doc-number { min-width:150px; padding:16px; border-radius:20px; background:linear-gradient(135deg, rgba(255,246,190,.88), rgba(255,255,255,.88)); border:1px solid rgba(240,180,40,.22); text-align:right; }
.doc-number span { display:block; color:var(--pf-muted); font-weight:900; font-size:.78rem; text-transform:uppercase; }
.doc-number strong { display:block; margin-top:4px; color:var(--pf-blue-800); }
.doc-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.doc-grid > div { border:1px solid rgba(13,57,94,.10); background:rgba(247,251,255,.76); border-radius:18px; padding:13px; }
.doc-grid span { display:block; color:var(--pf-muted); font-size:.76rem; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.doc-grid strong { display:block; margin-top:5px; }
.doc-grid small { display:block; margin-top:3px; color:var(--pf-muted); }
.doc-table { width:100%; border-collapse:separate; border-spacing:0 8px; margin-top:10px; }
.doc-table th { text-align:left; color:var(--pf-muted); font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; padding:10px; }
.doc-table td { background:rgba(247,251,255,.78); border-top:1px solid rgba(13,57,94,.08); border-bottom:1px solid rgba(13,57,94,.08); padding:12px 10px; }
.doc-table td:first-child { border-left:1px solid rgba(13,57,94,.08); border-radius:14px 0 0 14px; }
.doc-table td:last-child { border-right:1px solid rgba(13,57,94,.08); border-radius:0 14px 14px 0; text-align:right; font-weight:900; }
.doc-totals { margin-left:auto; margin-top:18px; width:min(100%, 420px); display:grid; gap:9px; }
.doc-totals > div { display:flex; justify-content:space-between; gap:16px; border:1px solid rgba(13,57,94,.10); background:#fff; border-radius:16px; padding:12px 14px; }
.doc-totals span { color:var(--pf-muted); font-weight:850; }
.doc-total-final { background:linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.14)) !important; border-color:rgba(0,169,183,.18) !important; }
.doc-total-final strong { font-size:1.25rem; color:var(--pf-blue-800); }
.doc-footer { margin-top:22px; padding-top:16px; border-top:1px solid rgba(13,57,94,.10); color:var(--pf-muted); font-weight:800; }
.public-doc-body { background:linear-gradient(135deg,#fff9f8,#f4fbff); }
.public-doc-wrap { width:min(100% - 28px, 980px); margin:32px auto; }
.public-doc-actions { display:flex; justify-content:flex-end; margin-top:16px; }
@media (max-width: 760px) { .doc-head { flex-direction:column; } .doc-grid { grid-template-columns:1fr 1fr; } .doc-brand { align-items:flex-start; flex-direction:column; } }
@media print {
  body, .public-doc-body { background:#fff !important; }
  .sidebar, .topbar, .mobile-topbar, .modal-header, .modal-footer, .public-doc-actions, .loading-overlay { display:none !important; }
  .main, .content, .modal, .modal-card, .modal-body, .public-doc-wrap { display:block !important; padding:0 !important; margin:0 !important; width:100% !important; max-width:none !important; overflow:visible !important; box-shadow:none !important; }
  .print-document { box-shadow:none !important; border:0 !important; border-radius:0 !important; }
}


/* v1.2 CRM & Marketing */
.crm-board { display:grid; grid-template-columns:repeat(6, minmax(220px, 1fr)); gap:16px; overflow:auto; padding-bottom:8px; }
.crm-col { min-height:260px; border:1px solid rgba(13,57,94,.10); border-radius:24px; padding:14px; background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.68)); box-shadow:0 16px 42px rgba(7,27,44,.07); }
.crm-col-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; padding-bottom:10px; border-bottom:1px solid rgba(13,57,94,.08); }
.crm-col-head strong { color:var(--pf-graphite); letter-spacing:-.025em; }
.crm-col-head span { min-width:30px; height:30px; display:grid; place-items:center; border-radius:999px; color:#fff; font-weight:950; background:var(--stage-color, var(--pf-cyan)); }
.crm-card { border-left:4px solid var(--stage-color, var(--pf-cyan)); margin-bottom:12px; cursor:grab; }
.crm-card p { margin:.45rem 0 0; font-size:.86rem; }
.compact-card { padding:16px; border-radius:20px; }
.empty-small { color:var(--pf-muted); font-weight:800; padding:10px; }
.compact-head { margin-bottom:12px; }
@media (max-width: 980px){ .crm-board { grid-template-columns:repeat(6, minmax(210px, 78vw)); } }

/* v1.3 Roleta de Mimos */
.roleta-layout { align-items: stretch; }
.roleta-wheel-panel { overflow: hidden; }
.roleta-stage { display: grid; gap: 20px; justify-items: center; padding: 10px 0 4px; }
.roleta-wheel {
  width: min(340px, 78vw);
  aspect-ratio: 1;
  border-radius: 999px;
  display: grid;
  place-items: center;
  text-align: center;
  position: relative;
  overflow: hidden;
  border: 10px solid rgba(255,255,255,.86);
  box-shadow: 0 28px 90px rgba(7,27,44,.18), inset 0 0 0 1px rgba(13,57,94,.12);
  background:
    conic-gradient(from -20deg, rgba(0,169,183,.22), rgba(248,161,152,.34), rgba(255,239,156,.62), rgba(0,169,183,.26), rgba(248,161,152,.36), rgba(255,255,255,.82), rgba(0,169,183,.22));
}
.roleta-wheel::before {
  content: "";
  position: absolute;
  inset: 18px;
  border-radius: inherit;
  background: rgba(255,255,255,.70);
  backdrop-filter: blur(10px);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75);
}
.roleta-wheel span,
.roleta-wheel strong { position: relative; z-index: 2; }
.roleta-wheel span { font-size: 3.5rem; filter: drop-shadow(0 10px 18px rgba(7,27,44,.15)); }
.roleta-wheel strong { display: block; max-width: 210px; font-size: 1.2rem; letter-spacing: -.03em; color: var(--pf-blue-900); }
.roleta-wheel.spinning { animation: pf-spin-wheel .9s cubic-bezier(.18,.9,.24,1.02) both; }
@keyframes pf-spin-wheel { from { transform: rotate(0deg) scale(.98); } to { transform: rotate(1120deg) scale(1); } }
.roleta-spin-btn { min-width: 220px; justify-content: center; }
.roleta-history { max-height: 430px; overflow: auto; padding-right: 6px; }
.gift-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 22px; margin-top: 22px; }
.gift-card { border-top: 5px solid var(--gift-accent, var(--pf-cyan)); }
.gift-card h3 { margin-top: 14px; }
.gift-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.gift-meta span { border: 1px solid var(--pf-border); border-radius: 15px; padding: 10px; background: rgba(255,255,255,.72); color: var(--pf-muted); font-size: .78rem; font-weight: 850; }
.gift-meta strong { display: block; color: var(--pf-blue-900); font-size: .95rem; margin-top: 3px; }
.report-card { border: 1px solid var(--pf-border); background: rgba(255,255,255,.82); border-radius: 22px; padding: 18px; margin-bottom: 18px; box-shadow: var(--pf-shadow-soft); }
@media (max-width: 860px) { .gift-grid { grid-template-columns: 1fr; } .gift-meta { grid-template-columns: 1fr; } }

/* v1.4.1 - Assistente IA global */
.ai-hero-card {
  background:
    radial-gradient(circle at 8% 20%, rgba(255, 242, 167, .55), transparent 32%),
    radial-gradient(circle at 86% 12%, rgba(255, 157, 152, .28), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(246,251,255,.88));
  border: 1px solid rgba(255, 157, 152, .22);
}
.ai-grid { align-items: stretch; }
.ai-meta-list {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  color: var(--pf-graphite);
}
.ai-meta-list > div {
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(13,57,94,.09);
}
.ai-answer {
  min-height: 170px;
  border-radius: 22px;
  padding: 20px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(13,57,94,.09);
}
.ai-answer-block h3 { margin-top: 0; }
.whatsapp-ready {
  margin-top: 16px;
  padding: 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.16));
  border: 1px solid rgba(0,169,183,.18);
  color: var(--pf-blue-900);
  line-height: 1.55;
}


/* v1.4.2 notificações, relatórios e inadimplentes */
.notifications-wrap { position: relative; z-index: 6100; }
.notification-btn { position: relative; }
.notification-badge { position:absolute; right:-6px; top:-7px; min-width:21px; height:21px; padding:0 6px; border-radius:999px; background:linear-gradient(135deg,#F8A198,#F8A198); color:#fff; font-size:.72rem; font-weight:950; display:grid; place-items:center; box-shadow:0 10px 22px rgba(248,161,152,.28); }
.notification-menu { position:absolute; right:0; top:54px; width:min(390px, calc(100vw - 28px)); background:rgba(255,255,255,.98); border:1px solid rgba(13,57,94,.12); border-radius:24px; box-shadow:0 28px 90px rgba(7,27,44,.22); padding:14px; z-index:99999; animation:pf-fade-up .18s var(--pf-ease) both; }
.notification-menu header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 6px 12px; border-bottom:1px solid rgba(13,57,94,.08); }
.notification-menu header small { color:var(--pf-muted); font-weight:850; }
.notification-list-mini { display:grid; gap:8px; max-height:320px; overflow:auto; padding:10px 2px; }
.notification-mini-item { display:grid; grid-template-columns:28px 1fr; gap:6px 10px; text-decoration:none; padding:12px; border-radius:16px; background:rgba(247,251,255,.86); border:1px solid rgba(13,57,94,.08); }
.notification-mini-item.unread { background:linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.11)); border-color:rgba(0,169,183,.22); }
.notification-mini-item span { grid-row:1 / span 2; }
.notification-mini-item strong { color:var(--pf-graphite); font-size:.92rem; }
.notification-mini-item small { color:var(--pf-muted); line-height:1.35; }
.notification-empty { padding:18px; color:var(--pf-muted); text-align:center; }
.notification-all { width:100%; justify-content:center; margin-top:8px; }
.notifications-list { display:grid; gap:14px; }
.notification-card { display:grid; grid-template-columns:auto 1fr auto; gap:16px; align-items:flex-start; border-left:5px solid var(--status-color, var(--pf-cyan)); }
.notification-card.unread { background:linear-gradient(135deg, rgba(255,255,255,.96), rgba(0,169,183,.07)); }
.notification-dot { width:42px; height:42px; border-radius:16px; display:grid; place-items:center; background:linear-gradient(135deg, rgba(0,169,183,.13), rgba(248,161,152,.16)); }
.report-insight-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.insight-card { border-left:5px solid var(--pf-cyan); }
.insight-card h3 { margin-bottom:8px; }
.insight-card dl { margin:0; display:grid; gap:10px; }
.insight-card dt { font-weight:950; color:var(--pf-blue-800); }
.insight-card dd { margin:0; color:var(--pf-muted); line-height:1.55; }
.finance-tabs { display:flex; gap:10px; flex-wrap:wrap; margin:4px 0 18px; }
.finance-tab { border:1px solid var(--pf-border); background:#fff; color:var(--pf-blue-800); border-radius:999px; padding:11px 16px; font-weight:950; cursor:pointer; }
.finance-tab.active { background:linear-gradient(135deg,var(--pf-cyan),var(--pf-pink)); color:#fff; border-color:transparent; box-shadow:0 12px 28px rgba(0,169,183,.16); }
.defaulter-card { border-left:5px solid #ef4444; }
.payment-grid-mini { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
@media (max-width: 860px) { .notification-menu { right:-70px; } .report-insight-grid, .payment-grid-mini { grid-template-columns:1fr; } .notification-card { grid-template-columns:auto 1fr; } }

/* v1.5.1 — Polimento de copy, consistência visual e interação real da agenda */
:root {
  --pf-page-section-gap: clamp(24px, 3.1vw, 42px);
  --pf-card-gap: clamp(18px, 2vw, 28px);
  --pf-hero-pad: clamp(26px, 4vw, 46px);
}
.content-frame {
  display: grid;
  gap: var(--pf-page-section-gap) !important;
  padding-bottom: clamp(36px, 5vw, 72px);
}
.hero-panel,
.module-hero,
.ai-hero-card,
.landing-hero {
  border-radius: 34px !important;
  padding: var(--pf-hero-pad) !important;
  border: 1px solid rgba(13,57,94,.12) !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.94), rgba(255,255,255,.76)),
    radial-gradient(circle at 12% 20%, rgba(0,169,183,.14), transparent 34%),
    radial-gradient(circle at 88% 8%, rgba(248,161,152,.20), transparent 36%) !important;
  box-shadow: 0 24px 80px rgba(7,27,44,.10) !important;
}
.hero-panel h1,
.module-hero h1,
.ai-hero-card h1,
.landing-hero h1 {
  letter-spacing: -.055em;
  line-height: .98;
  margin-bottom: 10px;
}
.hero-panel p:not(.eyebrow),
.module-hero p:not(.eyebrow),
.ai-hero-card p:not(.eyebrow),
.landing-hero p:not(.eyebrow) {
  max-width: 900px;
  font-size: clamp(.98rem, 1.05vw, 1.08rem);
}
.panel,
.module-card,
.surface-panel,
.settings-card,
.table-wrap,
.calendar-pro,
.dashboard-main-panel,
.mini-panel,
.landing-section {
  border-radius: 28px !important;
  border: 1px solid rgba(13,57,94,.10) !important;
  background: rgba(255,255,255,.86) !important;
  box-shadow: 0 16px 48px rgba(7,27,44,.075) !important;
}
.module-card,
.panel,
.settings-card,
.dashboard-main-panel {
  padding: clamp(20px, 2.4vw, 30px) !important;
}
.big-number-grid,
.metric-grid,
.stats-grid,
.summary-grid,
.kanban-grid,
.cards-list,
.finance-grid-2,
.report-grid,
.config-grid {
  gap: var(--pf-card-gap) !important;
}
.filter-row,
.section-toolbar,
.panel-head,
.compact-head,
.table-toolbar,
.agenda-floating-actions {
  border-radius: 22px;
  gap: 14px !important;
}
.filter-row {
  width: 100% !important;
  padding: 14px;
  background: rgba(255,255,255,.68);
  border: 1px solid rgba(13,57,94,.08);
}
.filter-row .input,
.filter-row .select,
.filter-row .btn {
  min-height: 46px;
}
.form-field span,
.form-field label,
.table-toolbar strong,
.section-toolbar h3,
.panel-head h2 {
  color: var(--pf-blue-900);
}
.eyebrow {
  letter-spacing: .075em;
  color: var(--pf-pink-strong);
}
.card-kebab-wrap .card-menu,
.profile-menu,
.notification-menu {
  z-index: 99999 !important;
}
.calendar-drop-target {
  transition: background .18s var(--pf-ease), box-shadow .18s var(--pf-ease), transform .18s var(--pf-ease);
}
.calendar-drop-target.is-over,
.status-dropzone.is-over {
  background: linear-gradient(135deg, rgba(0,169,183,.13), rgba(248,161,152,.15)) !important;
  box-shadow: inset 0 0 0 2px rgba(0,169,183,.35), 0 14px 34px rgba(7,27,44,.08);
  transform: translateY(-1px);
}
.cal-event[draggable="true"],
.appointment-card[draggable="true"] {
  cursor: grab;
}
.cal-event.is-dragging,
.appointment-card.is-dragging {
  opacity: .62;
  transform: scale(.985);
}
.cal-event {
  border-left: 4px solid var(--status-color, var(--pf-cyan)) !important;
  background: linear-gradient(135deg, color-mix(in srgb, var(--status-color, #00A9B7) 15%, #ffffff), rgba(255,255,255,.9)) !important;
}
.page-loading-modal {
  z-index: 120000 !important;
}
@media (max-width: 860px) {
  .content-frame { gap: clamp(18px, 5vw, 28px) !important; }
  .hero-panel, .module-hero, .ai-hero-card, .landing-hero { border-radius: 26px !important; }
  .filter-row { grid-template-columns: 1fr !important; }
}

/* v1.5.3 — WhatsApp híbrido */
.whatsapp-chip { display:inline-flex; align-items:center; gap:8px; border-radius:999px; padding:8px 12px; background:linear-gradient(135deg, rgba(37,211,102,.12), rgba(0,169,183,.10)); color:#12623a; border:1px solid rgba(37,211,102,.24); font-weight:900; }
button[data-whatsapp-action], .btn-whatsapp { background:linear-gradient(135deg, #25D366, #16A34A); color:#fff; border:0; }
button[data-whatsapp-action]:hover, .btn-whatsapp:hover { transform:translateY(-1px); filter:saturate(1.05); }
.card-menu button[data-whatsapp-action] { color:#12623a; }
.whatsapp-preview-box { white-space:pre-wrap; line-height:1.65; }

/* v1.5.4 ajustes finais de operação */
.sidebar-footer,
.sidebar-footer strong,
.sidebar-footer .copyright {
  color: rgba(255,255,255,.94) !important;
}
.history-list { display:grid; gap:14px; }
.history-card { padding:18px; }
.row-actions { display:flex; gap:8px; align-items:center; justify-content:flex-end; }
.payment-info-line { display:block; margin-top:4px; color:rgba(38,48,95,.68); font-weight:800; }
.pf-loading-modal, .loading-modal, .global-loading { z-index:999999 !important; }

/* v1.5.5 - grupos de serviços no novo agendamento */
.service-type-group {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 22px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 10px 30px rgba(7,27,44,.06);
}
.service-type-group + .service-type-group { margin-top: 14px; }
.service-type-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.service-type-group-head strong { color: var(--pf-blue-900); letter-spacing:-.02em; }
.service-type-group-head small { color: var(--pf-muted); font-weight:800; }
.service-check-grid-inner { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }

/* v1.5.6 - Agenda lookup por WhatsApp */
.appointment-lookup-card {
  margin-bottom: 18px;
  border-style: dashed;
  background: linear-gradient(135deg, rgba(255, 248, 221, .88), rgba(255,255,255,.92));
}
.muted-text { margin: 6px 0 0; color: var(--pf-muted); font-size: .88rem; }

/* v1.5.7 — Dashboard com copy final e hierarquia operacional */
.dashboard-hero {
  align-items: center;
  gap: 18px;
  padding-top: clamp(22px, 2.8vw, 34px);
  padding-bottom: clamp(22px, 2.8vw, 34px);
}
.dashboard-hero-copy { max-width: 900px; }
.dashboard-hero .eyebrow { margin-bottom: 6px; }
.dashboard-hero h1 {
  max-width: 960px;
  line-height: 1.02;
  margin-bottom: 10px;
}
.dashboard-hero p {
  margin-top: 0;
  margin-bottom: 0;
  line-height: 1.52;
  max-width: 820px;
}
.dashboard-metrics-grid {
  margin: clamp(16px, 2vw, 24px) 0 clamp(22px, 2.6vw, 34px) !important;
  gap: clamp(14px, 1.6vw, 20px);
}
.dashboard-metric-card {
  min-height: 150px;
  padding: 16px;
}
.dashboard-metric-card span { margin-top: 12px; }
.dashboard-metric-card strong { margin-top: 5px; }
.dashboard-metric-card small { margin-top: 4px; }
.dashboard-single-row,
.dashboard-full-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--pf-card-row-gap);
  margin: 0;
}
.dashboard-alert-insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--pf-card-row-gap);
  margin: 0;
}
.dashboard-status-panel {
  display: grid;
  gap: clamp(18px, 2vw, 26px);
}
.dashboard-status-cards-block,
.dashboard-upcoming-block {
  border: 1px solid rgba(13,57,94,.08);
  background: rgba(255,255,255,.54);
  border-radius: 24px;
  padding: clamp(16px, 2vw, 22px);
}
.dashboard-status-cards-block .panel-heading.compact,
.dashboard-upcoming-block .panel-heading.compact {
  margin-top: 0;
}
.dashboard-card-list {
  max-height: 360px;
}
.dashboard-calendar .calendar-day {
  min-height: 132px;
}
.dashboard-json { display: none; }
.panel-heading {
  margin-bottom: 12px;
}
.panel-heading .eyebrow {
  margin-bottom: 4px;
}
.panel-heading h2 {
  line-height: 1.08;
}
.table-toolbar {
  margin-bottom: 12px;
}
.infinite-loader {
  display: none;
}
@media (max-width: 980px) {
  .dashboard-alert-insight-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .dashboard-hero { align-items: flex-start; }
}


/* v1.5.8 — Dashboard: loading seguro, saúde em cards e coluna pagamento */
body:not(.has-page-loading) { cursor: auto; }
.payment-chip {
  --payment-color: var(--pf-cyan);
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width: 100%;
  padding:7px 10px;
  border-radius:999px;
  background: color-mix(in srgb, var(--payment-color) 12%, white);
  border:1px solid color-mix(in srgb, var(--payment-color) 34%, rgba(13,57,94,.12));
  color: var(--pf-blue-900);
  font-weight: 900;
  font-size: .78rem;
  white-space: nowrap;
}
.payment-chip::before {
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--payment-color);
  box-shadow:0 0 0 3px color-mix(in srgb, var(--payment-color) 18%, transparent);
}
.payment-chip.small { padding:5px 8px; font-size:.72rem; }
.dashboard-health-board {
  margin-top: 14px;
  grid-auto-columns: minmax(290px, 1fr);
  padding-bottom: 12px;
}
.dashboard-status-column { min-height: 300px; }
.dashboard-status-column header div {
  display:grid;
  gap:7px;
}
.dashboard-status-column header small {
  color: var(--pf-muted);
  font-weight: 850;
}
.dashboard-health-dropzone { min-height: 205px; }
.dashboard-health-dropzone .dashboard-appointment-card {
  min-height: 136px;
}
.dashboard-health-dropzone .appointment-meta {
  gap:8px;
  align-items:center;
}
.dashboard-table-wrap th:nth-child(7),
.dashboard-table-wrap td:nth-child(7) {
  min-width: 170px;
}
.dashboard-table-wrap td { vertical-align: middle; }
@media (max-width: 860px) {
  .dashboard-health-board { grid-auto-columns: minmax(260px, 86vw); }
  .payment-chip { white-space: normal; }
}

/* v1.5.9 — Dashboard UX: tabela operacional, calendário com slots e edição rápida */
.dashboard-hero { padding-top: clamp(18px, 2.2vw, 28px) !important; padding-bottom: clamp(16px, 2vw, 26px) !important; }
.dashboard-hero h1 { margin-bottom: 7px !important; }
.dashboard-hero p { line-height: 1.45 !important; }
.dashboard-metrics-grid { margin: clamp(10px, 1.4vw, 16px) 0 clamp(14px, 1.8vw, 22px) !important; }
.dashboard-single-row { margin-top: 0 !important; }
.dashboard-table-filter { margin: 2px 0 14px; display:flex; justify-content:stretch; }
.dashboard-table-filter .input { width:100%; max-width:none; min-height:50px; }
#agenda-table th[data-sort] { cursor:pointer; user-select:none; white-space:nowrap; }
#agenda-table th[data-sort]:hover { color:var(--pf-pink-strong); }
#agenda-table th.is-sorted .sort-arrow { color:var(--pf-pink-strong); }
#agenda-table th.is-sorted[data-direction="asc"] .sort-arrow::after { content:" ↑"; }
#agenda-table th.is-sorted[data-direction="desc"] .sort-arrow::after { content:" ↓"; }
.pet-cell, .dashboard-card-petline, .dashboard-modal-pet { display:flex; align-items:center; gap:10px; min-width:0; }
.table-pet-avatar { width:42px; height:42px; border-radius:15px; object-fit:cover; flex:0 0 auto; box-shadow:0 10px 20px rgba(7,27,44,.10); }
.table-pet-avatar.small { width:36px; height:36px; border-radius:13px; font-size:.82rem; }
.table-pet-avatar.avatar-fallback { display:grid; place-items:center; color:#fff; font-weight:950; background:linear-gradient(135deg, var(--pf-cyan), var(--pf-pink)); }
.btn-compact { min-height:34px; padding:8px 12px; border-radius:12px; font-size:.78rem; }
.panel-actions-bottom { display:flex; justify-content:flex-end; margin-top:16px; }
.dashboard-calendar-body { min-width:900px; }
.dashboard-calendar .calendar-day { cursor:pointer; gap:7px; }
.dashboard-calendar .calendar-day:hover { box-shadow: inset 0 0 0 2px rgba(0,169,183,.22); }
.slot-plus { border:1px dashed rgba(0,169,183,.45); background:rgba(0,169,183,.08); color:var(--pf-blue-900); border-radius:12px; padding:7px 9px; font-weight:950; text-align:left; cursor:pointer; }
.slot-plus:hover { background:linear-gradient(135deg, rgba(0,169,183,.16), rgba(248,161,152,.16)); }
.calendar-more { color:var(--pf-muted); font-weight:850; }
.dashboard-week-grid { display:grid; grid-template-columns:78px repeat(7, minmax(150px, 1fr)); min-width:1040px; }
.dashboard-day-grid { display:grid; grid-template-columns:88px minmax(620px, 1fr); min-width:820px; }
.dashboard-week-grid .time-cell, .dashboard-day-grid .time-cell { display:grid; gap:3px; align-content:center; }
.dashboard-week-grid .slot-cell, .dashboard-day-grid .slot-cell { min-height:92px; }
.slot-cell.has-free-slot { background:linear-gradient(135deg, rgba(255,255,255,.82), rgba(0,169,183,.06)); }
.modal-summary { border:1px solid rgba(13,57,94,.10); background:rgba(255,255,255,.72); border-radius:18px; padding:14px; margin-bottom:16px; }
.dashboard-table-wrap th:nth-child(9), .dashboard-table-wrap td:nth-child(9) { min-width:110px; text-align:right; }
@media (max-width: 860px) { .dashboard-week-grid { min-width:980px; } .dashboard-day-grid { min-width:760px; } }

/* v1.5.10 — Correção Dashboard: saúde da agenda e calendário por status */
.dashboard-status-panel {
  overflow: hidden;
}
.dashboard-health-board {
  display: grid !important;
  grid-auto-flow: row !important;
  grid-auto-columns: initial !important;
  grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
  gap: 16px;
  overflow: visible !important;
  padding: 4px 0 10px !important;
  margin-top: 12px;
}
.dashboard-status-column {
  min-width: 0;
  min-height: 238px;
  border-radius: 22px;
  padding: 13px;
}
.dashboard-status-column header {
  align-items: flex-start;
  margin-bottom: 10px;
}
.dashboard-status-column header .status-pill {
  max-width: 100%;
  white-space: normal;
  line-height: 1.18;
}
.dashboard-health-dropzone {
  min-height: 145px;
  gap: 10px;
}
.dashboard-health-dropzone .dashboard-appointment-card {
  min-height: auto;
  padding: 13px 14px 13px 17px;
  border-radius: 18px;
}
.dashboard-health-dropzone .dashboard-appointment-card .kebab {
  top: 8px;
  right: 8px;
}
.dashboard-health-dropzone .appointment-time {
  font-size: .82rem;
}
.dashboard-health-dropzone .dashboard-card-petline strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dashboard-health-dropzone .appointment-meta {
  display:flex;
  flex-wrap:wrap;
}
.dashboard-upcoming-block {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--pf-border);
}
.status-calendar-event {
  --status-soft: color-mix(in srgb, var(--status-color) 14%, white);
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(135deg, color-mix(in srgb, var(--status-color) 20%, white), rgba(255,255,255,.9)) !important;
  border: 1px solid color-mix(in srgb, var(--status-color) 42%, rgba(13,57,94,.10)) !important;
  box-shadow: 0 9px 20px color-mix(in srgb, var(--status-color) 18%, rgba(7,27,44,.08)) !important;
}
.status-calendar-event::before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:5px;
  background: var(--status-color);
}
.status-calendar-event strong,
.status-calendar-event small {
  position:relative;
  z-index:1;
  padding-left:4px;
}
.dashboard-calendar .calendar-count {
  background: color-mix(in srgb, var(--pf-cyan) 16%, white);
  color: var(--pf-blue-900);
}
@media (max-width: 900px) {
  .dashboard-health-board { grid-template-columns: 1fr; }
}

/* v1.5.11 — Agenda: carregamento único, copy de produção e filtros compactos */
.agenda-hero-compact {
  gap: clamp(10px, 1.2vw, 16px) !important;
  padding-block: clamp(22px, 2.8vw, 34px) !important;
}
.agenda-hero-compact .page-heading-row {
  margin-bottom: 0 !important;
}
.agenda-hero-compact h1 {
  margin-bottom: 6px !important;
}
.agenda-hero-compact p:not(.eyebrow) {
  max-width: 840px;
  line-height: 1.52;
}
.agenda-filter-card {
  min-height: auto !important;
  padding: clamp(14px, 1.6vw, 20px) !important;
}
.agenda-filter-card .section-toolbar,
.agenda-filter-card .compact-toolbar {
  align-items: center;
  margin-bottom: 0 !important;
}
.agenda-filter-card h3 {
  margin-bottom: 4px !important;
}
.agenda-filter-card p {
  font-size: .92rem;
  line-height: 1.42;
}
.agenda-filter-grid {
  grid-template-columns: 170px 180px 210px minmax(260px, 1fr) !important;
  gap: 10px !important;
  margin-top: 12px !important;
  align-items: end;
}
.agenda-filter-grid .form-field {
  gap: 6px;
}
.agenda-filter-grid .input,
.agenda-filter-grid .select {
  min-height: 42px;
  border-radius: 13px;
}
@media (max-width: 1180px) {
  .agenda-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 720px) {
  .agenda-filter-grid { grid-template-columns: 1fr !important; }
}


/* v1.5.12 — Modal premium de Novo Agendamento */
dialog.modal-shell.agenda-appointment-modal {
  border: 0;
  padding: 0;
  background: transparent;
  width: min(920px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  margin: auto;
  overflow: visible;
}
dialog.modal-shell.agenda-appointment-modal::backdrop {
  background: rgba(7, 27, 44, .48);
  backdrop-filter: blur(9px);
}
.agenda-appointment-modal-card {
  width: 100%;
  max-height: min(86vh, 820px);
  border-radius: 28px;
  border: 1px solid rgba(13,57,94,.12);
  background: rgba(255,255,255,.97);
  box-shadow: 0 32px 120px rgba(7,27,44,.24);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.agenda-modal-header {
  min-height: auto !important;
  padding: 22px 24px 18px !important;
  background: rgba(255,255,255,.94) !important;
  color: var(--pf-graphite) !important;
  border-bottom: 1px solid rgba(13,57,94,.08) !important;
  align-items: flex-start !important;
}
.agenda-modal-header .eyebrow {
  margin: 0 0 6px;
}
.agenda-modal-header h2 {
  margin: 0;
  color: var(--pf-blue-900);
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  letter-spacing: -.04em;
  line-height: 1.05;
}
.modal-title-block {
  display: grid;
  gap: 4px;
  max-width: 720px;
}
.modal-subtitle {
  margin: 4px 0 0;
  color: var(--pf-muted);
  font-size: .92rem;
  line-height: 1.45;
  font-weight: 700;
}
.agenda-appointment-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none !important;
  padding: 22px 24px !important;
  overflow: auto;
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(247,251,255,.88));
}
.agenda-appointment-modal .modal-footer {
  padding: 16px 24px !important;
  background: rgba(255,255,255,.96) !important;
  border-top: 1px solid rgba(13,57,94,.08) !important;
  box-shadow: 0 -18px 42px rgba(7,27,44,.055);
}
.agenda-appointment-modal .appointment-lookup-card {
  margin-bottom: 18px;
  border-radius: 24px;
}
.agenda-appointment-modal .form-grid {
  align-items: start;
}
.agenda-appointment-modal .soft-card {
  border-radius: 24px;
}
.modal-close-btn {
  flex: 0 0 auto;
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(13,57,94,.12);
  color: var(--pf-blue-900);
  box-shadow: 0 10px 28px rgba(7,27,44,.08);
}
.modal-close-btn:hover {
  background: linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.14));
  transform: translateY(-1px);
}
@media (max-width: 720px) {
  dialog.modal-shell.agenda-appointment-modal {
    width: calc(100vw - 18px);
    max-width: calc(100vw - 18px);
  }
  .agenda-modal-header,
  .agenda-appointment-modal .modal-body,
  .agenda-appointment-modal .modal-footer {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
  .agenda-appointment-modal .modal-footer {
    display: grid !important;
    grid-template-columns: 1fr;
  }
  .agenda-appointment-modal .modal-footer .btn {
    width: 100%;
    justify-content: center;
  }
}

/* v1.5.13 — Agenda: serviços aparecem somente após seleção do pet */
.agenda-appointment-modal .appointment-services-card {
  margin-top: 20px;
}
.agenda-appointment-modal .appointment-services-card[hidden] {
  display: none !important;
}
.agenda-appointment-modal .appointment-notes-field {
  display: block;
  margin-top: 20px;
}

/* v1.5.14 — Agenda: calendário operacional com fotos, ações e slots */
.agenda-list-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)) !important;
  gap: clamp(18px, 2.2vw, 28px) !important;
  align-items: stretch;
}
.agenda-compact-card {
  min-height: 0 !important;
  padding: 18px !important;
  gap: 12px !important;
  margin: 0 !important;
}
.appointment-card-head {
  display: flex;
  gap: 12px;
  align-items: center;
  padding-right: 42px;
}
.appointment-meta-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
}
.pet-mini-avatar {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(0,169,183,.28), rgba(248,161,152,.32));
  color: var(--pf-blue-900);
  font-weight: 950;
  border: 1px solid rgba(255,255,255,.72);
  box-shadow: 0 10px 22px rgba(7,27,44,.10);
}
.pet-mini-avatar.xs { width: 28px; height: 28px; border-radius: 11px; font-size: .68rem; }
.pet-mini-avatar.sm { width: 38px; height: 38px; border-radius: 14px; font-size: .78rem; }
.pet-mini-avatar.md { width: 52px; height: 52px; border-radius: 17px; font-size: .95rem; }
.pet-mini-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.calendar-appointment-card {
  position: relative;
  display: block;
  width: 100%;
  border: 1px solid color-mix(in srgb, var(--status-color, #00A9B7) 34%, transparent) !important;
  border-left: 5px solid var(--status-color, var(--pf-cyan)) !important;
  border-radius: 15px;
  padding: 8px 34px 8px 8px;
  margin-top: 7px;
  box-shadow: 0 10px 22px rgba(7,27,44,.08);
}
.calendar-appointment-card .card-kebab-wrap { right: 6px; top: 6px; }
.calendar-appointment-card .kebab-btn { width: 27px; height: 27px; border-radius: 10px; font-size: .9rem; }
.calendar-appointment-card .card-menu { top: 32px; right: 0; min-width: 168px; }
.calendar-appointment-card .card-menu a,
.card-menu a {
  display: block;
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 10px;
  border-radius: 11px;
  color: #26305f;
  font-weight: 850;
  cursor: pointer;
  text-decoration: none;
}
.calendar-appointment-card .card-menu a:hover,
.card-menu a:hover { background: var(--pf-menu-hover); }
.cal-event-main {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  cursor: pointer;
}
.cal-event-text { min-width: 0; }
.cal-event-text strong,
.cal-event-text small { display: block; }
.cal-event-text strong { line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cal-event-text small { color: rgba(38,48,95,.70); line-height: 1.25; }
.mini-status-name {
  display: inline-flex;
  margin-top: 4px;
  padding: 2px 7px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--status-color, #00A9B7) 14%, white);
  color: var(--pf-blue-900);
  font-weight: 900;
  font-size: .66rem;
}
.slot-cell-head,
.month-slot-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 30px;
  margin-bottom: 6px;
}
.slot-mini-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: max-content;
  padding: 4px 8px;
  border-radius: 999px;
  font-weight: 950;
  font-size: .68rem;
  border: 1px solid rgba(13,57,94,.10);
  background: rgba(13,57,94,.06);
  color: var(--pf-blue-900);
  white-space: nowrap;
}
.slot-mini-tag.available {
  background: rgba(0,169,183,.12);
  border-color: rgba(0,169,183,.25);
  color: #0d6370;
}
.slot-mini-tag.full {
  background: rgba(248,161,152,.16);
  border-color: rgba(248,161,152,.32);
  color: #9f3d54;
}
.quick-schedule-btn {
  width: 29px;
  height: 29px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(0,169,183,.24);
  border-radius: 11px;
  background: linear-gradient(135deg, var(--pf-cyan), var(--pf-pink));
  color: #fff;
  font-weight: 950;
  cursor: pointer;
  box-shadow: 0 10px 20px rgba(7,27,44,.10);
}
.quick-schedule-btn:hover { transform: translateY(-1px); filter: saturate(1.05); }
.calendar-day .month-slot-row { margin: 3px 0 5px; }
.calendar-day .calendar-appointment-card { padding-right: 30px; }
.calendar-day .calendar-appointment-card:nth-of-type(n+5) { display:none; }
.slot-cell small { color: var(--pf-muted); font-weight: 750; }
@media (max-width: 860px) {
  .agenda-list-grid { grid-template-columns: 1fr !important; gap: 16px !important; }
  .appointment-meta-row { flex-direction: column; align-items: flex-start; }
  .calendar-appointment-card { padding-right: 30px; }
}


/* v1.5.15 — Comanda/recibo em modal dentro da Agenda */
.agenda-document-modal::backdrop { background: rgba(7, 27, 44, .46); backdrop-filter: blur(10px); }
.agenda-document-modal-card { width: min(980px, calc(100vw - 32px)); max-height: min(860px, calc(100vh - 36px)); }
.agenda-document-modal .document-preview { padding: clamp(14px, 2vw, 24px); }
.agenda-inline-document { margin: 0 auto; }
.card-menu button.view-command-modal,
.card-menu button.view-receipt-modal {
  width: 100%;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 10px;
  border-radius: 11px;
  color: #26305f;
  font-weight: 850;
  cursor: pointer;
}
.card-menu button.view-command-modal:hover,
.card-menu button.view-receipt-modal:hover { background: var(--pf-menu-hover); }
@media print {
  body:has(#agenda-document-modal[open]) .shell { display: block; }
  body:has(#agenda-document-modal[open]) .sidebar,
  body:has(#agenda-document-modal[open]) .topbar,
  body:has(#agenda-document-modal[open]) .modal-header,
  body:has(#agenda-document-modal[open]) .modal-footer { display: none !important; }
  body:has(#agenda-document-modal[open]) .modal-card,
  body:has(#agenda-document-modal[open]) .modal-body { box-shadow: none !important; border: 0 !important; max-height: none !important; overflow: visible !important; }
}

/* v1.5.16 — Agenda: modal documentos, slots ao lado do + e status alinhado */
.agenda-document-modal.agenda-appointment-modal::backdrop {
  background: rgba(7, 27, 44, .52);
  backdrop-filter: blur(14px);
}
.agenda-document-modal-card.agenda-appointment-modal-card {
  width: min(980px, calc(100vw - 32px));
  max-height: min(860px, calc(100vh - 36px));
  overflow: hidden;
  border-radius: 32px;
  border: 1px solid rgba(13,57,94,.10);
  background: rgba(255,255,255,.96);
  box-shadow: 0 34px 120px rgba(7,27,44,.24);
}
.agenda-document-modal-card .modal-header {
  min-height: 112px;
  align-items: flex-start;
}
.agenda-document-modal-card .modal-body {
  max-height: calc(100vh - 250px);
  overflow: auto;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,255,.74));
}
.agenda-document-modal-card .modal-footer {
  background: rgba(255,255,255,.94);
  border-top: 1px solid var(--pf-border);
}
.document-loading-state {
  min-height: 320px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  text-align: center;
  border: 1px dashed rgba(0,169,183,.28);
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(255,252,221,.92), rgba(255,255,255,.88));
}
.document-loading-state img {
  width: 82px;
  height: 82px;
  object-fit: contain;
  filter: drop-shadow(0 12px 24px rgba(7,27,44,.12));
}
.document-loading-state strong { color: var(--pf-blue-900); font-size: 1.05rem; }
.document-loading-state small { color: var(--pf-muted); font-weight: 800; }

.slot-actions-inline {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  width: 100%;
  flex-wrap: wrap;
}
.slot-cell-head .slot-actions-inline,
.month-slot-row .slot-actions-inline { margin-left: auto; }
.slot-cell-head { justify-content: flex-end; }
.month-slot-row { justify-content: flex-end; }
.time-cell .slot-mini-tag { margin-top: 5px; }

.appointment-status-line {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  min-height: 31px;
  padding-right: 42px;
  margin-bottom: 2px;
}
.agenda-compact-card .appointment-card-head {
  padding-right: 0;
  align-items: flex-start;
}
.agenda-compact-card .appointment-card-head h3 {
  margin: 0 0 3px;
  line-height: 1.15;
}
.agenda-compact-card .appointment-card-head small {
  display: block;
  color: var(--pf-muted);
  font-weight: 850;
}
.status-column .agenda-compact-card,
.agenda-list-grid .agenda-compact-card {
  margin: 0 !important;
}
.status-dropzone {
  gap: 16px;
}
.agenda-list-grid {
  gap: clamp(20px, 2.4vw, 30px) !important;
}

@media (max-width: 760px) {
  .appointment-status-line { justify-content: flex-start; padding-right: 40px; }
  .slot-actions-inline { justify-content: flex-start; }
  .slot-cell-head, .month-slot-row { justify-content: flex-start; }
  .agenda-document-modal-card .modal-body { max-height: calc(100vh - 230px); }
}

/* v1.5.18 — Tutores: UI/UX de produção, loading de navegação e lista sem rolagem dupla */
.tutors-page-hero .page-heading-row p:not(.eyebrow) {
  max-width: 780px;
}
.tutors-filter-toolbar {
  align-items: end;
  gap: clamp(14px, 2vw, 22px);
}
.tutors-filter-row {
  flex: 1 1 520px;
  justify-content: flex-end;
}
.tutors-filter-row #search-tutors {
  min-width: min(100%, 360px);
}
.tutors-table-wrap {
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  padding-bottom: 10px;
}
.tutors-list-card .premium-table {
  min-width: 920px;
}
.th-sort {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  cursor: pointer;
  font: inherit;
  font-weight: 950;
  text-transform: inherit;
  letter-spacing: inherit;
}
.th-sort:hover,
.th-sort.active {
  color: var(--pf-blue-800);
}
.sort-arrow {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: rgba(0,169,183,.10);
  color: var(--pf-blue-800);
  font-size: .7rem;
  line-height: 1;
}
.tutors-list-card .infinite-loader {
  margin-top: 16px;
  padding: 13px 16px;
  border-radius: 18px;
  text-align: center;
  color: var(--pf-blue-800);
  background: linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.11));
  border: 1px solid var(--pf-border);
  font-weight: 900;
}
@media (max-width: 960px) {
  .tutors-filter-toolbar { align-items: stretch; }
  .tutors-filter-row { justify-content: stretch; }
  .tutors-filter-row #search-tutors { min-width: 100%; }
}

/* v1.5.19 — Tutores: remover seta azul duplicada do cabeçalho */
.tutors-list-card .premium-table th::after {
  content: none !important;
  display: none !important;
}
.tutors-list-card .sort-arrow {
  width: auto;
  height: auto;
  min-width: 10px;
  border-radius: 0;
  background: transparent;
  color: #111827;
  font-size: .82rem;
  line-height: 1;
  font-weight: 950;
}
.tutors-list-card .th-sort:hover .sort-arrow,
.tutors-list-card .th-sort.active .sort-arrow {
  color: #111827;
}

/* v1.5.20 — Serviços: filtros compactos, listagem única e ordenação limpa */
.services-page .hero-panel { margin-bottom: 18px; }
.services-page .module-card { margin-top: 18px; }
.compact-filter-row {
  display: grid;
  grid-template-columns: minmax(240px, 1.4fr) minmax(150px, .8fr) minmax(140px, .7fr) minmax(120px, .6fr) auto;
  gap: 10px;
  align-items: center;
  width: 100%;
}
.compact-filter-row .input,
.compact-filter-row .select,
.compact-filter-row .btn {
  min-height: 42px;
  height: 42px;
  border-radius: 13px;
  font-size: .9rem;
}
.no-inner-scroll {
  max-height: none !important;
  overflow-y: visible !important;
}
.services-page .table-scroll {
  overflow-x: auto;
  overflow-y: visible;
}
.services-page .premium-table th::after { display: none !important; content: none !important; }
.th-sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  font-weight: 950;
  cursor: pointer;
  padding: 0;
  text-align: left;
}
.th-sort .sort-arrow {
  color: #111827;
  font-size: .84rem;
  line-height: 1;
  transform: translateY(-1px);
}
.th-sort.active .sort-arrow { color: #111827; }
.services-page .service-card-grid { display: none !important; }
.services-page .section-toolbar { gap: 12px; align-items: end; }
.services-page .section-toolbar h3 { margin-bottom: 2px; }
.services-page .section-toolbar p { margin: 0; font-size: .88rem; line-height: 1.35; }
@media (max-width: 1100px) {
  .compact-filter-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .compact-filter-row { grid-template-columns: 1fr; }
}

/* v1.5.21 — Pets: copy final, listagem no padrão Tutores, filtros compactos e scroll infinito na página */
.pets-page-hero .page-heading-row p:not(.eyebrow) {
  max-width: 780px;
}
.pets-filter-toolbar {
  align-items: end;
  gap: clamp(12px, 1.8vw, 20px);
}
.pets-filter-toolbar h3 { margin-bottom: 2px; }
.pets-filter-toolbar p { margin: 0; font-size: .88rem; line-height: 1.35; }
.pets-filter-row {
  grid-template-columns: minmax(260px, 1.4fr) minmax(150px, .7fr) minmax(140px, .6fr) auto;
}
.pets-filter-row .input,
.pets-filter-row .select,
.pets-filter-row .btn {
  min-height: 42px;
  height: 42px;
  border-radius: 13px;
  font-size: .9rem;
}
.pets-table-wrap {
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
  padding-bottom: 10px;
}
.pets-list-card .premium-table {
  min-width: 980px;
}
.pets-list-card .premium-table th::after {
  content: none !important;
  display: none !important;
}
.pets-list-card .sort-arrow {
  width: auto;
  height: auto;
  min-width: 10px;
  border-radius: 0;
  background: transparent;
  color: #111827;
  font-size: .82rem;
  line-height: 1;
  font-weight: 950;
}
.pets-list-card .th-sort:hover .sort-arrow,
.pets-list-card .th-sort.active .sort-arrow {
  color: #111827;
}
.pets-list-card .infinite-loader {
  margin-top: 16px;
  padding: 13px 16px;
  border-radius: 18px;
  text-align: center;
  color: var(--pf-blue-800);
  background: linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.11));
  border: 1px solid var(--pf-border);
  font-weight: 900;
}
@media (max-width: 1100px) {
  .pets-filter-row { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .pets-filter-row { grid-template-columns: 1fr; }
}

/* v1.5.22 — Correção de layout da página Configurações
   Evita corte lateral/vertical do conteúdo e mantém uma única rolagem principal. */
body.configuracoes-page {
  overflow-x: hidden;
}
body.configuracoes-page .main {
  overflow: visible !important;
  min-width: 0;
  padding-bottom: clamp(90px, 9vw, 150px);
}
body.configuracoes-page .content-frame {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible !important;
  align-content: start;
}
body.configuracoes-page .hero-panel,
body.configuracoes-page .module-card,
body.configuracoes-page .mini-panel,
body.configuracoes-page .settings-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
}
body.configuracoes-page .section-toolbar,
body.configuracoes-page .page-heading-row {
  min-width: 0;
  align-items: flex-start;
}
body.configuracoes-page .section-toolbar > div,
body.configuracoes-page .page-heading-row > div {
  min-width: 0;
}
body.configuracoes-page .section-toolbar .actions,
body.configuracoes-page .page-heading-row .actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}
body.configuracoes-page .form-grid {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  min-width: 0;
}
body.configuracoes-page .form-field,
body.configuracoes-page .input,
body.configuracoes-page .select,
body.configuracoes-page .textarea {
  min-width: 0;
  max-width: 100%;
}
body.configuracoes-page .config-grid,
body.configuracoes-page .service-type-grid {
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  width: 100%;
  min-width: 0;
}
body.configuracoes-page .data-row {
  min-width: 0;
  align-items: flex-start;
}
body.configuracoes-page .data-row > div:first-child {
  min-width: 0;
  overflow-wrap: anywhere;
}
body.configuracoes-page .data-row .actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}
body.configuracoes-page .hours-grid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  width: 100%;
  min-width: 0;
}
body.configuracoes-page .schedule-scroll {
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
}
body.configuracoes-page .slot-matrix {
  width: max-content;
  min-width: 980px;
}
body.configuracoes-page #breeds-list {
  max-height: none !important;
  overflow: visible !important;
}
body.configuracoes-page .premium-modal[open] {
  overflow: visible;
}
@media (max-width: 1180px) {
  body.configuracoes-page .config-grid,
  body.configuracoes-page .service-type-grid,
  body.configuracoes-page .form-grid {
    grid-template-columns: 1fr;
  }
  body.configuracoes-page .section-toolbar .actions,
  body.configuracoes-page .page-heading-row .actions {
    justify-content: flex-start;
  }
}
@media (max-width: 760px) {
  body.configuracoes-page .main {
    padding-inline: 14px;
    padding-bottom: 120px;
  }
  body.configuracoes-page .hero-panel,
  body.configuracoes-page .module-card {
    padding: 18px !important;
    border-radius: 24px !important;
  }
  body.configuracoes-page .actions .btn,
  body.configuracoes-page .actions .btn-secondary {
    width: 100%;
    justify-content: center;
  }
  body.configuracoes-page .slot-matrix {
    min-width: 860px;
  }
}

/* v1.5.23 — ajustes finais de layout em Configurações e sidebar recolhida */
html,
body {
  max-width: 100%;
  overflow-x: hidden !important;
}
.shell,
.main,
.content-frame,
.page-content,
.hero-panel,
.module-card,
.surface-panel,
.settings-card {
  min-width: 0;
}
body.configuracoes-page {
  background:
    radial-gradient(circle at 8% 8%, rgba(0,169,183,.22), transparent 34%),
    radial-gradient(circle at 92% 4%, rgba(248,161,152,.32), transparent 32%),
    radial-gradient(circle at 76% 86%, rgba(107,216,223,.18), transparent 36%),
    linear-gradient(135deg, #fff9f8 0%, #f4fbff 48%, #f8fdff 100%) !important;
}
body.configuracoes-page::before {
  background-image:
    linear-gradient(rgba(13,57,94,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(13,57,94,.045) 1px, transparent 1px) !important;
  background-size: 54px 54px !important;
}
.shell.sidebar-collapsed .sidebar-brand {
  min-height: 68px !important;
  height: 68px;
  padding: 8px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  justify-content: center !important;
  align-items: center !important;
  overflow: visible;
}
.shell.sidebar-collapsed .postit-glow,
.shell.sidebar-collapsed .postit-glow::before {
  display: none !important;
}
.shell.sidebar-collapsed .sidebar-brand .brand-icon {
  display: block !important;
  width: 54px !important;
  height: 54px !important;
  opacity: 1 !important;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.22)) !important;
}
.shell.sidebar-collapsed .nav {
  align-items: stretch;
  overflow-y: auto;
  overflow-x: hidden;
  height: calc(100vh - 110px);
  padding-right: 0;
}
.shell.sidebar-collapsed .nav a {
  width: 100%;
  min-height: 54px;
  padding: 8px !important;
  justify-content: center !important;
  align-items: center !important;
}
.shell.sidebar-collapsed .nav-icon {
  width: 42px !important;
  height: 42px !important;
  flex: 0 0 42px !important;
  display: inline-grid !important;
  place-items: center !important;
  margin: 0 auto !important;
  text-align: center;
  border-radius: 15px;
  line-height: 1;
}
.shell.sidebar-collapsed .nav-label {
  display: none !important;
}
.shell.sidebar-collapsed .sidebar-footer {
  display: none !important;
}
.sidebar,
.nav {
  scrollbar-gutter: stable;
}
.sidebar {
  overflow-x: hidden !important;
}
.nav a,
.nav-icon {
  text-align: center;
}
body.configuracoes-page .main {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
}
body.configuracoes-page .content-frame {
  max-width: 100%;
  overflow-x: clip !important;
}
body.configuracoes-page .form-grid,
body.configuracoes-page .config-grid,
body.configuracoes-page .service-type-grid,
body.configuracoes-page .hours-grid {
  max-width: 100%;
  overflow: visible;
}
body.configuracoes-page .section-toolbar,
body.configuracoes-page .page-heading-row,
body.configuracoes-page .data-row,
body.configuracoes-page .actions {
  max-width: 100%;
  overflow-wrap: anywhere;
}
body.configuracoes-page .schedule-scroll {
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  border-radius: 20px;
}
@media (max-width: 860px) {
  .shell.sidebar-collapsed .sidebar-brand .brand-full,
  .shell.sidebar-collapsed .postit-glow {
    display: initial;
  }
  .shell.sidebar-collapsed .sidebar-brand .brand-icon {
    display: none !important;
  }
  .shell.sidebar-collapsed .nav {
    height: auto;
  }
  .shell.sidebar-collapsed .nav-label {
    display: inline !important;
  }
}


/* v1.5.25 — rollback seguro da sidebar: sem fixed agressivo, menu recolhido mais largo */
:root {
  --pf-sidebar-collapsed: 104px;
}
@media (min-width: 861px) {
  .sidebar {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
  }
  .shell.sidebar-collapsed .sidebar {
    padding-inline: 14px !important;
  }
  .shell.sidebar-collapsed .nav {
    width: 100% !important;
    height: calc(100vh - 112px) !important;
    max-height: calc(100vh - 112px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    align-content: start !important;
  }
  .shell.sidebar-collapsed .nav a {
    width: 100% !important;
    min-height: 54px !important;
    padding: 8px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .shell.sidebar-collapsed .nav-icon {
    width: 42px !important;
    height: 42px !important;
    flex: 0 0 42px !important;
    margin: 0 auto !important;
    display: inline-grid !important;
    place-items: center !important;
    overflow: visible !important;
  }
  .shell.sidebar-collapsed .sidebar-brand .brand-icon {
    width: 54px !important;
    height: 54px !important;
  }
}
@media (max-width: 860px) {
  :root { --pf-sidebar-collapsed: 92px; }
}

/* v1.5.26 — sidebar fixa segura: compensa largura no conteúdo sem quebrar o layout */
:root {
  --pf-sidebar-collapsed: 112px;
}
@media (min-width: 861px) {
  .shell {
    display: block !important;
    min-height: 100vh !important;
    padding-left: var(--pf-sidebar-width) !important;
    transition: padding-left .34s var(--pf-ease) !important;
  }
  .shell.sidebar-collapsed {
    padding-left: var(--pf-sidebar-collapsed) !important;
  }
  .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: var(--pf-sidebar-width) !important;
    height: 100vh !important;
    max-height: 100vh !important;
    overflow: hidden !important;
    z-index: 900 !important;
  }
  .shell.sidebar-collapsed .sidebar {
    width: var(--pf-sidebar-collapsed) !important;
    padding-inline: 14px !important;
  }
  .main {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: hidden !important;
  }
  .content-frame {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  .nav {
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 4px !important;
  }
  .sidebar .nav {
    max-height: calc(100vh - 184px) !important;
  }
  .shell.sidebar-collapsed .nav {
    height: calc(100vh - 104px) !important;
    max-height: calc(100vh - 104px) !important;
    padding-right: 0 !important;
    align-content: start !important;
  }
  .shell.sidebar-collapsed .nav a {
    width: 100% !important;
    min-height: 56px !important;
    padding: 8px !important;
    justify-content: center !important;
    align-items: center !important;
  }
  .shell.sidebar-collapsed .nav-icon {
    width: 44px !important;
    height: 44px !important;
    flex: 0 0 44px !important;
    margin: 0 auto !important;
    display: inline-grid !important;
    place-items: center !important;
    overflow: visible !important;
  }
  .shell.sidebar-collapsed .sidebar-brand .brand-icon {
    width: 56px !important;
    height: 56px !important;
  }
  .shell.sidebar-collapsed .sidebar-brand {
    min-height: 72px !important;
  }
  .shell.sidebar-collapsed .sidebar-footer {
    display: none !important;
  }
}
@media (max-width: 860px) {
  :root { --pf-sidebar-collapsed: 92px; }
  .shell,
  .shell.sidebar-collapsed {
    padding-left: 0 !important;
  }
}

/* v1.5.27 — Dashboard alinhado com Agenda: visão por status e calendário operacional */
.dashboard-status-panel.module-card {
  overflow: hidden;
}
.dashboard-status-panel .section-toolbar {
  margin-bottom: 12px;
}
.dashboard-health-board.status-board {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(280px, 1fr) !important;
  grid-template-columns: initial !important;
  gap: 16px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 4px 14px 2px !important;
  margin-top: 0 !important;
}
.dashboard-health-board .dashboard-status-column {
  min-height: 320px !important;
  min-width: 280px;
  border-radius: 24px;
  padding: 14px;
}
.dashboard-health-board .dashboard-health-dropzone {
  min-height: 235px !important;
  display: grid;
  gap: 16px;
  align-content: start;
}
.dashboard-health-board .agenda-compact-card {
  width: 100%;
  margin: 0 !important;
}
.dashboard-health-board .appointment-status-line {
  justify-content: flex-end;
  padding-right: 38px;
  margin-bottom: 8px;
}
.dashboard-health-board .appointment-card-head {
  cursor: pointer;
}
.dashboard-calendar .calendar-appointment-card {
  background: linear-gradient(135deg, color-mix(in srgb, var(--status-color, #00A9B7) 14%, white), rgba(255,255,255,.92));
}
.dashboard-calendar .calendar-drop-target.is-over,
.dashboard-health-board .status-dropzone.is-over {
  outline: 2px dashed color-mix(in srgb, var(--status-color, #00A9B7) 64%, var(--pf-pink));
  outline-offset: 4px;
  background: color-mix(in srgb, var(--status-color, #00A9B7) 8%, rgba(255,255,255,.9));
}
.dashboard-calendar .cal-event.is-dragging,
.dashboard-health-board .appointment-card.is-dragging {
  opacity: .55;
  transform: scale(.985);
}
.dashboard-calendar .pet-mini-avatar.sm,
.dashboard-calendar .pet-mini-avatar.xs {
  flex: 0 0 auto;
}
.dashboard-week-grid .slot-cell,
.dashboard-day-grid .slot-cell,
.dashboard-calendar .calendar-day {
  transition: background .18s var(--pf-ease), outline-color .18s var(--pf-ease), box-shadow .18s var(--pf-ease);
}
@media (max-width: 860px) {
  .dashboard-health-board.status-board {
    grid-auto-columns: minmax(260px, 86vw) !important;
  }
}

/* v1.5.28 — Dashboard: remover seta azul duplicada e deixar slots mais discretos */
.dashboard-table-wrap .premium-table th::after,
.dashboard-table-wrap th::after,
#agenda-table th::after {
  content: none !important;
  display: none !important;
}
.dashboard-table-wrap .sort-arrow,
#agenda-table .sort-arrow {
  width: auto !important;
  height: auto !important;
  min-width: 10px;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111827 !important;
  font-size: .78rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  margin-left: 4px;
}
.dashboard-table-wrap th.is-sorted .sort-arrow,
#agenda-table th.is-sorted .sort-arrow,
.dashboard-table-wrap th[data-sort]:hover .sort-arrow,
#agenda-table th[data-sort]:hover .sort-arrow {
  color: #111827 !important;
}
.dashboard-calendar .slot-mini-tag,
.dashboard-calendar .slot-plus,
.dashboard-week-grid .slot-plus,
.dashboard-day-grid .slot-plus {
  font-size: .58rem !important;
  padding: 2px 6px !important;
  min-height: 22px !important;
  border-radius: 999px !important;
  font-weight: 900 !important;
  letter-spacing: .01em;
  opacity: .82;
}
.dashboard-calendar .slot-plus,
.dashboard-week-grid .slot-plus,
.dashboard-day-grid .slot-plus {
  border-style: solid !important;
  border-color: rgba(0,169,183,.20) !important;
  background: rgba(0,169,183,.055) !important;
  color: rgba(13,57,94,.78) !important;
  text-align: center !important;
}
.dashboard-calendar .slot-plus:hover,
.dashboard-week-grid .slot-plus:hover,
.dashboard-day-grid .slot-plus:hover {
  opacity: 1;
  background: rgba(0,169,183,.10) !important;
}
.dashboard-calendar .month-slot-row,
.dashboard-calendar .slot-cell-head {
  min-height: 24px !important;
  margin-bottom: 4px !important;
  gap: 5px !important;
}


/* v1.5.29 — Dashboard: corrigir seta duplicada da tabela Agenda do dia */
#agenda-table th.is-sorted[data-direction="asc"] .sort-arrow::after,
#agenda-table th.is-sorted[data-direction="desc"] .sort-arrow::after {
  content: none !important;
  display: none !important;
}
#agenda-table .sort-arrow {
  display: inline-block !important;
  width: 12px !important;
  min-width: 12px !important;
  text-align: center !important;
  background: transparent !important;
  color: #111827 !important;
}


/* v1.5.30 — Modal de confirmação operacional */
.petfunny-result-modal::backdrop { background: rgba(7, 27, 44, .46); backdrop-filter: blur(10px); }
.petfunny-result-card { width: min(520px, calc(100vw - 28px)); }
.petfunny-result-body { display: grid; place-items: center; text-align: center; gap: 12px; min-height: 190px; }
.petfunny-result-icon { width: 72px; height: 72px; border-radius: 24px; display: grid; place-items: center; font-size: 2.2rem; font-weight: 950; color: #fff; background: linear-gradient(135deg, var(--pf-cyan), #12a876); box-shadow: 0 18px 44px rgba(18,168,118,.22); }
.petfunny-result-modal[data-type="error"] .petfunny-result-icon { background: linear-gradient(135deg, #be123c, #991b1b); }
.petfunny-result-modal[data-type="warning"] .petfunny-result-icon { background: linear-gradient(135deg, #f59e0b, #f97316); }
.petfunny-result-body p { margin: 0; max-width: 360px; color: var(--pf-muted); }


/* v1.5.31 — Modal de mensagem centralizado sem loading operacional */
dialog.petfunny-result-modal {
  position: fixed;
  inset: 0;
  margin: auto;
  border: 0;
  padding: 0;
  width: min(520px, calc(100vw - 28px));
  max-width: calc(100vw - 28px);
  max-height: min(82vh, 620px);
  background: transparent;
  overflow: visible;
}
dialog.petfunny-result-modal[open] {
  display: grid;
  place-items: center;
}
.petfunny-result-modal .petfunny-result-card {
  margin: 0 auto;
  transform: none;
}
.petfunny-result-modal .modal-footer {
  justify-content: center;
}


/* v1.5.32 — Agenda: menus flutuantes, toasts acima dos modais e documentos públicos consistentes */
.card-menu.is-open-floating {
  display: block !important;
  min-width: 210px;
  max-width: min(260px, calc(100vw - 24px));
  z-index: 2147483000 !important;
  animation: pf-fade-up .16s var(--pf-ease) both;
}
.calendar-appointment-card .card-kebab-wrap:hover .card-menu:not(.is-open-floating) {
  display: none !important;
}
.pf-toast {
  z-index: 2147483647 !important;
  pointer-events: auto;
}
dialog[open] .pf-toast {
  position: fixed !important;
  right: 24px !important;
  top: 24px !important;
}
.public-print .doc-head p,
.agenda-inline-document .doc-head p {
  max-width: 560px;
}
.public-doc-actions {
  gap: 10px;
  flex-wrap: wrap;
}
@media (max-width: 760px) {
  .card-menu.is-open-floating { min-width: 190px; }
  dialog[open] .pf-toast { right: 14px !important; top: 14px !important; }
}

/* v1.5.33 — Agenda: serviços agrupados e menu de ações mais consistente */
.appointment-services-card {
  margin-top: 20px !important;
}
.appointment-services-card .service-check-grid {
  align-items: start;
}
.service-type-group {
  align-content: start;
  align-items: start;
  height: 100%;
}
.service-type-group-head {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: start !important;
  justify-content: start !important;
  gap: 12px !important;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(13,57,94,.08);
}
.service-type-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(0,169,183,.14), rgba(248,161,152,.18));
  border: 1px solid rgba(13,57,94,.08);
  box-shadow: 0 10px 24px rgba(7,27,44,.06);
  line-height: 1;
}
.service-type-title {
  min-width: 0;
  display: grid;
  gap: 3px;
  align-self: start;
}
.service-type-title strong,
.service-type-title small {
  display: block;
}
.service-check-grid-inner {
  align-items: start;
}
.service-check-card {
  align-items: start !important;
  margin-right: 10px;
  min-height: 92px;
}
.service-check-card input {
  margin-top: 3px;
}
.service-check-card b {
  align-self: start;
}

/* Agenda: menu de três pontinhos somente por clique, sempre acima de tudo */
.agenda-page .card-kebab-wrap:hover .card-menu:not(.is-open-floating),
.agenda-page .card-kebab-wrap:focus-within .card-menu:not(.is-open-floating),
.calendar-appointment-card .card-kebab-wrap:hover .card-menu:not(.is-open-floating),
.calendar-appointment-card .card-kebab-wrap:focus-within .card-menu:not(.is-open-floating) {
  display: none !important;
}
.agenda-page .card-menu,
.calendar-appointment-card .card-menu {
  display: none !important;
}
.agenda-page .card-menu.is-open-floating,
.card-menu.is-open-floating {
  display: grid !important;
  gap: 4px;
  position: fixed !important;
  padding: 8px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(13,57,94,.12) !important;
  box-shadow: 0 28px 90px rgba(7,27,44,.24) !important;
  z-index: 2147483000 !important;
  overflow: visible !important;
}
.agenda-page .card-menu.is-open-floating::before,
.card-menu.is-open-floating::before {
  content: "";
  position: absolute;
  right: 18px;
  top: -7px;
  width: 14px;
  height: 14px;
  transform: rotate(45deg);
  background: rgba(255,255,255,.98);
  border-left: 1px solid rgba(13,57,94,.10);
  border-top: 1px solid rgba(13,57,94,.10);
}
.agenda-page .card-menu.is-open-floating button,
.agenda-page .card-menu.is-open-floating a,
.card-menu.is-open-floating button,
.card-menu.is-open-floating a {
  position: relative;
  z-index: 1;
  display: flex !important;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 38px;
  padding: 9px 11px !important;
  border-radius: 12px !important;
  white-space: nowrap;
}
.agenda-page .card-menu.is-open-floating button:hover,
.agenda-page .card-menu.is-open-floating a:hover,
.card-menu.is-open-floating button:hover,
.card-menu.is-open-floating a:hover {
  background: linear-gradient(135deg, rgba(0,169,183,.11), rgba(248,161,152,.13)) !important;
}


/* v1.5.34 — Agenda: menus restaurados, status à esquerda e tags semanais limpas */
.agenda-page .card-menu.is-open-floating,
.card-menu.is-open-floating {
  display: grid !important;
  pointer-events: auto !important;
}
.agenda-page .card-kebab-wrap:hover .card-menu:not(.is-open-floating),
.agenda-page .card-kebab-wrap:focus-within .card-menu:not(.is-open-floating),
.calendar-appointment-card .card-kebab-wrap:hover .card-menu:not(.is-open-floating),
.calendar-appointment-card .card-kebab-wrap:focus-within .card-menu:not(.is-open-floating) {
  display: none !important;
}
.appointment-status-line,
.dashboard-health-board .appointment-status-line {
  justify-content: flex-start !important;
  padding-right: 42px !important;
  padding-left: 0 !important;
  text-align: left !important;
}
.calendar-appointment-card .appointment-status-line {
  justify-content: flex-start !important;
  padding-right: 34px !important;
  min-height: 24px;
}
.appointment-status-line .status-pill {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.calendar-week-view > .time-cell.day-heading .slot-mini-tag,
.calendar-week-view > .time-cell > .slot-mini-tag.week-day-total {
  display: none !important;
}

/* v1.5.35 — Agenda: dropdown global seguro para ações dos três pontinhos */
.agenda-global-action-menu {
  position: fixed;
  z-index: 2147483000;
  min-width: 224px;
  max-width: min(280px, calc(100vw - 24px));
  display: grid;
  gap: 5px;
  padding: 9px;
  border-radius: 18px;
  background: rgba(255,255,255,.99);
  border: 1px solid rgba(13,57,94,.13);
  box-shadow: 0 28px 90px rgba(7,27,44,.26);
  animation: pf-fade-up .16s var(--pf-ease) both;
  overflow: visible;
}
.agenda-global-action-menu[hidden] { display: none !important; }
.agenda-global-action-menu::before {
  content: "";
  position: absolute;
  right: 18px;
  top: -7px;
  width: 14px;
  height: 14px;
  transform: rotate(45deg);
  background: rgba(255,255,255,.99);
  border-left: 1px solid rgba(13,57,94,.10);
  border-top: 1px solid rgba(13,57,94,.10);
}
.agenda-global-action-menu button,
.agenda-global-action-menu a {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 40px;
  border: 0;
  border-radius: 12px;
  padding: 9px 12px;
  background: transparent;
  color: var(--pf-blue-900);
  font-weight: 850;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}
.agenda-global-action-menu button:hover,
.agenda-global-action-menu a:hover {
  background: linear-gradient(135deg, rgba(0,169,183,.11), rgba(248,161,152,.13));
}
.agenda-page .card-menu,
.calendar-appointment-card .card-menu {
  display: none !important;
}
.agenda-page .kebab-btn {
  pointer-events: auto !important;
  position: relative;
  z-index: 5;
}


/* v1.5.36 — Agenda: menu três pontinhos realmente global e clicável */
.agenda-global-action-menu {
  position: fixed !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
  transform: translateZ(0);
}
.agenda-global-action-menu.is-open {
  display: grid !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
.agenda-global-action-menu[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.agenda-page .agenda-kebab-btn,
.agenda-page .kebab-btn[data-agenda-menu-button="true"] {
  pointer-events: auto !important;
  user-select: none;
  touch-action: manipulation;
  position: relative;
  z-index: 20 !important;
}
.agenda-page .appointment-card,
.agenda-page .calendar-appointment-card,
.agenda-page .agenda-compact-card {
  overflow: visible !important;
}

/* v1.5.38 — Dashboard: menu de ações igual ao da Agenda */
.dashboard-global-action-menu {
  position: fixed !important;
  z-index: 2147483647 !important;
  display: grid;
  visibility: visible;
  opacity: 1;
  pointer-events: auto !important;
}
.dashboard-global-action-menu[hidden] {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.dashboard-calendar-kebab {
  position: absolute !important;
  top: 8px;
  right: 8px;
  z-index: 20;
  pointer-events: auto !important;
}
.calendar-appointment-card { position: relative; padding-right: 40px; }
.dashboard-kebab-btn { pointer-events: auto !important; }
#agenda-table .dashboard-kebab-btn { position: relative; z-index: 3; }

/* v1.5.39 · Mensagens inteligentes por status */
.agenda-message-modal-card { max-width: 760px; }
.ai-message-context { margin-bottom: 18px; }
.ai-message-context-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:12px; }
.ai-message-context-grid > div { border:1px solid var(--pf-border); background:rgba(255,255,255,.82); border-radius:16px; padding:12px 14px; }
.ai-message-context-grid span { display:block; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--pf-muted); font-weight:900; margin-bottom:4px; }
.ai-message-context-grid strong { color:var(--pf-graphite); font-weight:950; line-height:1.25; }
.ai-message-textarea { min-height: 170px; resize: vertical; line-height: 1.55; }
.document-loading-state.compact { min-height: 120px; }
.document-loading-state.compact img { width: 58px; height: 58px; object-fit: contain; }
.agenda-global-action-menu .ai-status-message-action { background:linear-gradient(135deg, rgba(0,169,183,.10), rgba(248,161,152,.13)); }
.btn.disabled, .btn[aria-disabled="true"] { opacity:.55; pointer-events:none; }
@media (max-width: 720px) { .ai-message-context-grid { grid-template-columns: 1fr; } }


/* v1.5.42 — Modal premium de mensagens inteligentes */
dialog.modal-shell.agenda-message-modal {
  border: 0;
  padding: 0;
  background: transparent;
  width: min(820px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  margin: auto;
  overflow: visible;
}
dialog.modal-shell.agenda-message-modal::backdrop {
  background: rgba(7, 27, 44, .48);
  backdrop-filter: blur(9px);
}
.agenda-message-modal-card {
  width: 100%;
  max-width: 820px;
  max-height: min(86vh, 780px);
  border-radius: 28px;
  border: 1px solid rgba(13,57,94,.12);
  background: rgba(255,255,255,.97);
  box-shadow: 0 32px 120px rgba(7,27,44,.24);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.agenda-message-modal .modal-body {
  flex: 1 1 auto;
  min-height: 0;
  padding: 22px 24px !important;
  overflow: auto;
  background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(247,251,255,.88));
}
.agenda-message-modal .modal-footer {
  padding: 16px 24px !important;
  background: rgba(255,255,255,.96) !important;
  border-top: 1px solid rgba(13,57,94,.08) !important;
  box-shadow: 0 -18px 42px rgba(7,27,44,.055);
}
.agenda-message-modal.is-loading .ai-message-textarea,
.agenda-message-modal.is-loading .form-field:has(.ai-message-textarea) {
  display: none;
}
.agenda-message-modal.is-loading .modal-footer {
  opacity: .55;
  pointer-events: none;
}
.agenda-message-modal .document-loading-state.compact {
  min-height: 240px;
  border-radius: 24px;
  border: 1px dashed rgba(13,57,94,.16);
  background: linear-gradient(135deg, rgba(255,250,221,.94), rgba(255,255,255,.96));
  box-shadow: 0 18px 46px rgba(7,27,44,.08);
}
.agenda-message-modal .document-loading-state.compact img {
  width: 78px;
  height: 78px;
  object-fit: contain;
  opacity: .94;
}
.ai-message-context {
  margin-bottom: 18px;
}
.ai-message-context-grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:12px;
}
.ai-message-context-grid > div {
  border:1px solid var(--pf-border);
  background:rgba(255,255,255,.86);
  border-radius:16px;
  padding:12px 14px;
  box-shadow: 0 10px 24px rgba(7,27,44,.04);
}
.ai-message-context-grid span {
  display:block;
  font-size:.72rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--pf-muted);
  font-weight:900;
  margin-bottom:4px;
}
.ai-message-context-grid strong {
  color:var(--pf-graphite);
  font-weight:950;
  line-height:1.25;
}
.ai-message-textarea {
  min-height: 180px;
  resize: vertical;
  line-height: 1.55;
}
@media (max-width: 720px) {
  .ai-message-context-grid { grid-template-columns: 1fr; }
  dialog.modal-shell.agenda-message-modal { width: min(100%, calc(100vw - 18px)); max-width: calc(100vw - 18px); }
}

/* v1.5.43 · Tutores: menu de ações, histórico/extrato e pets em modal */
.tutor-actions-menu-wrap { position: relative; display: inline-flex; justify-content: flex-end; }
.tutor-row-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  min-width: 218px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(13,57,94,.12);
  box-shadow: 0 24px 80px rgba(7,27,44,.18);
  display: none;
  z-index: 99990;
}
.tutor-row-menu.open { display: grid; gap: 4px; animation: pf-fade-up .16s var(--pf-ease) both; }
.tutor-row-menu button {
  border: 0;
  background: transparent;
  text-align: left;
  width: 100%;
  padding: 10px 11px;
  border-radius: 12px;
  font-weight: 850;
  color: var(--pf-blue-900);
  cursor: pointer;
}
.tutor-row-menu button:hover { background: var(--pf-menu-hover); }
.tutor-row-menu button.danger { color: #be123c; }
.history-extract-list { gap: 12px; }
.history-extract-item {
  display: grid;
  grid-template-columns: 128px minmax(0,1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 15px;
  border-radius: 20px;
  border: 1px solid rgba(13,57,94,.10);
  background: rgba(255,255,255,.88);
  box-shadow: 0 12px 32px rgba(7,27,44,.07);
}
.history-extract-date strong,
.history-extract-value strong { display: block; color: var(--pf-blue-900); }
.history-extract-date small,
.history-extract-main small { color: var(--pf-muted); font-weight: 800; }
.history-extract-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.history-extract-main p { margin: 0 0 4px; color: var(--pf-graphite); }
.history-extract-value { text-align: right; }
.tutor-pets-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin-bottom: 20px; }
.tutor-pet-mini-card {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid rgba(13,57,94,.10);
  background: rgba(255,255,255,.90);
  box-shadow: 0 12px 32px rgba(7,27,44,.07);
}
.tutor-pet-mini-card strong { display: block; color: var(--pf-blue-900); }
.tutor-pet-mini-card small { display: block; color: var(--pf-muted); font-weight: 850; margin-top: 2px; }
.tutor-pet-mini-card p { margin: 7px 0 0; font-size: .86rem; line-height: 1.45; }
.photo-avatar.pet-avatar-small { width: 52px; height: 52px; border-radius: 17px; }
.tutor-pet-create-card { margin-top: 18px; }
.compact-toolbar { gap: 14px; margin-bottom: 12px; }
.compact-toolbar h3 { margin-bottom: 3px; }
.compact-toolbar p { margin: 0; }
@media (max-width: 760px) {
  .history-extract-item { grid-template-columns: 1fr; }
  .history-extract-value { text-align: left; }
  .tutor-row-menu { right: auto; left: 0; }
}


/* v1.5.44 — cards de links rápidos da operação */
.quick-actions-panel {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: clamp(10px, 1.4vw, 16px) 0 clamp(12px, 1.6vw, 18px);
}
.quick-action-card {
  min-height: 118px;
  display: grid;
  align-content: start;
  gap: 7px;
  text-decoration: none;
  color: var(--pf-graphite);
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 22px;
  padding: 16px;
  background:
    radial-gradient(circle at 92% 0%, rgba(248,161,152,.22), transparent 32%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(247,251,255,.92));
  box-shadow: 0 14px 36px rgba(7,27,44,.08);
  transition: transform .18s var(--pf-ease), box-shadow .18s var(--pf-ease), border-color .18s var(--pf-ease);
}
.quick-action-card:hover {
  transform: translateY(-2px);
  border-color: rgba(0,169,183,.28);
  box-shadow: 0 20px 48px rgba(7,27,44,.12);
}
.quick-action-icon {
  width: 38px;
  height: 38px;
  display: inline-grid;
  place-items: center;
  border-radius: 15px;
  background: linear-gradient(135deg, rgba(0,169,183,.14), rgba(248,161,152,.18));
  font-size: 1.18rem;
}
.quick-action-card strong {
  font-size: .98rem;
  letter-spacing: -.02em;
}
.quick-action-card small {
  color: var(--pf-muted);
  line-height: 1.35;
  font-weight: 750;
}
@media (max-width: 1180px) { .quick-actions-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .quick-actions-panel { grid-template-columns: 1fr; } }

/* v1.5.45 - Tutores: histórico em modal com documentos e filtro em linha própria */
.history-filter-block {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 14px;
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  margin-bottom: 14px;
}
.history-filter-block h3 { margin: 0 0 4px; }
.history-filter-block p { margin: 0; color: var(--pf-muted); }
.history-filter-block .select { width: min(100%, 420px); }
.tutor-document-modal { z-index: 2200; }
.tutor-document-modal-card { width: min(980px, calc(100vw - 32px)); max-height: min(860px, calc(100vh - 36px)); }
.tutor-document-modal .document-preview { padding: clamp(14px, 2vw, 24px); }
.history-extract-value .actions { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
@media (max-width: 760px) {
  .history-extract-value .actions { justify-content: flex-start; }
  .history-filter-block .select { width: 100%; }
}

/* v1.5.46 - Tutores: consulta em duas linhas e documento no mesmo padrão premium dos demais modais */
.tutors-list-card .tutors-query-header {
  display: block;
  width: 100%;
  margin-bottom: 14px;
}
.tutors-list-card .tutors-query-header h3 {
  margin: 0 0 5px;
  color: var(--pf-blue-900);
  letter-spacing: -.025em;
}
.tutors-list-card .tutors-query-header p {
  margin: 0;
  max-width: 760px;
  color: var(--pf-muted);
}
.tutors-filter-row-single {
  width: 100%;
  justify-content: flex-start !important;
  align-items: center;
  margin-bottom: 14px;
}
.tutors-filter-row-single #search-tutors {
  flex: 1 1 480px;
  min-width: min(100%, 420px);
}
.tutors-filter-row-single .select {
  min-width: 170px;
}

dialog.tutor-premium-document-modal {
  border: 0;
  padding: 0;
  background: transparent;
  width: min(980px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  margin: auto;
  overflow: visible;
}
dialog.tutor-premium-document-modal::backdrop {
  background: rgba(7, 27, 44, .52);
  backdrop-filter: blur(14px);
}
.tutor-premium-document-modal .tutor-document-modal-card {
  width: 100%;
  max-height: min(86vh, 860px);
  border-radius: 32px;
  border: 1px solid rgba(13,57,94,.10);
  background: rgba(255,255,255,.97);
  box-shadow: 0 34px 120px rgba(7,27,44,.24);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.tutor-premium-document-modal .modal-header {
  min-height: 112px;
  align-items: flex-start;
  padding: 22px 24px;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,255,.92));
  border-bottom: 1px solid var(--pf-border);
}
.tutor-premium-document-modal .modal-body {
  max-height: calc(100vh - 250px);
  overflow: auto;
  padding: 0;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,251,255,.74));
}
.tutor-premium-document-modal .modal-footer {
  padding: 16px 22px;
  background: rgba(255,255,255,.94);
  border-top: 1px solid var(--pf-border);
  gap: 10px;
  justify-content: flex-end;
}
.tutor-premium-document-modal .document-preview {
  padding: clamp(14px, 2vw, 24px);
}
@media (max-width: 760px) {
  .tutors-filter-row-single #search-tutors,
  .tutors-filter-row-single .select,
  .tutors-filter-row-single .btn { width: 100%; min-width: 0; }
  .tutor-premium-document-modal .modal-body { max-height: calc(100vh - 230px); }
}

.inline-link { display:inline-flex; margin-top:6px; font-size:.78rem; font-weight:900; color:var(--pf-cyan); text-decoration:none; }
.inline-link:hover { text-decoration:underline; }
.doc-package-note { margin-top:10px; padding:10px 12px; border-radius:14px; background:rgba(0,169,183,.08); color:var(--pf-blue-900); font-size:.9rem; }
.package-service-group .service-check-grid-inner { margin-top:12px; }

/* v1.5.49 — Pacotes: headers, ações e recorrência */
.packages-page .premium-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,251,255,.95));
  border-top: 1px solid rgba(13,57,94,.10);
  border-bottom: 1px solid rgba(13,57,94,.14);
  color: var(--pf-blue-900);
  white-space: nowrap;
}
.packages-page .premium-table thead th:first-child { border-radius: 16px 0 0 16px; border-left: 1px solid rgba(13,57,94,.10); }
.packages-page .premium-table thead th:last-child { border-radius: 0 16px 16px 0; border-right: 1px solid rgba(13,57,94,.10); }
.packages-page .premium-table th .th-label { display:inline-flex; align-items:center; vertical-align:middle; }
.packages-page .th-arrow-only {
  display:inline-grid;
  place-items:center;
  width:24px;
  height:24px;
  margin-left:6px;
  border:0;
  background:transparent;
  color:#111827;
  cursor:pointer;
  border-radius:8px;
  font-weight:1000;
  line-height:1;
}
.packages-page .th-arrow-only:hover { background:rgba(17,24,39,.08); }
.packages-page .th-arrow-only .sort-arrow { color:#111827 !important; font-size:.88rem; }
.packages-page .service-check-card.package-service-check { grid-template-columns:auto minmax(0,1fr) 76px; }
.packages-page .service-qty-input { min-width:0; width:70px; min-height:38px; padding:8px 10px; text-align:center; font-weight:950; }
.packages-page .row-menu-wrap { position:relative; display:inline-flex; justify-content:flex-end; }
.packages-page .sale-card-menu { right:0; top:40px; min-width:220px; }
.packages-page .sale-card-menu.open { display:block; }
.packages-page .detail-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; }
.packages-page .detail-grid article { padding:14px; border-radius:18px; background:rgba(255,255,255,.76); border:1px solid rgba(13,57,94,.10); }
.packages-page .detail-grid article span { display:block; color:var(--pf-muted); font-weight:900; font-size:.78rem; text-transform:uppercase; letter-spacing:.05em; }
.packages-page .detail-grid article strong { display:block; margin-top:5px; color:var(--pf-blue-900); }
.packages-page .package-detail-list { display:grid; gap:10px; margin-top:10px; }
.packages-page .package-detail-list > div { padding:12px; border-radius:16px; border:1px solid rgba(13,57,94,.09); background:rgba(247,251,255,.76); }
.packages-page .package-detail-list strong,
.packages-page .package-detail-list small { display:block; }
.packages-page .package-detail-list small { color:var(--pf-muted); margin-top:4px; font-weight:800; }
.packages-page .mt-10 { margin-top:10px; }
@media (max-width: 760px) { .packages-page .service-check-card.package-service-check { grid-template-columns:auto minmax(0,1fr); } .packages-page .service-qty-input { grid-column:1 / -1; width:100%; } }


/* v1.5.50 — Pacotes: header limpo sem seta azul e ações reposicionadas */
.packages-page .premium-table th::after,
.packages-page .premium-table thead th::after {
  content: none !important;
  display: none !important;
}
.packages-page .sort-arrow,
.packages-page .th-arrow-only .sort-arrow {
  width: auto !important;
  height: auto !important;
  min-width: 12px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111827 !important;
  box-shadow: none !important;
}
.packages-page .th-arrow-only {
  background: transparent !important;
  box-shadow: none !important;
}
.packages-page .th-arrow-only:hover {
  background: rgba(17,24,39,.06) !important;
}
.packages-page .toolbar-copy-line {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}
.packages-page .packages-consulta-actions {
  display: flex;
  justify-content: flex-start;
  margin-top: 10px;
}
.packages-page .packages-sales-copy .packages-sales-action {
  margin-left: auto;
  flex: 0 0 auto;
}
@media (max-width: 760px) {
  .packages-page .toolbar-copy-line { flex-direction: column; }
  .packages-page .packages-sales-copy .packages-sales-action,
  .packages-page .packages-consulta-actions .btn { width: 100%; justify-content: center; }
}

/* v1.5.52 — Pacotes: preço automático, documentos consolidados e menu acima da tabela */
.packages-page #package-price[readonly] {
  background: linear-gradient(135deg, rgba(0,169,183,.08), rgba(251,139,36,.08));
  color: var(--pf-blue-900);
  font-weight: 1000;
  cursor: default;
}
.packages-page #package-price-hint {
  display: block;
  margin-top: 6px;
  color: var(--pf-muted);
  font-size: .78rem;
  font-weight: 850;
  line-height: 1.35;
}
.packages-page .sale-card-menu.open {
  z-index: 2147483000 !important;
  box-shadow: 0 28px 80px rgba(12, 29, 58, .26), 0 0 0 1px rgba(13,57,94,.10);
}
.packages-page .sale-card-menu a {
  width: 100%;
  display: block;
  text-align: left;
  border: 0;
  background: transparent;
  padding: 10px;
  border-radius: 11px;
  color: #26305f;
  font-weight: 850;
  cursor: pointer;
  text-decoration: none;
}
.packages-page .sale-card-menu a:hover { background: var(--pf-menu-hover); }
.packages-page .compact-modal-card { max-width: 520px; }

/* v1.5.53 — Pacotes: menu flutuante, lookup por WhatsApp e badges de sessão */
.packages-page .package-sell-lookup-card {
  margin-bottom: 18px;
  background: linear-gradient(135deg, rgba(0,169,183,.08), rgba(248,161,152,.08));
  border: 1px solid rgba(0,169,183,.16);
}
.packages-page .sale-card-menu.is-open-floating,
.packages-page .sale-card-menu.open {
  z-index: 2147483647 !important;
  max-height: min(72vh, 440px);
  overflow: auto;
}
.packages-page .sale-card-menu button,
.packages-page .sale-card-menu a {
  white-space: nowrap;
}
.package-calendar-badge {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 5px;
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(255, 157, 152, .18);
  border: 1px solid rgba(255, 157, 152, .32);
  color: #6d2e18;
  font-size: .68rem;
  font-weight: 950;
  vertical-align: middle;
  white-space: nowrap;
}
.package-info-line {
  color: #126f9a !important;
}

.appointment-package-badge {
  margin-left: 7px;
  transform: translateY(-1px);
}
.agenda-compact-card .appointment-package-badge {
  background: linear-gradient(135deg, rgba(255, 157, 152, .22), rgba(0, 169, 183, .13));
  border-color: rgba(255, 157, 152, .38);
  color: #7a3418;
}
.doc-section-block {
  margin-top: 18px;
}
.doc-section-block h3 {
  margin: 0 0 10px;
  font-size: 1rem;
  color: var(--pf-blue-900, #26305f);
}

/* v1.5.54 — Pacotes: preço reposicionado e menu único flutuante */
.packages-page .package-price-field {
  background: linear-gradient(135deg, rgba(0,169,183,.08), rgba(248,161,152,.10));
  border: 1px solid rgba(0,169,183,.18);
  border-radius: 18px;
  padding: 12px;
}
.floating-sale-menu {
  min-width: 264px;
  max-width: min(320px, calc(100vw - 24px));
  max-height: min(72vh, 440px);
  overflow: auto;
  display: grid;
  gap: 4px;
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(13, 57, 94, .14);
  background: rgba(255,255,255,.98);
  box-shadow: 0 28px 80px rgba(12, 29, 58, .30), 0 0 0 1px rgba(13,57,94,.08);
  backdrop-filter: blur(16px);
}
.floating-sale-menu[hidden] { display: none !important; }
.floating-sale-menu button,
.floating-sale-menu a {
  width: 100%;
  display: block;
  border: 0;
  background: transparent;
  padding: 11px 12px;
  border-radius: 12px;
  color: #26305f;
  font-weight: 850;
  cursor: pointer;
  text-decoration: none;
  text-align: left;
  white-space: nowrap;
}
.floating-sale-menu button:hover,
.floating-sale-menu a:hover { background: rgba(0,169,183,.10); }

/* v1.5.56 — Financeiro e Relatórios com base visual de Pacotes */
.finance-admin-page,
.reports-admin-page {
  gap: 28px;
  padding-bottom: 48px;
}
.finance-admin-page .hero-panel,
.reports-admin-page .hero-panel {
  margin-bottom: 0;
}
.finance-admin-page .module-card,
.reports-admin-page .module-card {
  margin-top: 0;
}
.finance-support-grid {
  margin-top: 0;
  gap: 22px;
}
.finance-admin-page .section-toolbar,
.reports-admin-page .section-toolbar {
  gap: 12px;
}
.finance-admin-page .toolbar-copy-line,
.reports-admin-page .toolbar-copy-line {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}
.finance-admin-page .toolbar-copy-line h3,
.reports-admin-page .toolbar-copy-line h3 {
  margin: 0;
  color: var(--pf-blue-900);
  font-size: 1.12rem;
}
.finance-admin-page .toolbar-copy-line p,
.reports-admin-page .toolbar-copy-line p {
  margin: 5px 0 0;
  color: var(--pf-muted);
  max-width: 780px;
}
.finance-filter-row,
.reports-filter-row {
  width: 100%;
  align-items: center;
}
.finance-filter-row .input,
.reports-filter-row .input {
  min-width: min(420px, 100%);
  flex: 1 1 320px;
}
.finance-filter-row .select,
.reports-filter-row .select {
  min-width: 180px;
}
.finance-table-scroll,
.reports-table-scroll {
  overflow-x: auto;
  overflow-y: visible !important;
  max-height: none !important;
  padding-bottom: 2px;
}
.finance-admin-page .premium-table,
.reports-admin-page .premium-table {
  min-width: 980px;
}
.finance-admin-page .premium-table thead th,
.reports-admin-page .premium-table thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,251,255,.95));
  border-top: 1px solid rgba(13,57,94,.10);
  border-bottom: 1px solid rgba(13,57,94,.14);
  color: var(--pf-blue-900);
  white-space: nowrap;
}
.finance-admin-page .premium-table thead th:first-child,
.reports-admin-page .premium-table thead th:first-child {
  border-radius: 16px 0 0 16px;
  border-left: 1px solid rgba(13,57,94,.10);
}
.finance-admin-page .premium-table thead th:last-child,
.reports-admin-page .premium-table thead th:last-child {
  border-radius: 0 16px 16px 0;
  border-right: 1px solid rgba(13,57,94,.10);
}
.finance-admin-page .premium-table th::after,
.finance-admin-page .premium-table thead th::after,
.reports-admin-page .premium-table th::after,
.reports-admin-page .premium-table thead th::after {
  content: none !important;
  display: none !important;
}
.finance-admin-page .premium-table th .th-label,
.reports-admin-page .premium-table th .th-label {
  display: inline-flex;
  align-items: center;
  vertical-align: middle;
}
.finance-admin-page .th-arrow-only,
.reports-admin-page .th-arrow-only {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-left: 6px;
  border: 0;
  background: transparent !important;
  color: #111827;
  cursor: pointer;
  border-radius: 8px;
  font-weight: 1000;
  line-height: 1;
  box-shadow: none !important;
}
.finance-admin-page .th-arrow-only:hover,
.reports-admin-page .th-arrow-only:hover {
  background: rgba(17,24,39,.06) !important;
}
.finance-admin-page .sort-arrow,
.finance-admin-page .th-arrow-only .sort-arrow,
.reports-admin-page .sort-arrow,
.reports-admin-page .th-arrow-only .sort-arrow {
  width: auto !important;
  height: auto !important;
  min-width: 12px !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111827 !important;
  box-shadow: none !important;
  font-size: .88rem;
}
.finance-row td,
.reports-records-table td {
  line-height: 1.35;
}
.finance-value {
  font-weight: 1000;
  white-space: nowrap;
}
.finance-value.positive { color: #047857; }
.finance-value.negative { color: #b45309; }
.table-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}
.muted-small {
  color: var(--pf-muted);
  font-weight: 850;
  font-size: .82rem;
}
.status-pill.status-success,
.status-success { background: rgba(16,185,129,.12); color: #047857; border-color: rgba(16,185,129,.22); }
.status-pill.status-warning,
.status-warning { background: rgba(251,191,36,.16); color: #92400e; border-color: rgba(251,191,36,.28); }
.status-pill.status-danger,
.status-danger { background: rgba(239,68,68,.12); color: #b91c1c; border-color: rgba(239,68,68,.22); }
.status-pill.status-neutral,
.status-neutral { background: rgba(100,116,139,.12); color: #334155; border-color: rgba(100,116,139,.18); }
.infinite-sentinel {
  width: 100%;
  height: 1px;
}
.finance-admin-page .infinite-loader,
.reports-admin-page .infinite-loader {
  text-align: center;
  color: var(--pf-muted);
  font-weight: 850;
  padding: 12px;
}
.reports-records-table td:nth-child(3),
.reports-records-table td:nth-child(4) {
  max-width: 360px;
}
@media (max-width: 760px) {
  .finance-admin-page,
  .reports-admin-page { gap: 20px; }
  .finance-admin-page .page-heading-row,
  .reports-admin-page .page-heading-row,
  .finance-admin-page .toolbar-copy-line,
  .reports-admin-page .toolbar-copy-line { flex-direction: column; }
  .finance-filter-row .input,
  .reports-filter-row .input,
  .finance-filter-row .select,
  .reports-filter-row .select,
  .finance-admin-page .actions .btn,
  .reports-admin-page .btn { width: 100%; min-width: 0; justify-content: center; }
}

/* v1.5.57 — Relatórios comparativos e espaçamento operacional */
.finance-admin-page .big-number-card,
.reports-admin-page .big-number-card,
.finance-admin-page .module-card,
.reports-admin-page .module-card {
  margin-bottom: 20px;
}
.finance-admin-page .module-grid .module-card,
.reports-admin-page .module-grid .module-card {
  margin-bottom: 0;
}
.finance-filter-row #filter-month,
.reports-period-row #report-month {
  min-width: 170px;
}
.reports-period-row {
  align-items: center;
  width: 100%;
  margin-top: 6px;
}
.reports-period-row .select,
.reports-period-row .input {
  min-width: 190px;
}
.reports-chart-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px;
  margin-bottom: 20px;
}
.report-chart-card {
  min-height: 260px;
}
.report-chart-list {
  display: grid;
  gap: 13px;
}
.report-bar-row {
  display: grid;
  grid-template-columns: minmax(150px, 1fr) minmax(160px, 1.3fr) auto;
  align-items: center;
  gap: 14px;
  padding: 12px;
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
}
.report-bar-row strong {
  display: block;
  color: var(--pf-blue-900);
  font-weight: 950;
}
.report-bar-row small {
  display: block;
  color: var(--pf-muted);
  font-weight: 800;
  margin-top: 2px;
}
.report-bar-row b {
  color: var(--pf-blue-900);
  font-weight: 1000;
  white-space: nowrap;
}
.report-bar-track {
  height: 11px;
  border-radius: 999px;
  background: rgba(13,57,94,.08);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(13,57,94,.05);
}
.report-bar-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--pf-green), var(--pf-orange));
  box-shadow: 0 8px 18px rgba(0,169,183,.22);
}
.empty-state.compact {
  padding: 14px;
  text-align: left;
}
.finance-modal-card {
  max-width: 820px;
}
@media (max-width: 980px) {
  .reports-chart-grid { grid-template-columns: 1fr; }
  .report-bar-row { grid-template-columns: 1fr; }
  .report-bar-row b { justify-self: start; }
}

/* v1.5.58 — Financeiro/Relatórios por período, modais e crescimento */
.finance-admin-page .big-number-card,
.finance-admin-page .finance-card,
.finance-admin-page .finance-list-card,
.reports-admin-page .big-number-card,
.reports-admin-page .report-chart-card,
.reports-admin-page .reports-list-card {
  margin-bottom: 20px !important;
}
.finance-admin-page .big-number-grid,
.reports-admin-page .big-number-grid {
  row-gap: 20px !important;
}
.finance-filter-row #filter-period,
.finance-filter-row #filter-month,
.finance-filter-row #filter-start-date,
.finance-filter-row #filter-end-date,
.reports-period-row #report-period,
.reports-period-row #report-month,
.reports-period-row #report-start-date,
.reports-period-row #report-end-date {
  min-width: 170px;
}
.finance-admin-page .modal-backdrop,
.reports-admin-page .modal-backdrop,
#pay-modal,
#finance-modal,
#report-modal {
  z-index: 99990 !important;
}
#pay-modal .premium-modal,
#finance-modal .premium-modal,
#report-modal .premium-modal {
  z-index: 99991 !important;
}
.report-growth-card {
  cursor: pointer;
  margin-bottom: 20px !important;
}
.report-clickable-card,
.clickable-report-row,
.report-growth-row,
.report-chart-card[data-report-modal] {
  cursor: pointer;
}
.report-growth-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.6fr) auto;
  align-items: center;
  gap: 16px;
  padding: 14px;
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.74);
}
.report-growth-row strong { display:block; color:var(--pf-blue-900); font-weight:1000; }
.report-growth-row small { display:block; color:var(--pf-muted); font-weight:850; margin-top:3px; }
.report-growth-bars { display:grid; gap:8px; }
.report-growth-bars span { display:block; height:10px; border-radius:999px; background:rgba(13,57,94,.08); overflow:hidden; }
.report-growth-bars i,
.report-growth-bars b { display:block; height:100%; border-radius:inherit; }
.report-growth-bars i { background:linear-gradient(90deg, var(--pf-green), var(--pf-orange)); }
.report-growth-bars b { background:linear-gradient(90deg, rgba(13,57,94,.30), rgba(13,57,94,.12)); }
.report-growth-values { text-align:right; min-width:140px; }
.report-modal-card { max-width: 840px; }
.report-modal-line {
  display:grid;
  gap:5px;
  padding:14px 0;
  border-bottom:1px solid rgba(13,57,94,.10);
}
.report-modal-line:last-child { border-bottom:0; }
.report-modal-line strong { color:var(--pf-blue-900); font-weight:1000; }
.report-modal-line span { color:var(--pf-blue-650); font-weight:850; }
.report-modal-line small { color:var(--pf-muted); font-weight:800; }
@media (max-width: 980px) {
  .report-growth-row { grid-template-columns: 1fr; }
  .report-growth-values { text-align:left; }
}

/* v1.5.60 App do Tutor mobile-first */
.client-app-shell.mobile-first {
  --client-safe-bottom: calc(78px + env(safe-area-inset-bottom, 0px));
  min-height: 100vh;
  padding: 14px 14px var(--client-safe-bottom);
  background:
    radial-gradient(circle at 8% 0%, rgba(0, 169, 183, .20), transparent 34%),
    radial-gradient(circle at 100% 2%, rgba(255, 157, 152, .24), transparent 36%),
    linear-gradient(145deg, #fff8f5 0%, #f4fbff 48%, #ffffff 100%);
}
.client-mobile-topbar {
  max-width: 540px;
  margin: 0 auto 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  position: sticky;
  top: 10px;
  z-index: 70;
  padding: 10px 12px;
  border: 1px solid rgba(16, 82, 97, .12);
  border-radius: 24px;
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 40px rgba(31, 77, 89, .10);
}
.client-mobile-brand { display: inline-flex; align-items: center; min-width: 0; }
.client-mobile-brand img { width: 148px; max-width: 48vw; display: block; }
.client-top-actions { display: flex; align-items: center; gap: 8px; }
.client-icon-btn {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 16px;
  border: 1px solid var(--pf-border);
  background: #fff;
  color: var(--pf-blue-900);
  text-decoration: none;
  box-shadow: var(--pf-shadow-soft);
  font-weight: 950;
  cursor: pointer;
}
.client-mobile-hero {
  max-width: 540px;
  margin: 0 auto 14px;
  padding: 22px;
  border: 1px solid rgba(16, 82, 97, .12);
  border-radius: 30px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.92), rgba(255,255,255,.72)),
    radial-gradient(circle at 92% 0%, rgba(255, 157, 152, .35), transparent 42%);
  box-shadow: var(--pf-shadow);
  overflow: hidden;
}
.client-mobile-hero h1 { font-size: clamp(1.75rem, 8vw, 2.55rem); line-height: .98; letter-spacing: -.05em; margin-bottom: 10px; color: var(--pf-blue-900); }
.client-mobile-hero p { margin-bottom: 0; color: var(--pf-muted); font-weight: 800; }
.client-profile-pill {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(0,169,183,.12), rgba(248,161,152,.16));
  border: 1px solid var(--pf-border-strong);
  color: var(--pf-blue-900);
  font-weight: 950;
}
.client-mobile-content { max-width: 540px; margin: 0 auto; display: grid; gap: 14px; }
.client-next-card,
.client-kpi-grid article,
.client-mobile-section,
.client-list-card,
.client-pet-card,
.client-mimos-card,
.client-profile-card {
  border: 1px solid rgba(16,82,97,.12);
  background: rgba(255,255,255,.84);
  box-shadow: var(--pf-shadow-soft);
}
.client-next-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border-radius: 28px;
  padding: 16px;
}
.client-next-card.muted { opacity: .92; }
.client-next-date {
  width: 58px;
  height: 58px;
  border-radius: 20px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--pf-cyan), var(--pf-green));
  color: #fff;
  box-shadow: 0 16px 28px rgba(0,169,183,.22);
  text-align: center;
  font-weight: 950;
}
.client-next-date span { display: block; font-size: 1.35rem; line-height: 1; }
.client-next-date small { display: block; font-size: .7rem; text-transform: uppercase; }
.client-next-card h2 { margin: 0 0 3px; color: var(--pf-blue-900); font-size: 1.1rem; }
.client-next-card p { margin: 0; color: var(--pf-muted); font-weight: 800; }
.client-kpi-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.client-kpi-grid article { border-radius: 22px; padding: 14px 10px; text-align: center; }
.client-kpi-grid strong { display: block; color: var(--pf-blue-900); font-size: 1.65rem; line-height: 1; }
.client-kpi-grid span { color: var(--pf-muted); font-size: .78rem; font-weight: 900; }
.client-mobile-section { border-radius: 28px; padding: 18px; display: grid; gap: 12px; }
.client-section-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 2px; }
.client-section-title h2 { margin: 0; color: var(--pf-blue-900); font-size: 1.22rem; letter-spacing: -.02em; }
.client-section-title p { margin: 3px 0 0; color: var(--pf-muted); font-weight: 800; font-size: .9rem; }
.client-section-title a { color: var(--pf-cyan-dark); text-decoration: none; font-weight: 950; white-space: nowrap; }
.client-shortcuts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.client-shortcut {
  border-radius: 22px;
  border: 1px solid var(--pf-border);
  background: rgba(255,255,255,.78);
  padding: 14px;
  color: var(--pf-blue-900);
  text-decoration: none;
  display: grid;
  gap: 4px;
  min-height: 112px;
}
.client-shortcut span { font-size: 1.7rem; }
.client-shortcut strong { font-size: 1rem; }
.client-shortcut small { color: var(--pf-muted); font-weight: 850; }
.client-carousel-row { display: grid; grid-auto-flow: column; grid-auto-columns: 82%; gap: 12px; overflow-x: auto; padding-bottom: 4px; scroll-snap-type: x mandatory; }
.client-carousel-row article { scroll-snap-align: start; border-radius: 24px; border: 1px solid var(--pf-border); background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(255,250,242,.72)); padding: 16px; min-height: 144px; }
.client-carousel-row span { font-size: 2rem; }
.client-carousel-row h3 { margin: 8px 0 6px; color: var(--pf-blue-900); }
.client-carousel-row p { margin: 0; color: var(--pf-muted); font-weight: 800; }
.client-list-card { border-radius: 24px; padding: 14px; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
.client-list-icon { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 18px; background: linear-gradient(135deg, rgba(0,169,183,.13), rgba(248,161,152,.18)); font-size: 1.45rem; }
.client-list-body { min-width: 0; }
.client-list-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.client-list-card h3 { margin: 0; color: var(--pf-blue-900); font-size: 1.02rem; }
.client-list-card p { margin: 5px 0 0; color: var(--pf-muted); font-weight: 800; }
.client-main-date { color: var(--pf-blue-900) !important; font-weight: 950 !important; }
.client-badge { display: inline-flex; align-items: center; justify-content: center; gap: 5px; border-radius: 999px; padding: 6px 9px; font-size: .72rem; font-weight: 950; color: var(--badge-color, var(--pf-cyan-dark)); background: color-mix(in srgb, var(--badge-color, var(--pf-cyan)) 14%, white); border: 1px solid color-mix(in srgb, var(--badge-color, var(--pf-cyan)) 24%, white); white-space: nowrap; }
.client-badge.package { --badge-color: var(--pf-orange); color: #8a4815; background: rgba(255,154,62,.16); border-color: rgba(255,154,62,.28); }
.client-badge.light { --badge-color: var(--pf-blue-900); background: rgba(18,52,67,.06); color: var(--pf-blue-900); }
.client-chip-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.client-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.btn.btn-sm, .client-card-actions .btn { min-height: 34px; padding: 8px 11px; border-radius: 12px; font-size: .82rem; }
.client-progress { height: 9px; border-radius: 999px; overflow: hidden; background: rgba(18,52,67,.08); margin-top: 12px; }
.client-progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--pf-cyan), var(--pf-green)); }
.client-pet-list { display: grid; gap: 12px; }
.client-pet-card { border-radius: 24px; padding: 14px; display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; }
.client-pet-avatar { width: 58px; height: 58px; border-radius: 22px; display: grid; place-items: center; overflow: hidden; background: linear-gradient(135deg, var(--pf-cyan), var(--pf-orange)); color: #fff; font-size: 1.45rem; font-weight: 950; }
.client-pet-avatar img { width: 100%; height: 100%; object-fit: cover; }
.client-pet-card h3 { margin: 0; color: var(--pf-blue-900); }
.client-pet-card p { margin: 4px 0 0; color: var(--pf-muted); font-weight: 800; }
.client-alert-mini { margin-top: 8px; padding: 8px 10px; border-radius: 14px; background: rgba(248,161,152,.16); color: #8a321e; font-weight: 850; font-size: .84rem; }
.client-empty { text-align: center; padding: 24px 14px; color: var(--pf-muted); }
.client-empty span { font-size: 2rem; display: block; margin-bottom: 8px; }
.client-empty h3 { margin: 0 0 6px; color: var(--pf-blue-900); }
.client-empty p { margin: 0; font-weight: 800; }
.client-mimos-card, .client-profile-card { border-radius: 28px; padding: 20px; text-align: center; }
.client-mimos-card span { font-size: 2.7rem; }
.client-mimos-card h3, .client-profile-card h2 { color: var(--pf-blue-900); margin-bottom: 8px; }
.client-mimos-card p, .client-profile-card p { color: var(--pf-muted); font-weight: 850; }
.client-avatar-large { width: 76px; height: 76px; display: grid; place-items: center; margin: 0 auto 12px; border-radius: 28px; background: linear-gradient(135deg, var(--pf-cyan), var(--pf-orange)); color: #fff; font-size: 2rem; font-weight: 950; }
.client-bottom-nav {
  position: fixed;
  left: 50%;
  bottom: max(12px, env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  width: min(540px, calc(100vw - 24px));
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 4px;
  padding: 8px;
  border-radius: 26px;
  border: 1px solid rgba(16,82,97,.14);
  background: rgba(255,255,255,.92);
  backdrop-filter: blur(18px);
  box-shadow: 0 18px 50px rgba(31,77,89,.22);
  z-index: 100;
}
.client-bottom-nav a { text-decoration: none; color: var(--pf-muted); display: grid; place-items: center; gap: 3px; border-radius: 18px; padding: 8px 3px; font-weight: 950; }
.client-bottom-nav a span { font-size: 1.18rem; line-height: 1; }
.client-bottom-nav a small { font-size: .66rem; }
.client-bottom-nav a.is-active { color: var(--pf-blue-900); background: linear-gradient(135deg, rgba(0,169,183,.14), rgba(248,161,152,.16)); }
.client-login-page { padding: 16px; background: linear-gradient(145deg, #fff8f5 0%, #f4fbff 100%); }
.client-login-page .login-card { width: min(440px, 100%); border-radius: 30px; }
.client-login-page .brand-row { align-items: flex-start; }
.client-login-page .brand-logo { width: min(210px, 62vw); }
.client-login-page h1 { letter-spacing: -.04em; }
@media (min-width: 760px) {
  .client-app-shell.mobile-first { padding-top: 24px; }
  .client-mobile-topbar, .client-mobile-hero, .client-mobile-content { max-width: 620px; }
  .client-bottom-nav { width: min(620px, calc(100vw - 32px)); }
  .client-carousel-row { grid-auto-columns: 46%; }
}
@media (max-width: 420px) {
  .client-mobile-topbar { border-radius: 22px; }
  .client-mobile-brand img { width: 132px; }
  .client-mobile-hero { padding: 20px; }
  .client-kpi-grid { gap: 8px; }
  .client-kpi-grid article { padding: 12px 7px; }
  .client-section-title { flex-direction: column; }
  .client-next-card { grid-template-columns: auto 1fr; }
  .client-next-card .btn { grid-column: 1 / -1; width: 100%; }
}

/* v1.5.62 — App do Tutor funcionando */
.client-demo-login {
  width: 100%;
  justify-content: center;
  margin-top: 10px;
}
.client-auth-hint {
  margin: 8px 0 0;
  font-size: .84rem;
  line-height: 1.45;
  color: var(--muted, #64748b);
}
.client-mobile-content {
  padding-bottom: calc(92px + env(safe-area-inset-bottom));
}
.client-empty {
  margin-bottom: 14px;
}
.client-card-actions a,
.client-card-actions button {
  min-height: 38px;
}
@media (max-width: 520px) {
  .client-login-page .login-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .client-login-page .login-actions .btn {
    width: 100%;
    justify-content: center;
  }
}

/* v1.5.63 — App do Tutor: autenticação mobile-first por WhatsApp */
.client-auth-flow-page {
  min-height: 100vh;
  padding: 18px 14px 28px;
  align-items: flex-start;
}
.client-auth-flow-card {
  width: min(100%, 460px);
  margin: 0 auto;
  border-radius: 28px;
  overflow: hidden;
}
.client-auth-brand {
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
.client-auth-subtitle {
  margin: 0 0 18px;
  line-height: 1.55;
  color: var(--text-muted, #667085);
}
.client-auth-progress {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin: 14px 0 18px;
}
.client-auth-progress span {
  border: 1px solid rgba(17, 24, 39, .08);
  border-radius: 999px;
  background: rgba(255,255,255,.78);
  color: #667085;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: -.01em;
  text-align: center;
  padding: 8px 6px;
  white-space: nowrap;
}
.client-auth-progress span.active {
  border-color: rgba(245, 129, 31, .45);
  background: linear-gradient(135deg, rgba(245, 129, 31, .18), rgba(0, 169, 183, .14));
  color: #182230;
  box-shadow: 0 10px 24px rgba(245, 129, 31, .12);
}
.client-auth-step[hidden] {
  display: none !important;
}
.client-auth-summary {
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(0, 169, 183, .1);
  border: 1px solid rgba(0, 169, 183, .18);
  color: #164e63;
  font-weight: 700;
  line-height: 1.45;
}
.client-code-input {
  text-align: center;
  font-size: 28px;
  letter-spacing: .32em;
  font-weight: 900;
}
.btn-full {
  width: 100%;
  justify-content: center;
}
.client-auth-hint {
  margin: 8px 0 0;
  font-size: 12px;
  line-height: 1.45;
  color: #667085;
}
.login-feedback[data-type="error"] {
  border-color: rgba(239, 68, 68, .28);
  background: rgba(239, 68, 68, .08);
  color: #991b1b;
}
.login-feedback[data-type="success"] {
  border-color: rgba(34, 197, 94, .28);
  background: rgba(34, 197, 94, .08);
  color: #166534;
}
@media (max-width: 520px) {
  .client-auth-flow-page {
    padding: 10px 10px 22px;
    background: radial-gradient(circle at top, rgba(245,129,31,.18), transparent 34%), #f8fafc;
  }
  .client-auth-flow-card {
    min-height: calc(100vh - 20px);
    border-radius: 26px;
    padding: 20px;
  }
  .client-auth-progress {
    grid-template-columns: repeat(2, 1fr);
  }
  .client-auth-brand .brand-logo-box {
    width: 74px;
    height: 74px;
  }
}

/* v1.5.64 — App do Tutor: login mobile-first com logo central e post-it animado */
.client-auth-flow-page {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  min-height: 100dvh;
  padding: 18px 12px 28px;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 15% 4%, rgba(245,129,31,.20), transparent 32%),
    radial-gradient(circle at 88% 0%, rgba(0,169,183,.18), transparent 34%),
    linear-gradient(160deg, #fff8f3 0%, #f6fbff 52%, #fffdf7 100%);
}
.client-auth-flow-card {
  position: relative;
  width: min(100%, 440px);
  margin: 0 auto;
  padding: 22px 18px 20px;
  border-radius: 32px;
  border: 1px solid rgba(255,255,255,.78);
  background: rgba(255,255,255,.88);
  box-shadow: 0 24px 70px rgba(24,39,75,.14);
  overflow: visible;
}
.client-auth-flow-card::before {
  display: none !important;
}
.client-auth-hero {
  text-align: center;
  display: grid;
  justify-items: center;
  gap: 8px;
  margin: 0 0 18px;
}
.client-auth-logo-wrap {
  width: min(250px, 74vw);
  min-height: 96px;
  display: grid;
  place-items: center;
  padding: 6px 10px 0;
  border-radius: 30px;
  background:
    radial-gradient(circle at 50% 36%, rgba(255,255,255,.96), rgba(255,255,255,.34) 62%, transparent 72%);
}
.client-auth-logo {
  display: block;
  width: min(232px, 70vw);
  max-height: 110px;
  object-fit: contain;
  filter: drop-shadow(0 14px 20px rgba(8, 35, 48, .12));
}
.client-auth-eyebrow {
  margin: 0;
  color: #F8A198;
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.client-auth-hero h1 {
  margin: 0;
  color: #14313f;
  font-size: clamp(1.85rem, 9vw, 2.5rem);
  line-height: .98;
  letter-spacing: -.07em;
  max-width: 330px;
}
.client-auth-postit {
  position: relative;
  width: min(318px, 86vw);
  margin: 14px auto 2px;
  padding: 24px 18px 18px;
  border-radius: 20px 22px 24px 18px;
  background:
    linear-gradient(158deg, rgba(255,254,226,.98) 0%, rgba(255,246,172,.98) 100%);
  border: 1px solid rgba(245,197,66,.55);
  box-shadow:
    0 18px 34px rgba(133,96,16,.16),
    inset 0 -12px 24px rgba(255,214,70,.12);
  color: #44320d;
  transform: rotate(-1.6deg);
  animation: pf-client-postit-float 4.6s ease-in-out infinite;
}
.client-auth-postit::after {
  content: "";
  position: absolute;
  right: 15px;
  bottom: -9px;
  width: 58px;
  height: 22px;
  border-radius: 0 0 18px 0;
  background: linear-gradient(135deg, rgba(218,174,45,.28), rgba(255,250,210,.08));
  transform: skewX(-18deg) rotate(-2deg);
  filter: blur(.1px);
}
.client-auth-postit-tape {
  position: absolute;
  top: -12px;
  left: 50%;
  width: 94px;
  height: 26px;
  border-radius: 999px;
  transform: translateX(-50%) rotate(2deg);
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(255,255,255,.82);
  box-shadow: 0 8px 18px rgba(143,107,20,.10);
  backdrop-filter: blur(4px);
}
.client-auth-postit strong {
  display: block;
  margin-bottom: 6px;
  font-size: 1rem;
  font-weight: 950;
  letter-spacing: -.03em;
}
.client-auth-postit small {
  display: block;
  color: rgba(68,50,13,.72);
  font-size: .82rem;
  font-weight: 800;
  line-height: 1.35;
}
.client-auth-subtitle {
  margin: 0 0 16px;
  text-align: center;
  color: #64748b;
  font-size: .94rem;
  line-height: 1.45;
  font-weight: 700;
}
.client-auth-progress {
  margin: 12px 0 18px;
}
.client-auth-step .form-field {
  margin-bottom: 12px;
}
.client-auth-step .input {
  min-height: 48px;
  border-radius: 16px;
}
.client-auth-step .btn {
  min-height: 48px;
  border-radius: 16px;
}
@keyframes pf-client-postit-float {
  0%, 100% { transform: rotate(-1.6deg) translateY(0); }
  50% { transform: rotate(1.1deg) translateY(-7px); }
}
@media (max-width: 520px) {
  .client-auth-flow-page {
    padding: 10px 10px 18px;
    align-items: stretch;
  }
  .client-auth-flow-card {
    min-height: calc(100dvh - 20px);
    display: flex;
    flex-direction: column;
    border-radius: 30px;
    padding: 18px 16px;
  }
  .client-auth-logo-wrap {
    width: min(238px, 78vw);
    min-height: 90px;
  }
  .client-auth-logo {
    width: min(220px, 74vw);
  }
  .client-auth-postit {
    width: min(302px, 88vw);
    padding: 22px 16px 16px;
  }
  .client-auth-progress span {
    font-size: 10px;
    padding: 7px 5px;
  }
}

/* v1.5.65 — App Tutor copy premium + chatbot contextual IA no admin */
.client-auth-eyebrow {
  color: #e83f91 !important;
  text-shadow: 0 8px 22px rgba(232, 63, 145, .16);
}
.client-auth-hero h1 {
  max-width: 360px;
  font-size: clamp(1.62rem, 7.6vw, 2.28rem);
  line-height: 1.02;
  letter-spacing: -.06em;
}
.client-auth-copyright {
  margin: 12px auto 0;
  max-width: 310px;
  text-align: center;
  color: rgba(20, 49, 63, .54);
  font-size: .75rem;
  font-weight: 800;
  line-height: 1.35;
}
.context-ai-assistant {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 99998;
  font-family: inherit;
}
.context-ai-fab {
  border: 0;
  width: 66px;
  height: 66px;
  border-radius: 24px;
  cursor: pointer;
  display: grid;
  place-items: center;
  color: #fff;
  background: radial-gradient(circle at 32% 22%, rgba(255,255,255,.42), transparent 28%), linear-gradient(135deg, #14313f 0%, #00a9b7 52%, #F8A198 100%);
  box-shadow: 0 22px 48px rgba(20, 49, 63, .28), 0 0 0 7px rgba(255,255,255,.78);
  transition: transform .2s ease, box-shadow .2s ease;
}
.context-ai-fab:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 28px 58px rgba(20, 49, 63, .34), 0 0 0 7px rgba(255,255,255,.9); }
.context-ai-fab span { font-size: 1.9rem; line-height: 1; filter: drop-shadow(0 6px 10px rgba(0,0,0,.24)); }
.context-ai-panel {
  position: absolute;
  right: 0;
  bottom: 88px;
  width: min(410px, calc(100vw - 28px));
  max-height: min(720px, calc(100vh - 120px));
  overflow: auto;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.76);
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(18px);
  box-shadow: 0 32px 88px rgba(20, 49, 63, .24);
  padding: 16px;
}
.context-ai-panel[hidden] { display: none !important; }
.context-ai-panel header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 4px 2px 12px;
  border-bottom: 1px solid rgba(20, 49, 63, .08);
}
.context-ai-panel header div { display: grid; grid-template-columns: auto 1fr; column-gap: 10px; align-items: center; }
.context-ai-panel header span { grid-row: span 2; width: 42px; height: 42px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, rgba(0,169,183,.14), rgba(245,129,31,.14)); }
.context-ai-panel header strong { color: #14313f; font-size: 1.02rem; font-weight: 950; letter-spacing: -.03em; }
.context-ai-panel header small { color: #64748b; font-size: .78rem; font-weight: 800; }
.context-ai-panel header button {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 14px;
  cursor: pointer;
  color: #14313f;
  background: rgba(20, 49, 63, .08);
  font-size: 1.2rem;
}
.context-ai-intro { color: #64748b; font-weight: 750; line-height: 1.42; margin: 14px 0; }
.context-ai-prompts { display: grid; gap: 8px; margin-bottom: 12px; }
.context-ai-prompts button {
  border: 1px solid rgba(0,169,183,.14);
  background: linear-gradient(135deg, rgba(0,169,183,.08), rgba(245,129,31,.07));
  color: #14313f;
  border-radius: 16px;
  padding: 10px 12px;
  cursor: pointer;
  text-align: left;
  font-weight: 850;
  line-height: 1.25;
}
.context-ai-prompts button:hover { border-color: rgba(0,169,183,.36); transform: translateY(-1px); }
.context-ai-panel textarea {
  width: 100%;
  resize: vertical;
  min-height: 108px;
  border-radius: 18px;
  border: 1px solid rgba(20,49,63,.12);
  background: #fff;
  padding: 13px 14px;
  font: inherit;
  color: #14313f;
  outline: none;
  box-sizing: border-box;
}
.context-ai-panel textarea:focus { border-color: rgba(0,169,183,.48); box-shadow: 0 0 0 4px rgba(0,169,183,.10); }
.context-ai-send { width: 100%; margin: 10px 0 12px; justify-content: center; }
.context-ai-output {
  border-radius: 20px;
  background: rgba(248, 250, 252, .92);
  border: 1px solid rgba(20,49,63,.08);
  padding: 14px;
  color: #334155;
  font-weight: 700;
  line-height: 1.45;
}
.context-ai-output p { margin: 0 0 9px; }
.context-ai-output p:last-child { margin-bottom: 0; }
.context-ai-answer-block strong { display: block; color: #14313f; font-weight: 950; margin-bottom: 10px; }
.context-ai-answer-block small { display: block; color: #64748b; margin-top: 10px; font-size: .75rem; }
.context-ai-ready-message {
  margin-top: 10px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(0,169,183,.09);
  color: #14313f;
}
.context-ai-thinking {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #14313f;
  font-weight: 900;
}
.context-ai-thinking span {
  width: 11px;
  height: 11px;
  border-radius: 999px;
  background: #00a9b7;
  box-shadow: 18px 0 0 rgba(245,129,31,.8), 36px 0 0 rgba(232,63,145,.75);
  animation: pf-ai-thinking 1.1s ease-in-out infinite;
}
.context-ai-error { color: #b42318; font-weight: 900; }
@keyframes pf-ai-thinking {
  0%, 100% { transform: translateY(0); opacity: .65; }
  50% { transform: translateY(-4px); opacity: 1; }
}
@media (max-width: 720px) {
  .context-ai-assistant { right: 14px; bottom: 14px; }
  .context-ai-fab { width: 64px; height: 64px; border-radius: 22px; }
  .context-ai-panel { bottom: 78px; width: calc(100vw - 28px); max-height: calc(100dvh - 104px); border-radius: 24px; }
}


.client-whatsapp-code-card {
  display: grid;
  gap: 10px;
  padding: 14px;
  margin: 4px 0 12px;
  border-radius: 22px;
  border: 1px solid rgba(0, 169, 183, .18);
  background: linear-gradient(135deg, rgba(0, 169, 183, .08), rgba(245, 129, 31, .08));
  box-shadow: 0 14px 32px rgba(20, 49, 63, .08);
}
.client-whatsapp-code-card[hidden] { display: none !important; }
.client-whatsapp-code-card strong {
  color: #14313f;
  font-weight: 950;
  letter-spacing: -.02em;
}
.client-whatsapp-code-card small {
  color: #64748b;
  font-weight: 750;
  line-height: 1.45;
}

/* v1.5.67 — App Tutor: login usando as cores reais da logo PetFunny */
.client-auth-flow-page {
  --client-logo-pink: #ff9c96;
  --client-logo-pink-strong: #f5718d;
  --client-logo-cyan: #00a9b7;
  --client-logo-cyan-dark: #008fa0;
  --client-logo-ink: #12313f;
  --client-logo-cream: #fff8f2;
  background:
    radial-gradient(circle at 14% 5%, rgba(255, 156, 150, .40), transparent 34%),
    radial-gradient(circle at 88% 2%, rgba(0, 169, 183, .34), transparent 36%),
    radial-gradient(circle at 72% 92%, rgba(245, 129, 31, .18), transparent 34%),
    linear-gradient(155deg, #fff5f2 0%, #fffafa 38%, #eefcff 100%) !important;
}
.client-auth-flow-card {
  border: 1px solid rgba(255, 156, 150, .28) !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,250,247,.91)) !important;
  box-shadow:
    0 24px 70px rgba(0, 169, 183, .13),
    0 18px 44px rgba(255, 156, 150, .13) !important;
}
.client-auth-logo-wrap {
  background:
    radial-gradient(circle at 28% 34%, rgba(255, 156, 150, .24), transparent 34%),
    radial-gradient(circle at 74% 38%, rgba(0, 169, 183, .23), transparent 38%),
    rgba(255, 255, 255, .64) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.74);
}
.client-auth-logo {
  filter:
    drop-shadow(0 14px 20px rgba(0, 169, 183, .14))
    drop-shadow(0 10px 16px rgba(255, 156, 150, .13)) !important;
}
.client-auth-eyebrow {
  color: var(--client-logo-pink) !important;
  text-shadow: 0 10px 24px rgba(255, 156, 150, .26) !important;
}
.client-auth-hero h1 {
  color: var(--client-logo-ink) !important;
}
.client-auth-hero h1::after {
  content: "";
  display: block;
  width: 86px;
  height: 5px;
  margin: 12px auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--client-logo-pink), var(--client-logo-cyan));
  box-shadow: 0 10px 20px rgba(0, 169, 183, .14);
}
.client-auth-subtitle {
  color: rgba(18, 49, 63, .72) !important;
}
.client-auth-postit {
  background:
    linear-gradient(158deg, rgba(255, 250, 247, .98) 0%, rgba(255, 229, 225, .96) 48%, rgba(232, 252, 255, .96) 100%) !important;
  border-color: rgba(255, 156, 150, .38) !important;
  color: var(--client-logo-ink) !important;
  box-shadow:
    0 18px 34px rgba(255, 156, 150, .18),
    0 10px 28px rgba(0, 169, 183, .10),
    inset 0 -12px 24px rgba(0, 169, 183, .08) !important;
}
.client-auth-postit-tape {
  background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(255,156,150,.34)) !important;
  border-color: rgba(255, 255, 255, .86) !important;
}
.client-auth-postit small {
  color: rgba(18, 49, 63, .70) !important;
}
.client-auth-progress {
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(0,169,183,.10);
  border-radius: 18px;
  padding: 5px;
}
.client-auth-progress span {
  color: rgba(18, 49, 63, .58);
}
.client-auth-progress span.active {
  color: #fff !important;
  background: linear-gradient(135deg, var(--client-logo-pink), var(--client-logo-cyan)) !important;
  box-shadow: 0 12px 24px rgba(0,169,183,.16), 0 8px 18px rgba(255,156,150,.16);
}
.client-auth-step .input {
  border-color: rgba(0,169,183,.16) !important;
  background: rgba(255,255,255,.94) !important;
}
.client-auth-step .input:focus {
  border-color: var(--client-logo-pink) !important;
  box-shadow: 0 0 0 4px rgba(255,156,150,.18) !important;
}
.client-auth-step .btn:not(.btn-secondary) {
  background: linear-gradient(135deg, var(--client-logo-pink), var(--client-logo-cyan)) !important;
  box-shadow: 0 16px 34px rgba(0,169,183,.22), 0 10px 20px rgba(255,156,150,.18) !important;
}
.client-auth-step .btn-secondary {
  color: var(--client-logo-ink) !important;
  border-color: rgba(255,156,150,.28) !important;
  background: rgba(255,255,255,.86) !important;
}
.client-auth-copyright {
  color: rgba(18, 49, 63, .58) !important;
}
.client-whatsapp-code-card {
  border: 1px solid rgba(0,169,183,.18) !important;
  background: linear-gradient(135deg, rgba(232,252,255,.74), rgba(255,229,225,.62)) !important;
}

/* v1.5.68 — App Login: centralização dos botões e aviso nas cores da logo */
.client-auth-flow-page .client-auth-step .login-actions,
.client-auth-flow-page .client-auth-step .form-actions.login-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 12px auto 0 !important;
  text-align: center !important;
}

.client-auth-flow-page .client-auth-step .login-actions .btn,
.client-auth-flow-page .client-auth-step .form-actions.login-actions .btn {
  min-width: min(190px, 46vw) !important;
  justify-content: center !important;
  text-align: center !important;
}

.client-auth-flow-page #step-code .login-actions {
  padding-top: 2px !important;
}

.client-auth-flow-page #step-code .btn-secondary {
  color: var(--client-logo-cyan-dark) !important;
  border: 1px solid rgba(0, 169, 183, .26) !important;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(232,252,255,.88)) !important;
  box-shadow: 0 12px 24px rgba(0, 169, 183, .10) !important;
}

.client-auth-flow-page #step-code .btn-secondary:hover {
  border-color: rgba(0, 169, 183, .44) !important;
  transform: translateY(-1px);
}

.client-auth-flow-page #step-code .btn:not(.btn-secondary) {
  color: #fff !important;
  background: linear-gradient(135deg, var(--client-logo-pink), var(--client-logo-cyan)) !important;
  box-shadow: 0 16px 34px rgba(0,169,183,.20), 0 10px 22px rgba(255,156,150,.18) !important;
}

.client-auth-flow-page .client-whatsapp-code-card {
  width: min(100%, 350px) !important;
  margin: 8px auto 16px !important;
  padding: 16px 15px !important;
  text-align: center !important;
  justify-items: center !important;
  border-radius: 24px !important;
  border: 1px solid rgba(255, 156, 150, .34) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255, 156, 150, .22), transparent 36%),
    radial-gradient(circle at 88% 100%, rgba(0, 169, 183, .20), transparent 38%),
    linear-gradient(145deg, rgba(255,250,247,.96), rgba(232,252,255,.90)) !important;
  box-shadow: 0 18px 38px rgba(0, 169, 183, .10), 0 10px 26px rgba(255,156,150,.12) !important;
}

.client-auth-flow-page .client-whatsapp-code-card strong {
  color: var(--client-logo-ink) !important;
  font-weight: 950 !important;
  letter-spacing: -.03em !important;
}

.client-auth-flow-page .client-whatsapp-code-card small {
  max-width: 280px;
  color: rgba(18,49,63,.68) !important;
  font-weight: 800 !important;
}

.client-auth-flow-page .client-whatsapp-code-card .btn {
  width: 100% !important;
  max-width: 300px !important;
  justify-content: center !important;
  color: #fff !important;
  border: 0 !important;
  background: linear-gradient(135deg, var(--client-logo-cyan), var(--client-logo-pink)) !important;
  box-shadow: 0 14px 30px rgba(0,169,183,.18), 0 8px 18px rgba(255,156,150,.16) !important;
}

@media (max-width: 520px) {
  .client-auth-flow-page .client-auth-step .login-actions,
  .client-auth-flow-page .client-auth-step .form-actions.login-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .client-auth-flow-page .client-auth-step .login-actions .btn,
  .client-auth-flow-page .client-auth-step .form-actions.login-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* v1.5.69 — App Login: aviso e card WhatsApp na paleta da logo */
.client-auth-flow-page #feedback.login-feedback,
.client-auth-flow-page .login-feedback {
  width: 100% !important;
  margin: 14px auto 0 !important;
  text-align: center !important;
  border-radius: 20px !important;
  font-weight: 900 !important;
  line-height: 1.42 !important;
  color: var(--client-logo-ink) !important;
  border: 1px solid rgba(255, 156, 150, .34) !important;
  background:
    radial-gradient(circle at 12% 0%, rgba(255, 156, 150, .24), transparent 38%),
    radial-gradient(circle at 92% 100%, rgba(0, 169, 183, .20), transparent 40%),
    linear-gradient(145deg, rgba(255,250,247,.98), rgba(232,252,255,.94)) !important;
  box-shadow: 0 16px 34px rgba(0,169,183,.10), 0 8px 20px rgba(255,156,150,.12) !important;
}

.client-auth-flow-page #feedback.login-feedback[data-type="success"],
.client-auth-flow-page .login-feedback[data-type="success"] {
  color: var(--client-logo-ink) !important;
  border-color: rgba(0, 169, 183, .25) !important;
  background:
    radial-gradient(circle at 15% 0%, rgba(255, 156, 150, .22), transparent 38%),
    radial-gradient(circle at 88% 100%, rgba(0, 169, 183, .22), transparent 40%),
    linear-gradient(145deg, rgba(255,250,247,.98), rgba(232,252,255,.94)) !important;
}

.client-auth-flow-page #feedback.login-feedback[data-type="error"],
.client-auth-flow-page .login-feedback[data-type="error"] {
  color: #9f1239 !important;
  border-color: rgba(255, 156, 150, .46) !important;
  background:
    radial-gradient(circle at 15% 0%, rgba(255, 156, 150, .28), transparent 38%),
    linear-gradient(145deg, rgba(255,247,246,.98), rgba(255,238,238,.94)) !important;
}

.client-auth-flow-page #step-code .form-field,
.client-auth-flow-page #step-code .client-whatsapp-code-card,
.client-auth-flow-page #step-code .login-actions,
.client-auth-flow-page #step-code .login-feedback {
  width: 100% !important;
  max-width: none !important;
}

.client-auth-flow-page #step-code .client-whatsapp-code-card {
  margin: 10px 0 16px !important;
  padding: 17px 16px !important;
  align-items: center !important;
  justify-items: stretch !important;
  border: 1px solid rgba(255, 156, 150, .36) !important;
  background:
    radial-gradient(circle at 16% 0%, rgba(255, 156, 150, .24), transparent 38%),
    radial-gradient(circle at 92% 100%, rgba(0, 169, 183, .22), transparent 40%),
    linear-gradient(145deg, rgba(255,250,247,.98), rgba(232,252,255,.94)) !important;
}

.client-auth-flow-page #step-code .client-whatsapp-code-card strong,
.client-auth-flow-page #step-code .client-whatsapp-code-card small {
  text-align: center !important;
  justify-self: center !important;
}

.client-auth-flow-page #step-code .client-whatsapp-code-card .btn,
.client-auth-flow-page #step-code #open-whatsapp-code {
  width: 100% !important;
  max-width: none !important;
  margin-top: 2px !important;
  color: #fff !important;
  background: linear-gradient(135deg, var(--client-logo-pink), var(--client-logo-cyan)) !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(0,169,183,.20), 0 10px 22px rgba(255,156,150,.18) !important;
}

/* v1.5.70 - App do Tutor funcional: timeline, CRUD, agendamento, pacotes e roleta */
.client-timeline { display: grid; gap: 16px; margin-bottom: 22px; }
.client-timeline-post {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 14px;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,244,248,.92));
  border: 1px solid rgba(240, 93, 130, .18);
  box-shadow: 0 18px 42px rgba(67, 18, 45, .08);
}
.client-timeline-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 104, 139, .18), rgba(20, 183, 194, .18));
  font-size: 1.35rem;
}
.client-timeline-post h3 { margin: 2px 0 6px; color: #323047; font-size: 1.02rem; }
.client-timeline-post p { margin: 0; color: #6c6070; line-height: 1.45; }
.client-form-card,
.client-profile-card,
.client-roulette-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  margin-bottom: 20px;
  border-radius: 26px;
  background: linear-gradient(145deg, #ffffff, #fff5f8 52%, #effdff);
  border: 1px solid rgba(255, 105, 140, .18);
  box-shadow: 0 18px 42px rgba(49, 23, 39, .08);
}
.client-form-grid { display: grid; gap: 14px; }
.client-form-grid.compact { gap: 12px; }
.client-field { display: grid; gap: 8px; color: #554456; font-weight: 800; font-size: .83rem; }
.client-field input,
.client-field select,
.client-field textarea {
  width: 100%;
  border: 1px solid rgba(255, 105, 140, .25);
  border-radius: 18px;
  padding: 13px 14px;
  background: rgba(255,255,255,.92);
  color: #352d3f;
  font: inherit;
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(20,183,194,.05);
}
.client-field input:focus,
.client-field select:focus,
.client-field textarea:focus { border-color: rgba(20,183,194,.75); box-shadow: 0 0 0 4px rgba(20,183,194,.12); }
.client-field input:disabled { background: #fff1ec; color: #9b6675; }
.client-check-list { display: grid; gap: 14px; }
.client-service-group {
  display: grid;
  gap: 10px;
  padding: 10px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(20,183,194,.08));
  border: 1px solid rgba(255,105,140,.16);
  box-shadow: 0 16px 30px rgba(54,43,64,.06);
}
.client-service-group-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 4px 4px;
  color: #2f2940;
  font-weight: 950;
}
.client-service-group-title span { display: inline-flex; align-items: center; gap: 7px; }
.client-service-group-title span::before { content: '🐾'; font-size: .9rem; }
.client-service-group-title small {
  color: #12a6b8;
  font-size: .72rem;
  font-weight: 900;
  background: rgba(20,183,194,.10);
  border: 1px solid rgba(20,183,194,.16);
  border-radius: 999px;
  padding: 5px 8px;
}
.client-service-group-list { display: grid; gap: 8px; }
.client-check-list label {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border-radius: 18px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(20,183,194,.16);
}
.client-check-list strong { display: block; color: #302944; }
.client-check-list small { display: block; margin-top: 2px; color: #7f7380; }
.client-alert-soft {
  padding: 14px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255, 105, 140, .10), rgba(20, 183, 194, .12));
  color: #554456;
  border: 1px solid rgba(255, 105, 140, .18);
  line-height: 1.45;
}
.client-muted { margin: 0; color: #8a7d8b; }
.client-switch {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: center;
  padding: 13px;
  border-radius: 18px;
  background: rgba(255,255,255,.76);
  border: 1px solid rgba(20,183,194,.16);
  color: #51435a;
  font-weight: 750;
}
.pet-actions { margin: -10px 0 14px 16px; }
.client-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(26, 21, 36, .48);
  backdrop-filter: blur(10px);
  padding: 16px;
}
.client-modal-card {
  width: min(520px, 100%);
  max-height: 88vh;
  overflow: hidden;
  border-radius: 30px 30px 24px 24px;
  background: #fff;
  box-shadow: 0 28px 90px rgba(28, 15, 35, .35);
  border: 1px solid rgba(255,255,255,.65);
}
.client-modal-card header,
.client-modal-card footer { padding: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.client-modal-card header { border-bottom: 1px solid rgba(255, 105, 140, .14); background: linear-gradient(135deg, #fff6f2, #effdff); }
.client-modal-card h2 { margin: 0; color: #312842; }
.client-modal-body { padding: 16px; overflow: auto; max-height: calc(88vh - 130px); }
.client-toast {
  position: fixed;
  left: 50%;
  bottom: 92px;
  transform: translateX(-50%);
  z-index: 10000;
  width: min(420px, calc(100vw - 32px));
  padding: 14px 16px;
  border-radius: 18px;
  color: #3b2943;
  font-weight: 800;
  text-align: center;
  background: linear-gradient(135deg, #ffe8f0, #e4fbff);
  border: 1px solid rgba(255, 105, 140, .24);
  box-shadow: 0 14px 48px rgba(36, 18, 42, .2);
}
.client-roulette-card { text-align: center; }
.client-roulette-wheel {
  width: 168px;
  height: 168px;
  margin: 4px auto 8px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: conic-gradient(from 0deg, #F8A198, #14b8c4, #ffd166, #F8A198, #14b8c4, #F8A198);
  box-shadow: inset 0 0 0 12px rgba(255,255,255,.52), 0 24px 52px rgba(255, 105, 140, .26);
}
.client-roulette-wheel span { font-size: 3.2rem; filter: drop-shadow(0 8px 12px rgba(0,0,0,.2)); }
.client-roulette-wheel.is-spinning { animation: clientSpin 1.1s cubic-bezier(.2,.8,.2,1); }
@keyframes clientSpin { from { transform: rotate(0); } to { transform: rotate(1080deg); } }
.client-shortcuts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 520px) {
  .client-timeline-post { grid-template-columns: 42px 1fr; padding: 16px; }
  .client-timeline-icon { width: 42px; height: 42px; border-radius: 16px; }
  .client-modal-backdrop { align-items: flex-end; padding: 10px; }
  .client-modal-card { border-radius: 26px 26px 18px 18px; }
}

/* v1.5.72 · PWA Push mobile-first */
.client-push-card {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 14px;
  align-items: start;
  padding: 16px;
  margin-bottom: 18px;
  border-radius: 24px;
  border: 1px solid rgba(255, 127, 149, 0.26);
  background: linear-gradient(135deg, rgba(255, 127, 149, 0.14), rgba(0, 169, 183, 0.12)), #fff;
  box-shadow: 0 18px 42px rgba(22, 28, 45, 0.08);
}
.client-push-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: linear-gradient(135deg, #F8A198, #00a9b7);
  color: #fff;
  font-size: 1.5rem;
  box-shadow: 0 14px 28px rgba(255, 127, 149, 0.28);
}
.client-push-card h3 { margin: 2px 0 6px; color: #27313f; }
.client-push-card p { margin: 0 0 10px; color: #526173; }
.push-actions { justify-content: flex-start; flex-wrap: wrap; }
.push-actions .btn[disabled] { opacity: .55; cursor: not-allowed; }
@media (max-width: 520px) {
  .client-push-card { grid-template-columns: 1fr; text-align: center; }
  .client-push-icon { margin: 0 auto; }
  .push-actions { justify-content: center; }
  .push-actions .btn { width: 100%; }
}
.push-admin-panel { border-color: rgba(0, 169, 183, 0.18); }
.push-admin-panel .status-pill {
  background: rgba(0, 169, 183, 0.12);
  color: #007d89;
  border-color: rgba(0, 169, 183, 0.25);
}
.push-admin-panel .status-pill.danger {
  background: rgba(255, 127, 149, 0.12);
  color: #c84260;
  border-color: rgba(255, 127, 149, 0.28);
}
.push-log-list {
  display: grid;
  gap: 10px;
}
.push-log-item {
  padding: 12px 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: rgba(255,255,255,0.78);
}
.push-log-item.sent { border-left: 4px solid #00a9b7; }
.push-log-item.failed { border-left: 4px solid #F8A198; }
.push-log-item.skipped { border-left: 4px solid #f59e0b; }
.push-log-item strong { display:block; color:#27313f; }
.push-log-item p { margin: 4px 0; color:#526173; }
.push-log-item small, .push-log-item em { display:block; color:#7b8794; font-style: normal; }

/* v1.5.80 · Landing page comercial PetFunny · identidade da logo */
.site-body {
  margin: 0;
  min-height: 100vh;
  background:
    radial-gradient(circle at 8% 6%, rgba(255, 110, 143, .28), transparent 30%),
    radial-gradient(circle at 92% 4%, rgba(25, 190, 202, .24), transparent 32%),
    radial-gradient(circle at 50% 96%, rgba(255, 138, 92, .12), transparent 34%),
    linear-gradient(180deg, #fff6fb 0%, #f3fcfe 42%, #fff 100%);
  color: #273141;
}
.pf-site, .pf-site * { box-sizing: border-box; }
.pf-site {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 18px 0 34px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --pf-rose: #F8A198;
  --pf-rose-2: #ff4f86;
  --pf-coral: #ff8a5b;
  --pf-aqua: #16beca;
  --pf-aqua-2: #00a9b7;
  --pf-ink: #273141;
  --pf-muted: #647286;
  --pf-soft: #fff6fb;
  --pf-shadow: 0 24px 70px rgba(39, 49, 65, .12);
}
.pf-site-nav {
  position: sticky;
  top: 12px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 111, 145, .22);
  border-radius: 30px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 20px 50px rgba(39, 49, 65, .11);
  backdrop-filter: blur(18px);
}
.pf-site-brand { display: inline-flex; align-items: center; min-width: 148px; }
.pf-site-brand img { display: block; max-height: 58px; width: auto; }
.pf-site-links { display: flex; align-items: center; justify-content: center; gap: 6px; flex: 1; }
.pf-site-links a, .pf-site-footer a {
  color: #4c5a6a;
  text-decoration: none;
  font-weight: 900;
  font-size: .92rem;
  padding: 10px 12px;
  border-radius: 999px;
  transition: .2s ease;
}
.pf-site-links a:hover, .pf-site-footer a:hover { color: var(--pf-rose-2); background: rgba(255, 111, 145, .10); }
.pf-site-link-soft { color: var(--pf-aqua-2) !important; }
.pf-site-nav-cta, .pf-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 50px;
  padding: 0 22px;
  border-radius: 999px;
  border: 0;
  text-decoration: none;
  font-weight: 1000;
  letter-spacing: -.01em;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.pf-site-nav-cta, .pf-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, var(--pf-rose-2), var(--pf-coral) 45%, var(--pf-aqua));
  box-shadow: 0 18px 36px rgba(255, 111, 145, .32);
}
.pf-btn-ghost {
  color: var(--pf-ink);
  background: rgba(255, 255, 255, .82);
  border: 1px solid rgba(22, 190, 202, .24);
  box-shadow: 0 14px 30px rgba(22, 190, 202, .12);
}
.pf-site-nav-cta:hover, .pf-btn:hover { transform: translateY(-2px); }
.pf-site-menu-btn { display: none; border: 0; width: 44px; height: 44px; border-radius: 16px; background: rgba(255, 111, 145, .12); color: var(--pf-rose-2); font-size: 1.2rem; }
.pf-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
  gap: 48px;
  align-items: center;
  padding: 84px 0 54px;
}
.pf-kicker {
  margin: 0 0 14px;
  color: var(--pf-rose-2);
  text-transform: uppercase;
  letter-spacing: .13em;
  font-weight: 1000;
  font-size: .78rem;
}
.pf-hero h1, .pf-section h2, .pf-final-cta h2 {
  margin: 0;
  color: var(--pf-ink);
  letter-spacing: -.055em;
  line-height: .94;
  font-weight: 1000;
}
.pf-hero h1 { font-size: clamp(3.2rem, 7.4vw, 6.55rem); max-width: 820px; }
.pf-hero p, .pf-section p, .pf-final-cta p {
  color: var(--pf-muted);
  font-size: 1.08rem;
  line-height: 1.72;
}
.pf-hero-copy > p:not(.pf-kicker) { max-width: 660px; margin: 24px 0 0; }
.pf-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.pf-trust-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pf-trust-row span {
  padding: 10px 13px;
  border: 1px solid rgba(255, 111, 145, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .76);
  color: #4c5d70;
  font-weight: 900;
}
.pf-postit-stack { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.pf-postit {
  position: relative;
  width: min(250px, 100%);
  padding: 18px 18px 20px;
  border-radius: 8px 26px 24px 26px;
  background: linear-gradient(145deg, #fff2a8, #fff7cc);
  box-shadow: 0 18px 36px rgba(126, 91, 18, .16);
  transform: rotate(-2deg);
  animation: pfPostitFloat 4.8s ease-in-out infinite;
}
.pf-postit::before { content: ''; position: absolute; top: -10px; left: 28px; width: 72px; height: 20px; border-radius: 999px; background: rgba(248,161,152,.25); transform: rotate(-4deg); }
.pf-postit strong { display: block; color: var(--pf-ink); font-size: 1rem; margin-bottom: 5px; }
.pf-postit span { display: block; color: #6e5c2f; font-weight: 800; line-height: 1.45; }
.pf-postit-two { background: linear-gradient(145deg, #dffcff, #f3feff); transform: rotate(2deg); animation-delay: -1.6s; }
.pf-postit-two span { color: #34646b; }
@keyframes pfPostitFloat { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-8px) rotate(1deg); } }
.pf-hero-visual { position: relative; min-height: 640px; display: grid; place-items: center; isolation: isolate; perspective: 1200px; }
.pf-brand-orb { position: absolute; border-radius: 999px; filter: blur(.2px); opacity: .94; animation: pfFloat 6s ease-in-out infinite; }
.pf-brand-orb-a { inset: 76px 12px 58px 28px; background: linear-gradient(135deg, rgba(248,161,152,.28), rgba(22,190,202,.22)); }
.pf-brand-orb-b { width: 320px; height: 320px; right: 22px; top: 42px; border: 2px dashed rgba(22, 190, 202, .34); animation-delay: -2s; }
.pf-device-stage { position: relative; width: min(520px, 100%); min-height: 560px; transform-style: preserve-3d; }
.pf-phone-3d {
  position: absolute;
  border: 8px solid #202837;
  border-radius: 44px;
  background: linear-gradient(180deg, #fff 0%, #fff6fb 55%, #edfafd 100%);
  box-shadow: 0 34px 80px rgba(39,49,65,.28), inset 0 0 0 1px rgba(255,255,255,.8);
  overflow: hidden;
  transform-style: preserve-3d;
}
.pf-phone-main { width: 286px; min-height: 548px; left: 96px; top: 8px; z-index: 4; transform: rotateY(-18deg) rotateX(8deg) rotateZ(-2deg); animation: pfPhoneFloat 5.8s ease-in-out infinite; }
.pf-phone-side { width: 188px; min-height: 360px; right: 4px; bottom: 16px; z-index: 3; transform: rotateY(-28deg) rotateX(10deg) rotateZ(8deg) scale(.92); opacity: .92; animation: pfPhoneFloat 6.6s ease-in-out infinite reverse; }
.pf-phone-speaker { width: 76px; height: 7px; margin: 14px auto 12px; border-radius: 999px; background: #202837; opacity: .9; }
.pf-app-ui-top { display: flex; align-items: center; gap: 10px; padding: 0 16px 12px; }
.pf-app-ui-top img { width: 78px; height: auto; }
.pf-app-ui-top span { margin-left: auto; color: var(--pf-rose-2); font-size: .78rem; font-weight: 1000; }
.pf-app-ui-card { margin: 12px 16px; padding: 15px; border-radius: 24px; background: rgba(255,255,255,.86); border: 1px solid rgba(22,190,202,.16); box-shadow: 0 12px 30px rgba(39,49,65,.10); }
.pf-ui-card-hot { color: #fff; background: linear-gradient(135deg, var(--pf-rose-2), var(--pf-coral) 60%, var(--pf-aqua)); border: 0; }
.pf-app-ui-card small, .pf-app-ui-card strong, .pf-app-ui-card span { display: block; }
.pf-app-ui-card small { font-weight: 1000; opacity: .75; text-transform: uppercase; letter-spacing: .08em; }
.pf-app-ui-card strong { margin-top: 6px; font-size: 1.05rem; color: inherit; }
.pf-app-ui-card span { margin-top: 4px; color: inherit; opacity: .82; font-weight: 800; }
.pf-app-ui-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 0 16px; }
.pf-app-ui-grid div { display: grid; gap: 6px; place-items: center; min-height: 94px; border-radius: 24px; background: rgba(22,190,202,.12); color: #23616a; font-weight: 1000; }
.pf-app-ui-grid b { font-size: 1.45rem; }
.pf-app-ui-nav { position: absolute; left: 18px; right: 18px; bottom: 16px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; padding: 10px; border-radius: 24px; background: rgba(255,255,255,.86); box-shadow: 0 10px 24px rgba(39,49,65,.10); }
.pf-app-ui-nav i { display: block; height: 9px; border-radius: 999px; background: linear-gradient(90deg, var(--pf-rose), var(--pf-aqua)); opacity: .55; }
.pf-mini-calendar { margin: 10px 14px 18px; padding: 18px; color: #fff; border-radius: 24px; background: linear-gradient(135deg, var(--pf-aqua), var(--pf-rose)); }
.pf-mini-calendar strong, .pf-mini-calendar span { display: block; }
.pf-mini-row { height: 38px; margin: 10px 16px; border-radius: 15px; background: rgba(248,161,152,.14); }
.pf-mini-row.short { width: 70%; background: rgba(22,190,202,.16); }
.pf-platform-chip, .pf-floating-badge {
  position: absolute;
  z-index: 6;
  padding: 12px 16px;
  border-radius: 999px;
  background: #fff;
  color: var(--pf-ink);
  font-weight: 1000;
  box-shadow: 0 18px 40px rgba(40, 49, 66, .14);
}
.pf-platform-chip-a { top: 112px; left: 0; color: var(--pf-rose-2); animation: pfFloat 5.8s ease-in-out infinite; }
.pf-platform-chip-b { right: 0; bottom: 138px; color: var(--pf-aqua-2); animation: pfFloat 6.2s ease-in-out infinite reverse; }
@keyframes pfFloat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-14px) rotate(1deg); } }
@keyframes pfPhoneFloat { 0%,100% { translate: 0 0; } 50% { translate: 0 -16px; } }
.pf-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 4px 0 68px; }
.pf-metrics article { padding: 22px; border-radius: 28px; background: rgba(255,255,255,.82); border: 1px solid rgba(22,190,202,.14); box-shadow: 0 18px 42px rgba(40,49,66,.08); }
.pf-metrics strong { display: block; color: var(--pf-rose-2); font-size: 1.65rem; letter-spacing: -.04em; }
.pf-metrics span { display: block; margin-top: 5px; color: #657386; font-weight: 800; }
.pf-section { margin: 0 0 72px; padding: clamp(28px, 5vw, 54px); border-radius: 44px; border: 1px solid rgba(248,161,152,.15); background: rgba(255,255,255,.76); box-shadow: var(--pf-shadow); overflow: hidden; }
.pf-split, .pf-app-section { display: grid; grid-template-columns: .82fr 1.18fr; gap: 30px; align-items: center; }
.pf-section h2 { font-size: clamp(2.05rem, 4vw, 4rem); }
.pf-section-head { max-width: 820px; margin-bottom: 24px; }
.pf-commercial-band { background: linear-gradient(135deg, rgba(248,161,152,.10), rgba(22,190,202,.11)), rgba(255,255,255,.80); }
.pf-commercial-grid, .pf-service-grid, .pf-package-grid, .pf-testimonials, .pf-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pf-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pf-commercial-grid article, .pf-service-card, .pf-package-grid article, .pf-testimonials article { min-height: 190px; padding: 22px; border-radius: 30px; background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,255,255,.70)); border: 1px solid rgba(22,190,202,.13); box-shadow: 0 18px 40px rgba(35,45,62,.08); }
.pf-commercial-grid span { display: inline-grid; place-items: center; width: 46px; height: 46px; border-radius: 18px; margin-bottom: 14px; color: #fff; font-weight: 1000; background: linear-gradient(135deg, var(--pf-rose), var(--pf-aqua)); }
.pf-commercial-grid h3, .pf-service-card h3, .pf-package-grid h3 { margin: 0 0 8px; color: var(--pf-ink); font-size: 1.16rem; }
.pf-commercial-grid p, .pf-service-card p, .pf-package-grid p { margin: 0; font-size: .95rem; line-height: 1.55; }
.pf-service-card span, .pf-package-grid span { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 21px; margin-bottom: 14px; background: linear-gradient(135deg, rgba(248,161,152,.17), rgba(22,190,202,.17)); font-size: 1.75rem; }
.pf-service-card strong { display: inline-block; margin-top: 14px; color: var(--pf-aqua-2); font-weight: 1000; }
.pf-gallery figure { margin: 0; border-radius: 34px; overflow: hidden; background: #fff; box-shadow: 0 18px 45px rgba(35,45,62,.10); border: 1px solid rgba(248,161,152,.12); }
.pf-gallery img { display: block; width: 100%; aspect-ratio: 1.38/1; object-fit: cover; background: linear-gradient(135deg, rgba(248,161,152,.10), rgba(22,190,202,.10)); }
.pf-gallery figcaption { padding: 16px 18px; color: #4e5d70; font-weight: 1000; }
.pf-app-section { grid-template-columns: .86fr 1fr; background: linear-gradient(135deg, rgba(248,161,152,.12), rgba(22,190,202,.12)), rgba(255,255,255,.80); }
.pf-multi-mockup { position: relative; min-height: 500px; perspective: 1200px; }
.pf-desktop-3d { position: absolute; inset: 42px 34px auto 10px; min-height: 300px; border-radius: 28px; background: #fff; border: 8px solid #202837; box-shadow: 0 34px 70px rgba(39,49,65,.22); transform: rotateY(12deg) rotateX(5deg) rotateZ(-2deg); overflow: hidden; animation: pfFloat 6s ease-in-out infinite; }
.pf-desktop-bar { display: flex; gap: 6px; padding: 12px; background: #f7fbfc; }
.pf-desktop-bar span { width: 10px; height: 10px; border-radius: 50%; background: var(--pf-rose); box-shadow: 16px 0 0 var(--pf-coral), 32px 0 0 var(--pf-aqua); }
.pf-desktop-content { display: grid; grid-template-columns: 80px 1fr; gap: 16px; padding: 16px; }
.pf-desktop-sidebar { border-radius: 18px; background: linear-gradient(180deg, var(--pf-rose), var(--pf-aqua)); min-height: 220px; }
.pf-desktop-feed { display: grid; align-content: start; gap: 12px; color: var(--pf-ink); font-weight: 1000; }
.pf-desktop-feed i { display: block; height: 48px; border-radius: 18px; background: rgba(248,161,152,.13); }
.pf-desktop-feed i.short { width: 72%; background: rgba(22,190,202,.14); }
.pf-tablet-3d { position: absolute; right: 8px; bottom: 34px; width: 210px; min-height: 270px; padding: 22px; border-radius: 34px; color: #fff; background: linear-gradient(145deg, #202837, #354052); border: 7px solid #202837; box-shadow: 0 30px 60px rgba(39,49,65,.25); transform: rotateY(-20deg) rotateZ(7deg); animation: pfPhoneFloat 6.5s ease-in-out infinite reverse; }
.pf-tablet-3d strong { display: block; font-size: 1.5rem; margin-bottom: 18px; }
.pf-tablet-3d span { display: block; padding: 14px; margin-top: 10px; border-radius: 18px; background: linear-gradient(135deg, rgba(248,161,152,.82), rgba(22,190,202,.82)); font-weight: 1000; }
.pf-watch-note { position: absolute; left: 34px; bottom: 18px; z-index: 4; width: 210px; }
.pf-check-list { display: grid; gap: 12px; padding: 0; margin: 22px 0 0; list-style: none; }
.pf-check-list li { position: relative; padding-left: 34px; color: #4d5d70; font-weight: 900; }
.pf-check-list li::before { content: '✓'; position: absolute; left: 0; top: -2px; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: linear-gradient(135deg, var(--pf-rose), var(--pf-aqua)); color: #fff; }
.pf-testimonials article { min-height: 230px; }
.pf-testimonials div { color: #ffb000; font-weight: 1000; margin-bottom: 12px; }
.pf-testimonials p { color: #3f4f62; font-size: 1rem; line-height: 1.65; }
.pf-testimonials strong, .pf-testimonials span { display: block; }
.pf-testimonials strong { color: var(--pf-ink); }
.pf-testimonials span { color: var(--pf-rose-2); font-weight: 900; margin-top: 3px; }
.pf-contact { display: grid; grid-template-columns: .92fr 1.08fr; gap: 24px; background: linear-gradient(135deg, #273141, #30384b); color: #fff; }
.pf-contact h2, .pf-contact h3 { color: #fff; }
.pf-contact p { color: rgba(255,255,255,.74); }
.pf-contact .pf-kicker { color: #f9b1c6; }
.pf-contact-card { padding: 26px; border-radius: 34px; background: rgba(255,255,255,.10); border: 1px solid rgba(255,255,255,.12); }
.pf-contact-card h3 { margin: 0 0 8px; }
.pf-contact-card p { margin: 8px 0; }
.pf-contact-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.pf-hours { display: grid; gap: 8px; margin-top: 18px; }
.pf-hour-row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.10); color: rgba(255,255,255,.78); }
.pf-hour-row strong { color: #fff; }
.pf-socials { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pf-socials a, .pf-social-muted { display: inline-flex; padding: 9px 12px; border-radius: 999px; background: rgba(255,255,255,.10); color: #fff; text-decoration: none; font-weight: 900; }
.pf-socials a:hover { background: linear-gradient(135deg, rgba(248,161,152,.45), rgba(22,190,202,.45)); }
.pf-social-muted { color: rgba(255,255,255,.70); }
.pf-final-cta { display: grid; grid-template-columns: 100px 1fr auto; gap: 22px; align-items: center; margin-bottom: 28px; padding: 24px; border-radius: 38px; background: linear-gradient(135deg, rgba(248,161,152,.15), rgba(22,190,202,.15)), #fff; box-shadow: 0 22px 54px rgba(40,49,66,.10); }
.pf-final-cta img { width: 92px; height: 92px; object-fit: contain; }
.pf-final-cta h2 { font-size: clamp(1.7rem, 3vw, 3rem); }
.pf-site-footer { display: flex; justify-content: space-between; gap: 14px; align-items: center; padding: 22px 4px; color: #627185; }
.pf-site-footer nav { display: flex; flex-wrap: wrap; gap: 6px; }
@media (prefers-reduced-motion: reduce) { .pf-site * { animation: none !important; transition: none !important; } }
@media (max-width: 920px) {
  .pf-site { width: min(100% - 22px, 760px); }
  .pf-site-menu-btn { display: inline-grid; place-items: center; }
  .pf-site-links { position: absolute; top: calc(100% + 10px); left: 0; right: 0; display: none; flex-direction: column; align-items: stretch; padding: 12px; border-radius: 24px; background: rgba(255,255,255,.96); box-shadow: 0 22px 55px rgba(35,45,62,.16); }
  .pf-site-links.is-open { display: flex; }
  .pf-site-links a { text-align: center; }
  .pf-site-nav-cta { display: none; }
  .pf-hero, .pf-split, .pf-app-section, .pf-contact { grid-template-columns: 1fr; }
  .pf-hero { padding-top: 58px; }
  .pf-hero-visual { min-height: 540px; }
  .pf-metrics, .pf-commercial-grid, .pf-service-grid, .pf-package-grid, .pf-testimonials, .pf-gallery { grid-template-columns: 1fr 1fr; }
  .pf-final-cta { grid-template-columns: 76px 1fr; }
  .pf-final-cta .pf-btn { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
  .pf-site { width: min(100% - 18px, 460px); padding-top: 10px; }
  .pf-site-nav { border-radius: 24px; }
  .pf-site-brand img { max-height: 46px; }
  .pf-hero { gap: 20px; padding: 44px 0 38px; }
  .pf-hero h1 { font-size: clamp(2.65rem, 15vw, 4.05rem); }
  .pf-hero-actions .pf-btn { width: 100%; }
  .pf-trust-row span { width: 100%; text-align: center; }
  .pf-postit-stack { display: grid; }
  .pf-postit { width: 100%; }
  .pf-hero-visual { min-height: 470px; }
  .pf-device-stage { min-height: 450px; }
  .pf-phone-main { width: 238px; min-height: 460px; left: 28px; }
  .pf-phone-side { width: 150px; min-height: 292px; right: 0; bottom: 4px; }
  .pf-platform-chip { font-size: .78rem; }
  .pf-platform-chip-a { top: 48px; }
  .pf-platform-chip-b { bottom: 74px; }
  .pf-metrics, .pf-commercial-grid, .pf-service-grid, .pf-package-grid, .pf-testimonials, .pf-gallery { grid-template-columns: 1fr; }
  .pf-section { margin-bottom: 30px; padding: 24px; border-radius: 30px; }
  .pf-multi-mockup { min-height: 430px; }
  .pf-desktop-3d { left: 0; right: 0; min-height: 250px; }
  .pf-tablet-3d { width: 170px; min-height: 220px; }
  .pf-watch-note { left: 0; bottom: 0; width: 180px; }
  .pf-hour-row { flex-direction: column; gap: 3px; }
  .pf-final-cta { grid-template-columns: 1fr; text-align: center; }
  .pf-final-cta img { margin: 0 auto; }
  .pf-site-footer { flex-direction: column; text-align: center; }
}

/* v1.5.81 — Landing PetFunny: header post-it, paleta fiel da logo e mockups refinados */
.pf-site {
  --pf-rose: #F8A198;
  --pf-rose-2: #F8A198;
  --pf-salmon: #F8A198;
  --pf-salmon-soft: #ffe9ee;
  --pf-aqua: #22c7cf;
  --pf-aqua-2: #09aebd;
  --pf-ink: #273141;
  --pf-muted: #657286;
  --pf-soft: #fff6f2;
  --pf-shadow: 0 24px 70px rgba(248, 161, 152, .13);
}
.site-body-v180 {
  background:
    radial-gradient(circle at 12% 8%, rgba(248, 161, 152, .24), transparent 34%),
    radial-gradient(circle at 88% 14%, rgba(34, 199, 207, .18), transparent 34%),
    linear-gradient(180deg, #fff8f5 0%, #f7feff 48%, #fff6f2 100%) !important;
}
.pf-site-nav {
  top: 14px;
  padding: 12px 16px;
  border: 0;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none;
  isolation: isolate;
}
.pf-site-brand {
  position: relative;
  min-width: 172px;
  justify-content: center;
  padding: 12px 18px 14px;
  transform: rotate(-1.8deg);
}
.pf-site-brand::before {
  content: '';
  position: absolute;
  inset: 2px 4px 4px 4px;
  z-index: -1;
  border-radius: 10px 28px 24px 26px;
  background:
    linear-gradient(135deg, rgba(255, 233, 238, .96), rgba(232, 253, 255, .92));
  border: 1px solid rgba(248, 161, 152, .22);
  box-shadow: 0 18px 36px rgba(248, 161, 152, .14), 0 8px 20px rgba(9, 174, 189, .08);
}
.pf-site-brand::after {
  content: '';
  position: absolute;
  top: -6px;
  left: 44px;
  width: 82px;
  height: 20px;
  border-radius: 999px;
  background: rgba(34, 199, 207, .20);
  transform: rotate(3deg);
  box-shadow: 0 6px 12px rgba(34, 199, 207, .08);
}
.pf-site-brand img {
  position: relative;
  z-index: 1;
  max-height: 62px;
  filter: drop-shadow(0 8px 12px rgba(248, 161, 152, .12));
}
.pf-site-links { gap: 10px; }
.pf-site-links a:not(.pf-site-link-soft), .pf-site-link-soft {
  position: relative;
  overflow: visible;
  border-radius: 9px 20px 18px 20px !important;
  padding: 11px 14px !important;
  color: #38465a !important;
  background: rgba(255, 255, 255, .34) !important;
  border: 1px solid rgba(248, 161, 152, .16);
  box-shadow: 0 12px 24px rgba(39, 49, 65, .06);
  backdrop-filter: blur(8px);
  transform: rotate(-1deg);
}
.pf-site-links a:nth-child(even) { transform: rotate(1.4deg); background: rgba(232, 253, 255, .54) !important; border-color: rgba(34, 199, 207, .18); }
.pf-site-links a:nth-child(3n) { transform: rotate(-.4deg); background: rgba(255, 233, 238, .58) !important; }
.pf-site-links a::before {
  content: '';
  position: absolute;
  top: -5px;
  left: 22px;
  width: 42px;
  height: 10px;
  border-radius: 999px;
  background: rgba(248, 161, 152, .16);
  transform: rotate(-5deg);
}
.pf-site-links a:hover {
  color: var(--pf-rose-2) !important;
  transform: translateY(-3px) rotate(0deg);
  background: rgba(255, 255, 255, .72) !important;
}
.pf-site-nav-cta, .pf-btn-primary {
  color: #fff !important;
  background: linear-gradient(135deg, var(--pf-rose-2), var(--pf-salmon) 52%, var(--pf-aqua)) !important;
  box-shadow: 0 18px 36px rgba(248, 161, 152, .28), 0 10px 24px rgba(34, 199, 207, .14) !important;
}
.pf-btn-ghost {
  color: #344457 !important;
  background: rgba(255, 255, 255, .68) !important;
  border-color: rgba(34, 199, 207, .28) !important;
}
.pf-site-menu-btn {
  background: rgba(255, 233, 238, .9) !important;
  color: var(--pf-rose-2) !important;
  border: 1px solid rgba(248, 161, 152, .18) !important;
}
.pf-hero { padding-top: 72px; }
.pf-postit {
  background: linear-gradient(145deg, rgba(255, 233, 238, .96), rgba(255, 250, 252, .96));
  border: 1px solid rgba(248, 161, 152, .18);
  box-shadow: 0 18px 36px rgba(248, 161, 152, .13);
}
.pf-postit::before { background: rgba(34, 199, 207, .20); }
.pf-postit span { color: #6c5260; }
.pf-postit-two { background: linear-gradient(145deg, rgba(232, 253, 255, .98), rgba(255, 255, 255, .96)); border-color: rgba(34, 199, 207, .18); }
.pf-postit-two span { color: #3d6470; }
.pf-phone-3d {
  border-color: #263043;
  background:
    linear-gradient(180deg, #fff 0%, #fff6f2 48%, #ecfdff 100%);
  box-shadow: 0 38px 90px rgba(39,49,65,.26), inset 0 0 0 1px rgba(255,255,255,.9);
}
.pf-phone-main::before {
  content: '';
  position: absolute;
  inset: 56px 12px auto 12px;
  height: 106px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 82% 24%, rgba(34,199,207,.28), transparent 32%),
    linear-gradient(135deg, rgba(248,161,152,.96), rgba(248,161,152,.90));
  box-shadow: 0 18px 36px rgba(248,161,152,.20);
}
.pf-app-ui-top { position: relative; z-index: 2; padding-top: 2px; }
.pf-app-ui-top img { width: 86px; }
.pf-app-ui-top span { color: var(--pf-rose-2); }
.pf-app-ui-card { position: relative; z-index: 2; }
.pf-ui-card-hot {
  background: linear-gradient(135deg, var(--pf-rose-2), var(--pf-salmon) 64%, #F8A198) !important;
  box-shadow: 0 16px 32px rgba(248,161,152,.24);
}
.pf-app-ui-grid div {
  background: linear-gradient(145deg, rgba(255,233,238,.82), rgba(232,253,255,.86));
  color: #39495d;
  border: 1px solid rgba(34,199,207,.16);
  box-shadow: 0 12px 26px rgba(39,49,65,.07);
}
.pf-app-ui-nav i { background: linear-gradient(90deg, var(--pf-rose-2), var(--pf-aqua)); }
.pf-mini-calendar { background: linear-gradient(135deg, var(--pf-aqua-2), var(--pf-aqua), #80e7ec) !important; }
.pf-platform-chip {
  border: 1px solid rgba(248,161,152,.14);
  background: rgba(255,255,255,.86);
  backdrop-filter: blur(10px);
}
.pf-commercial-grid span, .pf-check-list li::before {
  background: linear-gradient(135deg, var(--pf-rose-2), var(--pf-salmon) 60%, var(--pf-aqua)) !important;
}
.pf-service-card span, .pf-package-grid span {
  background: linear-gradient(135deg, rgba(255,233,238,.94), rgba(232,253,255,.94));
  border: 1px solid rgba(34,199,207,.16);
}
.pf-service-card strong, .pf-service-price, #service-grid .pf-service-card strong { display: none !important; }
.pf-desktop-sidebar { background: linear-gradient(180deg, var(--pf-rose-2), var(--pf-salmon) 58%, var(--pf-aqua)) !important; }
.pf-desktop-bar span { background: var(--pf-rose-2); box-shadow: 16px 0 0 var(--pf-salmon), 32px 0 0 var(--pf-aqua); }
.pf-desktop-feed i { background: rgba(248,161,152,.13); }
.pf-desktop-feed i.short { background: rgba(34,199,207,.15); }
.pf-tablet-3d span { background: linear-gradient(135deg, rgba(248,161,152,.82), rgba(248,161,152,.78), rgba(34,199,207,.70)) !important; }
.pf-gallery-section .pf-section-head p, .pf-gallery-section .pf-section-head h2 { max-width: 840px; }
@media (max-width: 920px) {
  .pf-site-nav { background: transparent !important; align-items: center; }
  .pf-site-links {
    background: rgba(255, 255, 255, .80) !important;
    border: 1px solid rgba(248,161,152,.12);
    backdrop-filter: blur(18px);
  }
}
@media (max-width: 560px) {
  .pf-site-brand { min-width: auto; padding: 10px 14px; }
  .pf-site-brand img { max-height: 50px; }
  .pf-site-links a { width: 100%; }
}

/* v1.5.82 — Landing: galeria real otimizada, paleta fiel PetFunny e refinamento comercial */
.pf-site {
  --pf-rose: #F8A198;
  --pf-rose-2: #F8A198;
  --pf-salmon: #F8A198;
  --pf-salmon-soft: #ffe5dc;
  --pf-coral: #F8A198;
  --pf-aqua: #26bfcb;
  --pf-aqua-2: #0faebd;
  --pf-aqua-soft: #e6fbfd;
  --pf-ink: #263141;
  --pf-muted: #657286;
  --pf-shadow: 0 24px 70px rgba(248, 161, 152, .14);
}
.site-body-v180 {
  background:
    radial-gradient(circle at 11% 6%, rgba(248, 161, 152, .26), transparent 34%),
    radial-gradient(circle at 91% 10%, rgba(38, 191, 203, .20), transparent 34%),
    radial-gradient(circle at 54% 94%, rgba(248, 161, 152, .10), transparent 34%),
    linear-gradient(180deg, #fff9fb 0%, #f5fdff 46%, #fff6f2 100%) !important;
}
.pf-site-nav-cta,
.pf-btn-primary,
.pf-commercial-grid span,
.pf-check-list li::before,
.pf-app-ui-nav i,
.pf-desktop-sidebar {
  background: linear-gradient(135deg, var(--pf-rose-2) 0%, var(--pf-salmon) 54%, var(--pf-aqua) 100%) !important;
}
.pf-ui-card-hot {
  background:
    radial-gradient(circle at 84% 20%, rgba(255,255,255,.18), transparent 26%),
    linear-gradient(135deg, var(--pf-rose-2) 0%, var(--pf-salmon) 68%, #F8A198 100%) !important;
}
.pf-mini-calendar,
.pf-tablet-3d span {
  background: linear-gradient(135deg, var(--pf-aqua-2) 0%, var(--pf-aqua) 58%, #b9f4f7 100%) !important;
}
.pf-desktop-bar span {
  background: var(--pf-rose-2) !important;
  box-shadow: 16px 0 0 var(--pf-salmon), 32px 0 0 var(--pf-aqua) !important;
}
.pf-site-brand::before {
  background:
    linear-gradient(145deg, rgba(255, 233, 238, .98), rgba(255, 248, 251, .96) 56%, rgba(230, 251, 253, .92)) !important;
}
.pf-site-links a:not(.pf-site-link-soft),
.pf-site-link-soft {
  background:
    linear-gradient(145deg, rgba(255,255,255,.42), rgba(255,231,236,.42)) !important;
}
.pf-site-links a:nth-child(even) {
  background: linear-gradient(145deg, rgba(230,251,253,.60), rgba(255,255,255,.42)) !important;
}
.pf-site-links a:nth-child(3n) {
  background: linear-gradient(145deg, rgba(255,231,236,.62), rgba(255,255,255,.44)) !important;
}
.pf-btn-primary::after,
.pf-site-nav-cta::after {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: rgba(255,255,255,.70);
  box-shadow: 10px 0 0 rgba(255,255,255,.42), 20px 0 0 rgba(255,255,255,.24);
}
.pf-phone-main {
  box-shadow: 0 42px 90px rgba(38, 49, 65, .28), 0 0 0 12px rgba(248,161,152,.05), inset 0 0 0 1px rgba(255,255,255,.92) !important;
}
.pf-app-ui-card:not(.pf-ui-card-hot) {
  background:
    linear-gradient(145deg, rgba(255,255,255,.92), rgba(255,247,250,.86)) !important;
  border-color: rgba(248,161,152,.14) !important;
}
.pf-app-ui-grid div:first-child {
  background: linear-gradient(145deg, rgba(255,231,236,.94), rgba(255,255,255,.88)) !important;
}
.pf-app-ui-grid div:last-child {
  background: linear-gradient(145deg, rgba(230,251,253,.96), rgba(255,255,255,.88)) !important;
}
.pf-service-card span,
.pf-package-grid span {
  color: var(--pf-ink);
  background: linear-gradient(135deg, rgba(255,231,236,.98), rgba(230,251,253,.96)) !important;
}
.pf-gallery-section {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 12% 10%, rgba(248,161,152,.16), transparent 30%),
    radial-gradient(circle at 88% 22%, rgba(38,191,203,.14), transparent 30%),
    rgba(255,255,255,.82) !important;
}
.pf-gallery-section::before {
  content: '';
  position: absolute;
  inset: 18px auto auto 24px;
  width: 128px;
  height: 34px;
  border-radius: 999px;
  background: rgba(248,161,152,.16);
  transform: rotate(-5deg);
  z-index: -1;
}
.pf-gallery-head { max-width: 920px !important; }
.pf-gallery-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px;
  margin: -6px 0 24px;
}
.pf-gallery-note {
  display: inline-grid;
  width: min(360px, 100%);
  margin: 0;
  min-height: auto;
  font-weight: 1000;
  color: #6b5360;
}
.pf-photo-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 18px);
  align-items: stretch;
}
.pf-photo-card {
  position: relative;
  grid-column: span 3;
  min-height: 230px;
  margin: 0;
  border-radius: 30px;
  overflow: hidden;
  background: linear-gradient(145deg, var(--pf-salmon-soft), var(--pf-aqua-soft));
  border: 1px solid rgba(248,161,152,.18);
  box-shadow: 0 18px 42px rgba(38,49,65,.10);
  transform: translateY(0) rotate(var(--card-rotate, 0deg));
  transition: transform .24s ease, box-shadow .24s ease;
  content-visibility: auto;
  contain-intrinsic-size: 300px 260px;
}
.pf-photo-card:nth-child(2n) { --card-rotate: 1deg; }
.pf-photo-card:nth-child(3n) { --card-rotate: -1deg; }
.pf-photo-card:hover {
  transform: translateY(-6px) rotate(0deg);
  box-shadow: 0 28px 64px rgba(38,49,65,.14);
}
.pf-photo-featured { grid-column: span 6; grid-row: span 2; min-height: 500px; }
.pf-photo-tall { grid-column: span 3; grid-row: span 2; min-height: 500px; }
.pf-photo-card::before {
  content: '';
  position: absolute;
  top: 14px;
  left: 26px;
  z-index: 3;
  width: 68px;
  height: 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.50);
  transform: rotate(-7deg);
  backdrop-filter: blur(4px);
}
.pf-photo-card img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  transform: scale(1.01);
  transition: transform .45s ease, filter .45s ease;
}
.pf-photo-card:hover img { transform: scale(1.055); filter: saturate(1.05) contrast(1.02); }
.pf-photo-card figcaption {
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 14px;
  z-index: 2;
  display: grid;
  gap: 3px;
  padding: 14px 15px;
  border-radius: 22px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(255,255,255,.78);
  box-shadow: 0 16px 34px rgba(38,49,65,.12);
  backdrop-filter: blur(14px);
}
.pf-photo-card figcaption strong {
  color: var(--pf-ink);
  font-size: .98rem;
  letter-spacing: -.02em;
}
.pf-photo-card figcaption span {
  color: var(--pf-muted);
  font-size: .82rem;
  line-height: 1.35;
  font-weight: 850;
}
.pf-photo-card:nth-child(4n) figcaption { border-color: rgba(38,191,203,.20); }
.pf-photo-card:nth-child(4n+1) figcaption { border-color: rgba(248,161,152,.20); }
.pf-gallery-brand { display: none !important; }
@media (max-width: 920px) {
  .pf-photo-card { grid-column: span 6; min-height: 260px; }
  .pf-photo-featured { grid-column: span 12; min-height: 420px; }
  .pf-photo-tall { grid-column: span 6; min-height: 360px; }
}
@media (max-width: 560px) {
  .pf-gallery-toolbar .pf-btn { width: 100%; }
  .pf-gallery-note { width: 100%; }
  .pf-photo-gallery { grid-template-columns: 1fr; }
  .pf-photo-card,
  .pf-photo-featured,
  .pf-photo-tall {
    grid-column: auto;
    grid-row: auto;
    min-height: 300px;
  }
  .pf-photo-featured { min-height: 390px; }
  .pf-photo-card figcaption { left: 10px; right: 10px; bottom: 10px; }
}


/* v1.5.84 — Landing: mascote animado no hero */
.pf-hero-visual-3d {
  overflow: visible;
}
.pf-hero-mascot {
  position: absolute;
  z-index: 8;
  margin: 0;
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 28px 34px rgba(38,49,65,.22));
  transform-style: preserve-3d;
}
.pf-hero-mascot img {
  display: block;
  width: 100%;
  height: auto;
}
.pf-hero-mascot-main {
  width: clamp(128px, 17vw, 218px);
  right: clamp(-18px, -1.4vw, -8px);
  top: clamp(18px, 5vw, 76px);
  animation: pfMascotHeroFloat 5.6s ease-in-out infinite;
}
.pf-hero-mascot-main::before {
  content: '';
  position: absolute;
  inset: 10% 6% 6% 6%;
  z-index: -1;
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 46%, rgba(255,255,255,.82), rgba(255,255,255,.24) 54%, transparent 70%),
    linear-gradient(135deg, rgba(248,161,152,.26), rgba(38,191,203,.24));
  box-shadow: 0 22px 48px rgba(38,191,203,.16);
}
.pf-hero-mascot-main::after {
  content: 'Mascote PetFunny';
  position: absolute;
  left: 50%;
  bottom: 2px;
  transform: translate(-50%, 54%) rotate(-3deg);
  white-space: nowrap;
  padding: 9px 12px;
  border-radius: 9px 20px 18px 20px;
  background: linear-gradient(145deg, rgba(255,231,236,.96), rgba(230,251,253,.96));
  border: 1px solid rgba(248,161,152,.18);
  color: var(--pf-ink);
  font-weight: 1000;
  font-size: .72rem;
  box-shadow: 0 14px 28px rgba(39,49,65,.10);
}
.pf-hero-mascot-small {
  width: clamp(82px, 10vw, 126px);
  right: clamp(122px, 13vw, 188px);
  bottom: clamp(58px, 8vw, 116px);
  z-index: 7;
  opacity: .96;
  animation: pfMascotSmallFloat 6.8s ease-in-out infinite;
}
.pf-hero-mascot-small::before {
  content: '';
  position: absolute;
  inset: 7%;
  z-index: -1;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  box-shadow: 0 18px 36px rgba(248,161,152,.14);
}
@keyframes pfMascotHeroFloat {
  0%, 100% { transform: translate3d(0,0,42px) rotate(-3deg) scale(1); }
  50% { transform: translate3d(-8px,-14px,52px) rotate(2deg) scale(1.035); }
}
@keyframes pfMascotSmallFloat {
  0%, 100% { transform: translate3d(0,0,28px) rotate(5deg) scale(.98); }
  50% { transform: translate3d(8px,-10px,38px) rotate(-2deg) scale(1.04); }
}
@media (max-width: 1080px) {
  .pf-hero-mascot-main { right: -6px; top: 22px; width: clamp(118px, 21vw, 174px); }
  .pf-hero-mascot-small { right: 18px; bottom: 48px; width: clamp(74px, 16vw, 104px); }
}
@media (max-width: 920px) {
  .pf-hero-mascot-main {
    right: 2px;
    top: -4px;
    width: clamp(112px, 28vw, 160px);
  }
  .pf-hero-mascot-small {
    right: auto;
    left: 12px;
    bottom: 42px;
    width: clamp(70px, 19vw, 96px);
  }
}
@media (max-width: 560px) {
  .pf-hero-mascot-main {
    top: -16px;
    right: -2px;
    width: 116px;
  }
  .pf-hero-mascot-main::after { display: none; }
  .pf-hero-mascot-small { display: none; }
  .pf-device-stage { margin-top: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .pf-hero-mascot-main,
  .pf-hero-mascot-small { animation: none !important; }
}

/* v1.5.85 - App login: fluxo de senha para cliente já validado */
.client-auth-reset-link {
  border: 0;
  background: transparent;
  color: var(--petfunny-salmon, #F8A198);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 4px;
  cursor: pointer;
  display: block;
  margin: 6px auto 0;
  text-align: center;
}
.client-auth-reset-link:hover { color: var(--petfunny-turquoise, #38d5c8); }

/* v1.5.86 — Admin navbar/sidebar em turquesa escuro da identidade PetFunny */
:root {
  --pf-admin-turquoise-dark: #067f8d;
  --pf-admin-turquoise-deep: #055f73;
  --pf-admin-turquoise-mid: #0aa4b3;
  --pf-admin-salmon-logo: #F8A198;
  --pf-admin-salmon-strong: #F8A198;
}

.shell .sidebar {
  background:
    radial-gradient(circle at 18% 8%, rgba(255, 157, 152, .28), transparent 34%),
    radial-gradient(circle at 82% 4%, rgba(118, 219, 226, .30), transparent 38%),
    linear-gradient(180deg, var(--pf-admin-turquoise-mid) 0%, var(--pf-admin-turquoise-dark) 46%, var(--pf-admin-turquoise-deep) 100%) !important;
  color: #ffffff !important;
  border-right: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 22px 0 70px rgba(5, 95, 115, .28) !important;
}

.shell .sidebar::after {
  background: rgba(255, 157, 152, .24) !important;
}

.shell .sidebar-brand {
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  color: #ffffff !important;
  box-shadow: 0 18px 38px rgba(5, 95, 115, .20) !important;
}

.shell .sidebar-brand:hover {
  background: rgba(255,255,255,.18) !important;
}

.shell .postit-glow {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .84) 0%, rgba(255, 232, 230, .82) 44%, rgba(118, 219, 226, .76) 100%) !important;
  border: 1px solid rgba(255,255,255,.34) !important;
  box-shadow:
    0 18px 34px rgba(5,95,115,.22),
    inset 0 1px 0 rgba(255,255,255,.74),
    inset 0 -16px 26px rgba(248,161,152,.13) !important;
}

.shell .sidebar-collapse-hint {
  color: #ffffff !important;
  background: rgba(255,255,255,.14) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
}

.shell .nav a {
  color: rgba(255,255,255,.86) !important;
  background: transparent;
}

.shell .nav a.active,
.shell .nav a:hover {
  color: #ffffff !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(248,161,152,.18)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.14), 0 10px 22px rgba(5,95,115,.18);
}

.shell .nav a.active::before {
  background: linear-gradient(180deg, #ffffff, var(--pf-admin-salmon-logo)) !important;
}

.shell .nav-icon {
  color: #ffffff !important;
  background: rgba(255,255,255,.13) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12);
}

.shell .nav a.active .nav-icon,
.shell .nav a:hover .nav-icon {
  background: linear-gradient(135deg, rgba(248,161,152,.36), rgba(255,255,255,.18)) !important;
}

.shell .sidebar-footer {
  background: rgba(255,255,255,.10) !important;
  border-color: rgba(255,255,255,.16) !important;
  color: rgba(255,255,255,.78) !important;
}

.shell .sidebar-footer strong,
.shell .sidebar-footer .copyright {
  color: rgba(255,255,255,.90) !important;
}

@media (max-width: 860px) {
  .shell .sidebar {
    background:
      radial-gradient(circle at 18% 8%, rgba(255, 157, 152, .28), transparent 34%),
      radial-gradient(circle at 82% 4%, rgba(118, 219, 226, .30), transparent 38%),
      linear-gradient(180deg, var(--pf-admin-turquoise-mid) 0%, var(--pf-admin-turquoise-dark) 46%, var(--pf-admin-turquoise-deep) 100%) !important;
  }
}

/* v1.5.87 · Roleta leva para agendamento com mimo destacado */
.client-roleta-winner-banner {
  position: relative;
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 14px;
  align-items: center;
  padding: 16px;
  margin: 0 0 16px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 10% 10%, rgba(255, 255, 255, .92), transparent 36%),
    linear-gradient(135deg, rgba(255, 105, 140, .18), rgba(20, 183, 194, .16));
  border: 1px solid rgba(255, 105, 140, .30);
  box-shadow: 0 18px 46px rgba(49, 23, 39, .12);
  overflow: hidden;
}
.client-roleta-winner-banner::after {
  content: "";
  position: absolute;
  right: -26px;
  top: -28px;
  width: 96px;
  height: 96px;
  border-radius: 999px;
  background: rgba(20, 183, 194, .16);
}
.client-roleta-winner-banner .winner-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: linear-gradient(135deg, #F8A198, #14b8c4);
  color: #fff;
  font-size: 1.6rem;
  box-shadow: 0 12px 26px rgba(255, 105, 140, .26);
  animation: roletaWinnerPulse 1.9s ease-in-out infinite;
}
.client-roleta-winner-banner h3 { margin: 2px 0 5px; color: #312842; }
.client-roleta-winner-banner p { margin: 0; color: #625568; line-height: 1.45; }
.client-form-card.is-roleta-highlight {
  border-color: rgba(255, 105, 140, .42);
  box-shadow: 0 0 0 4px rgba(255, 105, 140, .08), 0 22px 52px rgba(49, 23, 39, .12);
}
.client-form-card.is-roleta-highlight .btn {
  background: linear-gradient(135deg, #F8A198, #14b8c4);
  box-shadow: 0 14px 30px rgba(255, 105, 140, .24);
}
.client-roleta-result-win {
  display: grid;
  gap: 10px;
  justify-items: center;
  text-align: center;
}
.client-roleta-result-win strong { color: #312842; font-size: 1.05rem; }
.client-roleta-result-win small { color: #77697a; }
@keyframes roletaWinnerPulse {
  0%, 100% { transform: translateY(0) rotate(-2deg) scale(1); }
  50% { transform: translateY(-3px) rotate(2deg) scale(1.04); }
}

/* v1.5.88 — App do Tutor: botões com padrão da landing + hero card por área */
.client-app-shell.mobile-first {
  --client-salmon: #F8A198;
  --client-salmon-soft: #ffe5dc;
  --client-salmon-mid: #F8A198;
  --client-aqua: #26bfcb;
  --client-aqua-dark: #0faebd;
  --client-ink: #263141;
  --client-muted: #657286;
  background:
    radial-gradient(circle at 12% 4%, rgba(248,161,152,.22), transparent 36%),
    radial-gradient(circle at 92% 12%, rgba(38,191,203,.20), transparent 34%),
    linear-gradient(180deg, #fff8f5 0%, #f7feff 52%, #fff6f2 100%) !important;
}
.client-app-shell.mobile-first .btn,
.client-app-shell.mobile-first button.btn,
.client-app-shell.mobile-first a.btn {
  color: #fff !important;
  background: linear-gradient(135deg, var(--client-salmon), var(--client-salmon-mid) 56%, var(--client-aqua)) !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(248,161,152,.26), 0 10px 22px rgba(38,191,203,.12) !important;
}
.client-app-shell.mobile-first .btn:hover,
.client-app-shell.mobile-first a.btn:hover,
.client-app-shell.mobile-first button.btn:hover { transform: translateY(-2px); filter: saturate(1.04); }
.client-app-shell.mobile-first .btn-secondary,
.client-app-shell.mobile-first .btn.cancel,
.client-app-shell.mobile-first .btn-ghost {
  color: var(--client-ink) !important;
  background: rgba(255,255,255,.78) !important;
  border: 1px solid rgba(38,191,203,.24) !important;
  box-shadow: 0 12px 26px rgba(39,49,65,.07) !important;
}
.client-app-shell.mobile-first .client-mobile-topbar {
  border-color: rgba(248,161,152,.14);
  background: rgba(255,255,255,.80);
  box-shadow: 0 18px 45px rgba(39,49,65,.10);
}
.client-app-shell.mobile-first .client-icon-btn {
  color: var(--client-salmon);
  border-color: rgba(248,161,152,.18);
  background: rgba(255,255,255,.86);
}
.client-app-shell.mobile-first .client-icon-btn:hover { color: var(--client-aqua-dark); }
.client-mobile-hero.client-area-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 118px;
  gap: 12px;
  min-height: 206px;
  padding: 24px;
  overflow: hidden;
  border: 1px solid rgba(248,161,152,.16);
  border-radius: 34px;
  background:
    radial-gradient(circle at 88% 12%, rgba(38,191,203,.24), transparent 32%),
    radial-gradient(circle at 18% 110%, rgba(248,161,152,.20), transparent 42%),
    linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,247,250,.82));
  box-shadow: 0 24px 70px rgba(248,161,152,.14), 0 12px 35px rgba(38,191,203,.08);
  animation: clientHeroIn .44s var(--pf-ease) both;
}
.client-area-hero-copy { position: relative; z-index: 2; min-width: 0; }
.client-mobile-hero.client-area-hero h1 {
  color: var(--client-ink);
  max-width: 360px;
}
.client-mobile-hero.client-area-hero p:not(.eyebrow) { color: var(--client-muted); }
.client-area-postit {
  position: relative;
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 8px 12px;
  border-radius: 7px 18px 16px 18px;
  background: linear-gradient(145deg, rgba(255,231,236,.96), rgba(255,255,255,.88));
  border: 1px solid rgba(248,161,152,.18);
  color: var(--client-salmon);
  font-size: .72rem;
  line-height: 1.2;
  font-weight: 1000;
  letter-spacing: .05em;
  text-transform: uppercase;
  box-shadow: 0 14px 26px rgba(248,161,152,.11);
  transform: rotate(-1.5deg);
}
.client-area-postit::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 24px;
  width: 46px;
  height: 12px;
  border-radius: 999px;
  background: rgba(38,191,203,.18);
  transform: rotate(-5deg);
}
.client-area-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 16px; }
.client-area-hero-actions .btn { min-height: 38px; border-radius: 14px; }
.client-app-shell.mobile-first .client-profile-pill {
  color: var(--client-ink);
  background: linear-gradient(135deg, rgba(255,231,236,.86), rgba(230,251,253,.88));
  border: 1px solid rgba(38,191,203,.18);
}
.client-area-hero-art {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  z-index: 1;
}
.client-area-hero-art strong {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 92px;
  height: 92px;
  border-radius: 30px;
  color: #fff;
  font-size: 2.7rem;
  background: linear-gradient(135deg, var(--client-salmon), var(--client-salmon-mid) 54%, var(--client-aqua));
  box-shadow: 0 22px 44px rgba(248,161,152,.24), inset 0 0 0 1px rgba(255,255,255,.42);
  animation: clientHeroIconFloat 4.5s ease-in-out infinite;
}
.client-area-hero-art i {
  position: absolute;
  right: 8px;
  bottom: 18px;
  width: 74px;
  height: 24px;
  border-radius: 999px;
  background: rgba(38,191,203,.16);
  transform: rotate(-6deg);
}
.client-area-hero-orb {
  position: absolute;
  inset: 8px -28px auto auto;
  width: 150px;
  height: 150px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(38,191,203,.28), transparent 66%);
  animation: clientHeroOrb 6s ease-in-out infinite;
}
.client-app-shell.mobile-first .client-mobile-section,
.client-app-shell.mobile-first .client-list-card,
.client-app-shell.mobile-first .client-pet-card,
.client-app-shell.mobile-first .client-push-card,
.client-app-shell.mobile-first .client-roulette-card,
.client-app-shell.mobile-first .client-form-card {
  border-color: rgba(248,161,152,.13) !important;
  background: rgba(255,255,255,.86) !important;
  box-shadow: 0 18px 42px rgba(39,49,65,.08) !important;
}
.client-app-shell.mobile-first .client-list-icon,
.client-app-shell.mobile-first .client-commercial-icon,
.client-app-shell.mobile-first .client-next-date,
.client-app-shell.mobile-first .client-pet-avatar,
.client-app-shell.mobile-first .client-avatar-large {
  background: linear-gradient(135deg, var(--client-salmon), var(--client-salmon-mid) 58%, var(--client-aqua)) !important;
}
.client-app-shell.mobile-first .client-badge.package {
  --badge-color: var(--client-salmon) !important;
  color: #a53d55 !important;
  background: rgba(255,231,236,.86) !important;
  border-color: rgba(248,161,152,.24) !important;
}
.client-app-shell.mobile-first .client-progress span {
  background: linear-gradient(90deg, var(--client-salmon), var(--client-aqua)) !important;
}
.client-app-shell.mobile-first .client-alert-mini,
.client-app-shell.mobile-first .client-alert-soft,
.client-app-shell.mobile-first .client-roleta-winner-banner {
  color: #8f3d50 !important;
  background: linear-gradient(135deg, rgba(255,231,236,.92), rgba(230,251,253,.74)) !important;
  border: 1px solid rgba(248,161,152,.18) !important;
}
.client-app-shell.mobile-first .client-bottom-nav {
  border-color: rgba(248,161,152,.16);
  background: rgba(255,255,255,.91);
  box-shadow: 0 18px 50px rgba(248,161,152,.14), 0 10px 28px rgba(38,191,203,.10);
}
.client-app-shell.mobile-first .client-bottom-nav a.is-active {
  color: var(--client-ink);
  background: linear-gradient(135deg, rgba(255,231,236,.95), rgba(230,251,253,.95));
}
@keyframes clientHeroIn { from { opacity: 0; transform: translateY(12px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes clientHeroIconFloat { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-9px) rotate(2deg); } }
@keyframes clientHeroOrb { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-12px,12px) scale(1.06); } }
@media (max-width: 480px) {
  .client-mobile-hero.client-area-hero { grid-template-columns: 1fr; min-height: unset; }
  .client-area-hero-art { position: absolute; right: 14px; top: 18px; opacity: .18; transform: scale(1.15); }
  .client-area-hero-actions .btn, .client-area-hero-actions .client-profile-pill { width: 100%; justify-content: center; }
  .client-mobile-hero.client-area-hero h1 { max-width: 290px; }
}

/* v1.5.89 — Landing hero: logo flutuante, patinhas, tags do app e chat do mascote */
.pf-site {
  --pf-salmon: #F8A198;
  --pf-salmon-2: #F8A198;
  --pf-aqua-logo: #11aeb8;
  --pf-aqua-soft: #d9fbfd;
}
.pf-site-nav-cta,
.pf-btn-primary,
.pf-ui-card-hot,
.pf-commercial-grid span {
  background: linear-gradient(135deg, var(--pf-salmon), #F8A198 48%, var(--pf-aqua-logo)) !important;
}
.pf-btn-ghost {
  border-color: rgba(17,174,184,.26) !important;
  color: #23424b !important;
}
.pf-hero-visual-3d {
  min-height: 675px;
}
.pf-floating-round-logo {
  position: absolute;
  z-index: 13;
  width: clamp(78px, 9vw, 124px);
  height: clamp(78px, 9vw, 124px);
  object-fit: contain;
  left: clamp(6px, 2.5vw, 28px);
  top: clamp(26px, 4vw, 66px);
  border-radius: 999px;
  filter: drop-shadow(0 22px 32px rgba(17,174,184,.22));
  animation: pfLogoBubbleFloat 7.2s ease-in-out infinite;
}
.pf-floating-round-logo::selection { background: transparent; }
.pf-mascot-chat {
  position: absolute;
  z-index: 14;
  right: clamp(84px, 11vw, 172px);
  top: clamp(18px, 4.2vw, 62px);
  width: min(238px, 42vw);
  padding: 14px 15px 15px;
  border-radius: 22px 22px 7px 22px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(248,161,152,.24);
  box-shadow: 0 20px 44px rgba(39,49,65,.13);
  transform: rotate(-2deg);
  animation: pfChatBubbleFloat 5.6s ease-in-out infinite;
}
.pf-mascot-chat::after {
  content: '';
  position: absolute;
  right: 20px;
  bottom: -11px;
  width: 20px;
  height: 20px;
  background: inherit;
  border-right: 1px solid rgba(248,161,152,.22);
  border-bottom: 1px solid rgba(248,161,152,.22);
  transform: rotate(45deg);
  border-radius: 0 0 6px 0;
}
.pf-mascot-chat span,
.pf-mascot-chat strong {
  display: block;
  position: relative;
  z-index: 1;
}
.pf-mascot-chat span {
  color: var(--pf-aqua-logo);
  font-size: .74rem;
  font-weight: 1000;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.pf-mascot-chat strong {
  margin-top: 4px;
  color: #273141;
  font-size: .98rem;
  line-height: 1.25;
}
.pf-platform-chip {
  border: 1px solid rgba(248,161,152,.18);
  background: rgba(255,255,255,.88) !important;
  backdrop-filter: blur(14px);
  color: #28414b !important;
}
.pf-platform-chip::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 22px;
  width: 48px;
  height: 12px;
  border-radius: 999px;
  background: rgba(248,161,152,.24);
  transform: rotate(-4deg);
}
.pf-platform-chip-a { top: 142px !important; left: -16px !important; color: var(--pf-salmon-2) !important; }
.pf-platform-chip-b { right: -10px !important; bottom: 156px !important; color: var(--pf-aqua-logo) !important; }
.pf-platform-chip-c,
.pf-platform-chip-d,
.pf-platform-chip-e,
.pf-platform-chip-f {
  position: absolute;
  z-index: 9;
  padding: 11px 15px;
  border-radius: 999px 999px 999px 12px;
  font-size: .85rem;
  font-weight: 1000;
  box-shadow: 0 18px 40px rgba(40,49,66,.14);
  animation: pfFloat 6s ease-in-out infinite;
}
.pf-platform-chip-c { left: 28px; bottom: 236px; animation-delay: -1.1s; }
.pf-platform-chip-d { right: 18px; top: 228px; animation-delay: -2.2s; }
.pf-platform-chip-e { left: 52px; bottom: 82px; animation-delay: -3.4s; }
.pf-platform-chip-f { right: 42px; bottom: 60px; animation-delay: -4.1s; }
.pf-paw-float {
  position: absolute;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 999px;
  background: rgba(255,255,255,.55);
  color: var(--pf-aqua-logo);
  font-size: 1.35rem;
  box-shadow: 0 16px 36px rgba(17,174,184,.10);
  animation: pfPawFloat 8s ease-in-out infinite;
}
.pf-paw-a { top: 22px; right: 236px; color: var(--pf-salmon-2); animation-delay: -.7s; }
.pf-paw-b { top: 330px; right: 4px; animation-delay: -2.1s; }
.pf-paw-c { left: 18px; top: 356px; color: var(--pf-salmon-2); animation-delay: -4.6s; }
.pf-paw-d { left: 152px; bottom: 16px; animation-delay: -6s; }
.pf-phone-main {
  border-color: #253040 !important;
  box-shadow: 0 36px 86px rgba(17,174,184,.18), 0 20px 46px rgba(248,161,152,.16), inset 0 0 0 1px rgba(255,255,255,.82) !important;
}
.pf-app-ui-nav i,
.pf-mini-calendar {
  background: linear-gradient(90deg, var(--pf-salmon), var(--pf-aqua-logo)) !important;
}
.pf-mini-calendar { color: #fff; }
.pf-hero-mascot-main::after {
  content: 'Assistente PetFunny' !important;
  background: linear-gradient(145deg, rgba(255,231,236,.98), rgba(226,251,253,.98)) !important;
}
@keyframes pfLogoBubbleFloat {
  0%,100% { transform: translate3d(0,0,46px) rotate(-4deg) scale(1); }
  50% { transform: translate3d(8px,-14px,54px) rotate(3deg) scale(1.035); }
}
@keyframes pfChatBubbleFloat {
  0%,100% { transform: translate3d(0,0,60px) rotate(-2deg); }
  50% { transform: translate3d(-6px,-10px,70px) rotate(1deg); }
}
@keyframes pfPawFloat {
  0%,100% { transform: translateY(0) rotate(-8deg) scale(1); opacity: .82; }
  45% { transform: translateY(-20px) rotate(8deg) scale(1.08); opacity: 1; }
}
@media (max-width: 1080px) {
  .pf-mascot-chat { right: 104px; top: 26px; width: 210px; }
  .pf-platform-chip-c { left: 12px; bottom: 220px; }
  .pf-platform-chip-d { right: 2px; top: 208px; }
  .pf-platform-chip-e { left: 30px; bottom: 70px; }
  .pf-platform-chip-f { right: 20px; bottom: 28px; }
}
@media (max-width: 920px) {
  .pf-floating-round-logo { left: 16px; top: 18px; width: 82px; height: 82px; }
  .pf-mascot-chat { right: 96px; top: -12px; width: min(218px, 52vw); }
  .pf-platform-chip-c,
  .pf-platform-chip-d,
  .pf-platform-chip-e,
  .pf-platform-chip-f { font-size: .76rem; padding: 9px 12px; }
  .pf-platform-chip-d { top: 160px; }
  .pf-paw-a { right: 170px; }
}
@media (max-width: 560px) {
  .pf-floating-round-logo { width: 66px; height: 66px; top: 8px; left: 10px; }
  .pf-mascot-chat { top: 2px; right: 82px; width: 186px; padding: 11px 12px; }
  .pf-mascot-chat strong { font-size: .82rem; }
  .pf-platform-chip-a,
  .pf-platform-chip-b,
  .pf-platform-chip-c,
  .pf-platform-chip-d,
  .pf-platform-chip-e,
  .pf-platform-chip-f { display: none; }
  .pf-paw-float { width: 34px; height: 34px; font-size: 1rem; }
  .pf-paw-b, .pf-paw-c, .pf-paw-d { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pf-floating-round-logo,
  .pf-mascot-chat,
  .pf-paw-float,
  .pf-platform-chip-c,
  .pf-platform-chip-d,
  .pf-platform-chip-e,
  .pf-platform-chip-f { animation: none !important; }
}

/* v1.5.90 — Landing SEO/serviços por porte + Pix no App */
.pf-service-filter {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin: 18px 0 20px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 111, 145, .22);
  border-radius: 22px;
  background: rgba(255, 255, 255, .74);
  box-shadow: 0 14px 34px rgba(0, 169, 183, .10);
  backdrop-filter: blur(14px);
}
.pf-service-filter label {
  font-weight: 800;
  color: #404752;
  font-size: .9rem;
}
.pf-service-filter select {
  min-width: 190px;
  border: 1px solid rgba(0, 169, 183, .26);
  border-radius: 999px;
  padding: 12px 42px 12px 16px;
  color: #24313c;
  font-weight: 800;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,244,247,.94));
  outline: none;
}
.pf-service-card small {
  display: inline-flex;
  width: fit-content;
  margin-top: 12px;
  padding: 7px 10px;
  border-radius: 999px;
  color: #008894;
  background: rgba(0, 169, 183, .10);
  font-weight: 900;
}
.client-pix-modal {
  display: grid;
  gap: 14px;
  max-width: 520px;
}
.client-pix-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px;
  border-radius: 22px;
  color: #fff;
  background: linear-gradient(135deg, #ff8f8a, #00a9b7);
  box-shadow: 0 18px 34px rgba(0, 169, 183, .20);
}
.client-pix-header span { font-weight: 900; }
.client-pix-header strong { font-size: 1.35rem; }
.client-pix-qr {
  width: min(280px, 82vw);
  height: min(280px, 82vw);
  object-fit: contain;
  justify-self: center;
  padding: 14px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(0, 169, 183, .16);
  box-shadow: 0 22px 48px rgba(36, 49, 60, .16);
}
.client-pix-qr.placeholder {
  display: grid;
  place-items: center;
  color: #00a9b7;
  font-weight: 900;
}
.client-pix-modal textarea {
  resize: none;
  font-size: .78rem;
  line-height: 1.35;
}
.client-pix-status {
  padding: 12px 14px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,143,138,.14), rgba(0,169,183,.12));
  color: #34414d;
  font-weight: 800;
  text-align: center;
}
@media (max-width: 720px) {
  .pf-service-filter { align-items: stretch; flex-direction: column; }
  .pf-service-filter select { width: 100%; }
}

.client-pix-warning {
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(255, 143, 138, .34);
  background: linear-gradient(135deg, rgba(255,143,138,.16), rgba(0,169,183,.10));
  color: #34414d;
  font-size: .9rem;
  font-weight: 800;
}
.client-pix-actions {
  justify-content: center;
}
.client-pix-qr {
  image-rendering: auto;
}
.client-pix-modal .client-field textarea#pix-copy-code {
  min-height: 112px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  word-break: break-all;
}

/* v1.5.92 - App Tutor: horários válidos pela configuração do admin */
.client-field-hint {
  display: block;
  margin-top: 8px;
  font-size: 0.78rem;
  line-height: 1.35;
  color: rgba(57, 68, 76, 0.72);
}
.client-field select[name="appointmentTime"] {
  border-color: rgba(0, 151, 167, 0.28);
  background:
    linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,246,244,0.88)),
    #fff;
}
.client-field select[name="appointmentTime"]:focus {
  box-shadow: 0 0 0 4px rgba(0, 151, 167, 0.13), 0 10px 30px rgba(255, 126, 141, 0.12);
  border-color: rgba(0, 151, 167, 0.55);
}

/* v1.5.95 — Landing serviços em linha própria e agrupados por tipo */
.pf-services-section {
  display: block !important;
}
.pf-services-section .pf-section-head {
  max-width: 900px;
  margin-bottom: 18px;
}
.pf-services-section .pf-service-filter {
  width: 100%;
  justify-content: space-between;
  margin: 22px 0 26px;
}
.pf-services-section .pf-service-filter select {
  min-width: min(360px, 100%);
}
.pf-service-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 22px !important;
}
.pf-service-type-block {
  padding: clamp(16px, 3vw, 24px);
  border: 1px solid rgba(22, 190, 202, .16);
  border-radius: 34px;
  background: linear-gradient(145deg, rgba(255,255,255,.88), rgba(255,246,249,.72));
  box-shadow: 0 20px 42px rgba(35, 45, 62, .08);
}
.pf-service-type-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 16px;
}
.pf-service-type-head > span {
  display: inline-grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(248,161,152,.18), rgba(22,190,202,.18));
  font-size: 1.55rem;
}
.pf-service-type-head strong,
.pf-service-type-head small {
  display: block;
}
.pf-service-type-head strong {
  color: var(--pf-ink);
  font-size: 1.22rem;
  letter-spacing: -.02em;
}
.pf-service-type-head small {
  color: #687587;
  font-weight: 900;
  margin-top: 2px;
}
.pf-service-type-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.pf-service-type-grid .pf-service-card {
  min-height: 175px;
}
@media (max-width: 980px) {
  .pf-service-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .pf-service-type-grid { grid-template-columns: 1fr; }
  .pf-services-section .pf-service-filter { align-items: stretch; flex-direction: column; }
}

/* v1.5.95 — Login admin sem credenciais expostas */
.login-copyright {
  margin: 22px 0 0;
  text-align: center;
  color: rgba(47, 57, 72, .68);
  font-size: .82rem;
  font-weight: 800;
}


/* v1.5.97 — Pix em página completa no App do Tutor, sem modal */
.client-pix-page-panel,
.client-pix-modal {
  display: grid;
  gap: 16px;
  width: 100%;
  max-width: 560px;
  margin: 0 auto 24px;
}
.client-pix-page-panel .client-pix-header,
.client-pix-modal .client-pix-header {
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-salmon-mid, #F8A198) 54%, var(--client-aqua, #26bfcb));
  box-shadow: 0 18px 34px rgba(248,161,152,.20), 0 10px 22px rgba(38,191,203,.12);
}
.client-pix-page-panel .client-pix-actions,
.client-pix-modal .client-pix-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}
.client-pix-page-panel .client-pix-actions .btn,
.client-pix-modal .client-pix-actions .btn {
  width: 100%;
  justify-content: center;
}
.client-pix-page-panel .client-pix-actions .btn-secondary,
.client-pix-modal .client-pix-actions .btn-secondary {
  color: #fff !important;
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-salmon-mid, #F8A198) 56%, var(--client-aqua, #26bfcb)) !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(248,161,152,.24), 0 10px 22px rgba(38,191,203,.10) !important;
}
.client-pix-page-panel .client-pix-actions .btn-ghost,
.client-pix-modal .client-pix-actions .btn-ghost {
  color: var(--client-ink, #263141) !important;
  background: rgba(255,255,255,.84) !important;
  border: 1px solid rgba(38,191,203,.26) !important;
}
.client-pix-page-panel .client-pix-status,
.client-pix-modal .client-pix-status,
.client-pix-page-panel .client-pix-warning,
.client-pix-modal .client-pix-warning {
  border: 1px solid rgba(248,161,152,.16);
  background: linear-gradient(135deg, rgba(248,161,152,.12), rgba(38,191,203,.10));
}
.client-pix-page-panel .client-pix-qr,
.client-pix-modal .client-pix-qr {
  width: min(300px, 82vw);
  height: min(300px, 82vw);
}

/* v1.5.98 — orientacao Pix sem link expirado */
.client-pix-page-panel .client-pix-help,
.client-pix-modal .client-pix-help {
  border: 1px dashed rgba(38, 191, 203, .36);
  background: linear-gradient(135deg, rgba(38,191,203,.10), rgba(248,161,152,.09));
  color: var(--client-ink, #263141);
  border-radius: 18px;
  padding: 12px 14px;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1.45;
  text-align: center;
}

/* v1.5.103 · App install PWA + Pet card actions */
.client-install-backdrop{
  position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:22px;background:rgba(29,41,57,.45);backdrop-filter:blur(16px);
}
.client-install-modal{
  width:min(420px,100%);border-radius:32px;padding:28px 24px 22px;background:linear-gradient(145deg,#fff7f8 0%,#ffffff 54%,#ecfcff 100%);box-shadow:0 30px 80px rgba(20,68,78,.22);border:1px solid rgba(248,161,152,.22);position:relative;text-align:center;overflow:hidden;
}
.client-install-modal::before{content:"";position:absolute;width:180px;height:180px;border-radius:50%;background:rgba(0,169,183,.12);right:-56px;top:-70px;}
.client-install-modal::after{content:"🐾";position:absolute;left:24px;bottom:18px;font-size:32px;opacity:.18;transform:rotate(-14deg);}
.client-install-close{position:absolute;right:16px;top:14px;border:0;background:rgba(248,161,152,.12);color:#e86152;width:34px;height:34px;border-radius:999px;font-size:22px;line-height:1;cursor:pointer;}
.client-install-logo{width:92px;height:92px;margin:0 auto 12px;border-radius:28px;background:#fff;display:grid;place-items:center;box-shadow:0 16px 36px rgba(0,169,183,.18);transform:rotate(-3deg);}
.client-install-logo img{width:74px;height:74px;object-fit:contain;border-radius:22px;}
.client-install-modal h2{margin:4px 0 8px;color:#2b3440;font-size:1.65rem;}
.client-install-modal p{color:#617183;margin:0 auto 18px;max-width:330px;line-height:1.5;}
.client-install-tip{background:rgba(0,169,183,.10);border:1px solid rgba(0,169,183,.18);border-radius:20px;padding:12px 14px;margin:12px 0 16px;color:#26636b;text-align:left;}
.client-install-tip span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#fff;color:#e86152;font-weight:900;}
.client-install-actions{display:grid;gap:10px;position:relative;z-index:1;}
.client-install-actions .btn[disabled]{opacity:.58;cursor:not-allowed;filter:grayscale(.12);}
.client-pet-card-editable{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;}
.client-pet-info{min-width:0;}
.client-pet-inline-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end;justify-content:center;}
.client-pet-inline-actions .btn{white-space:nowrap;min-width:94px;}
@media (max-width:540px){
  .client-pet-card-editable{grid-template-columns:auto 1fr;}
  .client-pet-inline-actions{grid-column:1 / -1;flex-direction:row;justify-content:flex-end;width:100%;}
  .client-pet-inline-actions .btn{min-width:0;flex:0 0 auto;}
}

/* v1.5.104 — Promoções, PWA install e descontos automáticos */
.client-bottom-nav a small{font-size:10px}.client-bottom-nav{gap:4px}.client-promo-inline{display:inline-flex;margin-left:6px;padding:3px 7px;border-radius:999px;background:linear-gradient(135deg,rgba(248,161,152,.16),rgba(0,169,183,.14));color:#b94a3e;font-style:normal;font-weight:900}.promotion-card{border:1px solid rgba(248,161,152,.2);background:linear-gradient(135deg,#fff,rgba(0,169,183,.06))}.promo-admin-card{display:grid;grid-template-columns:1.2fr 1fr auto;gap:18px;align-items:center;border:1px solid rgba(0,129,145,.14);background:linear-gradient(135deg,#fff,rgba(248,161,152,.06))}.promo-admin-meta{display:flex;flex-wrap:wrap;gap:8px}.promo-admin-meta span{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid rgba(0,129,145,.12);font-weight:800;color:#104f59}.weekday-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.weekday-picker label{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;border:1px solid rgba(0,129,145,.12);background:#fff;font-weight:800;color:#12343b}.weekday-picker input{accent-color:#F8A198}.client-install-modal{background:linear-gradient(135deg,#fff,rgba(248,161,152,.08));border:1px solid rgba(248,161,152,.22)}.client-install-tip{background:rgba(0,169,183,.08);border-color:rgba(0,169,183,.18);color:#0f5963}.client-install-actions .btn{background:linear-gradient(135deg,#F8A198,#00a9b7);color:#fff}.client-install-actions .btn-secondary{background:#fff;color:#104f59}@media(max-width:760px){.promo-admin-card{grid-template-columns:1fr}.client-bottom-nav a small{font-size:9px}}

/* v1.5.106 — App tutor perfil no topo + Promoções com padrão de listagem premium */
.client-avatar-btn {
  width: 42px;
  height: 42px;
  border-radius: 16px;
  display: inline-grid;
  place-items: center;
  text-decoration: none;
  color: #fff;
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-aqua, #00a9b7));
  box-shadow: 0 12px 26px rgba(0, 169, 183, .18), 0 10px 22px rgba(255, 127, 149, .20);
  border: 2px solid rgba(255,255,255,.78);
  transform: rotate(-2deg);
  transition: transform .18s ease, box-shadow .18s ease;
}
.client-avatar-btn span {
  font-size: .82rem;
  font-weight: 950;
  letter-spacing: .04em;
}
.client-avatar-btn:hover,
.client-avatar-btn.is-active {
  transform: translateY(-2px) rotate(2deg);
  box-shadow: 0 16px 34px rgba(0, 169, 183, .24), 0 12px 28px rgba(255, 127, 149, .24);
}
.client-top-actions { align-items: center; }
.client-bottom-nav a[href="/app/perfil"] { display: none !important; }

.promocoes-page .promotions-hero-panel {
  background:
    radial-gradient(circle at 88% 8%, rgba(0,169,183,.15), transparent 30%),
    radial-gradient(circle at 18% 18%, rgba(248,161,152,.14), transparent 34%),
    linear-gradient(135deg, #fff, rgba(236,252,255,.78));
  border: 1px solid rgba(0,129,145,.12);
}
.promocoes-page .promotions-list-card { margin-top: 20px; }
.promocoes-page .promo-filter-row {
  grid-template-columns: minmax(220px, 1.35fr) minmax(150px, .8fr) minmax(190px, 1fr) minmax(170px, .9fr) auto;
  align-items: end;
}
.promocoes-page .premium-table td small {
  display: block;
  margin-top: 4px;
  color: var(--pf-muted, #64748b);
  font-weight: 750;
  line-height: 1.35;
}
.promocoes-page .premium-table tbody td { vertical-align: middle; }
.promocoes-page .promotions-table th:first-child,
.promocoes-page .promotions-table td:first-child { min-width: 230px; }
.promocoes-page .promotions-table th:nth-child(5),
.promocoes-page .promotions-table td:nth-child(5) { min-width: 150px; }
.promo-discount-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 11px;
  border-radius: 999px;
  font-weight: 950;
  color: #fff;
  background: linear-gradient(135deg, #F8A198, #00a9b7);
  box-shadow: 0 10px 22px rgba(248,161,152,.18);
  white-space: nowrap;
}
.promocoes-page .status-pill.success,
.promocoes-page .status-pill.ok {
  --status-color: #00a9b7;
  background: rgba(0,169,183,.14);
  color: #075862;
  border-color: rgba(0,169,183,.22);
}
.promocoes-page .status-pill.muted,
.promocoes-page .status-pill.muted-pill {
  --status-color: #94a3b8;
  background: rgba(148,163,184,.14);
  color: #475569;
  border-color: rgba(148,163,184,.24);
}
.promocoes-page .weekday-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
}
.promocoes-page .weekday-picker label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(0,129,145,.14);
  background: linear-gradient(135deg, #fff, rgba(236,252,255,.66));
  font-weight: 900;
  color: #164e57;
}
.promocoes-page .weekday-picker input { accent-color: #F8A198; }
.promocoes-page .modal-card-sm { max-width: 460px; }
.promocoes-page .table-actions {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
}
.promocoes-page .table-actions .btn { white-space: nowrap; }
.promocoes-page .infinite-loader {
  margin: 16px auto 4px;
  text-align: center;
  color: #0f5963;
  font-weight: 900;
}
.promocoes-page .th-arrow-only.is-active .sort-arrow { color: #111827; }
@media (max-width: 1120px) {
  .promocoes-page .promo-filter-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .promocoes-page .promo-filter-row .btn { width: 100%; }
}
@media (max-width: 720px) {
  .client-avatar-btn { width: 39px; height: 39px; border-radius: 14px; }
  .promocoes-page .promo-filter-row { grid-template-columns: 1fr; }
  .promocoes-page .table-actions { flex-direction: column; align-items: stretch; }
  .promocoes-page .table-actions .btn { width: 100%; justify-content: center; }
}

/* v1.5.107 · CRM premium + funil do App do Tutor */
.crm-marketing-page .crm-hero-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(36, 184, 197, .18);
  background:
    radial-gradient(circle at 88% 12%, rgba(255, 127, 149, .24), transparent 34%),
    radial-gradient(circle at 12% 88%, rgba(36, 184, 197, .20), transparent 36%),
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(255, 245, 247, .92));
}
.crm-marketing-page .crm-hero-panel::after {
  content: "CRM";
  position: absolute;
  right: 28px;
  bottom: -18px;
  font-size: clamp(72px, 10vw, 154px);
  font-weight: 1000;
  line-height: .8;
  color: rgba(255, 127, 149, .10);
  pointer-events: none;
}
.crm-flow-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}
.crm-flow-step {
  min-height: 180px;
  padding: 16px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.88));
  border: 1px solid color-mix(in srgb, var(--stage-color, #24b8c5) 26%, transparent);
  box-shadow: 0 18px 42px rgba(15, 23, 42, .08);
}
.crm-flow-step > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 12px;
}
.crm-flow-step > div:first-child strong { color: #263238; font-size: .95rem; }
.crm-flow-step > div:first-child span {
  min-width: 32px;
  height: 32px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 1000;
  background: var(--stage-color, #24b8c5);
}
.crm-flow-lead {
  width: 100%;
  border: 0;
  text-align: left;
  margin: 0 0 8px;
  padding: 11px 12px;
  border-radius: 16px;
  cursor: pointer;
  color: #263238;
  background: color-mix(in srgb, var(--stage-color, #24b8c5) 10%, white);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--stage-color, #24b8c5) 18%, transparent);
  transition: transform .18s ease, box-shadow .18s ease;
}
.crm-flow-lead:hover { transform: translateY(-2px); box-shadow: 0 12px 24px rgba(15,23,42,.12); }
.crm-flow-lead b, .crm-flow-lead small { display: block; }
.crm-flow-lead b { font-size: .88rem; }
.crm-flow-lead small { margin-top: 3px; color: #64748b; }
.crm-table .mini-stage { min-width: 170px; }
.crm-filter-row { align-items: end; }
.crm-list-card .table-scroll.no-inner-scroll,
.crm-marketing-page .table-scroll.no-inner-scroll { max-height: none; overflow: visible; }
.crm-marketing-page .compact-actions { flex-wrap: nowrap; }
@media (max-width: 760px) {
  .crm-marketing-page .compact-actions { flex-direction: column; align-items: stretch; }
  .crm-table .mini-stage { min-width: 140px; }
}

/* v1.5.108 - Ajustes de big numbers, timeline e promoções no app */
.admin-big-numbers-strip {
  margin: 0 0 20px;
  padding: 0;
}
.reports-big-numbers-strip,
.finance-big-numbers-strip {
  margin-bottom: 20px !important;
}
.reports-hero-panel,
.finance-hero-panel {
  margin-bottom: 20px !important;
}
.reports-list-card,
.finance-list-card,
.report-chart-card,
.finance-support-grid {
  margin-bottom: 20px;
}
.client-timeline-date-separator {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 10px;
  color: rgba(48, 54, 68, .62);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.client-timeline-date-separator::before,
.client-timeline-date-separator::after {
  content: '';
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, rgba(255, 127, 149, .08), rgba(0, 169, 183, .38), rgba(255, 127, 149, .08));
}
.client-timeline-date-separator span {
  border-radius: 999px;
  padding: 7px 12px;
  background: rgba(255, 255, 255, .86);
  border: 1px solid rgba(255, 127, 149, .20);
  box-shadow: 0 10px 26px rgba(20, 33, 45, .08);
}
.client-timeline-loader {
  margin: 8px auto 20px;
  width: fit-content;
  border-radius: 999px;
  padding: 9px 14px;
  background: rgba(255, 255, 255, .72);
  border: 1px dashed rgba(0, 169, 183, .32);
  color: #1f6f78;
  font-size: 12px;
  font-weight: 800;
}
.client-timeline-sentinel {
  min-height: 1px;
}
.client-promo-selected-banner {
  margin: 0 0 14px;
  padding: 14px 16px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 0%, rgba(255, 127, 149, .26), transparent 38%),
    linear-gradient(135deg, rgba(255, 255, 255, .96), rgba(229, 251, 252, .92));
  border: 1px solid rgba(255, 127, 149, .26);
  box-shadow: 0 18px 38px rgba(0, 169, 183, .12);
  display: grid;
  gap: 4px;
}
.client-promo-selected-banner span {
  color: #00a9b7;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
}
.client-promo-selected-banner strong {
  color: #27313d;
  font-size: 17px;
}
.client-promo-selected-banner small {
  color: rgba(39, 49, 61, .68);
  font-weight: 700;
}
.client-service-group-list label:has(input:checked) {
  border-color: rgba(255, 127, 149, .45);
  background: linear-gradient(135deg, rgba(255, 127, 149, .10), rgba(0, 169, 183, .08));
}

/* v1.5.109 · App do Tutor: notificações em dropdown, header fixo e cards consistentes */
.client-app-shell.mobile-first {
  padding-top: 10px !important;
}
.client-app-shell.mobile-first .client-mobile-topbar {
  position: sticky !important;
  top: max(8px, env(safe-area-inset-top, 0px)) !important;
  z-index: 150 !important;
  margin-bottom: 14px !important;
  backdrop-filter: blur(18px) saturate(1.08) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.08) !important;
}
.client-app-shell.mobile-first .client-mobile-content {
  gap: 18px !important;
}
.client-push-card.client-push-dropdown {
  display: block !important;
  padding: 0 !important;
  margin-bottom: 20px !important;
  overflow: hidden !important;
  border-radius: 26px !important;
  border: 1px solid rgba(248,161,152,.16) !important;
  background:
    radial-gradient(circle at 96% 0%, rgba(38,191,203,.14), transparent 32%),
    linear-gradient(145deg, rgba(255,255,255,.94), rgba(255,247,250,.88)) !important;
  box-shadow: 0 18px 42px rgba(39,49,65,.08) !important;
}
.client-push-card.client-push-dropdown > summary {
  list-style: none;
}
.client-push-card.client-push-dropdown > summary::-webkit-details-marker {
  display: none;
}
.client-push-summary {
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) 34px;
  gap: 12px;
  align-items: center;
  padding: 15px;
  cursor: pointer;
  user-select: none;
}
.client-push-summary-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.client-push-summary-copy strong {
  color: var(--client-ink, #27313f);
  font-size: 1rem;
  line-height: 1.12;
  letter-spacing: -.02em;
}
.client-push-summary-copy small {
  color: var(--client-muted, #6f6670);
  font-weight: 800;
  line-height: 1.32;
}
.client-push-card.client-push-dropdown .client-push-icon {
  width: 50px !important;
  height: 50px !important;
  border-radius: 18px !important;
  margin: 0 !important;
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-salmon-mid, #F8A198) 58%, var(--client-aqua, #26bfcb)) !important;
}
.client-push-chevron {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(38,191,203,.18);
  color: var(--client-salmon, #F8A198);
  font-weight: 1000;
  transition: transform .22s var(--pf-ease, ease), background .22s ease;
}
.client-push-card[open] .client-push-chevron {
  transform: rotate(180deg);
  background: rgba(230,251,253,.9);
}
.client-push-panel {
  display: grid;
  gap: 12px;
  padding: 0 15px 16px 77px;
  animation: clientDropdownIn .22s var(--pf-ease, ease) both;
}
.client-push-panel p {
  margin: 0 !important;
  color: var(--client-muted, #6f6670) !important;
  font-weight: 800;
  line-height: 1.44;
}
.client-push-panel .client-muted {
  color: #8b7d89 !important;
  line-height: 1.4;
}
@keyframes clientDropdownIn {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}
.client-app-shell.mobile-first .client-kpi-grid {
  gap: 12px !important;
  margin-bottom: 2px !important;
}
.client-app-shell.mobile-first .client-kpi-grid article {
  position: relative;
  overflow: hidden;
  min-height: 92px;
  padding: 16px 10px !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 90% 8%, rgba(38,191,203,.15), transparent 34%),
    linear-gradient(145deg, rgba(255,255,255,.95), rgba(255,247,250,.88)) !important;
  border: 1px solid rgba(248,161,152,.13) !important;
  box-shadow: 0 16px 34px rgba(39,49,65,.07) !important;
}
.client-app-shell.mobile-first .client-kpi-grid article::after {
  content: '🐾';
  position: absolute;
  right: 8px;
  bottom: 5px;
  font-size: 1.35rem;
  opacity: .10;
  transform: rotate(-12deg);
}
.client-app-shell.mobile-first .client-kpi-grid strong {
  color: var(--client-salmon, #F8A198) !important;
  font-size: 1.85rem !important;
}
.client-app-shell.mobile-first .client-kpi-grid span {
  display: block;
  margin-top: 5px;
  color: var(--client-ink, #27313f) !important;
  line-height: 1.2;
}
.client-app-shell.mobile-first .client-mobile-section {
  margin-top: 0 !important;
  border-radius: 28px !important;
}
.client-app-shell.mobile-first .client-section-title {
  margin-bottom: 4px !important;
}
.client-app-shell.mobile-first .client-shortcuts-grid {
  gap: 12px !important;
}
.client-app-shell.mobile-first .client-shortcut {
  position: relative;
  overflow: hidden;
  min-height: 118px;
  border-radius: 24px !important;
  padding: 15px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(38,191,203,.13), transparent 34%),
    linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,247,250,.86)) !important;
  border: 1px solid rgba(248,161,152,.13) !important;
  box-shadow: 0 16px 34px rgba(39,49,65,.07) !important;
  transition: transform .22s var(--pf-ease, ease), box-shadow .22s ease;
}
.client-app-shell.mobile-first .client-shortcut::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 20px;
  width: 44px;
  height: 13px;
  border-radius: 999px;
  background: rgba(38,191,203,.18);
  transform: rotate(-5deg);
}
.client-app-shell.mobile-first .client-shortcut:hover {
  transform: translateY(-2px) rotate(-.35deg);
  box-shadow: 0 22px 44px rgba(39,49,65,.10) !important;
}
.client-app-shell.mobile-first .client-shortcut span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-aqua, #26bfcb));
  font-size: 1.34rem !important;
  box-shadow: 0 12px 24px rgba(248,161,152,.18);
}
.client-app-shell.mobile-first .client-shortcut strong {
  margin-top: 4px;
  color: var(--client-ink, #27313f);
}
.client-app-shell.mobile-first .client-shortcut small {
  color: var(--client-muted, #6f6670);
  font-weight: 800;
}
@media (max-width: 520px) {
  .client-push-summary {
    grid-template-columns: 46px minmax(0, 1fr) 32px;
    text-align: left;
  }
  .client-push-card.client-push-dropdown .client-push-icon {
    width: 46px !important;
    height: 46px !important;
  }
  .client-push-panel {
    padding: 0 14px 15px 14px;
  }
  .client-push-panel .push-actions .btn {
    width: 100%;
  }
  .client-app-shell.mobile-first .client-mobile-topbar {
    top: max(6px, env(safe-area-inset-top, 0px)) !important;
  }
  .client-app-shell.mobile-first .client-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 8px !important;
  }
  .client-app-shell.mobile-first .client-kpi-grid article {
    min-height: 86px;
    padding: 13px 6px !important;
  }
  .client-app-shell.mobile-first .client-kpi-grid strong {
    font-size: 1.55rem !important;
  }
  .client-app-shell.mobile-first .client-kpi-grid span {
    font-size: .68rem !important;
  }
}

/* PetFunny 360 IA */
.client-wellbeing-hero-card .client-alert-soft,
.client-wellbeing-result,
.client-wellbeing-form,
.wellbeing-admin-hero {
  border-color: rgba(255, 127, 149, 0.26);
}
.client-wellbeing-result {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,246,247,.96));
  border: 1px solid rgba(255, 127, 149, .20);
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(23, 34, 51, .10);
  padding: 22px;
  display: grid;
  gap: 16px;
}
.client-wellbeing-result.alto { border-color: rgba(239,68,68,.35); }
.client-wellbeing-result.medio { border-color: rgba(245,158,11,.38); }
.client-wellbeing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  gap: 12px;
}
.client-wellbeing-grid > div {
  background: rgba(38,185,199,.10);
  border: 1px solid rgba(38,185,199,.18);
  border-radius: 18px;
  padding: 12px;
}
.client-wellbeing-grid span { display:block; font-size: .76rem; color: #64748b; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.client-wellbeing-grid strong { color: #17324a; font-size: 1.02rem; }
.client-wellbeing-insights {
  background: rgba(248,161,152,.08);
  border-radius: 20px;
  padding: 14px;
}
.client-wellbeing-insights h4 { margin: 8px 0 6px; color: #17324a; }
.client-wellbeing-insights p { margin: 6px 0; }
.client-disclaimer, .client-muted { color: #64748b; font-size: .82rem; }
.client-wellbeing-question {
  border: 1px solid rgba(38,185,199,.16);
  background: rgba(255,255,255,.84);
  border-radius: 20px;
  padding: 14px;
  margin: 0;
}
.client-wellbeing-question legend,
.client-wellbeing-question > span {
  font-weight: 900;
  color: #17324a;
  margin-bottom: 10px;
}
.client-radio-grid {
  display: grid;
  gap: 8px;
}
.client-radio-grid label {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(248,161,152,.06);
  border: 1px solid rgba(248,161,152,.14);
  border-radius: 16px;
  padding: 10px 12px;
  cursor: pointer;
}
.client-radio-grid input { accent-color: #F8A198; }
.wellbeing-risk.baixo { background: rgba(38,185,199,.12); color: #087987; border-color: rgba(38,185,199,.25); }
.wellbeing-risk.medio { background: rgba(255,184,108,.16); color: #a35600; border-color: rgba(255,184,108,.35); }
.wellbeing-risk.alto { background: rgba(239,68,68,.12); color: #b91c1c; border-color: rgba(239,68,68,.25); }
.wellbeing-risk.sem_avaliacao { background: rgba(100,116,139,.10); color: #475569; border-color: rgba(100,116,139,.22); }
.wellbeing-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 16px;
}
.wellbeing-history-admin {
  display: grid;
  gap: 14px;
}
.admin-big-numbers-outside { margin: 0 0 20px; }
.client-bottom-nav a[href="/app/bem-estar"] span { filter: drop-shadow(0 8px 15px rgba(248,161,152,.25)); }
@media (max-width: 680px) {
  .client-wellbeing-grid { grid-template-columns: 1fr 1fr; }
  .client-radio-grid label { align-items: flex-start; }
}

/* v1.5.112 — Bem-estar, financeiro, relatórios, promoções, CRM e roleta: refinamento UX */
.client-mobile-section,
.client-form-card,
.client-wellbeing-result,
.client-wellbeing-form,
.client-wellbeing-hero-card,
#wellbeing-dynamic > section,
#wellbeing-dynamic > article {
  margin-bottom: 20px;
}
.client-wellbeing-question { margin-bottom: 14px; }
.wellbeing-admin-hero,
#wellbeing-big-numbers,
.wellbeing-history-admin .module-card,
.bem-estar-page .module-card { margin-bottom: 20px; }

/* filtros padrão nos módulos novos */
.promocoes-page .filter-row,
.crm-marketing-page .filter-row,
.roleta-page .filter-row,
body:has(.wellbeing-admin-hero) .filters-row,
.whatsapp-page .filter-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  align-items: end;
  padding: 14px;
  border-radius: 22px;
  border: 1px solid rgba(38,185,199,.14);
  background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(248,161,152,.06), rgba(38,185,199,.07));
  box-shadow: 0 14px 35px rgba(15,23,42,.05);
}
body:has(.wellbeing-admin-hero) .filters-row .field,
.promocoes-page .filter-row .form-field,
.crm-marketing-page .filter-row .form-field,
.roleta-page .filter-row .form-field { margin: 0; }
body:has(.wellbeing-admin-hero) .filters-row input,
body:has(.wellbeing-admin-hero) .filters-row select {
  width: 100%;
  min-height: 46px;
  border: 1px solid rgba(38,185,199,.2);
  border-radius: 16px;
  background: #fff;
  padding: 10px 12px;
  font-weight: 800;
  color: #17324a;
}
body:has(.wellbeing-admin-hero) .filters-row span,
body:has(.wellbeing-admin-hero) .filters-row label > span {
  display:block;
  margin-bottom: 6px;
  color:#56707f;
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.05em;
  font-weight:900;
}

/* remover seta azul global em tabelas destes módulos e deixar só a seta preta clicável */
.promocoes-page .premium-table th::after,
.promocoes-page .premium-table thead th::after,
.crm-marketing-page .premium-table th::after,
.crm-marketing-page .premium-table thead th::after,
.roleta-page .premium-table th::after,
.roleta-page .premium-table thead th::after,
body:has(.wellbeing-admin-hero) .premium-table th::after,
body:has(.wellbeing-admin-hero) .premium-table thead th::after {
  content: none !important;
  display: none !important;
}
.promocoes-page .th-arrow-only,
.crm-marketing-page .th-arrow-only,
.roleta-page .th-arrow-only,
body:has(.wellbeing-admin-hero) .th-arrow-only,
body:has(.wellbeing-admin-hero) [data-sort] .sort-arrow {
  color:#111827 !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
}
.promocoes-page .sort-arrow,
.crm-marketing-page .sort-arrow,
.roleta-page .sort-arrow,
body:has(.wellbeing-admin-hero) .sort-arrow {
  color:#111827 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body:has(.wellbeing-admin-hero) .premium-table th[data-sort] { cursor:pointer; }
body:has(.wellbeing-admin-hero) .premium-table th[data-sort] .sort-arrow {
  display:inline-flex;
  margin-left:6px;
  font-size:.88rem;
  font-weight:1000;
}

/* CRM e WhatsApp com respiro entre cards */
.crm-marketing-page article.module-card,
.crm-marketing-page .cards-list > *,
.whatsapp-page article.module-card,
.whatsapp-page .cards-list > *,
body:has(#template-list) article.module-card,
body:has(#inactive-list) article.module-card {
  margin-bottom: 20px;
}
.crm-marketing-page .module-card.stack-md + .module-card.stack-md { margin-top: 20px; }

/* Financeiro: menu de 3 pontinhos e modais padronizados */
.finance-consulta-copy { align-items: center; gap: 16px; }
.finance-consulta-copy > .btn { margin-left: auto; white-space: nowrap; }
.finance-kebab-actions { position: relative; justify-content: flex-end; overflow: visible; }
.finance-kebab {
  width: 36px;
  height: 36px;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(38,185,199,.18);
  color: #17324a;
  box-shadow: 0 10px 22px rgba(15,23,42,.08);
}
.finance-action-menu {
  position: absolute;
  right: 0;
  top: 42px;
  min-width: 190px;
  z-index: 80;
  display: none;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(38,185,199,.18);
  box-shadow: 0 22px 55px rgba(15,23,42,.18);
}
.finance-action-menu.is-open { display: grid; gap: 6px; }
.finance-action-menu button {
  border: 0;
  background: transparent;
  border-radius: 13px;
  padding: 10px 12px;
  text-align: left;
  color: #17324a;
  font-weight: 900;
  cursor: pointer;
}
.finance-action-menu button:hover { background: linear-gradient(135deg, rgba(248,161,152,.10), rgba(38,185,199,.10)); }
.finance-modal-card.small-modal { max-width: 560px; }

/* Relatórios: gráficos criativos */
.reports-decision-grid { margin-bottom: 20px; }
.report-column-chart {
  min-height: 260px;
  display: grid;
  grid-template-columns: repeat(6, minmax(58px, 1fr));
  gap: 16px;
  align-items: end;
  padding: 18px;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(248,161,152,.06), rgba(38,185,199,.07));
}
.report-chart-legend {
  grid-column: 1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-self:start;
}
.report-chart-legend span,
.report-pie-list span {
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(38,185,199,.14);
  color:#17324a;
  font-size:.78rem;
  font-weight:900;
}
.report-month-column { display:grid; gap:8px; align-items:end; text-align:center; min-height:210px; }
.report-month-column small { color:#64748b; font-weight:900; }
.report-column-bars { height:150px; display:flex; align-items:end; justify-content:center; gap:6px; padding:8px; border-radius:18px; background:rgba(255,255,255,.72); border:1px solid rgba(38,185,199,.10); }
.report-column-bars i,
.report-column-bars b,
.report-column-bars em,
.report-column-bars strong { width:12px; min-height:8px; border-radius:999px 999px 4px 4px; display:block; }
.report-column-bars i { background:#F8A198; }
.report-column-bars b { background:#26b9c7; }
.report-column-bars em { background:#ffb86c; }
.report-column-bars strong { background:#0f766e; }
.report-pie-chart { display:grid; grid-template-columns: 180px 1fr; gap:20px; align-items:center; padding:18px; }
.report-pie { width: 176px; height: 176px; border-radius: 50%; box-shadow: inset 0 0 0 18px rgba(255,255,255,.72), 0 22px 45px rgba(15,23,42,.12); }
.report-pie-list { display:flex; flex-direction:column; gap:8px; }
.report-pie-list i { width:10px; height:10px; border-radius:50%; background:#F8A198; }
.report-pie-list [data-pie-dot="1"] { background:#26b9c7; }
.report-pie-list [data-pie-dot="2"] { background:#ffb86c; }
.report-pie-list [data-pie-dot="3"] { background:#7dd3fc; }
.report-pie-list [data-pie-dot="4"] { background:#F8A198; }
.report-pie-list [data-pie-dot="5"] { background:#99f6e4; }
.report-line-chart { padding:18px; border-radius:24px; background:linear-gradient(135deg, rgba(38,185,199,.07), rgba(248,161,152,.06)); }
.report-line-chart svg { width:100%; height:auto; overflow:visible; }
.report-line-chart polyline { fill:none; stroke:#F8A198; stroke-width:5; stroke-linecap:round; stroke-linejoin:round; filter: drop-shadow(0 8px 12px rgba(248,161,152,.25)); }
.report-line-chart circle { fill:#26b9c7; stroke:#fff; stroke-width:3; }
.report-line-chart text { fill:#64748b; font-size:10px; font-weight:800; }
.report-decision-list { display:grid; gap:10px; }
.report-decision-list article { padding:14px; border-radius:20px; background:#fff; border:1px solid rgba(38,185,199,.14); box-shadow:0 12px 28px rgba(15,23,42,.06); }
.report-decision-list strong { display:block; color:#17324a; }
.report-decision-list b { display:block; color:#F8A198; font-size:1.3rem; margin:4px 0; }
.report-decision-list small { color:#64748b; font-weight:800; }

/* Roleta de Mimos no padrão premium */
.roleta-page .roleta-hero-panel {
  margin-bottom: 20px;
  background: radial-gradient(circle at top right, rgba(38,185,199,.18), transparent 34%), linear-gradient(135deg,#fff,rgba(248,161,152,.10));
  border: 1px solid rgba(248,161,152,.20);
}
.roleta-page .roleta-big-numbers-strip,
.roleta-page .roleta-layout,
.roleta-page .roleta-list-card,
.roleta-page .panel,
.roleta-page .module-card { margin-bottom: 20px; }
.roleta-page .panel,
.roleta-page .roleta-list-card {
  border-radius: 28px;
  border: 1px solid rgba(38,185,199,.14);
  background: rgba(255,255,255,.92);
  box-shadow: 0 24px 60px rgba(15,23,42,.08);
}
.roleta-page .metric-card {
  border: 1px solid rgba(38,185,199,.14);
  background: linear-gradient(135deg,#fff,rgba(248,161,152,.07));
}
.roleta-page .gift-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap:16px; }
.roleta-page .gift-card { position:relative; overflow:hidden; }
.roleta-page .gift-card::before { content:''; position:absolute; inset:0 auto 0 0; width:6px; background:var(--gift-accent,#26b9c7); }

@media (max-width: 820px) {
  .report-column-chart { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-pie-chart { grid-template-columns: 1fr; justify-items:center; }
  .finance-consulta-copy { align-items: stretch; }
  .finance-consulta-copy > .btn { width:100%; margin-left:0; }
}

/* v1.5.113 — App tutor: footer compacto em uma linha com menu Mais */
.client-app-shell.mobile-first .client-bottom-nav {
  display: flex !important;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap !important;
  gap: 4px !important;
  overflow: visible !important;
  padding: 8px max(8px, env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-right)) !important;
  position: fixed;
  left: 50%;
  bottom: 10px;
  transform: translateX(-50%);
  width: min(680px, calc(100vw - 18px));
  z-index: 95;
  border-radius: 26px;
}
.client-app-shell.mobile-first .client-bottom-nav a,
.client-app-shell.mobile-first .client-bottom-more {
  flex: 1 1 0;
  min-width: 0;
  max-width: 86px;
  height: 58px;
  border: 0;
  border-radius: 18px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 2px;
  text-decoration: none;
  color: rgba(22, 49, 63, .72);
  background: transparent;
  font-family: inherit;
  cursor: pointer;
  transition: transform .18s var(--pf-ease), background .18s var(--pf-ease), color .18s var(--pf-ease);
}
.client-app-shell.mobile-first .client-bottom-nav a span,
.client-app-shell.mobile-first .client-bottom-more span {
  font-size: 1.1rem;
  line-height: 1;
}
.client-app-shell.mobile-first .client-bottom-nav a small,
.client-app-shell.mobile-first .client-bottom-more small {
  width: 100%;
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 9.5px !important;
  font-weight: 950;
  letter-spacing: -.02em;
  text-align: center;
}
.client-app-shell.mobile-first .client-bottom-more span {
  font-weight: 1000;
  letter-spacing: 1px;
  color: var(--client-salmon, #F8A198);
}
.client-app-shell.mobile-first .client-bottom-nav a:hover,
.client-app-shell.mobile-first .client-bottom-more:hover,
.client-app-shell.mobile-first .client-bottom-more.is-open,
.client-app-shell.mobile-first .client-bottom-nav a.is-active {
  color: var(--client-ink, #14313f);
  background: linear-gradient(135deg, rgba(255,231,236,.96), rgba(230,251,253,.96));
  transform: translateY(-2px);
}
.client-bottom-more-menu {
  position: absolute;
  right: 10px;
  bottom: calc(100% + 10px);
  width: min(260px, calc(100vw - 28px));
  padding: 10px;
  border-radius: 24px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(248,161,152,.18);
  box-shadow: 0 22px 60px rgba(39,49,65,.18);
  backdrop-filter: blur(18px);
  display: grid;
  gap: 8px;
  animation: pf-fade-up .2s var(--pf-ease) both;
}
.client-bottom-more-menu[hidden] { display: none !important; }
.client-bottom-more-menu a {
  width: 100%;
  max-width: none !important;
  height: auto !important;
  min-height: 48px;
  display: grid !important;
  grid-template-columns: 34px 1fr;
  align-items: center;
  justify-items: start;
  text-align: left;
  padding: 10px 12px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,247,249,.95), rgba(240,253,255,.88)) !important;
  border: 1px solid rgba(0,169,183,.10);
}
.client-bottom-more-menu a span { font-size: 1.2rem; }
.client-bottom-more-menu a small {
  text-align: left !important;
  font-size: .82rem !important;
  white-space: normal !important;
}
.client-bottom-more-menu a.is-active {
  border-color: rgba(248,161,152,.28);
  box-shadow: inset 0 0 0 1px rgba(248,161,152,.10);
}
@media (max-width: 430px) {
  .client-app-shell.mobile-first .client-bottom-nav a,
  .client-app-shell.mobile-first .client-bottom-more {
    height: 54px;
    max-width: 66px;
    border-radius: 16px;
  }
  .client-app-shell.mobile-first .client-bottom-nav a span,
  .client-app-shell.mobile-first .client-bottom-more span { font-size: 1rem; }
  .client-app-shell.mobile-first .client-bottom-nav a small,
  .client-app-shell.mobile-first .client-bottom-more small { font-size: 8.7px !important; }
}

/* v1.5.114 — App Tutor: footer na mesma largura do topo/cards e últimos itens no menu Mais */
.client-app-shell.mobile-first .client-bottom-nav {
  width: min(540px, calc(100vw - 28px)) !important;
  max-width: 540px !important;
  box-sizing: border-box !important;
  left: 50% !important;
  right: auto !important;
  margin: 0 auto !important;
}
.client-app-shell.mobile-first .client-bottom-more:not([hidden]) {
  display: grid !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu {
  right: 8px !important;
}
@media (min-width: 760px) {
  .client-app-shell.mobile-first .client-bottom-nav {
    width: min(620px, calc(100vw - 32px)) !important;
    max-width: 620px !important;
  }
}
@media (max-width: 430px) {
  .client-app-shell.mobile-first .client-bottom-nav {
    width: calc(100vw - 24px) !important;
  }
}

/* v1.5.115 · App do Tutor: títulos e subtítulos em linhas separadas */
.client-app-shell.mobile-first .client-section-title,
.client-app-shell.mobile-first .client-list-title-row,
.client-app-shell.mobile-first .client-card-title-row,
.client-app-shell.mobile-first .client-area-hero-copy,
.client-app-shell.mobile-first .client-push-summary-copy,
.client-app-shell.mobile-first .client-shortcut,
.client-app-shell.mobile-first .client-pet-card .client-list-body,
.client-app-shell.mobile-first .client-mobile-section .table-header-actions {
  align-items: flex-start !important;
  text-align: left !important;
}
.client-app-shell.mobile-first .client-section-title,
.client-app-shell.mobile-first .client-list-title-row,
.client-app-shell.mobile-first .client-card-title-row,
.client-app-shell.mobile-first .client-mobile-section .table-header-actions {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: 6px !important;
}
.client-app-shell.mobile-first .client-section-title h2,
.client-app-shell.mobile-first .client-list-title-row h3,
.client-app-shell.mobile-first .client-card-title-row h3,
.client-app-shell.mobile-first .client-shortcut strong {
  display: block !important;
  width: 100% !important;
  line-height: 1.15 !important;
}
.client-app-shell.mobile-first .client-section-title p,
.client-app-shell.mobile-first .client-list-card p,
.client-app-shell.mobile-first .client-shortcut small,
.client-app-shell.mobile-first .client-area-hero-copy > p:not(.eyebrow) {
  display: block !important;
  width: 100% !important;
  line-height: 1.35 !important;
}
.client-app-shell.mobile-first .client-list-title-row .client-badge,
.client-app-shell.mobile-first .client-list-title-row .status-pill {
  align-self: flex-start !important;
}
.client-app-shell.mobile-first .client-mobile-section,
.client-app-shell.mobile-first .client-form-card,
.client-app-shell.mobile-first .client-wellbeing-result,
.client-app-shell.mobile-first .client-alert-soft,
.client-app-shell.mobile-first .client-list-card {
  margin-bottom: 20px;
}
.client-app-shell.mobile-first .client-mobile-section .client-list-card:last-child,
.client-app-shell.mobile-first .client-list-stack .client-list-card:last-child {
  margin-bottom: 0;
}
.client-analysis-modal {
  text-align: center;
  align-items: center;
  max-width: 420px !important;
}
.client-analysis-modal header,
.client-analysis-modal footer { display: none !important; }
.client-analysis-icon {
  width: 74px;
  height: 74px;
  border-radius: 28px;
  display: grid;
  place-items: center;
  margin: 0 auto 10px;
  font-size: 2.2rem;
  background: linear-gradient(135deg, var(--client-salmon, #F8A198), var(--client-aqua, #26bfcb));
  color: #fff;
  box-shadow: 0 22px 44px rgba(38,191,203,.22);
  animation: clientFloatSoft 2.2s ease-in-out infinite;
}
.client-analysis-modal h2 { margin: 6px 0 8px; color: var(--pf-blue-900); }
.client-analysis-modal p { color: var(--pf-muted); font-weight: 850; margin: 0 0 14px; }
.client-analysis-progress {
  width: 100%;
  height: 12px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(18,52,67,.08);
  border: 1px solid rgba(38,191,203,.15);
  margin: 8px 0 12px;
}
.client-analysis-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--client-salmon, #F8A198), var(--client-aqua, #26bfcb));
  transition: width .8s ease;
}
.client-analysis-modal strong#analysis-countdown {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  min-height: 36px;
  border-radius: 999px;
  background: rgba(248,161,152,.12);
  color: var(--client-salmon, #F8A198);
  font-weight: 950;
}
.client-analysis-modal small { color: var(--pf-muted); font-weight: 850; margin-top: 8px; display: block; }

/* v1.5.115 · Admin Bem-estar */
.wellbeing-admin-hero,
#wellbeing-big-numbers,
.admin-wellbeing-filters,
.admin-wellbeing-table-card { margin-bottom: 20px !important; }
.admin-wellbeing-filters,
.module-card .filters-row.admin-wellbeing-filters {
  display: grid !important;
  grid-template-columns: minmax(240px, 1.4fr) minmax(180px, .6fr);
  gap: 14px;
  align-items: end;
  padding: 14px;
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(255,255,255,.95), rgba(255,247,250,.82));
  border: 1px solid rgba(248,161,152,.12);
  box-shadow: 0 16px 34px rgba(39,49,65,.06);
}
.admin-wellbeing-actions { position: relative; display: inline-flex; justify-content: flex-end; width: 100%; }
.admin-wellbeing-actions-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 60;
  min-width: 206px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(16,82,97,.12);
  box-shadow: 0 22px 48px rgba(39,49,65,.16);
  display: grid;
  gap: 6px;
}
.admin-wellbeing-actions-menu[hidden] { display: none !important; }
.admin-wellbeing-actions-menu button {
  width: 100%;
  border: 0;
  border-radius: 14px;
  padding: 10px 12px;
  background: rgba(38,191,203,.08);
  color: var(--pf-blue-900);
  font-weight: 900;
  text-align: left;
  cursor: pointer;
}
.admin-wellbeing-actions-menu button:hover { background: rgba(248,161,152,.13); }
.admin-wellbeing-table-card .sort-arrow,
.admin-wellbeing-table-card .sort-indicator,
.admin-wellbeing-table-card .sort-blue,
.admin-wellbeing-table-card .blue-arrow { color: #0f172a !important; }
@media (max-width: 720px) {
  .admin-wellbeing-filters,
  .module-card .filters-row.admin-wellbeing-filters { grid-template-columns: 1fr; }
}

/* Franquias PetFunny */
.pf-site-link-soft { font-weight: 1000; }
.pf-franchise-preview {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: 28px;
  align-items: center;
  overflow: hidden;
  border: 1px solid rgba(38, 191, 203, .18);
  background:
    radial-gradient(circle at 18% 20%, rgba(255, 111, 145, .18), transparent 32%),
    radial-gradient(circle at 90% 10%, rgba(38, 191, 203, .20), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(232,253,255,.92));
  box-shadow: 0 28px 70px rgba(22, 75, 89, .12);
}
.pf-franchise-preview::before,
.pf-franchise-page::before {
  content: "";
  position: absolute;
  inset: auto -120px -180px auto;
  width: 360px;
  height: 360px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(248,161,152,.18), rgba(38,191,203,.18));
  filter: blur(4px);
  pointer-events: none;
}
.pf-franchise-preview-copy { position: relative; z-index: 2; }
.pf-franchise-preview-copy h2 { max-width: 780px; }
.pf-franchise-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.pf-franchise-preview-gallery {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.pf-franchise-preview-card {
  position: relative;
  min-height: 220px;
  margin: 0;
  overflow: hidden;
  border-radius: 30px;
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 22px 54px rgba(35,45,62,.14);
  background: #fff;
}
.pf-franchise-preview-card img { width: 100%; height: 100%; min-height: 220px; display: block; object-fit: cover; transition: transform .5s ease; }
.pf-franchise-preview-card:hover img { transform: scale(1.045); }
.pf-franchise-wide { grid-column: 1 / -1; min-height: 360px; }
.pf-franchise-preview-card figcaption {
  position: absolute;
  left: 14px;
  bottom: 14px;
  padding: 10px 14px;
  border-radius: 999px;
  color: #214052;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.9);
  font-weight: 1000;
  box-shadow: 0 14px 30px rgba(35,45,62,.12);
}

.franchise-body { background: #f6fbfc; }
.pf-franchise-page { position: relative; }
.pf-franchise-hero {
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  gap: 34px;
  align-items: center;
  min-height: 760px;
  padding: 42px clamp(20px, 4vw, 64px) 36px;
  border-radius: 0 0 52px 52px;
  background:
    radial-gradient(circle at 12% 12%, rgba(248,161,152,.20), transparent 30%),
    radial-gradient(circle at 92% 20%, rgba(38,191,203,.22), transparent 32%),
    linear-gradient(135deg, #fff 0%, #f1feff 58%, #fff0eb 100%);
  box-shadow: 0 28px 80px rgba(22,75,89,.10);
}
.pf-franchise-hero h1 {
  margin: 0;
  font-size: clamp(2.45rem, 5vw, 5.7rem);
  line-height: .92;
  letter-spacing: -.075em;
  color: #203046;
}
.pf-franchise-hero p { color: #526070; font-weight: 760; font-size: 1.08rem; line-height: 1.75; }
.pf-franchise-hero-pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 22px; }
.pf-franchise-hero-pills span {
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(38,191,203,.16);
  box-shadow: 0 12px 28px rgba(35,45,62,.08);
  font-weight: 1000;
  color: #254357;
}
.pf-franchise-hero-visual { position: relative; min-height: 560px; }
.pf-franchise-hero-img {
  width: 100%;
  height: 560px;
  object-fit: cover;
  border-radius: 48px;
  border: 10px solid rgba(255,255,255,.72);
  box-shadow: 0 36px 90px rgba(35,45,62,.20);
}
.pf-franchise-floating-card {
  position: absolute;
  max-width: 300px;
  padding: 18px;
  border-radius: 26px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 20px 54px rgba(35,45,62,.16);
  backdrop-filter: blur(16px);
}
.pf-franchise-floating-card strong { display: block; color: #203046; font-size: 1.1rem; margin-bottom: 6px; }
.pf-franchise-floating-card span { color: #5a6674; font-weight: 760; line-height: 1.45; }
.pf-franchise-card-a { left: -18px; bottom: 42px; transform: rotate(-2deg); }
.pf-franchise-card-b { right: -10px; top: 40px; transform: rotate(2deg); }
.pf-franchise-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 22px 0 0;
}
.pf-franchise-strip article {
  padding: 20px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid rgba(38,191,203,.14);
  box-shadow: 0 18px 42px rgba(35,45,62,.08);
}
.pf-franchise-strip strong { display: block; color: #09a8b4; font-size: 1.2rem; margin-bottom: 6px; }
.pf-franchise-strip span { color: #5d6774; font-weight: 750; line-height: 1.45; }
.pf-franchise-system { background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,241,245,.88)); border: 1px solid rgba(248,161,152,.13); }
.pf-franchise-system-grid,
.pf-franchise-diff-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.pf-franchise-system-grid article,
.pf-franchise-diff-grid article,
.pf-franchise-timeline article {
  padding: 22px;
  border-radius: 30px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(38,191,203,.12);
  box-shadow: 0 18px 44px rgba(35,45,62,.08);
}
.pf-franchise-system-grid span,
.pf-franchise-timeline span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 16px;
  margin-bottom: 14px;
  color: #fff;
  font-weight: 1000;
  background: linear-gradient(135deg, #F8A198, #16beca);
  box-shadow: 0 12px 24px rgba(38,191,203,.22);
}
.pf-franchise-system-grid h3,
.pf-franchise-diff-grid h3,
.pf-franchise-timeline h3 { color: #203046; margin: 0 0 8px; font-size: 1.05rem; }
.pf-franchise-system-grid p,
.pf-franchise-diff-grid p,
.pf-franchise-timeline p { color: #5a6674; margin: 0; font-weight: 720; line-height: 1.55; }
.pf-franchise-ambiences { overflow: hidden; background: #fff; }
.pf-franchise-gallery {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
.pf-franchise-gallery-card {
  position: relative;
  grid-column: span 4;
  min-height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: 34px;
  background: #fff;
  box-shadow: 0 24px 62px rgba(35,45,62,.13);
  border: 1px solid rgba(38,191,203,.14);
}
.pf-franchise-gallery-featured { grid-column: span 8; min-height: 520px; }
.pf-franchise-gallery-card img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .55s ease; }
.pf-franchise-gallery-card:hover img { transform: scale(1.05); }
.pf-franchise-gallery-card figcaption {
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 16px;
  padding: 16px 18px;
  border-radius: 24px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 18px 44px rgba(35,45,62,.13);
  backdrop-filter: blur(14px);
}
.pf-franchise-gallery-card strong { display: block; color: #203046; font-size: 1.1rem; }
.pf-franchise-gallery-card span { color: #5b6674; font-weight: 760; }
.pf-franchise-differentials { background: linear-gradient(135deg, rgba(232,253,255,.86), rgba(255,255,255,.96)); }
.pf-franchise-implementation { background: linear-gradient(135deg, rgba(248,161,152,.10), rgba(38,191,203,.10)), #fff; }
.pf-franchise-timeline { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.pf-franchise-final { background: linear-gradient(135deg, rgba(248,161,152,.16), rgba(38,191,203,.18)), #fff; }

@media (max-width: 1100px) {
  .pf-franchise-preview,
  .pf-franchise-hero { grid-template-columns: 1fr; }
  .pf-franchise-hero { min-height: auto; }
  .pf-franchise-system-grid,
  .pf-franchise-diff-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-franchise-timeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-franchise-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-franchise-gallery-card,
  .pf-franchise-gallery-featured { grid-column: span 6; }
}
@media (max-width: 720px) {
  .pf-franchise-preview-gallery,
  .pf-franchise-system-grid,
  .pf-franchise-diff-grid,
  .pf-franchise-timeline,
  .pf-franchise-strip { grid-template-columns: 1fr; }
  .pf-franchise-gallery { grid-template-columns: 1fr; }
  .pf-franchise-gallery-card,
  .pf-franchise-gallery-featured { grid-column: auto; min-height: 330px; }
  .pf-franchise-hero-img { height: 360px; border-radius: 34px; border-width: 6px; }
  .pf-franchise-hero-visual { min-height: 520px; }
  .pf-franchise-floating-card { position: relative; left: auto; right: auto; top: auto; bottom: auto; margin-top: 12px; max-width: none; transform: none; }
  .pf-franchise-wide { min-height: 260px; }
}

/* v1.5.117 — Franquias: correção de rolagem duplicada
   A landing /franquias deve usar apenas a rolagem nativa da página.
   Remove qualquer scroll interno herdado do shell/admin ou de wrappers antigos. */
html:has(body.franchise-body) {
  overflow-x: hidden !important;
  overflow-y: auto !important;
  height: auto !important;
}
body.franchise-body {
  min-height: 100dvh !important;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}
body.franchise-body .pf-site,
body.franchise-body .pf-franchise-page {
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
body.franchise-body .pf-franchise-ambiences,
body.franchise-body .pf-franchise-hero,
body.franchise-body .pf-section,
body.franchise-body .pf-final-cta,
body.franchise-body .pf-site-footer {
  max-height: none !important;
  overflow-y: visible !important;
}
body.franchise-body .pf-franchise-gallery,
body.franchise-body .pf-franchise-system-grid,
body.franchise-body .pf-franchise-diff-grid,
body.franchise-body .pf-franchise-timeline,
body.franchise-body .pf-franchise-strip {
  overflow-y: visible !important;
}


/* v1.5.118 — Franquias: landing comercial, post-its, playbook e painel PetFunny OS */
.pf-franchise-preview-v118 {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 18%, rgba(248, 161, 152, .18), transparent 28%),
    radial-gradient(circle at 86% 20%, rgba(38, 191, 203, .20), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,248,250,.92));
}
.pf-franchise-preview-v118::before {
  content: '';
  position: absolute;
  inset: 18px;
  border-radius: 42px;
  border: 1px solid rgba(255,255,255,.78);
  pointer-events: none;
}
.pf-franchise-note-stack {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0 0;
}
.pf-franchise-note-stack .pf-postit {
  max-width: 220px;
  transform: rotate(-1.6deg);
}
.pf-franchise-note-stack .pf-postit-blue {
  background: #e8fbff;
  color: #147986;
  transform: rotate(1.2deg);
}
.pf-franchise-note-stack .pf-postit-mint {
  background: #efffed;
  color: #3f7b35;
  transform: rotate(-.7deg);
}
.pf-franchise-mini-panel {
  position: absolute;
  right: 18px;
  bottom: 18px;
  width: min(250px, calc(100% - 36px));
  padding: 16px 18px;
  border-radius: 24px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(255,255,255,.92);
  box-shadow: 0 18px 44px rgba(35,45,62,.14);
  backdrop-filter: blur(14px);
}
.pf-franchise-mini-panel strong { display: block; color: #203046; font-size: 1rem; }
.pf-franchise-mini-panel span { display: block; color: #5a6674; font-weight: 760; margin-top: 4px; }
.pf-franchise-hero-v118 {
  background:
    radial-gradient(circle at 18% 16%, rgba(248, 161, 152, .18), transparent 30%),
    radial-gradient(circle at 86% 18%, rgba(38, 191, 203, .22), transparent 30%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(232,253,255,.76));
}
.pf-franchise-mascot-badge {
  position: absolute;
  top: 18px;
  left: 18px;
  width: 92px;
  height: 92px;
  object-fit: contain;
  border-radius: 28px;
  padding: 8px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.9);
  box-shadow: 0 18px 42px rgba(35,45,62,.16);
  backdrop-filter: blur(14px);
}
.pf-franchise-playbook {
  background:
    linear-gradient(135deg, rgba(248,161,152,.10), rgba(38,191,203,.12)),
    #fff;
}
.pf-franchise-playbook-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.pf-franchise-playbook-grid article {
  position: relative;
  padding: 24px;
  border-radius: 30px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(38,191,203,.13);
  box-shadow: 0 18px 44px rgba(35,45,62,.08);
}
.pf-franchise-playbook-grid span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 16px;
  margin-bottom: 14px;
  color: #fff;
  font-weight: 1000;
  background: linear-gradient(135deg, #F8A198, #16beca);
  box-shadow: 0 12px 24px rgba(38,191,203,.22);
}
.pf-franchise-playbook-grid h3 { color: #203046; margin: 0 0 8px; font-size: 1.08rem; }
.pf-franchise-playbook-grid p { color: #5a6674; margin: 0; font-weight: 720; line-height: 1.55; }
.pf-franchise-system-v118 {
  background:
    radial-gradient(circle at 12% 24%, rgba(38,191,203,.15), transparent 28%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,241,245,.88));
}
.pf-franchise-os-panel {
  display: grid;
  grid-template-columns: minmax(260px, .85fr) minmax(0, 1.15fr);
  gap: 22px;
  align-items: stretch;
  margin-bottom: 22px;
  padding: 26px;
  border-radius: 34px;
  background: linear-gradient(135deg, #203046, #143f45);
  color: #fff;
  box-shadow: 0 24px 62px rgba(35,45,62,.18);
}
.pf-franchise-os-panel strong { display: block; font-size: clamp(1.7rem, 2.7vw, 3rem); line-height: 1; margin-bottom: 10px; }
.pf-franchise-os-panel span { display: block; color: rgba(255,255,255,.78); font-weight: 760; line-height: 1.5; }
.pf-franchise-os-panel ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pf-franchise-os-panel li {
  padding: 13px 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.86);
  font-weight: 760;
}
@media (max-width: 1100px) {
  .pf-franchise-playbook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pf-franchise-os-panel { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .pf-franchise-playbook-grid { grid-template-columns: 1fr; }
  .pf-franchise-mascot-badge { width: 72px; height: 72px; border-radius: 22px; }
  .pf-franchise-mini-panel { position: relative; right: auto; bottom: auto; margin: 12px auto 0; width: 100%; }
  .pf-franchise-os-panel { padding: 20px; border-radius: 28px; }
}

/* v1.5.119 — Ajustes landing/franquias, rolagem única e agenda */
.pf-site-brand {
  min-width: 132px !important;
  padding: 8px 14px 10px !important;
}
.pf-site-brand::before {
  inset: 3px 5px 5px !important;
  border-radius: 10px 22px 20px 22px !important;
}
.pf-site-brand::after {
  top: -4px !important;
  left: 34px !important;
  width: 66px !important;
  height: 16px !important;
}
.pf-site-brand img {
  max-height: 44px !important;
  max-width: 138px !important;
  object-fit: contain !important;
}
.pf-site-nav { align-items: center !important; }
.pf-kicker-full {
  display: block !important;
  width: fit-content !important;
  max-width: 100% !important;
  padding: 10px 16px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, rgba(255, 233, 238, .98), rgba(232, 253, 255, .96)) !important;
  border: 1px solid rgba(248, 161, 152, .20) !important;
  box-shadow: 0 12px 28px rgba(35, 45, 62, .08) !important;
}
.pf-franchise-preview-v118 .pf-franchise-preview-copy > p:not(.pf-kicker) {
  max-width: 620px;
  font-size: 1rem;
  line-height: 1.55;
}
.pf-franchise-preview-v118 .pf-franchise-preview-copy h2 {
  max-width: 720px;
}
.pf-franchise-preview-v118 .pf-franchise-preview-card,
.pf-franchise-strip article,
.pf-franchise-playbook-grid article,
.pf-franchise-system-grid article,
.pf-franchise-diff-grid article,
.pf-franchise-timeline article,
.pf-franchise-gallery-card {
  margin-bottom: 20px !important;
}
body.franchise-body,
body.franchise-body .pf-franchise-page,
body.franchise-body .pf-site {
  overflow: visible !important;
  height: auto !important;
  min-height: 0 !important;
}
html:has(body.franchise-body) {
  overflow-y: auto !important;
  height: auto !important;
}
body.franchise-body .pf-franchise-page {
  padding-bottom: 34px !important;
}
body.franchise-body .pf-franchise-hero {
  min-height: 680px !important;
  padding-top: 34px !important;
}
body.franchise-body .pf-franchise-hero h1 {
  font-size: clamp(2.2rem, 4vw, 4.35rem) !important;
  line-height: .96 !important;
  max-width: 760px;
}
body.franchise-body .pf-franchise-hero p {
  font-size: 1rem !important;
  line-height: 1.58 !important;
  max-width: 660px;
}
.pf-franchise-hero-visual { isolation: isolate; }
.pf-franchise-hero-photo-stack {
  position: absolute;
  right: -10px;
  bottom: 22px;
  z-index: 4;
  display: grid;
  grid-template-columns: repeat(3, 84px);
  gap: 10px;
  padding: 10px;
  border-radius: 28px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(255,255,255,.92);
  box-shadow: 0 22px 52px rgba(35,45,62,.18);
  backdrop-filter: blur(14px);
}
.pf-franchise-hero-photo-stack img {
  width: 84px;
  height: 84px;
  object-fit: cover;
  border-radius: 22px;
  border: 3px solid rgba(255,255,255,.86);
}
.pf-franchise-hero-photo-stack img:nth-child(2) { transform: translateY(-10px) rotate(2deg); }
.pf-franchise-hero-photo-stack img:nth-child(3) { transform: rotate(-2deg); }
.pf-franchise-hero-chip {
  position: absolute;
  z-index: 5;
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 13px;
  border-radius: 999px;
  color: #203046;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(255,255,255,.95);
  box-shadow: 0 15px 35px rgba(35,45,62,.14);
  font-weight: 1000;
}
.pf-franchise-hero-chip-a { top: 150px; right: -4px; transform: rotate(2deg); }
.pf-franchise-hero-chip-b { top: 250px; left: -16px; transform: rotate(-2deg); }
.pf-franchise-hero-chip-c { bottom: 150px; right: 76px; transform: rotate(-1deg); }
.agenda-date-field .agenda-date-picker {
  position: relative;
  display: flex;
  align-items: center;
}
.agenda-date-field .agenda-date-picker .input {
  width: 100%;
  padding-right: 54px !important;
}
.agenda-date-picker-btn {
  position: absolute;
  right: 7px;
  top: 50%;
  transform: translateY(-50%);
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(248, 161, 152, .95), rgba(34, 199, 207, .95));
  color: #fff;
  box-shadow: 0 10px 22px rgba(34, 199, 207, .18);
  cursor: pointer;
}
.agenda-date-picker-btn:hover { transform: translateY(-50%) scale(1.03); }
@media (max-width: 720px) {
  .pf-site-brand img { max-height: 38px !important; max-width: 120px !important; }
  .pf-franchise-hero-photo-stack { position: relative; right: auto; bottom: auto; margin-top: 12px; grid-template-columns: repeat(3, 1fr); }
  .pf-franchise-hero-photo-stack img { width: 100%; height: 86px; }
  .pf-franchise-hero-chip { position: relative; inset: auto !important; margin: 8px 6px 0 0; transform: none !important; }
}


/* v1.5.120 — Landing/Franquias: header com fundo ao rolar e hero transparente */
.pf-site-nav {
  transition: background .22s ease, box-shadow .22s ease, border-color .22s ease, padding .22s ease, transform .22s ease;
}
.pf-site-nav.is-scrolled {
  background: rgba(255, 255, 255, .94) !important;
  border: 1px solid rgba(248, 161, 152, .16) !important;
  border-radius: 30px !important;
  box-shadow: 0 18px 48px rgba(35, 45, 62, .14), 0 6px 18px rgba(38, 191, 203, .08) !important;
  backdrop-filter: blur(18px) saturate(1.12) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
}
.site-body-v180 .pf-site-nav.is-scrolled .pf-site-links a:not(.pf-site-link-soft),
.site-body-v180 .pf-site-nav.is-scrolled .pf-site-link-soft {
  background: rgba(255, 255, 255, .66) !important;
}
.pf-site-brand {
  min-width: 164px !important;
  padding: 11px 22px 13px !important;
}
.pf-site-brand::before {
  inset: 0 2px 2px !important;
  border-radius: 12px 30px 26px 28px !important;
}
.pf-site-brand::after {
  top: -7px !important;
  left: 42px !important;
  width: 86px !important;
  height: 20px !important;
}
.pf-site-brand img {
  max-height: 44px !important;
  max-width: 138px !important;
}
body.franchise-body .pf-franchise-hero,
body.franchise-body .pf-franchise-hero-v118 {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.franchise-body .pf-franchise-hero::before,
body.franchise-body .pf-franchise-hero::after,
body.franchise-body .pf-franchise-hero-v118::before,
body.franchise-body .pf-franchise-hero-v118::after {
  display: none !important;
}
body.franchise-body {
  overflow-y: auto !important;
}
body.franchise-body .pf-franchise-page,
body.franchise-body .pf-site {
  overflow-y: visible !important;
  overflow-x: visible !important;
}
@media (max-width: 720px) {
  .pf-site-brand {
    min-width: 142px !important;
    padding: 10px 18px 12px !important;
  }
  .pf-site-brand::after {
    left: 34px !important;
    width: 72px !important;
  }
  .pf-site-brand img {
    max-height: 38px !important;
    max-width: 120px !important;
  }
}


/* v1.5.121 — Header fixo igual nas landings, hero alinhado e filtros da agenda corrigidos */
body.site-body-v180 .pf-site-nav,
body.franchise-body .pf-site-nav {
  position: fixed !important;
  top: 14px !important;
  left: 50% !important;
  right: auto !important;
  z-index: 2000 !important;
  width: min(1180px, calc(100% - 32px)) !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
  padding: 12px 16px !important;
  border-radius: 30px !important;
  background: rgba(255,255,255,.94) !important;
  border: 1px solid rgba(248,161,152,.16) !important;
  box-shadow: 0 18px 48px rgba(35,45,62,.14), 0 6px 18px rgba(38,191,203,.08) !important;
  backdrop-filter: blur(18px) saturate(1.12) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
}
body.site-body-v180 .pf-site-nav.is-scrolled,
body.franchise-body .pf-site-nav.is-scrolled {
  background: rgba(255,255,255,.96) !important;
  box-shadow: 0 22px 58px rgba(35,45,62,.16), 0 8px 22px rgba(38,191,203,.10) !important;
}
body.site-body-v180 .pf-site,
body.franchise-body .pf-site {
  padding-top: 112px !important;
}
body.site-body-v180 .pf-site-links a:not(.pf-site-link-soft),
body.site-body-v180 .pf-site-link-soft,
body.franchise-body .pf-site-links a:not(.pf-site-link-soft),
body.franchise-body .pf-site-link-soft {
  background: rgba(255,255,255,.72) !important;
}
body.franchise-body .pf-franchise-hero,
body.franchise-body .pf-franchise-hero-v118 {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
body.franchise-body .pf-franchise-hero-copy,
body.franchise-body .pf-franchise-hero-visual {
  min-width: 0 !important;
}
.agenda-filter-grid {
  grid-template-columns: minmax(230px, .85fr) minmax(190px, .7fr) minmax(210px, .8fr) minmax(260px, 1.2fr) !important;
  column-gap: 16px !important;
  row-gap: 14px !important;
  align-items: end !important;
}
.agenda-filter-grid .form-field,
.agenda-date-field,
.agenda-date-field .agenda-date-picker {
  min-width: 0 !important;
  width: 100% !important;
}
.agenda-date-picker-btn {
  z-index: 2 !important;
  flex: 0 0 40px !important;
}
@media (max-width: 1360px) {
  .agenda-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 920px) {
  body.site-body-v180 .pf-site,
  body.franchise-body .pf-site { padding-top: 100px !important; }
  body.site-body-v180 .pf-site-nav,
  body.franchise-body .pf-site-nav { width: min(760px, calc(100% - 22px)) !important; }
}
@media (max-width: 720px) {
  .agenda-filter-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 560px) {
  body.site-body-v180 .pf-site,
  body.franchise-body .pf-site { padding-top: 94px !important; }
  body.site-body-v180 .pf-site-nav,
  body.franchise-body .pf-site-nav { width: min(460px, calc(100% - 18px)) !important; top: 10px !important; border-radius: 24px !important; }
}

/* v1.5.123 — Cor oficial PetFunny: #F8A198 + rolagem única em /franquias */
:root {
  --pf-pink: #F8A198 !important;
  --pf-pink-strong: #F8A198 !important;
  --pf-rose-soft: #FFE7E4 !important;
}
.pf-site {
  --pf-rose: #F8A198 !important;
  --pf-rose-2: #F8A198 !important;
  --pf-salmon: #F8A198 !important;
  --pf-salmon-2: #F8A198 !important;
  --pf-coral: #F8A198 !important;
  --pf-salmon-soft: #FFE7E4 !important;
}
.client-app-shell.mobile-first {
  --client-salmon: #F8A198 !important;
  --client-salmon-mid: #F8A198 !important;
  --client-salmon-soft: #FFE7E4 !important;
}
.pf-admin-shell,
.admin-shell,
body {
  --pf-admin-salmon-logo: #F8A198 !important;
  --pf-admin-salmon-strong: #F8A198 !important;
  --petfunny-salmon: #F8A198 !important;
}
.btn:not(.btn-secondary):not(.btn-ghost):not(.cancel),
button.btn:not(.btn-secondary):not(.btn-ghost):not(.cancel),
a.btn:not(.btn-secondary):not(.btn-ghost):not(.cancel),
.pf-btn-primary,
.pf-site-nav-cta,
.client-app-shell.mobile-first .btn:not(.btn-secondary):not(.btn-ghost):not(.cancel),
.client-install-actions .btn:not(.btn-secondary),
.agenda-date-picker-btn {
  background: linear-gradient(135deg, #F8A198 0%, #F8A198 62%, var(--pf-cyan, #00a9b7) 100%) !important;
  color: #fff !important;
}
input:focus,
select:focus,
textarea:focus {
  border-color: #F8A198 !important;
  box-shadow: 0 0 0 4px rgba(248,161,152,.16) !important;
}
input[type="checkbox"],
input[type="radio"],
.weekday-picker input,
.client-radio-grid input,
.promocoes-page .weekday-picker input {
  accent-color: #F8A198 !important;
}
.notification-badge,
.pf-commercial-grid span,
.pf-check-list li::before,
.pf-app-ui-nav i,
.pf-desktop-sidebar,
.pf-desktop-bar span,
.pf-franchise-playbook-grid span,
.pf-franchise-system-grid span,
.pf-franchise-timeline span,
.client-app-shell.mobile-first .client-list-icon,
.client-app-shell.mobile-first .client-commercial-icon,
.client-app-shell.mobile-first .client-next-date,
.client-app-shell.mobile-first .client-pet-avatar,
.client-app-shell.mobile-first .client-avatar-large,
.client-area-hero-art strong {
  background: linear-gradient(135deg, #F8A198 0%, #F8A198 58%, var(--pf-cyan, #00a9b7) 100%) !important;
}
.custom-scroll::-webkit-scrollbar-thumb {
  background: linear-gradient(var(--pf-cyan, #00a9b7), #F8A198) !important;
}
body.franchise-body,
body.franchise-body * {
  overscroll-behavior: auto;
}
html:has(body.franchise-body),
html:has(body.franchise-body) body {
  width: 100% !important;
  max-width: 100% !important;
}
html:has(body.franchise-body) {
  min-height: 100% !important;
  height: auto !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}
body.franchise-body {
  min-height: 100dvh !important;
  height: auto !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}
body.franchise-body .pf-site,
body.franchise-body .pf-franchise-page,
body.franchise-body main,
body.franchise-body .pf-franchise-hero,
body.franchise-body .pf-section,
body.franchise-body .pf-final-cta,
body.franchise-body .pf-site-footer,
body.franchise-body .pf-franchise-gallery,
body.franchise-body .pf-franchise-strip,
body.franchise-body .pf-franchise-system-grid,
body.franchise-body .pf-franchise-diff-grid,
body.franchise-body .pf-franchise-timeline {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}
body.franchise-body .pf-franchise-ambiences {
  overflow: visible !important;
}

/* v1.5.128 — Roleta de Mimos: listagem CRUD com menu de ações e big numbers no padrão admin */
.roleta-page .roleta-metrics-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  margin-top: 0;
}
.roleta-page .roleta-metrics-grid .big-number-card {
  margin-bottom: 0 !important;
  min-height: 138px;
}
.roleta-page .roleta-gifts-table-wrap {
  margin-top: 18px;
  overflow: visible;
}
.roleta-page .gift-grid {
  display: block;
}
.roleta-page .roleta-gifts-table td:first-child strong {
  display: block;
  color: var(--pf-blue-900);
  font-size: .98rem;
  font-weight: 950;
  margin-bottom: 4px;
}
.roleta-page .roleta-gifts-table td:first-child small {
  display: block;
  color: var(--pf-muted);
  line-height: 1.35;
  max-width: 520px;
}
.roleta-page .actions-col,
.roleta-page .actions-cell {
  width: 88px;
  text-align: right;
}
.roleta-page .table-action-menu {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
}
.roleta-page .kebab-btn {
  width: 40px;
  height: 40px;
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.92);
  color: var(--pf-blue-900);
  font-size: 24px;
  font-weight: 950;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(15,23,42,.08);
}
.roleta-page .kebab-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 40;
  min-width: 170px;
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(13,57,94,.10);
  background: #fff;
  box-shadow: 0 22px 50px rgba(15,23,42,.16);
  display: none;
  text-align: left;
}
.roleta-page .kebab-menu.is-open { display: grid; gap: 4px; }
.roleta-page .kebab-menu button {
  width: 100%;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 10px 12px;
  color: var(--pf-blue-900);
  font-weight: 850;
  text-align: left;
  cursor: pointer;
}
.roleta-page .kebab-menu button:hover { background: rgba(38,185,199,.10); }
.roleta-page .kebab-menu button.danger { color: #df4a47; }
.roleta-page .status-pill.gift-status-active { background: rgba(0,169,183,.12); color: #007f8c; }
.roleta-page .status-pill.gift-status-inactive { background: rgba(248,161,152,.16); color: #b5534c; }
.roleta-page .status-pill.gift-status-expired { background: rgba(13,57,94,.10); color: rgba(13,57,94,.72); }
@media (max-width: 1100px) {
  .roleta-page .roleta-metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .roleta-page .roleta-metrics-grid { grid-template-columns: 1fr; }
  .roleta-page .roleta-gifts-table-wrap { overflow-x: auto; }
  .roleta-page .roleta-gifts-table { min-width: 850px; }
}

/* v1.5.141 · App Tutor: fotos de perfil/pets, endereço e footer 4 itens */
.client-photo-upload-row { display:flex; align-items:center; gap:14px; width:100%; }
.client-photo-preview { width:76px; height:76px; flex:0 0 76px; border-radius:24px; display:grid; place-items:center; overflow:hidden; background:linear-gradient(135deg, rgba(38,185,199,.16), rgba(248,161,152,.20)); border:1px solid rgba(13,57,94,.10); box-shadow:0 12px 28px rgba(7,27,44,.08); }
.client-photo-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.client-photo-preview strong { font-size:1.75rem; }
.client-photo-upload input[type="file"] { width:100%; border:1px dashed rgba(13,57,94,.18); background:rgba(255,255,255,.72); border-radius:16px; padding:12px; font-weight:800; color:var(--pf-blue-900); }
.client-photo-upload small { display:block; margin-top:7px; color:var(--pf-muted); font-size:.78rem; font-weight:750; line-height:1.35; }
.client-form-subtitle { grid-column:1/-1; margin:4px 0 -2px; padding-top:10px; border-top:1px solid rgba(13,57,94,.08); color:var(--pf-blue-900); font-weight:950; letter-spacing:-.01em; }
.client-avatar-btn span img { width:100%; height:100%; object-fit:cover; display:block; border-radius:inherit; }
.client-bottom-nav { grid-template-columns:repeat(5, minmax(0,1fr)); }
.client-bottom-more-menu a { text-decoration:none; }
@media (max-width: 520px) {
  .client-photo-upload-row { align-items:flex-start; }
  .client-photo-preview { width:66px; height:66px; flex-basis:66px; border-radius:21px; }
}


/* v1.5.142 — App tutor: avatar circular e footer principal com 5 itens */
.client-avatar-btn {
  border-radius: 999px !important;
  overflow: hidden;
  transform: none;
}
.client-avatar-btn span {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  border-radius: 999px;
  overflow: hidden;
}
.client-avatar-btn span img,
.client-avatar-btn img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block;
  border-radius: 999px !important;
}
.client-avatar-btn:hover,
.client-avatar-btn.is-active {
  transform: translateY(-2px);
}
.client-app-shell.mobile-first .client-bottom-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
}
.client-app-shell.mobile-first .client-bottom-nav a[data-nav-key="home"],
.client-app-shell.mobile-first .client-bottom-nav a[data-nav-key="agenda"],
.client-app-shell.mobile-first .client-bottom-nav a[data-nav-key="roleta"],
.client-app-shell.mobile-first .client-bottom-nav a[data-nav-key="pets"],
.client-app-shell.mobile-first .client-bottom-nav a[data-nav-key="historico"] {
  display: inline-flex;
}
.client-bottom-more-menu a[href="/app/pacotes"],
.client-bottom-more-menu a[href="/app/promocoes"],
.client-bottom-more-menu a[href="/app/bem-estar"] {
  display: flex;
}
@media (max-width: 390px) {
  .client-app-shell.mobile-first .client-bottom-nav { gap: 2px; padding-inline: 6px; }
  .client-app-shell.mobile-first .client-bottom-nav a small,
  .client-app-shell.mobile-first .client-bottom-more small { font-size: 8px !important; }
  .client-app-shell.mobile-first .client-bottom-nav a span,
  .client-app-shell.mobile-first .client-bottom-more span { font-size: .95rem !important; }
}


/* v1.5.145 — App Tutor: melhoria visual do footer mantendo estrutura v1.5.143 */
.client-app-shell.mobile-first .client-bottom-nav {
  min-height: 82px !important;
  padding: 9px 10px calc(9px + env(safe-area-inset-bottom, 0px)) !important;
  gap: 6px !important;
  align-items: center !important;
}
.client-app-shell.mobile-first .client-bottom-nav a,
.client-app-shell.mobile-first .client-bottom-more {
  min-height: 62px !important;
  min-width: 54px !important;
  padding: 10px 6px !important;
  border-radius: 20px !important;
  gap: 5px !important;
  touch-action: manipulation;
}
.client-app-shell.mobile-first .client-bottom-nav a span,
.client-app-shell.mobile-first .client-bottom-more span {
  font-size: 1.22rem !important;
  line-height: 1 !important;
}
.client-app-shell.mobile-first .client-bottom-nav a small,
.client-app-shell.mobile-first .client-bottom-more small {
  font-size: .72rem !important;
  line-height: 1.05 !important;
  font-weight: 950 !important;
  letter-spacing: -.025em !important;
}
.client-app-shell.mobile-first .client-mobile-content {
  padding-bottom: 118px !important;
}
@media (max-width: 390px) {
  .client-app-shell.mobile-first .client-bottom-nav {
    min-height: 78px !important;
    gap: 4px !important;
    padding-inline: 7px !important;
  }
  .client-app-shell.mobile-first .client-bottom-nav a,
  .client-app-shell.mobile-first .client-bottom-more {
    min-height: 58px !important;
    min-width: 48px !important;
    padding: 9px 4px !important;
  }
  .client-app-shell.mobile-first .client-bottom-nav a span,
  .client-app-shell.mobile-first .client-bottom-more span {
    font-size: 1.12rem !important;
  }
  .client-app-shell.mobile-first .client-bottom-nav a small,
  .client-app-shell.mobile-first .client-bottom-more small {
    font-size: .66rem !important;
  }
}

/* REV146 - busca de tutor por WhatsApp no modal de pets */
.input-action-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.success-text { color: #15803d !important; font-weight: 700; }
.danger-text { color: #b42318 !important; font-weight: 700; }
@media (max-width: 560px) {
  .input-action-row { grid-template-columns: 1fr; }
  .input-action-row .btn { width: 100%; }
}

/* v1.5.147 — App Tutor: Saúde 360, triagem e teleconsulta */
.client-health360-hero .client-alert-soft { margin: 12px 0 16px; }
.client-health360-dynamic { display: grid; gap: 18px; }

/* v1.6.5 — Health Score Visual Alignment Fix
   Mantém o card no mesmo padrão visual dos botões principais do App do Tutor. */
.client-health-score-card {
  position: relative;
  overflow: hidden;
  display: grid;
  gap: 16px;
  padding: 24px;
  border-radius: 30px;
  color: #fff;
  background:
    radial-gradient(circle at 96% 0%, rgba(255,255,255,.26), transparent 28%),
    linear-gradient(135deg, #F79B96 0%, #13B8C8 100%);
  box-shadow: 0 24px 48px rgba(19, 184, 200, .18), 0 18px 34px rgba(247, 155, 150, .16);
  isolation: isolate;
}
.client-health-score-card::before {
  content: '';
  position: absolute;
  inset: -74px -64px auto auto;
  width: 190px;
  height: 190px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  z-index: -1;
}
.client-health-score-card::after {
  content: '';
  position: absolute;
  left: -80px;
  bottom: -96px;
  width: 210px;
  height: 210px;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  z-index: -1;
}
.client-health-score-card.score-excellent,
.client-health-score-card.score-good,
.client-health-score-card.score-attention,
.client-health-score-card.score-risk,
.client-health-score-card.score-empty {
  background:
    radial-gradient(circle at 96% 0%, rgba(255,255,255,.26), transparent 28%),
    linear-gradient(135deg, #F79B96 0%, #13B8C8 100%);
}
.client-health-score-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.client-health-score-top .eyebrow { color: rgba(255,255,255,.78); letter-spacing: .08em; }
.client-health-score-top h3 { margin: 4px 0 0; font-size: 1.14rem; color: #fff; letter-spacing: -.02em; text-shadow: 0 2px 10px rgba(15,23,42,.16); }
.client-health-score-mark {
  display:grid;
  place-items:center;
  flex: 0 0 auto;
  width:48px;
  height:48px;
  border-radius:17px;
  background: rgba(255,255,255,.20);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.34), 0 12px 26px rgba(15,23,42,.12);
}
.client-health-score-body { display:grid; grid-template-columns: 138px minmax(0, 1fr); gap: 22px; align-items:center; }
.client-health-score-ring {
  --health-score: 0;
  position: relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap: 5px;
  width:138px;
  height:138px;
  border-radius:999px;
  background: conic-gradient(#ffffff calc(var(--health-score) * 1%), rgba(255,255,255,.28) 0);
  box-shadow: 0 18px 34px rgba(15,23,42,.20), inset 0 0 0 1px rgba(255,255,255,.30);
}
.client-health-score-ring::before {
  content:'';
  position:absolute;
  inset:7px;
  border-radius:inherit;
  background: rgba(255,255,255,.18);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.28);
}
.client-health-score-ring::after {
  content:'';
  position:absolute;
  inset:14px;
  border-radius:inherit;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,255,255,.78));
  box-shadow: inset 0 0 18px rgba(19,184,200,.13), 0 8px 22px rgba(15,23,42,.08);
}
.client-health-score-ring strong,
.client-health-score-ring span {
  position:relative;
  z-index:1;
  text-align:center;
}
.client-health-score-ring strong {
  display:block;
  font-size:3.28rem;
  font-weight:950;
  line-height:.88;
  letter-spacing:-.08em;
  color:#ffffff;
  transform: translateX(-2px);
  text-shadow: 0 4px 16px rgba(15,23,42,.34), 0 1px 0 rgba(15,23,42,.12);
}
.client-health-score-ring span {
  display:block;
  margin: 0;
  font-size:.72rem;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:rgba(255,255,255,.96);
  text-shadow: 0 3px 10px rgba(15,23,42,.26);
}
.client-health-score-insights p { margin: 0 0 6px; font-size: 1.22rem; font-weight: 950; color:#fff; text-shadow: 0 2px 10px rgba(15,23,42,.16); }
.client-health-score-insights small { display:block; color: rgba(255,255,255,.90); font-weight: 850; line-height: 1.45; }
.client-health-score-insights ul { list-style:none; margin: 12px 0 0; padding:0; display:grid; gap:5px; font-size:.86rem; font-weight:900; color: rgba(255,255,255,.96); }
.client-health-score-card footer { color: rgba(255,255,255,.88); font-weight:850; font-size:.80rem; }
.client-health-actions { display:grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.client-health-actions .btn { min-height: 56px; border-radius: 18px; }
.client-badge.success { background: rgba(34,197,94,.14); color: #047857; }
.client-badge.warning { background: rgba(245,158,11,.16); color: #92400e; }
.client-badge.danger { background: rgba(239,68,68,.15); color: #b91c1c; }
@media (max-width: 520px) {
  .client-health-actions { grid-template-columns: 1fr; }
  .client-health-score-card { padding: 22px; }
  .client-health-score-body { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .client-health-score-ring { width: 128px; height: 128px; }
  .client-health-score-ring strong { font-size: 3.08rem; }
  .client-health-score-insights ul { text-align: left; justify-self: stretch; }
}


/* v1.6.3 — Health 360 Teleconsulta: cards de veterinários e horários */
.health360-vet-grid,
.health360-slot-grid {
  display: grid;
  gap: 12px;
  margin: 10px 0 16px;
}
.health360-vet-card {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 12px;
  align-items: center;
  padding: 13px;
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 22px;
  background: linear-gradient(180deg, #ffffff 0%, #f8fffc 100%);
  box-shadow: 0 12px 28px rgba(15, 23, 42, .06);
}
.health360-vet-card.selected {
  border-color: rgba(18, 168, 118, .55);
  box-shadow: 0 16px 38px rgba(18, 168, 118, .16);
}
.health360-vet-avatar {
  width: 58px;
  height: 58px;
  border-radius: 999px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #00a9b7, #12a876);
  color: #fff;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}
.health360-vet-avatar.large {
  width: 92px;
  height: 92px;
  margin: 0 auto 12px;
}
.health360-vet-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.health360-vet-info h3 { margin: 0; font-size: 1rem; color: var(--text, #14213d); }
.health360-vet-info p { margin: 3px 0; color: var(--muted, #64748b); font-weight: 700; }
.health360-vet-info small { color: var(--muted, #64748b); }
.health360-vet-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.health360-slot-card {
  width: 100%;
  text-align: left;
  border: 1px solid rgba(15, 23, 42, .1);
  border-radius: 18px;
  background: #fff;
  padding: 13px 14px;
  display: grid;
  gap: 4px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .05);
  cursor: pointer;
}
.health360-slot-card.selected {
  border-color: rgba(255, 122, 24, .65);
  background: linear-gradient(135deg, rgba(255, 122, 24, .11), rgba(18, 168, 118, .09));
}
.health360-slot-card strong { color: var(--text, #14213d); font-size: .98rem; }
.health360-slot-card span,
.health360-slot-card small { color: var(--muted, #64748b); font-weight: 700; }
.client-section-title.compact { margin-top: 8px; }
.client-section-title.compact h2 { font-size: 1.05rem; }
.health360-vet-detail { display: grid; gap: 12px; text-align: center; }
.health360-vet-detail p { color: var(--muted, #64748b); line-height: 1.55; }
.health360-photo-preview { flex: 0 0 auto; }
.health360-vet-detail-panel {
  border: 1px solid rgba(18, 168, 118, .22);
  border-radius: 22px;
  padding: 14px;
  background: linear-gradient(135deg, rgba(18,168,118,.08), rgba(255,122,24,.06));
  margin: 4px 0 16px;
}


/* v1.6.6 Health Score Typography Fix */
.client-health-score-ring strong,
.client-health-score-ring span{
  color:#0F172A !important;
  text-shadow:none !important;
}
.client-health-score-ring{
  display:flex !important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}

/* v1.6.7 · Admin Pets/Tutores infinite-scroll totals */
.list-load-status {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  margin-top: 12px;
  padding: 12px 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.78);
  color: #64748b;
  font-size: 0.86rem;
  font-weight: 800;
  letter-spacing: .01em;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}
body.theme-dark .list-load-status,
.dark .list-load-status {
  border-color: rgba(255, 255, 255, 0.08);
  background: rgba(15, 23, 42, 0.72);
  color: rgba(226, 232, 240, 0.82);
}

.packages-page .sale-card-menu button.danger-menu-action,
.packages-page .floating-sale-menu button.danger-menu-action { color:#b91c1c; font-weight:950; }
.packages-page .sale-card-menu button.danger-menu-action:hover,
.packages-page .floating-sale-menu button.danger-menu-action:hover { background:rgba(239,68,68,.10); color:#991b1b; }

/* v1.6.13 — Financeiro: modais e menus de ações padronizados */
.finance-admin-page .modal-backdrop,
#finance-modal,
#pay-modal,
#message-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99990 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  background: rgba(7, 27, 44, .48) !important;
  backdrop-filter: blur(8px) !important;
}
.finance-admin-page .modal-backdrop[hidden],
#finance-modal[hidden],
#pay-modal[hidden],
#message-modal[hidden] {
  display: none !important;
}
#finance-modal .finance-modal-card,
#pay-modal .finance-modal-card,
#message-modal .finance-modal-card {
  width: min(94vw, 840px) !important;
  max-height: min(88vh, 840px) !important;
  overflow: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  border-radius: 28px !important;
  background: rgba(255,255,255,.98) !important;
  border: 1px solid rgba(13,57,94,.12) !important;
  box-shadow: 0 30px 110px rgba(7,27,44,.22) !important;
}
#pay-modal .finance-modal-card,
#message-modal .finance-modal-card {
  width: min(94vw, 620px) !important;
}
.finance-action-menu .danger-menu-item {
  color: #b42318 !important;
}
.finance-action-menu .danger-menu-item:hover {
  background: rgba(239,68,68,.10) !important;
}
@media (max-width: 720px) {
  .finance-admin-page .modal-backdrop,
  #finance-modal,
  #pay-modal,
  #message-modal { padding: 10px !important; align-items: flex-end !important; }
  #finance-modal .finance-modal-card,
  #pay-modal .finance-modal-card,
  #message-modal .finance-modal-card { width: 100% !important; border-radius: 24px 24px 18px 18px !important; }
}


/* v1.6.16 — App Agenda: descrição do serviço entre título e valor */
.client-service-description {
  display: block;
  margin: 4px 0 5px;
  color: #6e6172;
  font-size: .82rem;
  line-height: 1.32;
  font-weight: 650;
}
.client-service-description.muted {
  color: #8a7d8b;
  font-weight: 600;
}
.client-check-list label span small {
  margin-top: 3px;
}


/* v1.6.17 — Agenda persistente: slots lotados visíveis + cards paralelos */
.slot-events-row {
  display: flex;
  align-items: stretch;
  gap: 8px;
  flex-wrap: wrap;
  width: 100%;
}
.slot-events-row > small {
  width: 100%;
}
.calendar-day .slot-events-row {
  flex-direction: column;
}
.slot-cell .slot-events-row .cal-event {
  width: min(220px, 100%);
  min-width: 168px;
  flex: 1 1 168px;
  margin-bottom: 0 !important;
}
.calendar-day-view .slot-cell .slot-events-row .cal-event {
  flex: 0 1 min(260px, 48%);
}
.calendar-week-view .slot-cell .slot-events-row .cal-event {
  flex: 1 1 100%;
  min-width: 0;
}
.slot-mini-tag.warning {
  background: rgba(245, 158, 11, .14);
  border-color: rgba(245, 158, 11, .32);
  color: #925700;
}
.slot-mini-tag.full {
  background: rgba(239, 68, 68, .13);
  border-color: rgba(239, 68, 68, .28);
  color: #991b1b;
}
.slot-cell:has(.slot-mini-tag.full) {
  background: linear-gradient(135deg, rgba(255,255,255,.82), rgba(239,68,68,.045));
}
@media (max-width: 860px) {
  .calendar-day-view .slot-cell .slot-events-row .cal-event { flex-basis: 100%; }
}

/* v1.6.19 — Menus de 3 pontinhos: altura controlada e rolagem interna segura */
.card-menu,
.card-menu.open,
.card-menu.is-open-floating,
.tutor-row-menu,
.tutor-row-menu.open,
.sale-card-menu,
.sale-card-menu.open,
.sale-card-menu.is-open-floating,
.floating-sale-menu,
.agenda-global-action-menu,
.dashboard-global-action-menu,
.admin-wellbeing-actions-menu,
.finance-action-menu,
.row-action-menu,
.actions-dropdown,
.dropdown-menu {
  max-height: min(420px, calc(100vh - 96px)) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: thin;
  scrollbar-color: rgba(13,57,94,.28) transparent;
}
.card-menu::-webkit-scrollbar,
.tutor-row-menu::-webkit-scrollbar,
.sale-card-menu::-webkit-scrollbar,
.floating-sale-menu::-webkit-scrollbar,
.agenda-global-action-menu::-webkit-scrollbar,
.dashboard-global-action-menu::-webkit-scrollbar,
.admin-wellbeing-actions-menu::-webkit-scrollbar,
.finance-action-menu::-webkit-scrollbar,
.row-action-menu::-webkit-scrollbar,
.actions-dropdown::-webkit-scrollbar,
.dropdown-menu::-webkit-scrollbar { width: 8px; }
.card-menu::-webkit-scrollbar-thumb,
.tutor-row-menu::-webkit-scrollbar-thumb,
.sale-card-menu::-webkit-scrollbar-thumb,
.floating-sale-menu::-webkit-scrollbar-thumb,
.agenda-global-action-menu::-webkit-scrollbar-thumb,
.dashboard-global-action-menu::-webkit-scrollbar-thumb,
.admin-wellbeing-actions-menu::-webkit-scrollbar-thumb,
.finance-action-menu::-webkit-scrollbar-thumb,
.row-action-menu::-webkit-scrollbar-thumb,
.actions-dropdown::-webkit-scrollbar-thumb,
.dropdown-menu::-webkit-scrollbar-thumb {
  background: rgba(13,57,94,.22);
  border-radius: 999px;
}
.tutor-row-menu.open,
.card-menu.open,
.sale-card-menu.open { gap: 4px; }
@media (max-width: 720px) {
  .card-menu,
  .card-menu.open,
  .card-menu.is-open-floating,
  .tutor-row-menu,
  .tutor-row-menu.open,
  .sale-card-menu,
  .sale-card-menu.open,
  .sale-card-menu.is-open-floating,
  .floating-sale-menu,
  .agenda-global-action-menu,
  .dashboard-global-action-menu,
  .admin-wellbeing-actions-menu,
  .finance-action-menu,
  .row-action-menu,
  .actions-dropdown,
  .dropdown-menu {
    max-height: min(360px, calc(100vh - 84px)) !important;
  }
}

/* v1.6.20 - helper de busca por WhatsApp no modal de agendamento antigo */
.form-grid .full-width { grid-column: 1 / -1; }
.form-helper {
  margin-top: -8px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(15, 23, 42, .04);
  color: var(--pf-muted, #64748b);
  font-size: .86rem;
  font-weight: 700;
}
.form-helper[data-type="success"] { background: rgba(34, 197, 94, .11); color: #047857; }
.form-helper[data-type="warning"] { background: rgba(245, 158, 11, .14); color: #92400e; }
.form-helper[data-type="error"] { background: rgba(239, 68, 68, .12); color: #b91c1c; }
.form-helper[data-type="loading"] { background: rgba(19, 184, 200, .12); color: #0e7490; }

/* v1.6.21 — Triagem diária inteligente Saúde 360 */
.client-daily-triage-card {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 14px;
  padding: 16px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(247,155,150,.16), rgba(19,184,200,.14));
  border: 1px solid rgba(19,184,200,.18);
  box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
  margin: 14px 0;
}
.client-daily-triage-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  font-size: 26px;
  background: linear-gradient(135deg, #F79B96, #13B8C8);
  color: #fff;
  box-shadow: 0 14px 28px rgba(19,184,200,.22);
}
.client-daily-triage-body h3 {
  margin: 3px 0 6px;
  color: #0F172A;
  font-size: 18px;
  line-height: 1.16;
}
.client-daily-triage-body p {
  margin: 0 0 8px;
  color: #475569;
  line-height: 1.45;
}
.client-daily-triage-body small {
  display: block;
  color: #0F766E;
  font-weight: 700;
  margin-bottom: 10px;
}
@media (max-width: 420px) {
  .client-daily-triage-card { grid-template-columns: 46px 1fr; padding: 14px; gap: 12px; }
  .client-daily-triage-icon { width: 46px; height: 46px; border-radius: 16px; font-size: 22px; }
}

/* v1.6.22 — Health 360 Daily Triage Complete */
.health360-dashboard-block{display:grid;gap:14px;margin:14px 0 18px;}
.health360-kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.health360-kpi{border:1px solid rgba(15,23,42,.08);border-radius:20px;background:#fff;box-shadow:0 14px 35px rgba(15,23,42,.08);padding:14px;display:grid;gap:4px;}
.health360-kpi span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:800;}
.health360-kpi strong{font-size:1.45rem;color:#0f172a;line-height:1;}
.health360-kpi small{font-size:.78rem;color:#64748b;font-weight:700;}
.health360-alert-list{border-color:rgba(239,68,68,.16)!important;background:rgba(254,242,242,.92)!important;}
.health360-alert-list p{margin:.45rem 0 0;color:#7f1d1d;}
.health360-insight-card{border:1px solid rgba(19,184,200,.22);background:linear-gradient(180deg,#fff,#f8feff);}
.health360-insight-card ul{margin:.35rem 0 .7rem;padding-left:1.1rem;display:grid;gap:.25rem;}
.health360-insight-card li{color:#0f172a;font-weight:700;}
@media (max-width:420px){.health360-kpi-grid{grid-template-columns:1fr 1fr}.health360-kpi{padding:12px}.health360-kpi strong{font-size:1.25rem}}

/* v1.6.22/v1.6.23 — Health Thermometer + Predictive Health Engine */
.health360-thermometer-block,
.health360-risk-block {
  margin: 18px 0;
}
.health360-thermo-grid,
.health360-risk-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
}
.health360-thermo-card,
.health360-risk-card {
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 22px;
  background: #fff;
  padding: 14px;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .07);
}
.health360-thermo-head {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: space-between;
}
.health360-thermo-head > span {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(247,155,150,.18), rgba(19,184,200,.18));
  font-size: 20px;
  flex: 0 0 auto;
}
.health360-thermo-head div {
  flex: 1;
  min-width: 0;
}
.health360-thermo-head strong,
.health360-risk-card strong {
  display: block;
  color: #0f172a;
  font-size: 14px;
  line-height: 1.2;
}
.health360-thermo-head small,
.health360-risk-card small {
  display: block;
  color: #64748b;
  font-size: 11px;
  margin-top: 3px;
}
.health360-thermo-head b,
.health360-risk-card > b {
  color: #0f172a;
  font-size: 18px;
  line-height: 1;
  white-space: nowrap;
}
.health360-thermo-track {
  width: 100%;
  height: 11px;
  border-radius: 999px;
  background: rgba(15, 23, 42, .08);
  overflow: hidden;
  margin: 12px 0 7px;
}
.health360-thermo-track i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ef4444 0%, #f59e0b 45%, #22c55e 100%);
  min-width: 8px;
}
.health360-thermo-card footer {
  font-size: 12px;
  font-weight: 800;
  color: #0f172a;
}
.health360-thermo-card.thermo-excellent .health360-thermo-track i { background: linear-gradient(90deg, #13b8c8, #22c55e); }
.health360-thermo-card.thermo-good .health360-thermo-track i { background: linear-gradient(90deg, #f79b96, #13b8c8); }
.health360-thermo-card.thermo-attention .health360-thermo-track i { background: linear-gradient(90deg, #f59e0b, #f79b96); }
.health360-thermo-card.thermo-risk .health360-thermo-track i { background: linear-gradient(90deg, #ef4444, #f97316); }
.health360-risk-card {
  display: grid;
  gap: 10px;
}
.health360-risk-card .btn {
  justify-self: start;
}
.health360-insight-card .health360-thermo-card,
.client-list-card .health360-thermo-card {
  box-shadow: none;
  background: rgba(248, 250, 252, .9);
  margin: 10px 0;
}

/* v1.6.27 — Financeiro 360 v1 */
.finance-grid-3,
.finance-360-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.finance-mini-list,
.finance-alert-list {
  display: grid;
  gap: 10px;
}
.finance-mini-item,
.finance-alert-item {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.05);
}
.finance-mini-item span,
.finance-alert-item span {
  color: var(--muted, #64748b);
  font-size: 0.86rem;
  line-height: 1.35;
}
.finance-mini-item strong,
.finance-alert-item strong {
  color: var(--ink, #10212b);
  font-weight: 850;
}
.finance-mini-item small {
  color: var(--muted, #64748b);
  font-size: 0.78rem;
}
.finance-alert-item.danger { border-color: rgba(239, 68, 68, 0.25); background: rgba(254, 242, 242, 0.85); }
.finance-alert-item.warning { border-color: rgba(245, 158, 11, 0.25); background: rgba(255, 251, 235, 0.85); }
.finance-alert-item.neutral { border-color: rgba(1, 173, 183, 0.20); background: rgba(236, 254, 255, 0.65); }
.finance-tabs-360 { flex-wrap: wrap; gap: 8px; }
.finance-tabs-360 .finance-tab { min-height: 38px; }
@media (max-width: 980px) {
  .finance-grid-3,
  .finance-360-grid { grid-template-columns: 1fr; }
}

/* v1.6.30 — App do Tutor Engajamento 360 */
.client-meupet-hero {
  display: grid;
  grid-template-columns: 94px 1fr;
  gap: 14px;
  align-items: center;
  padding: 18px;
  border-radius: 28px;
  background: linear-gradient(135deg, #f9a197 0%, #13b8c8 100%);
  color: #fff;
  box-shadow: 0 18px 45px rgba(19, 184, 200, .22);
  margin-bottom: 14px;
}
.client-meupet-photo { width: 94px; height: 94px; border-radius: 26px; overflow: hidden; background: rgba(255,255,255,.22); display: grid; place-items: center; border: 3px solid rgba(255,255,255,.72); box-shadow: 0 12px 30px rgba(15, 23, 42, .18); }
.client-meupet-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.client-meupet-photo span { font-size: 42px; font-weight: 900; color: #0f172a; background: rgba(255,255,255,.82); width: 100%; height: 100%; display: grid; place-items: center; }
.client-meupet-copy h2 { margin: 4px 0 6px; font-size: 1.35rem; line-height: 1.05; color: #fff; }
.client-meupet-copy p { margin: 0; color: rgba(255,255,255,.92); font-weight: 600; }
.client-meupet-copy .eyebrow { color: rgba(255,255,255,.86); }
.client-meupet-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.client-meupet-actions .btn { box-shadow: 0 12px 24px rgba(15,23,42,.16); }
.client-engagement-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin: 12px 0 16px; }
.client-engagement-card { border: 1px solid rgba(15,23,42,.06); border-radius: 22px; background: #fff; padding: 14px; box-shadow: 0 12px 26px rgba(15,23,42,.06); min-height: 132px; }
.client-engagement-card > span { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 15px; background: #eefcff; margin-bottom: 8px; font-size: 20px; }
.client-engagement-card small { display: block; color: #64748b; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; font-size: .68rem; }
.client-engagement-card strong { display: block; color: #0f172a; font-size: 1.05rem; margin: 3px 0; line-height: 1.08; }
.client-engagement-card p { margin: 0; color: #64748b; font-weight: 600; font-size: .86rem; }
.client-bones-card { background: linear-gradient(180deg, #fff 0%, #fff7f6 100%); }
.client-reward-bar { height: 8px; border-radius: 999px; background: #ffe2df; overflow: hidden; margin-top: 10px; }
.client-reward-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f9a197, #13b8c8); }
.client-reward-events { display: grid; gap: 8px; }
.client-reward-events div { display: flex; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 16px; background: #fff; border: 1px solid rgba(15,23,42,.06); }
.client-reward-events strong { color: #0f172a; white-space: nowrap; }
.client-reward-events span { color: #64748b; font-weight: 650; text-align: right; }
@media (max-width: 380px) {
  .client-meupet-hero { grid-template-columns: 76px 1fr; padding: 14px; }
  .client-meupet-photo { width: 76px; height: 76px; border-radius: 22px; }
  .client-engagement-grid { grid-template-columns: 1fr; }
}

/* v1.6.30 Sprint 4 — IA de Cuidados */
.client-care-insight-card .client-care-insight-body {
  border: 1px solid rgba(38, 185, 199, .18);
  background: linear-gradient(135deg, rgba(38,185,199,.10), rgba(248,161,152,.10));
}
.client-care-insight-card.high .client-care-insight-body {
  border-color: rgba(239,68,68,.25);
  background: linear-gradient(135deg, rgba(239,68,68,.10), rgba(248,161,152,.13));
}
.client-care-insight-card.attention .client-care-insight-body {
  border-color: rgba(245,158,11,.25);
  background: linear-gradient(135deg, rgba(245,158,11,.12), rgba(38,185,199,.10));
}
.client-care-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0 2px;
}
.client-care-tags span {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 800;
  color: #0f172a;
  background: rgba(255,255,255,.78);
  border: 1px solid rgba(15,23,42,.08);
}

/* v1.6.30 Sprint 2 — Timeline + Mídia + Momentos */
.client-moments-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(156px, 1fr));
  gap: 14px;
}
.client-moments-grid.mini {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.client-moment-card {
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 18px 45px rgba(15, 23, 42, .08);
}
.client-moment-media {
  aspect-ratio: 1 / 1;
  background: linear-gradient(135deg, rgba(248,161,152,.18), rgba(38,185,199,.18));
  display: grid;
  place-items: center;
  color: #0f172a;
  font-size: 34px;
}
.client-moment-media img,
.client-moment-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.client-moment-copy {
  padding: 12px;
}
.client-moment-copy strong {
  display: block;
  color: #0f172a;
  font-size: .95rem;
}
.client-moment-copy p {
  margin: 4px 0 6px;
  color: #64748b;
  font-size: .82rem;
}
.client-moment-copy small {
  color: #94a3b8;
}
.client-card-actions .btn-danger-soft,
body.app-client .btn-danger-soft {
  border: 1px solid rgba(190,18,60,.16);
  background: #fff1f2;
  color: #be123c;
}
.client-card-actions .btn-danger-soft:hover,
body.app-client .btn-danger-soft:hover {
  background: #ffe4e6;
  color: #9f1239;
}
.client-service-timeline.detailed {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.client-service-step {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: 10px;
  align-items: start;
  padding: 9px 10px;
  border-radius: 16px;
  background: #f8fafc;
  border: 1px solid rgba(15, 23, 42, .06);
  opacity: .72;
}
.client-service-step > span {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(38,185,199,.12);
}
.client-service-step strong {
  display: block;
  color: #0f172a;
  font-size: .88rem;
}
.client-service-step small {
  display: block;
  color: #64748b;
  font-size: .78rem;
  margin-top: 2px;
}
.client-service-step.is-done {
  opacity: 1;
  border-color: rgba(38,185,199,.26);
  background: linear-gradient(135deg, rgba(38,185,199,.10), rgba(248,161,152,.08));
}
.client-service-step.is-active {
  box-shadow: 0 12px 32px rgba(38,185,199,.14);
  transform: translateY(-1px);
}
.client-agenda-live-timeline {
  margin: -6px 0 14px;
  padding: 0 4px 8px;
}
@media (max-width: 420px) {
  .client-moments-grid,
  .client-moments-grid.mini { grid-template-columns: 1fr; }
}

/* v1.6.30 Sprint 3 — Indique e Ganhe + Pacotes em cards */
.client-package-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.client-package-option {
  width: 100%;
  border: 1px solid rgba(19,184,200,.18);
  background: #fff;
  border-radius: 24px;
  padding: 16px;
  text-align: left;
  display: grid;
  gap: 8px;
  box-shadow: 0 16px 36px rgba(15,23,42,.06);
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
  color: #0f172a;
}
.client-package-option:hover,
.client-package-option.is-selected {
  transform: translateY(-1px);
  border-color: #13b8c8;
  box-shadow: 0 20px 44px rgba(19,184,200,.16);
}
.client-package-option.is-selected {
  background: linear-gradient(180deg, rgba(19,184,200,.10), rgba(249,161,151,.08)), #fff;
}
.client-package-option strong {
  font-size: 1.02rem;
  line-height: 1.2;
}
.client-package-option p {
  margin: 0;
  color: #64748b;
  font-weight: 650;
  line-height: 1.35;
}
.client-package-badge {
  width: max-content;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: .74rem;
  font-weight: 850;
  color: #0f6772;
  background: rgba(19,184,200,.12);
}
.client-package-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.client-package-meta span {
  border-radius: 999px;
  padding: 6px 10px;
  background: #fff7f6;
  color: #9f4f49;
  font-weight: 800;
  font-size: .78rem;
}
.client-package-price {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 10px;
  border-top: 1px solid rgba(15,23,42,.07);
  padding-top: 10px;
}
.client-package-price small {
  color: #64748b;
  font-weight: 800;
}
.client-package-price b {
  font-size: 1.35rem;
  color: #0f172a;
}
.client-package-economy {
  border-radius: 16px;
  padding: 10px 12px;
  background: linear-gradient(135deg, rgba(249,161,151,.18), rgba(19,184,200,.13));
  color: #0f172a;
  font-weight: 850;
}
.client-referral-card {
  background: linear-gradient(135deg, rgba(249,161,151,.14), rgba(19,184,200,.13)), #fff;
}
.client-referral-hero .client-form-card {
  border: 1px solid rgba(19,184,200,.14);
}
@media (min-width: 680px) {
  .client-package-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v1.6.30 Sprint 5 — Dashboard de Engajamento 360° */
.engagement-admin-panel .panel-heading p:not(.eyebrow){margin:.25rem 0 0;color:var(--muted,#64748b);max-width:780px}
.engagement-admin-score{display:grid;grid-template-columns:132px 1fr;gap:18px;align-items:center;padding:18px;border-radius:24px;background:linear-gradient(135deg,rgba(249,161,151,.18),rgba(1,173,183,.16));border:1px solid rgba(1,173,183,.16);margin:16px 0 18px}
.engagement-score-ring{--score:0;width:112px;height:112px;border-radius:999px;display:grid;place-items:center;position:relative;background:conic-gradient(#01ADB7 calc(var(--score)*1%),rgba(255,255,255,.65) 0);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45),0 14px 36px rgba(1,173,183,.18)}
.engagement-score-ring::after{content:"";position:absolute;inset:13px;border-radius:inherit;background:#fff;box-shadow:inset 0 0 0 1px rgba(15,23,42,.05)}
.engagement-score-ring strong,.engagement-score-ring small{position:relative;z-index:1;color:#0f172a;line-height:1;text-align:center}.engagement-score-ring strong{font-size:2rem}.engagement-score-ring small{font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.06em;color:#64748b;margin-top:30px;position:absolute;bottom:27px}
.engagement-admin-score h3{margin:0 0 6px;font-size:1.25rem}.engagement-admin-score p{margin:0;color:var(--muted,#64748b)}
.engagement-home-preview{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.engagement-home-preview span{padding:7px 10px;border-radius:999px;background:#fff;color:#0f172a;font-weight:800;font-size:.78rem;border:1px solid rgba(1,173,183,.12)}
.engagement-admin-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:18px 0}.engagement-admin-kpi{border-radius:22px;padding:14px;background:#fff;border:1px solid rgba(15,23,42,.08);box-shadow:0 12px 34px rgba(15,23,42,.06);display:grid;gap:6px;min-height:132px}.engagement-admin-kpi small{color:#64748b;font-weight:800;text-transform:uppercase;font-size:.68rem;letter-spacing:.06em}.engagement-admin-kpi strong{font-size:1.75rem;color:#0f172a}.engagement-admin-kpi p{margin:0;color:#64748b;font-size:.82rem}.engagement-admin-icon{width:38px;height:38px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#F9A197,#01ADB7);box-shadow:0 10px 22px rgba(1,173,183,.2)}.engagement-success .engagement-admin-icon{background:linear-gradient(135deg,#22c55e,#01ADB7)}.engagement-warning .engagement-admin-icon{background:linear-gradient(135deg,#f59e0b,#F9A197)}
.engagement-admin-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.engagement-admin-columns h3{margin:0 0 10px}.engagement-list{display:grid;gap:8px}.engagement-list article{display:grid;grid-template-columns:1fr auto;gap:4px 10px;align-items:center;padding:11px 12px;border-radius:16px;background:rgba(248,250,252,.9);border:1px solid rgba(15,23,42,.06)}.engagement-list article span{font-weight:800;color:#0f172a}.engagement-list article strong{color:#01ADB7}.engagement-list article small{grid-column:1/-1;color:#64748b}.engagement-insights{display:grid;gap:10px;margin-top:16px}.engagement-insights article{display:flex;gap:10px;align-items:flex-start;border-radius:18px;padding:13px;background:rgba(1,173,183,.08);border:1px solid rgba(1,173,183,.12)}.engagement-insights p{margin:0;color:#334155}
@media (max-width:1100px){.engagement-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.engagement-admin-columns{grid-template-columns:1fr}}
@media (max-width:720px){.engagement-admin-score{grid-template-columns:1fr;text-align:center;place-items:center}.engagement-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.engagement-admin-kpi{min-height:120px}.engagement-home-preview{justify-content:center}}


/* v1.6.32 — App Momentos: rolagem única e avatar pequeno/redondo */
body:has(.client-app-shell.mobile-first) {
  overflow-y: auto !important;
  overflow-x: hidden !important;
}
.client-app-shell.mobile-first {
  min-height: 100dvh;
  height: auto !important;
  overflow: visible !important;
  padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px)) !important;
}
.client-app-shell.mobile-first .client-mobile-hero,
.client-app-shell.mobile-first .client-mobile-content,
.client-app-shell.mobile-first .client-mobile-section,
.client-app-shell.mobile-first .client-moments-grid,
.client-app-shell.mobile-first .client-pet-list {
  max-height: none !important;
  overflow: visible !important;
}
.client-moment-pet-card {
  align-items: center;
}
.client-pet-mini-avatar {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  font-size: 1.15rem !important;
  background: linear-gradient(135deg, rgba(38,185,199,.18), rgba(248,161,152,.20)) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.72), 0 10px 24px rgba(15,23,42,.08);
}
.client-pet-mini-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 999px !important;
}

/* v1.6.35 — Tutores: validação de WhatsApp duplicado no modal */
.tutor-whatsapp-check[hidden] { display: none !important; }
.tutor-whatsapp-check { margin-top: -8px; }
.duplicate-check-card {
  width: 100%;
  border-radius: 18px;
  padding: 12px 14px;
  display: grid;
  gap: 6px;
  border: 1px solid rgba(15, 23, 42, .08);
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
}
.tutor-whatsapp-check.is-warning .duplicate-check-card {
  border-color: rgba(249, 161, 151, .55);
  background: linear-gradient(135deg, rgba(249, 161, 151, .16), rgba(255,255,255,.96));
}
.tutor-whatsapp-check.is-success .duplicate-check-card {
  border-color: rgba(1, 173, 183, .45);
  background: linear-gradient(135deg, rgba(1, 173, 183, .14), rgba(255,255,255,.96));
}
.duplicate-check-card strong { color: #0f172a; font-size: .94rem; }
.duplicate-check-card span { color: rgba(15, 23, 42, .68); font-size: .86rem; }
.duplicate-check-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
.btn-sm { min-height: 34px; padding: 8px 12px; font-size: .82rem; border-radius: 12px; }
.btn-ghost { background: rgba(255,255,255,.72); color: #0f172a; border: 1px solid rgba(15,23,42,.12); }


/* v1.6.37 — Admin Modal Standardization + Agenda DatePicker Fix */
body:not(.app-client) dialog.premium-modal[open],
body:not(.app-client) dialog.modal-shell[open],
body:not(.app-client) dialog.agenda-document-modal[open],
body:not(.app-client) dialog.petfunny-result-modal[open] {
  margin: 100px auto !important;
  height: calc(100dvh - 200px) !important;
  max-height: calc(100dvh - 200px) !important;
  overflow: visible !important;
}

body:not(.app-client) dialog.premium-modal[open] > .modal-card,
body:not(.app-client) dialog.modal-shell[open] > .modal-card,
body:not(.app-client) dialog.modal-shell[open] > .agenda-appointment-modal-card,
body:not(.app-client) dialog.agenda-document-modal[open] > .modal-card,
body:not(.app-client) dialog.agenda-document-modal[open] > .agenda-document-modal-card,
body:not(.app-client) dialog.petfunny-result-modal[open] > .petfunny-result-card {
  height: 100% !important;
  max-height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

body:not(.app-client) dialog.premium-modal[open] .modal-header,
body:not(.app-client) dialog.premium-modal[open] .modal-footer,
body:not(.app-client) dialog.modal-shell[open] .modal-header,
body:not(.app-client) dialog.modal-shell[open] .modal-footer,
body:not(.app-client) dialog.modal-shell[open] .agenda-modal-header,
body:not(.app-client) dialog.agenda-document-modal[open] .modal-header,
body:not(.app-client) dialog.agenda-document-modal[open] .modal-footer {
  flex: 0 0 auto !important;
}

body:not(.app-client) dialog.premium-modal[open] .modal-body,
body:not(.app-client) dialog.modal-shell[open] .modal-body,
body:not(.app-client) dialog.agenda-document-modal[open] .modal-body,
body:not(.app-client) dialog.petfunny-result-modal[open] .modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
}

/* Agenda: manter somente o ícone nativo do input date em Data Base */
.agenda-date-picker { position: relative; }
.agenda-date-picker .agenda-date-picker-btn { display: none !important; }
.agenda-date-picker input[type="date"] { padding-right: 14px !important; }


/* v1.6.39 — App footer salmão, layout ícone + texto, lazy home e Momentos avatar */
.client-app-shell.mobile-first .client-bottom-nav {
  background: linear-gradient(135deg, #F8A198 0%, #F6A49F 55%, #F4B2AB 100%) !important;
  border: 1px solid rgba(255,255,255,.45) !important;
  box-shadow: 0 20px 55px rgba(248,161,152,.36), 0 8px 18px rgba(39,49,65,.12) !important;
  grid-template-columns: none !important;
  justify-content: stretch !important;
}
.client-app-shell.mobile-first .client-bottom-nav a,
.client-app-shell.mobile-first .client-bottom-more {
  display: inline-flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  text-align: left !important;
  color: #fff !important;
  background: rgba(255,255,255,.13) !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  max-width: none !important;
  min-width: 0 !important;
  padding: 10px 8px !important;
}
.client-app-shell.mobile-first .client-bottom-nav a span,
.client-app-shell.mobile-first .client-bottom-more span {
  flex: 0 0 auto !important;
  font-size: 1.03rem !important;
  color: #fff !important;
  margin: 0 !important;
}
.client-app-shell.mobile-first .client-bottom-nav a small,
.client-app-shell.mobile-first .client-bottom-more small {
  width: auto !important;
  min-width: 0 !important;
  display: inline !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  color: #fff !important;
  font-size: .68rem !important;
  line-height: 1.05 !important;
  text-align: left !important;
}
.client-app-shell.mobile-first .client-bottom-nav a.is-active,
.client-app-shell.mobile-first .client-bottom-nav a:hover,
.client-app-shell.mobile-first .client-bottom-more:hover,
.client-app-shell.mobile-first .client-bottom-more.is-open {
  color: #17313F !important;
  background: rgba(255,255,255,.86) !important;
  border-color: rgba(255,255,255,.96) !important;
}
.client-app-shell.mobile-first .client-bottom-nav a.is-active span,
.client-app-shell.mobile-first .client-bottom-nav a.is-active small,
.client-app-shell.mobile-first .client-bottom-nav a:hover span,
.client-app-shell.mobile-first .client-bottom-nav a:hover small,
.client-app-shell.mobile-first .client-bottom-more:hover span,
.client-app-shell.mobile-first .client-bottom-more:hover small,
.client-app-shell.mobile-first .client-bottom-more.is-open span,
.client-app-shell.mobile-first .client-bottom-more.is-open small {
  color: #17313F !important;
}
.client-bottom-more-menu a { display: grid !important; grid-template-columns: 34px 1fr !important; }
.client-home-lazy { opacity: 0; transform: translateY(18px); max-height: 0; overflow: hidden; transition: opacity .28s var(--pf-ease), transform .28s var(--pf-ease), max-height .34s var(--pf-ease); }
.client-home-lazy.is-visible { opacity: 1; transform: none; max-height: 4000px; overflow: visible; }
.client-home-lazy-sentinel { height: 1px; }
.client-moment-pet-card .client-pet-mini-avatar,
.client-moment-pet-card .client-list-icon.client-pet-mini-avatar {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.12rem !important;
  box-shadow: 0 10px 24px rgba(7,27,44,.12) !important;
}
.client-moment-pet-card .client-pet-mini-avatar img,
.client-moment-pet-card .client-list-icon.client-pet-mini-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 999px !important;
  display: block !important;
}
@media (max-width: 420px) {
  .client-app-shell.mobile-first .client-bottom-nav { gap: 4px !important; padding-inline: 6px !important; }
  .client-app-shell.mobile-first .client-bottom-nav a,
  .client-app-shell.mobile-first .client-bottom-more { gap: 4px !important; padding: 9px 5px !important; }
  .client-app-shell.mobile-first .client-bottom-nav a small,
  .client-app-shell.mobile-first .client-bottom-more small { font-size: .58rem !important; }
}

/* v1.6.40 — Meu Pet: acessos rápidos no topo, uma rolagem e timeline com scroll infinito */
body.app-client,
body.app-client html {
  overflow-x: hidden !important;
}
body.app-client .client-app-shell,
body.app-client .client-main,
body.app-client .client-page,
body.app-client .client-content,
body.app-client main {
  max-height: none !important;
  height: auto !important;
  overflow: visible !important;
}
body.app-client .client-mobile-section,
body.app-client .client-meupet-hero,
body.app-client .client-engagement-grid,
body.app-client .client-kpi-grid {
  overflow: visible !important;
}
.client-quick-access-section {
  margin-top: 14px !important;
  margin-bottom: 12px !important;
}
.client-home-big-numbers {
  margin: 12px 0 16px !important;
}
.client-home-timeline-section {
  padding-bottom: 92px !important;
}
.client-home-timeline-section .client-timeline {
  overflow: visible !important;
  max-height: none !important;
}
.client-home-timeline-section .client-timeline-loader {
  display: block;
  text-align: center;
  padding: 14px;
  color: rgba(37, 48, 70, .62);
  font-weight: 800;
}
.client-home-timeline-section .client-timeline-loader[hidden] { display: none !important; }
.client-moment-timeline-card .client-pet-mini-avatar,
.client-moment-timeline-card .client-list-icon.client-pet-mini-avatar {
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1.12rem !important;
  box-shadow: 0 10px 24px rgba(7,27,44,.12) !important;
}
.client-moment-timeline-card .client-pet-mini-avatar img,
.client-moment-timeline-card .client-list-icon.client-pet-mini-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 999px !important;
  display: block !important;
}


/* v1.6.41 — App Footer More Menu Style Fix + WhatsApp Normalization Fix */
.client-app-shell.mobile-first .client-bottom-more-menu {
  background: linear-gradient(135deg, #F8A198 0%, #F6A49F 55%, #F4B2AB 100%) !important;
  border: 1px solid rgba(255,255,255,.50) !important;
  box-shadow: 0 20px 55px rgba(248,161,152,.36), 0 12px 30px rgba(39,49,65,.16) !important;
  border-radius: 24px !important;
  padding: 10px !important;
  gap: 8px !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu a {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  grid-template-columns: none !important;
  gap: 10px !important;
  width: 100% !important;
  min-height: 48px !important;
  padding: 11px 12px !important;
  border-radius: 16px !important;
  text-decoration: none !important;
  color: #fff !important;
  background: rgba(255,255,255,.13) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu a span {
  flex: 0 0 34px !important;
  width: 34px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.18) !important;
  color: #fff !important;
  font-size: 1.05rem !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu a small {
  flex: 1 1 auto !important;
  display: block !important;
  color: #fff !important;
  font-size: .82rem !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
  text-align: left !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu a:hover,
.client-app-shell.mobile-first .client-bottom-more-menu a.is-active {
  background: rgba(255,255,255,.88) !important;
  border-color: rgba(255,255,255,.98) !important;
  color: #17313F !important;
}
.client-app-shell.mobile-first .client-bottom-more-menu a:hover span,
.client-app-shell.mobile-first .client-bottom-more-menu a:hover small,
.client-app-shell.mobile-first .client-bottom-more-menu a.is-active span,
.client-app-shell.mobile-first .client-bottom-more-menu a.is-active small {
  color: #17313F !important;
}
.client-field input[name="whatsapp"][disabled],
.client-field input[data-mask="whatsapp"][disabled] {
  color: #17313F !important;
  -webkit-text-fill-color: #17313F !important;
  opacity: 1 !important;
  font-weight: 900 !important;
}

/* v1.6.46 — Dashboard Gerente IA de Crescimento */
.ai-growth-section { margin: clamp(16px, 2vw, 24px) 0; }
.ai-growth-panel {
  background:
    radial-gradient(circle at 10% 0%, rgba(1,173,183,.18), transparent 30%),
    radial-gradient(circle at 92% 8%, rgba(249,161,151,.28), transparent 34%),
    linear-gradient(135deg, rgba(255,255,255,.96), rgba(255,255,255,.78)) !important;
}
.ai-growth-heading { align-items: flex-start; gap: 18px; }
.ai-growth-heading p:not(.eyebrow) { max-width: 900px; color: var(--pf-muted, #64748b); line-height: 1.55; }
.ai-growth-score {
  --score: 0;
  width: 118px;
  min-width: 118px;
  height: 118px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  text-align: center;
  background:
    radial-gradient(circle at center, #fff 0 56%, transparent 57%),
    conic-gradient(#01ADB7 calc(var(--score) * 1%), rgba(15,23,42,.10) 0);
  box-shadow: 0 18px 42px rgba(1,173,183,.18);
  border: 1px solid rgba(1,173,183,.18);
}
.ai-growth-score strong { display: block; color: #0f172a; font-size: 2.25rem; letter-spacing: -.06em; line-height: 1; }
.ai-growth-score small { display: block; max-width: 82px; color: #64748b; font-weight: 900; line-height: 1.1; text-transform: lowercase; }
.ai-growth-meta { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 16px; }
.ai-growth-meta span { padding: 9px 12px; border-radius: 999px; background: rgba(1,173,183,.09); color: #17313F; font-weight: 900; font-size: .8rem; border: 1px solid rgba(1,173,183,.13); }
.ai-growth-goal { display: grid; gap: 6px; padding: 16px 18px; border-radius: 22px; background: linear-gradient(135deg, rgba(1,173,183,.12), rgba(249,161,151,.18)); border: 1px solid rgba(1,173,183,.14); margin-bottom: 18px; }
.ai-growth-goal span { color: #64748b; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 950; }
.ai-growth-goal strong { color: #0f172a; font-size: clamp(1.15rem, 2vw, 1.65rem); letter-spacing: -.035em; }
.ai-growth-grid { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, .85fr); gap: 16px; align-items: start; }
.ai-growth-main, .ai-growth-side, .ai-campaign-block { min-width: 0; }
.ai-task-list { display: grid; gap: 12px; }
.ai-task-card { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 13px; align-items: center; padding: 14px; border-radius: 22px; background: rgba(255,255,255,.92); border: 1px solid rgba(15,23,42,.07); box-shadow: 0 14px 34px rgba(15,23,42,.06); }
.ai-task-card.priority-alta { border-color: rgba(248, 113, 113, .32); box-shadow: 0 16px 38px rgba(248,113,113,.08); }
.ai-task-card.priority-media, .ai-task-card.priority-média { border-color: rgba(1,173,183,.22); }
.ai-task-card.priority-baixa { border-color: rgba(34,197,94,.20); }
.ai-task-index { width: 48px; height: 48px; border-radius: 18px; display: grid; place-items: center; background: linear-gradient(135deg, #01ADB7, #F9A197); color: #fff; font-weight: 950; box-shadow: 0 12px 25px rgba(1,173,183,.18); }
.ai-task-content { display: grid; gap: 6px; min-width: 0; }
.ai-task-title-row { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; }
.ai-task-title-row strong { color: #0f172a; font-size: 1rem; letter-spacing: -.01em; }
.ai-task-title-row span { flex: 0 0 auto; border-radius: 999px; padding: 5px 9px; background: rgba(249,161,151,.18); color: #9d3d35; font-size: .72rem; font-weight: 950; text-transform: uppercase; letter-spacing: .05em; }
.ai-task-card p { margin: 0; color: #475569; line-height: 1.42; }
.ai-task-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-task-tags small { padding: 6px 8px; border-radius: 999px; background: rgba(15,23,42,.045); color: #64748b; font-weight: 850; }
.ai-task-link { align-self: stretch; display: grid; place-items: center; padding: 0 14px; border-radius: 16px; background: #17313F; color: #fff; text-decoration: none; font-weight: 950; }
.ai-task-link:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(23,49,63,.20); }
.ai-growth-side { display: grid; gap: 12px; }
.ai-side-card { padding: 15px; border-radius: 22px; background: rgba(255,255,255,.82); border: 1px solid rgba(15,23,42,.07); box-shadow: 0 12px 28px rgba(15,23,42,.05); }
.ai-side-card h3 { margin: 0 0 9px; color: #0f172a; }
.ai-side-card p { margin: 7px 0; color: #475569; line-height: 1.42; }
.ai-mini-list { display: grid; gap: 8px; }
.ai-mini-list span { display: block; padding: 9px 10px; border-radius: 15px; background: rgba(248,250,252,.9); color: #475569; font-weight: 800; line-height: 1.35; }
.ai-campaign-block { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(15,23,42,.08); }
.ai-campaign-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ai-campaign-card { display: grid; gap: 7px; padding: 15px; border-radius: 22px; background: linear-gradient(135deg, rgba(255,255,255,.95), rgba(248,250,252,.86)); border: 1px solid rgba(1,173,183,.12); box-shadow: 0 12px 28px rgba(15,23,42,.05); }
.ai-campaign-card span { width: max-content; padding: 6px 9px; border-radius: 999px; background: rgba(1,173,183,.10); color: #057987; font-weight: 950; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; }
.ai-campaign-card strong { color: #0f172a; }
.ai-campaign-card small { color: #64748b; font-weight: 850; }
.ai-campaign-card p { margin: 0; color: #334155; line-height: 1.45; }
@media (max-width: 1180px) {
  .ai-growth-grid { grid-template-columns: 1fr; }
  .ai-campaign-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .ai-growth-heading { display: grid !important; }
  .ai-growth-score { width: 104px; min-width: 104px; height: 104px; }
  .ai-task-card { grid-template-columns: 42px minmax(0,1fr); }
  .ai-task-link { grid-column: 1 / -1; min-height: 44px; }
  .ai-task-title-row { display: grid; }
}

.client-moment-card.is-focus-moment {
  outline: 3px solid rgba(38,185,199,.42);
  box-shadow: 0 18px 50px rgba(38,185,199,.18), 0 12px 32px rgba(249,161,151,.16);
  transform: translateY(-2px);
}

/* v1.6.52 — App do Tutor: header/footer fixos + home no padrão mockup */
body.app-client.client-pwa-layout-v1652,
body.app-client.client-pwa-layout-v1652 * {
  box-sizing: border-box;
}
body.app-client.client-pwa-layout-v1652 {
  width: 100%;
  height: 100dvh !important;
  min-height: 100dvh !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 0% 4%, rgba(1,173,183,.16), transparent 34%),
    radial-gradient(circle at 100% 2%, rgba(249,161,151,.18), transparent 36%),
    linear-gradient(180deg, #fffdfa 0%, #f7fcff 100%) !important;
}
body.app-client.client-pwa-layout-v1652 .client-app-shell.mobile-first.client-fixed-app-shell {
  position: relative !important;
  width: 100% !important;
  max-width: none !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
}
body.app-client.client-pwa-layout-v1652 .client-mobile-topbar.client-fixed-topbar {
  position: fixed !important;
  top: 0 !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  z-index: 220 !important;
  width: min(540px, 100vw) !important;
  max-width: 540px !important;
  height: calc(64px + env(safe-area-inset-top, 0px)) !important;
  margin: 0 !important;
  padding: calc(8px + env(safe-area-inset-top, 0px)) 16px 8px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(15, 23, 42, .08) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.96) !important;
  backdrop-filter: blur(18px) saturate(1.05) !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .08) !important;
}
body.app-client.client-pwa-layout-v1652 .client-mobile-brand img {
  width: 126px !important;
  max-width: 42vw !important;
  height: auto !important;
  object-fit: contain !important;
}
body.app-client.client-pwa-layout-v1652 .client-notification-btn,
body.app-client.client-pwa-layout-v1652 .client-icon-btn.client-notification-btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(1, 173, 183, .13) !important;
  background: #fff !important;
  color: #17313F !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08) !important;
}
body.app-client.client-pwa-layout-v1652 .client-scroll-content {
  position: fixed !important;
  top: calc(64px + env(safe-area-inset-top, 0px)) !important;
  bottom: calc(70px + env(safe-area-inset-bottom, 0px)) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(540px, 100vw) !important;
  max-width: 540px !important;
  margin: 0 !important;
  padding: 14px 14px 20px !important;
  display: grid !important;
  align-content: start !important;
  gap: 14px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  scroll-padding-top: 12px !important;
  scrollbar-width: thin;
}
body.app-client.client-pwa-layout-v1652 .client-scroll-content::-webkit-scrollbar { width: 5px; }
body.app-client.client-pwa-layout-v1652 .client-scroll-content::-webkit-scrollbar-thumb { background: rgba(1,173,183,.34); border-radius: 999px; }
body.app-client.client-pwa-layout-v1652 .client-bottom-nav.client-flat-bottom-nav,
body.app-client.client-pwa-layout-v1652 .client-bottom-nav {
  position: fixed !important;
  left: 50% !important;
  bottom: 0 !important;
  transform: translateX(-50%) !important;
  z-index: 240 !important;
  width: min(540px, 100vw) !important;
  max-width: 540px !important;
  min-height: calc(70px + env(safe-area-inset-bottom, 0px)) !important;
  padding: 7px 8px calc(7px + env(safe-area-inset-bottom, 0px)) !important;
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border: 0 !important;
  border-top: 1px solid rgba(15, 23, 42, .08) !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: blur(18px) saturate(1.05) !important;
  box-shadow: 0 -8px 26px rgba(15, 23, 42, .10) !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a,
body.app-client.client-pwa-layout-v1652 .client-bottom-more {
  min-width: 0 !important;
  min-height: 54px !important;
  border-radius: 0 !important;
  padding: 7px 2px !important;
  display: grid !important;
  place-items: center !important;
  gap: 2px !important;
  color: #72808a !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a span,
body.app-client.client-pwa-layout-v1652 .client-bottom-more span {
  width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  margin: 0 !important;
  border-radius: 999px !important;
  font-size: 1.08rem !important;
  line-height: 1 !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a small,
body.app-client.client-pwa-layout-v1652 .client-bottom-more small {
  font-size: .62rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  color: inherit !important;
  white-space: nowrap !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a.is-active {
  color: #018995 !important;
  background: transparent !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a.is-active span {
  color: #fff !important;
  background: linear-gradient(135deg, #01ADB7, #008895) !important;
  box-shadow: 0 8px 18px rgba(1,173,183,.26) !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a[data-nav-key="pets"] span {
  width: 44px !important;
  height: 44px !important;
  margin-top: -16px !important;
  color: #fff !important;
  background: linear-gradient(135deg, #01ADB7, #008895) !important;
  box-shadow: 0 12px 28px rgba(1,173,183,.28) !important;
}
body.app-client.client-pwa-layout-v1652 .client-bottom-nav a[data-nav-key="pets"] small { margin-top: -6px !important; }
body.app-client.client-pwa-layout-v1652 .client-bottom-more-menu {
  position: absolute !important;
  right: 8px !important;
  bottom: calc(76px + env(safe-area-inset-bottom, 0px)) !important;
  width: min(260px, calc(100vw - 28px)) !important;
}
body.app-client.client-pwa-layout-v1652 .client-mobile-hero.client-area-hero {
  margin: 0 0 2px !important;
  border-radius: 24px !important;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-hero {
  position: relative !important;
  grid-template-columns: 1fr 108px !important;
  min-height: 164px !important;
  margin: 0 !important;
  padding: 18px !important;
  border-radius: 24px !important;
  overflow: hidden !important;
  color: #fff !important;
  background:
    radial-gradient(circle at 86% 24%, rgba(255,255,255,.24), transparent 30%),
    linear-gradient(135deg, #008995 0%, #01ADB7 62%, #42c7cc 100%) !important;
  box-shadow: 0 18px 45px rgba(1, 173, 183, .22) !important;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-hero::after {
  content: "";
  position: absolute;
  right: -22px;
  bottom: -24px;
  width: 150px;
  height: 150px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
}
body.app-client.client-pwa-layout-v1652 .client-meupet-photo {
  grid-column: 2;
  grid-row: 1;
  justify-self: end;
  align-self: end;
  width: 104px !important;
  height: 104px !important;
  border-radius: 26px !important;
  border: 3px solid rgba(255,255,255,.64) !important;
  z-index: 2;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-copy {
  grid-column: 1 / 3;
  grid-row: 1;
  max-width: calc(100% - 100px);
  z-index: 3;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-copy h2 {
  max-width: 220px;
  margin: 3px 0 8px !important;
  color: #fff !important;
  font-size: clamp(1.55rem, 7.5vw, 2rem) !important;
  line-height: 1.03 !important;
  letter-spacing: -.045em !important;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-copy p {
  max-width: 260px;
  color: rgba(255,255,255,.92) !important;
  font-weight: 800 !important;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-actions {
  margin-top: 12px !important;
}
body.app-client.client-pwa-layout-v1652 .client-meupet-actions .btn {
  min-height: 34px !important;
  padding: 8px 11px !important;
  border-radius: 12px !important;
}
body.app-client.client-pwa-layout-v1652 .client-engagement-grid {
  margin: 0 !important;
}
body.app-client.client-pwa-layout-v1652 .client-quick-access-section {
  margin: 0 !important;
  padding: 16px !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.88) !important;
}
body.app-client.client-pwa-layout-v1652 .client-quick-access-section .client-section-title h2 {
  font-size: 1.02rem !important;
  letter-spacing: -.01em !important;
}
body.app-client.client-pwa-layout-v1652 .client-home-action-grid,
body.app-client.client-pwa-layout-v1652 .client-shortcuts-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}
body.app-client.client-pwa-layout-v1652 .client-shortcut {
  min-height: 94px !important;
  padding: 10px 6px !important;
  border-radius: 14px !important;
  place-items: center !important;
  text-align: center !important;
  background: #fff !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .06) !important;
}
body.app-client.client-pwa-layout-v1652 .client-shortcut span {
  width: 34px !important;
  height: 34px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 12px !important;
  background: rgba(1,173,183,.10) !important;
  color: #018995 !important;
  font-size: 1.15rem !important;
}
body.app-client.client-pwa-layout-v1652 .client-shortcut:nth-child(3n) span,
body.app-client.client-pwa-layout-v1652 .client-shortcut:nth-child(4) span,
body.app-client.client-pwa-layout-v1652 .client-shortcut:nth-child(9) span {
  background: rgba(249,161,151,.14) !important;
  color: #F07167 !important;
}
body.app-client.client-pwa-layout-v1652 .client-shortcut strong {
  font-size: .78rem !important;
  line-height: 1.1 !important;
  color: #17313F !important;
}
body.app-client.client-pwa-layout-v1652 .client-shortcut small {
  display: none !important;
}
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-radius: 24px;
  color: #fff;
  background: linear-gradient(135deg, #008995, #01ADB7 58%, #F9A197);
  box-shadow: 0 18px 38px rgba(1,173,183,.20);
  overflow: hidden;
}
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta div { display: grid; gap: 3px; }
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta span { font-size: 1.45rem; }
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta strong { font-size: 1.15rem; letter-spacing: -.02em; }
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta p { margin: 0; color: rgba(255,255,255,.90); font-weight: 800; font-size: .86rem; line-height: 1.35; }
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta .btn {
  background: #fff !important;
  color: #008995 !important;
  box-shadow: 0 12px 24px rgba(15,23,42,.12) !important;
}
body.app-client.client-pwa-layout-v1652 .client-kpi-grid.client-home-big-numbers {
  margin: 0 !important;
}
body.app-client.client-pwa-layout-v1652 #notificacoes {
  scroll-margin-top: 12px;
}
@media (max-width: 380px) {
  body.app-client.client-pwa-layout-v1652 .client-home-action-grid,
  body.app-client.client-pwa-layout-v1652 .client-shortcuts-grid { gap: 7px !important; }
  body.app-client.client-pwa-layout-v1652 .client-shortcut { min-height: 86px !important; }
  body.app-client.client-pwa-layout-v1652 .client-shortcut strong { font-size: .72rem !important; }
  body.app-client.client-pwa-layout-v1652 .client-meupet-hero { grid-template-columns: 1fr 86px !important; }
  body.app-client.client-pwa-layout-v1652 .client-meupet-photo { width: 86px !important; height: 86px !important; }
  body.app-client.client-pwa-layout-v1652 .client-meupet-copy { max-width: calc(100% - 78px); }
  body.app-client.client-pwa-layout-v1652 .client-home-referral-cta { grid-template-columns: 1fr; }
  body.app-client.client-pwa-layout-v1652 .client-home-referral-cta .btn { width: 100%; }
}

/* FunnyOS v1.6.53 — Ajustes finais do App do Tutor/PWA */
html:has(body.app-client.client-pwa-layout-v1653),
body.app-client.client-pwa-layout-v1653 {
  overflow: hidden !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
}
body.app-client.client-pwa-layout-v1653 .client-app-shell.mobile-first.client-fixed-app-shell {
  height: 100dvh !important;
  max-height: 100dvh !important;
  overflow: hidden !important;
}
body.app-client.client-pwa-layout-v1653 .client-mobile-topbar.client-fixed-topbar {
  height: calc(74px + env(safe-area-inset-top, 0px)) !important;
  padding: calc(10px + env(safe-area-inset-top, 0px)) 16px 12px !important;
  border-bottom: 1px solid rgba(1, 173, 183, .12) !important;
  border-radius: 0 0 24px 24px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(255,253,250,.94)) !important;
  box-shadow: 0 12px 34px rgba(15, 23, 42, .10) !important;
}
body.app-client.client-pwa-layout-v1653 .client-mobile-brand img {
  width: 132px !important;
  max-height: 44px !important;
  object-fit: contain !important;
}
body.app-client.client-pwa-layout-v1653 .client-notification-btn,
body.app-client.client-pwa-layout-v1653 .client-icon-btn.client-notification-btn {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  border-radius: 18px !important;
  display: grid !important;
  place-items: center !important;
}
body.app-client.client-pwa-layout-v1653 .client-scroll-content {
  top: calc(74px + env(safe-area-inset-top, 0px)) !important;
  bottom: calc(84px + env(safe-area-inset-bottom, 0px)) !important;
  padding: 16px 14px 28px !important;
  gap: 15px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-scroll-content::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav.client-flat-bottom-nav,
body.app-client.client-pwa-layout-v1653 .client-bottom-nav {
  min-height: calc(84px + env(safe-area-inset-bottom, 0px)) !important;
  padding: 10px 10px calc(10px + env(safe-area-inset-bottom, 0px)) !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: 4px !important;
  border-radius: 26px 26px 0 0 !important;
  border-top: 1px solid rgba(1, 173, 183, .12) !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 -12px 34px rgba(15, 23, 42, .12) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a,
body.app-client.client-pwa-layout-v1653 .client-bottom-more {
  min-height: 62px !important;
  padding: 8px 3px 7px !important;
  border-radius: 18px !important;
  gap: 0 !important;
  align-content: center !important;
  justify-items: center !important;
  font-family: inherit !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a span,
body.app-client.client-pwa-layout-v1653 .client-bottom-more span {
  width: 38px !important;
  height: 38px !important;
  margin: 0 0 10px 0 !important;
  padding: 8px !important;
  border-radius: 999px !important;
  font-size: 1.02rem !important;
  background: rgba(1, 173, 183, .08) !important;
  color: #018995 !important;
  box-shadow: inset 0 0 0 1px rgba(1,173,183,.06) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a small,
body.app-client.client-pwa-layout-v1653 .client-bottom-more small {
  font-size: .59rem !important;
  line-height: 1.05 !important;
  letter-spacing: -.02em !important;
  margin: 0 !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a.is-active,
body.app-client.client-pwa-layout-v1653 .client-bottom-more.is-active,
body.app-client.client-pwa-layout-v1653 .client-bottom-more.is-open {
  color: #018995 !important;
  background: rgba(1, 173, 183, .07) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a.is-active span,
body.app-client.client-pwa-layout-v1653 .client-bottom-more.is-active span,
body.app-client.client-pwa-layout-v1653 .client-bottom-more.is-open span {
  color: #fff !important;
  background: linear-gradient(135deg, #01ADB7, #008995) !important;
  box-shadow: 0 10px 22px rgba(1,173,183,.26) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a[data-nav-key="pets"] span {
  width: 38px !important;
  height: 38px !important;
  margin-top: 0 !important;
  margin-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-nav a[data-nav-key="pets"] small {
  margin-top: 0 !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more:not([hidden]) {
  display: grid !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more span {
  letter-spacing: 1px !important;
  font-size: 1rem !important;
  font-weight: 950 !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  transform: translateX(-50%) !important;
  z-index: 260 !important;
  width: min(500px, calc(100vw - 28px)) !important;
  max-height: min(58dvh, 420px) !important;
  padding: 12px !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
  border: 1px solid rgba(1, 173, 183, .13) !important;
  border-radius: 24px !important;
  background: rgba(255,255,255,.98) !important;
  box-shadow: 0 22px 55px rgba(15, 23, 42, .20) !important;
  backdrop-filter: blur(18px) saturate(1.08) !important;
  overflow-y: auto !important;
  scrollbar-width: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu::-webkit-scrollbar { display: none !important; }
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu[hidden] { display: none !important; }
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu a {
  display: grid !important;
  grid-template-columns: 1fr !important;
  place-items: center !important;
  min-height: 76px !important;
  gap: 7px !important;
  padding: 9px 6px !important;
  border-radius: 18px !important;
  text-align: center !important;
  text-decoration: none !important;
  color: #5b6b75 !important;
  background: rgba(1, 173, 183, .055) !important;
  border: 1px solid rgba(1,173,183,.08) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu a span {
  width: 36px !important;
  height: 36px !important;
  display: grid !important;
  place-items: center !important;
  padding: 8px !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #018995 !important;
  box-shadow: 0 8px 18px rgba(15,23,42,.08) !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu a small {
  font-size: .65rem !important;
  line-height: 1.08 !important;
  font-weight: 950 !important;
  color: inherit !important;
}
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu a.is-active,
body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu a:hover {
  background: linear-gradient(135deg, rgba(1,173,183,.14), rgba(249,161,151,.14)) !important;
  color: #018995 !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-hero {
  min-height: 208px !important;
  grid-template-columns: minmax(0, 1fr) 130px !important;
  padding: 22px 18px 20px !important;
  align-items: stretch !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-photo {
  width: 126px !important;
  height: 126px !important;
  align-self: center !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center !important;
  display: block !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-photo span {
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  font-size: 3rem !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-copy {
  max-width: calc(100% - 112px) !important;
  align-self: center !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-copy h2 {
  max-width: 245px !important;
  font-size: clamp(1.55rem, 6.6vw, 2.08rem) !important;
  line-height: 1.05 !important;
}
body.app-client.client-pwa-layout-v1653 .client-meupet-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
}
body.app-client.client-pwa-layout-v1653 .client-mobile-section,
body.app-client.client-pwa-layout-v1653 .client-form-card,
body.app-client.client-pwa-layout-v1653 .client-list-card,
body.app-client.client-pwa-layout-v1653 .client-pet-card,
body.app-client.client-pwa-layout-v1653 .client-wellbeing-result,
body.app-client.client-pwa-layout-v1653 .client-alert-soft {
  width: 100% !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
}
body.app-client.client-pwa-layout-v1653 .client-list-title-row,
body.app-client.client-pwa-layout-v1653 .client-card-title-row,
body.app-client.client-pwa-layout-v1653 .client-section-title,
body.app-client.client-pwa-layout-v1653 .client-card-actions,
body.app-client.client-pwa-layout-v1653 .table-header-actions {
  min-width: 0 !important;
  flex-wrap: wrap !important;
}
body.app-client.client-pwa-layout-v1653 .client-card-actions .btn,
body.app-client.client-pwa-layout-v1653 .client-list-card .btn,
body.app-client.client-pwa-layout-v1653 .client-form-card .btn {
  white-space: normal !important;
}
body.app-client.client-pwa-layout-v1653 input,
body.app-client.client-pwa-layout-v1653 select,
body.app-client.client-pwa-layout-v1653 textarea,
body.app-client.client-pwa-layout-v1653 button {
  max-width: 100% !important;
}
body.app-client.client-pwa-layout-v1653 .client-home-action-grid,
body.app-client.client-pwa-layout-v1653 .client-shortcuts-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body.app-client.client-pwa-layout-v1653 .client-shortcut {
  min-width: 0 !important;
  overflow: hidden !important;
}
@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1653 .client-bottom-nav.client-flat-bottom-nav,
  body.app-client.client-pwa-layout-v1653 .client-bottom-nav {
    gap: 2px !important;
    padding-inline: 7px !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-bottom-nav a,
  body.app-client.client-pwa-layout-v1653 .client-bottom-more {
    padding-inline: 2px !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-bottom-nav a span,
  body.app-client.client-pwa-layout-v1653 .client-bottom-more span {
    width: 34px !important;
    height: 34px !important;
    margin-bottom: 8px !important;
    font-size: .95rem !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-bottom-nav a small,
  body.app-client.client-pwa-layout-v1653 .client-bottom-more small {
    font-size: .52rem !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-bottom-more-menu {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-meupet-hero {
    min-height: 214px !important;
    grid-template-columns: minmax(0, 1fr) 100px !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-meupet-photo {
    width: 100px !important;
    height: 100px !important;
  }
  body.app-client.client-pwa-layout-v1653 .client-meupet-copy {
    max-width: calc(100% - 76px) !important;
  }
}

/* v1.6.54 — Ajustes finais App Tutor: agenda pet picker, fotos circulares e tosa condicionada ao banho */
body.app-client.client-pwa-layout-v1653,
body.app-client.client-pwa-layout-v1653 .client-app-shell,
body.app-client.client-pwa-layout-v1653 .client-scroll-content {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.app-client.client-pwa-layout-v1653::-webkit-scrollbar,
body.app-client.client-pwa-layout-v1653 .client-app-shell::-webkit-scrollbar,
body.app-client.client-pwa-layout-v1653 .client-scroll-content::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

body.app-client.client-pwa-layout-v1653 .client-mobile-hero.client-area-hero.section-agenda {
  min-height: 132px !important;
  align-items: center !important;
}
body.app-client.client-pwa-layout-v1653 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-actions,
body.app-client.client-pwa-layout-v1653 .client-mobile-hero.client-area-hero.section-agenda .client-profile-pill {
  display: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy {
  max-width: calc(100% - 78px) !important;
}

body.app-client.client-pwa-layout-v1653 .client-pet-avatar,
body.app-client.client-pwa-layout-v1653 .client-pet-mini-avatar,
body.app-client.client-pwa-layout-v1653 .client-list-icon.client-pet-mini-avatar,
body.app-client.client-pwa-layout-v1653 .client-meupet-photo,
body.app-client.client-pwa-layout-v1653 .client-moment-pet-card .client-pet-mini-avatar,
body.app-client.client-pwa-layout-v1653 .client-moment-timeline-card .client-pet-mini-avatar {
  border-radius: 999px !important;
  aspect-ratio: 1 / 1 !important;
}
body.app-client.client-pwa-layout-v1653 .client-pet-avatar img,
body.app-client.client-pwa-layout-v1653 .client-pet-mini-avatar img,
body.app-client.client-pwa-layout-v1653 .client-meupet-photo img {
  border-radius: 999px !important;
  object-fit: cover !important;
}

body.app-client.client-pwa-layout-v1653 .client-pet-picker-field > span {
  font-size: 1.05rem !important;
  font-weight: 950 !important;
  color: #17313F !important;
  margin-bottom: 12px !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-picker {
  width: 100% !important;
  min-width: 0 !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-row {
  display: flex !important;
  align-items: flex-start !important;
  gap: 16px !important;
  width: 100% !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  padding: 2px 2px 8px !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-row::-webkit-scrollbar { display: none !important; }
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-option {
  appearance: none !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #17313F !important;
  display: grid !important;
  justify-items: center !important;
  align-content: start !important;
  gap: 6px !important;
  min-width: 86px !important;
  max-width: 96px !important;
  padding: 0 !important;
  text-align: center !important;
  cursor: pointer !important;
  scroll-snap-align: start !important;
  -webkit-tap-highlight-color: transparent !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-photo {
  width: 76px !important;
  height: 76px !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  border-radius: 999px !important;
  border: 2px solid rgba(1, 173, 183, .18) !important;
  background: linear-gradient(135deg, rgba(1,173,183,.10), rgba(249,161,151,.12)) !important;
  color: #018995 !important;
  font-size: 1.8rem !important;
  font-weight: 950 !important;
  box-shadow: 0 10px 22px rgba(15,23,42,.08) !important;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 999px !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-option strong {
  display: block !important;
  max-width: 92px !important;
  font-size: .86rem !important;
  font-weight: 950 !important;
  line-height: 1.05 !important;
  color: #17313F !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-option small {
  display: block !important;
  max-width: 92px !important;
  margin-top: -3px !important;
  font-size: .68rem !important;
  font-weight: 800 !important;
  line-height: 1.05 !important;
  color: #6c7a84 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-option.is-selected .client-appointment-pet-photo {
  border-color: #01ADB7 !important;
  box-shadow: 0 0 0 4px rgba(1,173,183,.14), 0 14px 30px rgba(1,173,183,.18) !important;
  transform: translateY(-1px) !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-option.is-selected strong {
  color: #018995 !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-pet-photo.add {
  background: #fff !important;
  border: 2px solid rgba(15, 23, 42, .10) !important;
  color: #17313F !important;
  font-size: 2.35rem !important;
  font-weight: 400 !important;
}
body.app-client.client-pwa-layout-v1653 .client-appointment-add-pet:hover .client-appointment-pet-photo.add {
  color: #fff !important;
  background: linear-gradient(135deg, #01ADB7, #008995) !important;
  border-color: transparent !important;
}

body.app-client.client-pwa-layout-v1653 .client-service-group.is-tosa-group {
  border-color: rgba(249, 161, 151, .23) !important;
  background: linear-gradient(135deg, #fff, rgba(249,161,151,.045)) !important;
}
body.app-client.client-pwa-layout-v1653 .client-service-group-list label.is-disabled,
body.app-client.client-pwa-layout-v1653 .client-service-group-list label.service-requires-bath {
  opacity: .58 !important;
  cursor: not-allowed !important;
  filter: grayscale(.28) !important;
}
body.app-client.client-pwa-layout-v1653 .client-service-group-list label.is-disabled input,
body.app-client.client-pwa-layout-v1653 .client-service-group-list label.service-requires-bath input {
  pointer-events: none !important;
}
body.app-client.client-pwa-layout-v1653 .client-service-locked-note {
  display: inline-flex !important;
  width: fit-content !important;
  margin-top: 6px !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  background: rgba(249, 161, 151, .18) !important;
  color: #b94a3e !important;
  font-size: .68rem !important;
  font-style: normal !important;
  font-weight: 950 !important;
}

/* v1.6.55 — App Tutor: tela Meus Agendamentos + ajuste agenda */
body.app-client.client-pwa-layout-v1655 .client-mobile-hero.client-area-hero.section-agenda {
  min-height: 184px !important;
  padding: 28px 20px 26px !important;
  align-items: center !important;
}
body.app-client.client-pwa-layout-v1655 .client-mobile-hero.client-area-hero.section-agendamentos {
  min-height: 164px !important;
  padding: 24px 20px !important;
}
body.app-client.client-pwa-layout-v1655 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy,
body.app-client.client-pwa-layout-v1655 .client-mobile-hero.client-area-hero.section-agendamentos .client-area-hero-copy {
  max-width: calc(100% - 72px) !important;
}
body.app-client.client-pwa-layout-v1655 .client-appointments-screen {
  padding-bottom: 18px !important;
}
body.app-client.client-pwa-layout-v1655 .client-appointment-tabs {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 8px !important;
  padding: 5px !important;
  border: 1px solid rgba(1, 173, 183, .12) !important;
  border-radius: 18px !important;
  background: rgba(1,173,183,.055) !important;
}
body.app-client.client-pwa-layout-v1655 .client-appointment-tabs a {
  display: grid !important;
  place-items: center !important;
  min-height: 42px !important;
  padding: 9px 12px !important;
  border-radius: 14px !important;
  text-decoration: none !important;
  color: #5b6b75 !important;
  font-weight: 950 !important;
  letter-spacing: -.01em !important;
}
body.app-client.client-pwa-layout-v1655 .client-appointment-tabs a.is-active {
  color: #fff !important;
  background: linear-gradient(135deg, #01ADB7, #008995) !important;
  box-shadow: 0 12px 24px rgba(1,173,183,.18) !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-list {
  display: grid !important;
  gap: 12px !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-card {
  display: grid !important;
  grid-template-columns: 74px minmax(0, 1fr) !important;
  gap: 13px !important;
  align-items: stretch !important;
  padding: 13px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(15,23,42,.07) !important;
  background: rgba(255,255,255,.94) !important;
  box-shadow: 0 14px 32px rgba(15,23,42,.07) !important;
  overflow: hidden !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date {
  display: grid !important;
  place-items: center !important;
  align-content: center !important;
  min-height: 104px !important;
  border-radius: 20px !important;
  color: #fff !important;
  background: linear-gradient(160deg, #01ADB7, #008995) !important;
  box-shadow: 0 14px 28px rgba(1,173,183,.18) !important;
  text-align: center !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date small {
  max-width: 64px !important;
  color: rgba(255,255,255,.88) !important;
  font-size: .66rem !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date strong {
  display: block !important;
  margin: 2px 0 !important;
  color: #fff !important;
  font-size: 2rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  letter-spacing: -.07em !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date span {
  color: rgba(255,255,255,.9) !important;
  font-size: .72rem !important;
  font-weight: 950 !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info {
  min-width: 0 !important;
  display: grid !important;
  align-content: center !important;
  gap: 8px !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info h3 {
  margin: 0 !important;
  color: #17313F !important;
  font-size: 1.03rem !important;
  font-weight: 950 !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info p {
  margin: 0 !important;
  color: #5b6b75 !important;
  font-weight: 850 !important;
  line-height: 1.32 !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info .client-main-date {
  color: #018995 !important;
  font-weight: 950 !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info .client-card-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 7px !important;
}
body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-info .client-card-actions .btn {
  min-height: 34px !important;
  padding: 8px 10px !important;
  border-radius: 12px !important;
  font-size: .76rem !important;
}
body.app-client.client-pwa-layout-v1655 .client-agendamentos-new-cta {
  padding: 2px 4px 18px !important;
}
body.app-client.client-pwa-layout-v1655 .client-agendamentos-new-cta .btn {
  width: 100% !important;
  min-height: 52px !important;
  border-radius: 18px !important;
  font-size: .98rem !important;
}
body.app-client.client-pwa-layout-v1655 .client-shortcut[href="/app/agendamentos"] span,
body.app-client.client-pwa-layout-v1655 .client-bottom-nav a[data-nav-key="agendamentos"] span {
  filter: drop-shadow(0 10px 18px rgba(1,173,183,.20));
}
@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-card {
    grid-template-columns: 66px minmax(0, 1fr) !important;
    gap: 10px !important;
    padding: 11px !important;
  }
  body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date {
    min-height: 98px !important;
    border-radius: 18px !important;
  }
  body.app-client.client-pwa-layout-v1655 .client-tutor-appointment-date strong {
    font-size: 1.78rem !important;
  }
}

/* v1.6.56 — App Tutor: heros com subtítulo, sem botões/tutor e respiro inferior */
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero {
  padding-bottom: 10px !important;
  margin-bottom: 10px !important;
  overflow: hidden !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero .client-area-hero-actions,
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero .client-profile-pill,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-meupet-actions {
  display: none !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero .client-area-hero-copy,
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy,
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agendamentos .client-area-hero-copy {
  max-width: calc(100% - 74px) !important;
  min-width: 0 !important;
  padding-bottom: 0 !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero p:not(.eyebrow),
body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-hero-subtitle,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-meupet-copy > p:not(.eyebrow) {
  display: block !important;
  margin: 0 !important;
  padding-bottom: 0 !important;
  max-width: 100% !important;
  font-weight: 850 !important;
  line-height: 1.28 !important;
  overflow: visible !important;
}
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero p:not(.eyebrow) {
  color: #5b6b75 !important;
}
body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-hero-subtitle,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-meupet-copy > p:not(.eyebrow) {
  color: rgba(255,255,255,.94) !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero h1,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero h2 {
  margin-bottom: 7px !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agenda,
body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agendamentos {
  min-height: 176px !important;
  align-items: center !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-home,
body.app-client.client-pwa-layout-v1656 .client-meupet-hero {
  min-height: 218px !important;
}

body.app-client.client-pwa-layout-v1656 .client-scroll-content > .client-mobile-hero + .client-mobile-section,
body.app-client.client-pwa-layout-v1656 .client-scroll-content > .client-meupet-hero + .client-mobile-section,
body.app-client.client-pwa-layout-v1656 .client-scroll-content > .client-meupet-hero + .client-engagement-grid,
body.app-client.client-pwa-layout-v1656 .client-scroll-content > .client-mobile-hero + .client-appointments-screen {
  margin-top: 10px !important;
}

body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero .client-area-hero-art {
  right: 12px !important;
  bottom: 10px !important;
  opacity: .9 !important;
}

@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agenda,
  body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero.section-agendamentos {
    min-height: 182px !important;
  }
  body.app-client.client-pwa-layout-v1656 .client-meupet-hero {
    min-height: 224px !important;
  }
  body.app-client.client-pwa-layout-v1656 .client-mobile-hero.client-area-hero .client-area-hero-copy,
  body.app-client.client-pwa-layout-v1656 .client-meupet-hero .client-meupet-copy {
    max-width: calc(100% - 70px) !important;
  }
}

/* v1.6.57 — App Tutor: home reordenada, heros com subtítulo e perfil completo do pet */
body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero,
body.app-client.client-pwa-layout-v1657 .client-meupet-hero,
body.app-client.client-pwa-layout-v1657 .client-pet-detail-hero {
  padding-bottom: 10px !important;
  margin-bottom: 12px !important;
  overflow: visible !important;
}

body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero {
  min-height: 190px !important;
  padding: 24px 20px 18px !important;
  align-items: center !important;
}

body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero .client-area-hero-copy,
body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy,
body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero.section-agendamentos .client-area-hero-copy {
  max-width: calc(100% - 44px) !important;
  min-width: 0 !important;
  position: relative !important;
  z-index: 2 !important;
  padding-bottom: 10px !important;
}

body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero .client-hero-subtitle,
body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero p.client-hero-subtitle {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  margin: 6px 0 0 !important;
  padding-bottom: 10px !important;
  color: #5b6b75 !important;
  font-size: .92rem !important;
  font-weight: 850 !important;
  line-height: 1.34 !important;
  max-width: 100% !important;
  overflow: visible !important;
  -webkit-line-clamp: initial !important;
}

body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero .client-area-hero-art {
  right: 10px !important;
  bottom: 14px !important;
  transform: scale(.86) !important;
  opacity: .55 !important;
  z-index: 1 !important;
}

body.app-client.client-pwa-layout-v1657 .client-quick-access-section {
  margin-top: 0 !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-big-numbers {
  margin: 10px 0 12px !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-status-grid {
  margin: 0 0 12px !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-referral-cta {
  min-height: 118px !important;
  padding: 18px !important;
  align-items: center !important;
  gap: 14px !important;
  border-radius: 28px !important;
  background: linear-gradient(135deg, #01ADB7, #008995) !important;
  color: #fff !important;
  box-shadow: 0 18px 38px rgba(1, 173, 183, .20) !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-referral-cta strong,
body.app-client.client-pwa-layout-v1657 .client-home-referral-cta p {
  color: #fff !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-referral-cta p {
  display: block !important;
  margin: 6px 0 0 !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  opacity: .95 !important;
}

body.app-client.client-pwa-layout-v1657 .client-home-referral-cta .btn {
  background: #fff !important;
  color: #008995 !important;
  border-color: rgba(255,255,255,.5) !important;
  white-space: nowrap !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-card-editable .client-pet-avatar,
body.app-client.client-pwa-layout-v1657 .client-pet-detail-photo {
  border-radius: 999px !important;
  overflow: hidden !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-card-editable .client-pet-avatar img,
body.app-client.client-pwa-layout-v1657 .client-pet-detail-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 999px !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-detail-hero {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 86px minmax(0, 1fr) 42px !important;
  gap: 14px !important;
  align-items: center !important;
  padding: 18px 16px 10px !important;
  border-radius: 30px !important;
  background: linear-gradient(135deg, #01ADB7, #008995) !important;
  color: #fff !important;
  box-shadow: 0 18px 38px rgba(1, 173, 183, .20) !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-detail-photo {
  width: 82px !important;
  height: 82px !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.22) !important;
  border: 3px solid rgba(255,255,255,.65) !important;
  color: #fff !important;
  font-size: 1.5rem !important;
  font-weight: 950 !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-detail-copy .eyebrow,
body.app-client.client-pwa-layout-v1657 .client-pet-detail-copy h2,
body.app-client.client-pwa-layout-v1657 .client-pet-detail-copy p {
  color: #fff !important;
  margin: 0 !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-detail-copy h2 {
  font-size: 1.35rem !important;
  line-height: 1.05 !important;
  margin: 4px 0 7px !important;
  font-weight: 950 !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-detail-copy p:not(.eyebrow) {
  opacity: .92 !important;
  font-weight: 850 !important;
  line-height: 1.3 !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-edit-icon {
  width: 40px !important;
  height: 40px !important;
  display: grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.95) !important;
  color: #008995 !important;
  font-weight: 950 !important;
  box-shadow: 0 10px 24px rgba(15,23,42,.12) !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-list {
  display: grid !important;
  gap: 10px !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-card {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) 18px !important;
  gap: 12px !important;
  align-items: center !important;
  padding: 14px !important;
  border-radius: 22px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.07) !important;
  text-decoration: none !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.06) !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-card > span {
  width: 48px !important;
  height: 48px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 18px !important;
  background: rgba(1,173,183,.10) !important;
  font-size: 1.25rem !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-card strong {
  display: block !important;
  color: #17313F !important;
  font-weight: 950 !important;
  margin-bottom: 3px !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-card small {
  display: block !important;
  color: #5b6b75 !important;
  line-height: 1.28 !important;
  font-weight: 780 !important;
}

body.app-client.client-pwa-layout-v1657 .client-pet-feature-card i {
  color: #01ADB7 !important;
  font-size: 1.5rem !important;
  font-style: normal !important;
  font-weight: 950 !important;
}

body.app-client.client-pwa-layout-v1657 .client-back-link {
  display: inline-flex !important;
  width: fit-content !important;
  margin-bottom: 8px !important;
  color: #008995 !important;
  text-decoration: none !important;
  font-weight: 950 !important;
}

body.app-client.client-pwa-layout-v1657 .client-full-btn {
  width: 100% !important;
  margin-bottom: 12px !important;
}

body.app-client.client-pwa-layout-v1657 .client-document-link {
  display: inline-flex !important;
  width: fit-content !important;
  margin-top: 8px !important;
  padding: 8px 10px !important;
  border-radius: 12px !important;
  background: rgba(1,173,183,.08) !important;
  color: #008995 !important;
  font-weight: 900 !important;
  text-decoration: none !important;
}

body.app-client.client-pwa-layout-v1657 .client-document-preview {
  margin-top: 8px !important;
  padding: 10px 12px !important;
  border-radius: 14px !important;
  background: rgba(1,173,183,.07) !important;
  color: #5b6b75 !important;
  font-weight: 850 !important;
}

@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero {
    min-height: 198px !important;
    padding-bottom: 20px !important;
  }
  body.app-client.client-pwa-layout-v1657 .client-mobile-hero.client-area-hero .client-area-hero-copy {
    max-width: calc(100% - 28px) !important;
  }
  body.app-client.client-pwa-layout-v1657 .client-pet-detail-hero {
    grid-template-columns: 74px minmax(0, 1fr) 38px !important;
    gap: 11px !important;
  }
  body.app-client.client-pwa-layout-v1657 .client-pet-detail-photo {
    width: 72px !important;
    height: 72px !important;
  }
}

/* v1.6.58 — App Tutor: heros com respiro real, home com hero primeiro e loading mais rápido */
body.app-client.client-pwa-layout-v1658 .client-scroll-content {
  scrollbar-width: none !important;
}
body.app-client.client-pwa-layout-v1658 .client-scroll-content::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero,
body.app-client.client-pwa-layout-v1658 .client-meupet-hero,
body.app-client.client-pwa-layout-v1658 .client-pet-detail-hero {
  margin-bottom: 14px !important;
  padding-bottom: 26px !important;
  overflow: hidden !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero {
  min-height: 218px !important;
  padding: 24px 20px 28px !important;
  align-items: center !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agenda,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agendamentos,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-pets {
  min-height: 226px !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero .client-area-hero-copy,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agendamentos .client-area-hero-copy,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-pets .client-area-hero-copy {
  max-width: 100% !important;
  width: 100% !important;
  padding-bottom: 10px !important;
  padding-right: 26px !important;
  position: relative !important;
  z-index: 2 !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero .client-hero-subtitle,
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero p.client-hero-subtitle {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 8px 0 0 !important;
  padding-bottom: 10px !important;
  color: #5b6b75 !important;
  font-size: .94rem !important;
  font-weight: 850 !important;
  line-height: 1.42 !important;
  max-width: min(340px, 100%) !important;
  min-height: 42px !important;
  overflow: visible !important;
  -webkit-line-clamp: initial !important;
  line-clamp: initial !important;
}
body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero .client-area-hero-art {
  top: 18px !important;
  right: 10px !important;
  bottom: auto !important;
  opacity: .14 !important;
  transform: scale(1.05) !important;
  z-index: 1 !important;
  pointer-events: none !important;
}
body.app-client.client-pwa-layout-v1658 .client-scroll-content > .client-mobile-hero + *,
body.app-client.client-pwa-layout-v1658 .client-scroll-content > .client-meupet-hero + * {
  margin-top: 0 !important;
}
body.app-client.client-pwa-layout-v1658 .client-meupet-hero {
  min-height: 204px !important;
  padding: 20px 18px 28px !important;
}
body.app-client.client-pwa-layout-v1658 .client-meupet-copy {
  padding-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1658 .client-meupet-copy .client-hero-subtitle,
body.app-client.client-pwa-layout-v1658 .client-meupet-copy > p:not(.eyebrow) {
  padding-bottom: 10px !important;
  margin-bottom: 0 !important;
  line-height: 1.42 !important;
  overflow: visible !important;
}
body.app-client.client-pwa-layout-v1658 .client-home-referral-cta {
  min-height: 142px !important;
  padding: 20px 18px 24px !important;
}
body.app-client.client-pwa-layout-v1658 .client-home-referral-cta p {
  padding-bottom: 10px !important;
  margin-bottom: 0 !important;
  max-width: 280px !important;
}
body.app-client.client-pwa-layout-v1658 .client-pet-detail-hero {
  padding-bottom: 24px !important;
}
@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero,
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agenda,
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-agendamentos,
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero.section-pets {
    min-height: 236px !important;
    padding: 22px 18px 30px !important;
  }
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero .client-area-hero-copy {
    padding-right: 12px !important;
  }
  body.app-client.client-pwa-layout-v1658 .client-mobile-hero.client-area-hero .client-hero-subtitle {
    max-width: 100% !important;
    min-height: 52px !important;
  }
  body.app-client.client-pwa-layout-v1658 .client-meupet-hero {
    min-height: 216px !important;
    padding-bottom: 30px !important;
  }
}

/* v1.6.59 — App Tutor: logout no header e ajuste final de respiros dos heros */
body.app-client.client-pwa-layout-v1659 .client-mobile-topbar.client-fixed-topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}
body.app-client.client-pwa-layout-v1659 .client-top-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex: 0 0 auto !important;
}
body.app-client.client-pwa-layout-v1659 .client-icon-btn.client-logout-btn {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(249, 161, 151, .28) !important;
  background: linear-gradient(135deg, #fff, #fff7f5) !important;
  color: #C45A50 !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .08) !important;
  font-size: 1.05rem !important;
  line-height: 1 !important;
}
body.app-client.client-pwa-layout-v1659 .client-icon-btn.client-logout-btn:active {
  transform: translateY(1px) scale(.98) !important;
}
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agenda,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agendamentos,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-pets {
  min-height: 238px !important;
  padding-bottom: 32px !important;
  overflow: visible !important;
}
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agenda .client-area-hero-copy,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agendamentos .client-area-hero-copy,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-pets .client-area-hero-copy {
  padding-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agenda .client-hero-subtitle,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agenda p.client-hero-subtitle,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agendamentos .client-hero-subtitle,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agendamentos p.client-hero-subtitle,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-pets .client-hero-subtitle,
body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-pets p.client-hero-subtitle {
  margin: 8px 0 10px !important;
  padding-bottom: 10px !important;
  min-height: 52px !important;
}
body.app-client.client-pwa-layout-v1659 .client-home-referral-cta p {
  margin: 6px 0 10px !important;
  padding-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-hero {
  min-height: 178px !important;
  padding: 22px 18px 26px !important;
  margin-bottom: 16px !important;
  overflow: visible !important;
  align-items: center !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-copy {
  min-width: 0 !important;
  padding-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-copy h2 {
  margin-bottom: 8px !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-copy p:not(.eyebrow) {
  display: block !important;
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
  line-height: 1.42 !important;
  overflow: visible !important;
  max-width: 100% !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-photo {
  width: 88px !important;
  height: 88px !important;
}
body.app-client.client-pwa-layout-v1659 .client-pet-detail-menu {
  margin-top: 4px !important;
}
@media (max-width: 390px) {
  body.app-client.client-pwa-layout-v1659 .client-mobile-brand img {
    width: 118px !important;
    max-width: 36vw !important;
  }
  body.app-client.client-pwa-layout-v1659 .client-top-actions {
    gap: 6px !important;
  }
  body.app-client.client-pwa-layout-v1659 .client-notification-btn,
  body.app-client.client-pwa-layout-v1659 .client-icon-btn.client-logout-btn {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    border-radius: 16px !important;
  }
  body.app-client.client-pwa-layout-v1659 .client-pet-detail-hero {
    grid-template-columns: 76px minmax(0, 1fr) 38px !important;
    min-height: 188px !important;
    padding: 20px 16px 28px !important;
  }
  body.app-client.client-pwa-layout-v1659 .client-pet-detail-photo {
    width: 74px !important;
    height: 74px !important;
  }
  body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agenda,
  body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-agendamentos,
  body.app-client.client-pwa-layout-v1659 .client-mobile-hero.client-area-hero.section-pets {
    min-height: 248px !important;
    padding-bottom: 34px !important;
  }
}

/* v1.6.60 — Tele Consultas separada do Saúde 360 no PWA do tutor */
body.app-client.client-pwa-layout-v1660 .client-mobile-hero.client-area-hero.section-teleconsultas {
  min-height: 178px;
  padding-bottom: calc(28px + env(safe-area-inset-bottom));
}
body.app-client.client-pwa-layout-v1660 .client-mobile-hero.client-area-hero.section-teleconsultas .client-hero-subtitle {
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
}
body.app-client.client-pwa-layout-v1660 .client-teleconsultas-screen {
  display: grid;
  gap: 16px;
}
body.app-client.client-pwa-layout-v1660 .client-tele-pet-form {
  display: grid;
  gap: 16px;
}
body.app-client.client-pwa-layout-v1660 .client-teleconsultas-flow {
  display: grid;
  gap: 16px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-list,
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-detail-screen {
  display: grid;
  gap: 16px;
  padding-left: 0;
  padding-right: 0;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-grid {
  display: grid;
  gap: 12px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card {
  border-radius: 24px;
  box-shadow: 0 16px 38px rgba(13, 41, 53, .11);
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(1, 173, 183, .16), rgba(249, 161, 151, .18));
  border: 1px solid rgba(255, 255, 255, .82);
  box-shadow: 0 18px 45px rgba(14, 54, 65, .12);
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero h2,
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero p,
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero small {
  margin: 0;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero h2 {
  color: #18303b;
  font-size: 1.22rem;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero p:not(.eyebrow),
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero small {
  color: rgba(24, 48, 59, .72);
  font-weight: 800;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card {
  appearance: none;
  border: 1px solid rgba(1, 173, 183, .18);
  border-radius: 22px;
  background: rgba(255, 255, 255, .95);
  box-shadow: 0 12px 28px rgba(15, 50, 60, .08);
  padding: 14px 12px;
  display: grid;
  gap: 2px;
  text-align: center;
  color: #18303b;
  cursor: pointer;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card small {
  text-transform: uppercase;
  font-size: .68rem;
  letter-spacing: .08em;
  color: #01ADB7;
  font-weight: 900;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card strong {
  font-size: 1.55rem;
  line-height: 1;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card span,
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card b,
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card em {
  font-style: normal;
  font-weight: 900;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card em {
  margin-top: 5px;
  color: #F28F86;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card.selected {
  background: linear-gradient(135deg, #01ADB7, #F9A197);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 18px 42px rgba(1, 173, 183, .26);
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card.selected small,
body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-card.selected em {
  color: #fff;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-booking-form {
  gap: 14px;
}
body.app-client.client-pwa-layout-v1660 .client-health-actions {
  grid-template-columns: 1fr;
}
@media (max-width: 380px) {
  body.app-client.client-pwa-layout-v1660 .teleconsultas-slot-grid {
    grid-template-columns: 1fr;
  }
  body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-hero {
    grid-template-columns: 1fr;
    text-align: center;
  }
}


/* v1.6.61 — Tele Consultas UX + timestamp fix visual */
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-list {
  padding: 4px 0 0;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-list .client-section-title {
  margin-bottom: 10px;
  padding: 0 4px 4px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card {
  padding: 18px !important;
  gap: 14px !important;
  align-items: center;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card .health360-vet-info {
  min-width: 0;
  padding-right: 4px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card .health360-vet-info h3,
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card .health360-vet-info p,
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card .health360-vet-info small {
  overflow-wrap: anywhere;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-vet-card .health360-vet-actions {
  grid-template-columns: 1fr;
  margin-top: 2px;
}
body.app-client.client-pwa-layout-v1660 .client-back-link,
body.app-client .client-back-link {
  appearance: none;
  width: fit-content;
  border: 1px solid rgba(1, 173, 183, .22);
  background: rgba(255, 255, 255, .92);
  color: #18303b;
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 900;
  font-size: .9rem;
  letter-spacing: -.01em;
  box-shadow: 0 10px 26px rgba(15, 50, 60, .08);
  cursor: pointer;
}
body.app-client.client-pwa-layout-v1660 .client-back-link:active,
body.app-client .client-back-link:active {
  transform: translateY(1px);
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-booking-form .client-payment-method-list label {
  border-radius: 22px;
  padding: 14px 14px;
}
body.app-client.client-pwa-layout-v1660 .teleconsultas-booking-form .client-payment-method-list input:checked + span {
  color: #18303b;
}


/* v1.6.62 — Tele Consultas padding, botões e CTA */
body.app-client .teleconsultas-vet-list {
  padding: 15px !important;
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-vet-list .client-section-title {
  padding: 0 0 6px !important;
}
body.app-client .teleconsultas-vet-card {
  padding: 15px !important;
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-vet-card .health360-vet-actions {
  width: 100% !important;
}
body.app-client .teleconsultas-vet-card .health360-vet-actions .btn {
  width: 100% !important;
  min-height: 52px !important;
  padding: 15px 18px !important;
  border-radius: 18px !important;
  justify-content: center !important;
}
body.app-client .teleconsultas-slot-section {
  display: grid;
  gap: 12px;
  padding: 15px !important;
  border-radius: 26px;
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(1, 173, 183, .14);
  box-shadow: 0 14px 34px rgba(15, 50, 60, .08);
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-slot-section .client-section-title {
  margin: 0 0 4px !important;
  padding: 0 !important;
}
body.app-client .client-home-referral-cta p,
body.app-client .client-home-referral-cta div p {
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
}
body.app-client .client-home-referral-cta {
  padding-bottom: 18px !important;
}


/* v1.6.63 — Tele Consultas: espaçamento fino nos cards do fluxo */
body.app-client .teleconsultas-detail-actions {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0 0 2px !important;
  margin: 0 0 2px !important;
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-detail-actions .client-back-link {
  margin: 0 !important;
}
body.app-client .teleconsultas-vet-detail-screen {
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.app-client .teleconsultas-vet-hero {
  padding: 15px !important;
  box-sizing: border-box !important;
  border-radius: 26px !important;
  overflow: hidden !important;
}
body.app-client .teleconsultas-vet-hero > div {
  min-width: 0 !important;
  padding-bottom: 4px !important;
}
body.app-client .teleconsultas-vet-hero h2,
body.app-client .teleconsultas-vet-hero p,
body.app-client .teleconsultas-vet-hero small {
  overflow-wrap: anywhere !important;
}
body.app-client .teleconsultas-price-alert,
body.app-client .teleconsultas-vet-detail-screen > .client-alert-soft {
  padding: 15px !important;
  box-sizing: border-box !important;
  border-radius: 22px !important;
  line-height: 1.45 !important;
  overflow-wrap: anywhere !important;
}
body.app-client .teleconsultas-slot-section {
  padding: 15px !important;
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-slot-section .client-section-title,
body.app-client .teleconsultas-slot-section .client-section-title.compact {
  padding: 0 0 6px !important;
  margin-bottom: 8px !important;
}
body.app-client .teleconsultas-slot-section .client-section-title p,
body.app-client .teleconsultas-slot-section .client-section-title.compact p {
  margin-bottom: 0 !important;
  padding-bottom: 4px !important;
}
body.app-client .teleconsultas-booking-form {
  padding: 15px !important;
  box-sizing: border-box !important;
  border-radius: 26px !important;
  gap: 14px !important;
}
body.app-client .teleconsultas-booking-form .client-form-field,
body.app-client .teleconsultas-booking-form label,
body.app-client .teleconsultas-booking-form .client-payment-method-list {
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-booking-form .client-alert-soft {
  padding: 15px !important;
  box-sizing: border-box !important;
}
body.app-client .client-home-referral-cta,
body.app-client.client-pwa-layout-v1652 .client-home-referral-cta,
body.app-client.client-pwa-layout-v1657 .client-home-referral-cta {
  padding-bottom: 22px !important;
}
body.app-client .client-home-referral-cta > div {
  padding-bottom: 10px !important;
  box-sizing: border-box !important;
}
body.app-client .client-home-referral-cta p,
body.app-client .client-home-referral-cta div p {
  margin-bottom: 10px !important;
  padding-bottom: 10px !important;
}

/* v1.6.64 — Tele Consultas: detalhe sem container principal */
body.app-client .client-teleconsultas-flow {
  display: grid !important;
  gap: 16px !important;
  align-items: stretch !important;
}
body.app-client .teleconsultas-flow-card {
  width: 100% !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}
body.app-client .teleconsultas-detail-actions {
  width: 100% !important;
  margin: 0 0 2px !important;
  padding: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
}
body.app-client .teleconsultas-detail-actions .client-back-link {
  width: auto !important;
  min-height: 44px !important;
  padding: 12px 16px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(1, 173, 183, .22) !important;
  background: rgba(255,255,255,.92) !important;
  color: #18303b !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 24px rgba(15, 50, 60, .08) !important;
}
body.app-client .teleconsultas-vet-hero.teleconsultas-flow-card,
body.app-client .teleconsultas-price-alert.teleconsultas-flow-card,
body.app-client .teleconsultas-slot-section.teleconsultas-flow-card,
body.app-client .teleconsultas-booking-form.teleconsultas-flow-card {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
body.app-client .teleconsultas-vet-hero.teleconsultas-flow-card {
  padding: 15px !important;
}
body.app-client .teleconsultas-price-alert.teleconsultas-flow-card {
  padding: 15px !important;
}
body.app-client .teleconsultas-slot-section.teleconsultas-flow-card {
  padding: 15px !important;
}
body.app-client .teleconsultas-booking-form.teleconsultas-flow-card {
  padding: 15px !important;
}

/* v1.6.65 — App do Tutor: modais centralizados verticalmente em todas as telas */
body.app-client .client-modal-backdrop,
body.app-client .client-analysis-backdrop {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: clamp(14px, 4vh, 28px) 16px !important;
}

body.app-client .client-modal-card {
  width: min(520px, calc(100vw - 32px)) !important;
  max-height: min(88dvh, 760px) !important;
  margin: auto !important;
  border-radius: 30px !important;
  display: flex !important;
  flex-direction: column !important;
}

body.app-client .client-modal-card header,
body.app-client .client-modal-card footer {
  flex: 0 0 auto !important;
}

body.app-client .client-modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
}

body.app-client .client-analysis-modal {
  width: min(430px, calc(100vw - 32px)) !important;
  min-height: auto !important;
  padding: 28px 22px !important;
  text-align: center !important;
}

body.app-client .client-install-backdrop,
body.app-client .page-loading-modal {
  place-items: center !important;
  align-items: center !important;
  justify-content: center !important;
}

@media (max-width: 520px) {
  body.app-client .client-modal-backdrop,
  body.app-client .client-analysis-backdrop {
    align-items: center !important;
    padding: 14px !important;
  }

  body.app-client .client-modal-card {
    width: calc(100vw - 28px) !important;
    max-height: calc(100dvh - 28px) !important;
    border-radius: 26px !important;
  }
}

/* v1.6.66 — App do Tutor: pet picker unificado e central de notificações */
body.app-client.client-pwa-layout-v1666 .client-notification-btn {
  position: relative !important;
  overflow: visible !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-badge {
  position: absolute !important;
  top: -7px !important;
  right: -7px !important;
  min-width: 20px !important;
  height: 20px !important;
  padding: 0 5px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg, #ff6f61, #f43f5e) !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  border: 2px solid #fff !important;
  box-shadow: 0 8px 18px rgba(244, 63, 94, .28) !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-badge[hidden] {
  display: none !important;
}

body.app-client.client-pwa-layout-v1666 .client-pet-picker-field {
  display: grid !important;
  gap: 10px !important;
}

body.app-client.client-pwa-layout-v1666 .client-pet-picker-field > span {
  font-weight: 950 !important;
  color: #1f3d44 !important;
  font-size: .9rem !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-picker {
  width: 100% !important;
  min-width: 0 !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-row {
  display: grid !important;
  grid-auto-flow: column !important;
  grid-auto-columns: minmax(112px, 132px) !important;
  gap: 10px !important;
  overflow-x: auto !important;
  padding: 2px 0 8px !important;
  scrollbar-width: none !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-row::-webkit-scrollbar {
  display: none !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-option {
  min-height: 138px !important;
  padding: 12px 10px !important;
  border-radius: 24px !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-photo {
  width: 58px !important;
  height: 58px !important;
  border-radius: 999px !important;
  overflow: hidden !important;
}

body.app-client.client-pwa-layout-v1666 .client-appointment-pet-photo img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 999px !important;
}

body.app-client.client-pwa-layout-v1666 .client-notifications-screen {
  padding-bottom: 24px !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-date-group {
  display: grid !important;
  gap: 10px !important;
  margin-top: 12px !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-date-group > h3 {
  margin: 4px 2px 0 !important;
  color: #0f5963 !important;
  font-size: .82rem !important;
  font-weight: 950 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card {
  display: grid !important;
  grid-template-columns: 48px 1fr !important;
  gap: 12px !important;
  align-items: start !important;
  border-radius: 24px !important;
  padding: 15px !important;
  background: linear-gradient(135deg, #ffffff, rgba(0, 169, 183, .07)) !important;
  border: 1px solid rgba(0, 129, 145, .12) !important;
  box-shadow: 0 12px 28px rgba(15, 50, 60, .08) !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card-icon {
  width: 48px !important;
  height: 48px !important;
  border-radius: 18px !important;
  display: grid !important;
  place-items: center !important;
  background: linear-gradient(135deg, rgba(248, 161, 152, .22), rgba(0, 169, 183, .16)) !important;
  font-size: 1.25rem !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card-body {
  min-width: 0 !important;
  display: grid !important;
  gap: 6px !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card-body h3 {
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1.18 !important;
  color: #16343b !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card-body p {
  margin: 0 !important;
  color: #51616b !important;
  line-height: 1.35 !important;
}

body.app-client.client-pwa-layout-v1666 .client-notification-card-body small {
  color: #7b8a94 !important;
  font-weight: 800 !important;
}

body.app-client.client-pwa-layout-v1666 .client-notifications-sentinel {
  min-height: 48px !important;
  display: grid !important;
  place-items: center !important;
  color: #6b7b86 !important;
  font-weight: 850 !important;
  font-size: .82rem !important;
}

/* v1.6.67 — Teleconsultas listagem + Momentos upload */
body.app-client .client-teleconsultas-list-section {
  margin-top: 14px;
}
body.app-client .client-teleconsultation-card {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 12px;
  align-items: stretch;
  padding: 14px;
}
body.app-client .client-teleconsultation-card .client-appointment-date {
  min-height: 92px;
  border-radius: 22px;
  background: linear-gradient(160deg, rgba(1,173,183,.16), rgba(249,161,151,.16));
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #12313a;
}
body.app-client .client-teleconsultation-card .client-appointment-date small,
body.app-client .client-teleconsultation-card .client-appointment-date span {
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
  opacity: .75;
}
body.app-client .client-teleconsultation-card .client-appointment-date strong {
  font-size: 1.85rem;
  line-height: 1;
  font-weight: 1000;
}
body.app-client .client-teleconsultation-card .client-appointment-info {
  min-width: 0;
}
body.app-client .client-teleconsultation-card .client-card-actions {
  margin-top: 10px;
  gap: 8px;
  flex-wrap: wrap;
}
body.app-client .client-badge.muted {
  background: rgba(15,23,42,.07);
  color: rgba(15,23,42,.58);
  border: 1px solid rgba(15,23,42,.08);
}
body.app-client .client-moment-floating-upload {
  position: fixed;
  right: 18px;
  bottom: calc(var(--client-footer-height, 86px) + 8px);
  z-index: 120;
}
body.app-client .client-moment-camera-btn {
  width: 64px;
  height: 64px;
  border: 0;
  border-radius: 999px;
  display: grid;
  place-items: center;
  cursor: pointer;
  font-size: 1.7rem;
  color: #fff;
  background: linear-gradient(135deg, #01ADB7, #F9A197);
  box-shadow: 0 18px 35px rgba(1,173,183,.28), 0 10px 20px rgba(249,161,151,.18);
}
body.app-client .client-moment-camera-btn:disabled {
  opacity: .48;
  cursor: not-allowed;
  filter: grayscale(.2);
}
body.app-client .client-moment-camera-btn:active {
  transform: translateY(1px) scale(.98);
}
@media (max-width: 380px) {
  body.app-client .client-teleconsultation-card {
    grid-template-columns: 68px 1fr;
    padding: 12px;
  }
  body.app-client .client-moment-camera-btn {
    width: 58px;
    height: 58px;
  }
}

/* v1.6.68 — Admin mobile premium header, menu overlay e PWA install */
.admin-install-backdrop {
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(7, 27, 44, .56);
  backdrop-filter: blur(10px);
}
.admin-install-modal {
  position: relative;
  width: min(430px, calc(100vw - 32px));
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 30px;
  padding: 28px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(246,252,255,.94));
  box-shadow: 0 38px 110px rgba(7,27,44,.28);
  text-align: left;
  overflow: hidden;
}
.admin-install-modal::before {
  content: '';
  position: absolute;
  width: 180px;
  height: 180px;
  right: -54px;
  top: -54px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(1,173,183,.22), transparent 68%);
}
.admin-install-logo {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, rgba(1,173,183,.12), rgba(248,161,152,.18));
  border: 1px solid rgba(13,57,94,.08);
  box-shadow: 0 14px 36px rgba(7,27,44,.10);
  margin-bottom: 14px;
  position: relative;
  z-index: 1;
}
.admin-install-logo img { width: 48px; height: 48px; object-fit: contain; }
.admin-install-modal h2 { margin: 4px 0 10px; color: var(--pf-blue-900); letter-spacing: -.04em; }
.admin-install-modal p { color: var(--pf-muted); line-height: 1.55; margin-bottom: 12px; }
.admin-install-tip {
  border: 1px solid rgba(1,173,183,.18);
  border-radius: 18px;
  padding: 12px;
  background: rgba(1,173,183,.08);
  color: var(--pf-blue-800);
  font-weight: 850;
  margin: 12px 0;
}
.admin-install-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.admin-install-actions .btn { flex: 1 1 160px; }
.admin-install-close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 14px;
  background: rgba(13,57,94,.08);
  color: var(--pf-blue-900);
  font-size: 1.4rem;
  font-weight: 950;
  cursor: pointer;
}

@media (max-width: 860px) {
  .mobile-topbar {
    position: sticky !important;
    top: 0;
    z-index: 2147483600 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    min-height: 70px;
    padding: 10px 12px;
    background: rgba(255,255,255,.94);
    border-bottom: 1px solid rgba(13,57,94,.08);
    box-shadow: 0 14px 38px rgba(7,27,44,.08);
  }
  .mobile-brand-icon-wrap {
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    padding: 0;
    border-radius: 18px;
    background: #fff;
  }
  .mobile-brand-wrap::before { display: none; }
  .mobile-logo.mobile-logo-icon {
    width: 40px !important;
    height: 40px;
    object-fit: contain;
  }
  .mobile-topbar-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
  }
  .mobile-topbar-actions .icon-btn,
  .mobile-menu-btn-premium {
    width: 48px;
    height: 48px;
    border-radius: 18px;
    border: 1px solid rgba(13,57,94,.10);
    background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(247,251,255,.92));
    box-shadow: 0 10px 26px rgba(7,27,44,.09);
  }
  .mobile-notification-btn,
  .mobile-profile-btn {
    position: relative;
    font-size: 1.08rem;
  }
  .mobile-menu-btn-premium {
    gap: 5px;
    background: linear-gradient(135deg, rgba(1,173,183,.12), rgba(248,161,152,.18));
  }
  .mobile-menu-btn-premium span {
    width: 22px;
    height: 3px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--pf-blue-900), var(--pf-cyan));
    box-shadow: 0 1px 0 rgba(255,255,255,.8);
  }
  .mobile-menu-btn-premium span:nth-child(2) { width: 16px; justify-self: end; }
  .mobile-menu-backdrop {
    z-index: 2147483500 !important;
    background: rgba(4,16,31,.58) !important;
    backdrop-filter: blur(6px);
  }
  .sidebar {
    z-index: 2147483601 !important;
    width: min(88vw, 360px) !important;
    border-radius: 0 32px 32px 0 !important;
    box-shadow: 28px 0 90px rgba(7,27,44,.34) !important;
  }
  .sidebar.mobile-open {
    z-index: 2147483601 !important;
  }
  body.menu-open { overflow: hidden; }
  .mobile-close-btn {
    background: rgba(255,255,255,.92) !important;
    border-radius: 16px !important;
  }
  .topbar-actions {
    display: none !important;
  }
  .topbar {
    gap: 10px;
    margin-bottom: 18px;
  }
  .profile-menu {
    position: fixed !important;
    right: 12px !important;
    left: auto !important;
    top: 76px !important;
    z-index: 2147483647 !important;
  }
  .notification-menu.mobile-panel-open {
    position: fixed !important;
    top: 76px !important;
    right: 12px !important;
    left: 12px !important;
    width: auto !important;
    max-width: none !important;
    z-index: 2147483647 !important;
  }
}

@media (max-width: 860px) {
  .topbar-actions {
    display: block !important;
    position: absolute !important;
    top: 0;
    right: 0;
    width: 0 !important;
    height: 0 !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  .topbar-actions > .notifications-wrap > .notification-btn,
  .topbar-actions > .profile-wrap > .profile-btn {
    display: none !important;
  }
  .topbar-actions .notifications-wrap,
  .topbar-actions .profile-wrap {
    position: static !important;
  }
}

/* v1.6.69 — Agenda: filtros rápidos integrados ao header do calendário */
.agenda-hidden-filters {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.agenda-primary-actions {
  margin: 0 0 4px !important;
  justify-content: flex-start !important;
}
.agenda-calendar-toolbar {
  gap: 14px !important;
  align-items: center !important;
}
.agenda-calendar-left {
  flex: 1 1 620px !important;
  min-width: min(100%, 620px) !important;
  gap: 10px !important;
}
.agenda-nav-btn,
.agenda-calendar-icon-btn {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  border-radius: 15px !important;
  font-size: 1.05rem !important;
  line-height: 1 !important;
}
.agenda-calendar-icon-btn {
  border: 1px solid rgba(38,48,95,.10) !important;
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(246,251,255,.96)) !important;
  color: var(--pf-graphite) !important;
  box-shadow: 0 10px 24px rgba(7,27,44,.08) !important;
  cursor: pointer !important;
}
.agenda-calendar-icon-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 32px rgba(7,27,44,.12) !important;
}
.agenda-date-inline {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
}
.agenda-date-native {
  position: absolute !important;
  inset: 0 !important;
  width: 42px !important;
  height: 42px !important;
  opacity: 0 !important;
  border: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
}
.agenda-today-btn {
  min-height: 42px !important;
  border-radius: 999px !important;
  padding-inline: 18px !important;
  white-space: nowrap !important;
}
.agenda-quick-search-inline {
  flex: 1 1 220px !important;
  min-width: 180px !important;
  max-width: 340px !important;
  min-height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(38,48,95,.10) !important;
  box-shadow: 0 12px 28px rgba(7,27,44,.08) !important;
}
.agenda-quick-search-inline span {
  flex: 0 0 auto !important;
  opacity: .72 !important;
}
.agenda-quick-search-inline .input {
  flex: 1 1 auto !important;
  min-height: 38px !important;
  height: 38px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  font-weight: 850 !important;
}
.agenda-calendar-toolbar .agenda-view-tabs {
  flex: 0 0 auto !important;
  margin-left: auto !important;
}
@media (max-width: 980px) {
  .agenda-calendar-left {
    flex: 1 1 100% !important;
    min-width: 100% !important;
  }
  .agenda-calendar-toolbar .agenda-view-tabs {
    width: 100% !important;
    margin-left: 0 !important;
  }
  .agenda-calendar-toolbar .agenda-view-tabs button {
    flex: 1 1 0 !important;
  }
}
@media (max-width: 640px) {
  .agenda-calendar-left {
    display: grid !important;
    grid-template-columns: 42px minmax(0,1fr) 42px 42px 76px !important;
    gap: 8px !important;
  }
  .agenda-calendar-left .calendar-title {
    text-align: center !important;
    min-width: 0 !important;
    font-size: 1rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .agenda-quick-search-inline {
    grid-column: 1 / -1 !important;
    max-width: none !important;
    width: 100% !important;
  }
  .agenda-today-btn {
    padding-inline: 10px !important;
    min-width: 76px !important;
  }
  .agenda-primary-actions .actions {
    width: 100% !important;
  }
  .agenda-primary-actions .btn {
    flex: 1 1 auto !important;
    justify-content: center !important;
  }
}

/* v1.6.70 — Dashboard IA específica + agenda sem calendário/status */
.agenda-day-heading { align-items: center; gap: 14px; }
.agenda-day-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; flex-wrap:wrap; }
.segmented-control { display:inline-flex; align-items:center; gap:4px; padding:5px; border-radius:999px; background:rgba(15,23,42,.055); border:1px solid rgba(15,23,42,.075); }
.segmented-control button { border:0; cursor:pointer; border-radius:999px; padding:9px 14px; background:transparent; color:#64748b; font-weight:950; letter-spacing:-.01em; }
.segmented-control button.active { background:#17313F; color:#fff; box-shadow:0 10px 22px rgba(23,49,63,.16); }
.dashboard-agenda-cards { margin-top: 12px; }
.dashboard-agenda-card-grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap:14px; }
.dashboard-upcoming-panel .panel-heading { align-items:center; }
.ai-task-action { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:6px; }
.ai-task-action small { color:#0f766e; font-weight:900; background:rgba(1,173,183,.10); border:1px solid rgba(1,173,183,.16); padding:6px 9px; border-radius:999px; }
.ai-task-whatsapp { display:inline-flex; align-items:center; justify-content:center; min-height:40px; padding:0 13px; border-radius:14px; background:#25D366; color:#053b1b; text-decoration:none; font-weight:1000; box-shadow:0 12px 26px rgba(37,211,102,.18); }
.ai-task-whatsapp:hover { transform:translateY(-1px); filter:saturate(1.06); }
@media (max-width: 760px) {
  .agenda-day-heading { display:grid; }
  .agenda-day-actions { justify-content:flex-start; }
  .segmented-control { width:100%; justify-content:space-between; }
  .segmented-control button { flex:1; }
  .ai-task-action { display:grid; }
  .ai-task-whatsapp { width:100%; }
}

/* v1.6.71 — Tutores/Pets: busca, visão cards/lista e menus de ações */
.admin-view-toggle { display:inline-flex; align-items:center; gap:8px; padding:4px; border-radius:999px; background:rgba(13,57,94,.06); border:1px solid rgba(13,57,94,.10); }
.admin-view-toggle .btn { min-height:34px; padding:8px 13px; border-radius:999px; box-shadow:none; }
.admin-view-toggle .btn.is-active { background:linear-gradient(135deg,var(--pf-turquoise),#00c4cf); color:#fff; border-color:transparent; box-shadow:0 10px 24px rgba(1,173,183,.22); }
.admin-list-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-top:14px; }
.admin-list-cards[hidden], .is-hidden { display:none !important; }
.admin-entity-card { position:relative; display:grid; gap:14px; padding:16px; border-radius:24px; background:rgba(255,255,255,.92); border:1px solid rgba(13,57,94,.10); box-shadow:0 20px 50px rgba(7,27,44,.08); overflow:visible; }
.admin-entity-card-header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.admin-entity-card-title { display:flex; align-items:center; gap:12px; min-width:0; }
.admin-entity-card-title strong { display:block; color:var(--pf-graphite); font-weight:950; line-height:1.1; }
.admin-entity-card-title small { display:block; color:var(--pf-muted); margin-top:4px; line-height:1.3; }
.admin-entity-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.admin-entity-grid span, .admin-entity-full { padding:10px 12px; border-radius:16px; background:rgba(1,173,183,.06); border:1px solid rgba(1,173,183,.12); color:var(--pf-blue-900); font-size:12px; line-height:1.35; }
.admin-entity-grid b, .admin-entity-full b { display:block; color:var(--pf-graphite); font-size:13px; margin-bottom:3px; }
.admin-actions-menu-wrap, .pet-actions-menu-wrap { position:relative; display:inline-flex; justify-content:flex-end; }
.pet-row-menu { position:absolute; right:0; top:calc(100% + 8px); min-width:210px; padding:8px; border-radius:18px; background:rgba(255,255,255,.98); border:1px solid rgba(13,57,94,.12); box-shadow:0 24px 80px rgba(7,27,44,.18); display:none; z-index:99999; max-height:min(420px,calc(100vh - 96px)); overflow-y:auto; }
.pet-row-menu.open { display:grid; gap:4px; animation:pf-fade-up .16s var(--pf-ease) both; }
.pet-row-menu button { border:0; background:transparent; text-align:left; width:100%; padding:10px 11px; border-radius:12px; font-weight:850; color:var(--pf-blue-900); cursor:pointer; }
.pet-row-menu button:hover { background:var(--pf-menu-hover); }
.pet-row-menu button.danger { color:#be123c; }
.admin-search-input { position:relative; z-index:2; pointer-events:auto; }
.admin-moments-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }
.admin-moment-card { border-radius:20px; overflow:hidden; border:1px solid rgba(13,57,94,.10); background:#fff; box-shadow:0 14px 35px rgba(7,27,44,.08); }
.admin-moment-card img, .admin-moment-card video { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; background:#edf7f8; }
.admin-moment-card-body { padding:12px; display:grid; gap:8px; }
.admin-moment-card-body strong { color:var(--pf-graphite); font-size:13px; }
.admin-moment-card-body small { color:var(--pf-muted); line-height:1.35; }
@media (max-width:720px) {
  .admin-entity-grid { grid-template-columns:1fr; }
  .admin-list-cards { grid-template-columns:1fr; }
  .admin-view-toggle { width:100%; justify-content:center; }
}

/* v1.6.72 — Admin: visão Lista/Cards alinhada, status CRM semáforo e refinamentos de Pacotes */
.admin-query-toolbar,
.tutors-list-card .tutors-query-header,
.pets-list-card .pets-filter-toolbar {
  display: flex !important;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
}
.admin-query-toolbar > div:first-child,
.tutors-list-card .tutors-query-header > div:first-child,
.pets-list-card .pets-filter-toolbar > div:first-child { min-width: 0; flex: 1 1 auto; }
.admin-view-toggle { margin-left: auto; flex: 0 0 auto; background: rgba(1,173,183,.12); border-color: rgba(1,173,183,.20); box-shadow: inset 0 1px 0 rgba(255,255,255,.66); }
.admin-view-toggle .btn { background: transparent; color: #0d395e; border: 1px solid transparent; font-weight: 1000; }
.admin-view-toggle .btn.is-active { background: #fff !important; color: #0d395e !important; border-color: rgba(1,173,183,.28) !important; box-shadow: 0 10px 24px rgba(7,27,44,.10) !important; }
.admin-card-actions-right { display: flex; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; flex-wrap: wrap; }
.full-row,
.pets-list-card .pets-filter-row,
.services-page .filters-below,
.packages-page .filters-below { flex: 1 0 100%; width: 100%; }
.tutors-list-card .tutors-query-header p { max-width: 760px; }
.status-pill.warning,
.status-pill.warning-pill { --status-color:#f59e0b; background: rgba(245,158,11,.15) !important; color:#92400e !important; border-color: rgba(245,158,11,.28) !important; }
.status-pill.danger,
.status-pill.danger-pill { --status-color:#ef4444; background: rgba(239,68,68,.13) !important; color:#991b1b !important; border-color: rgba(239,68,68,.24) !important; }
.status-pill.success { --status-color:#22c55e; background: rgba(34,197,94,.13) !important; color:#166534 !important; border-color: rgba(34,197,94,.24) !important; }
.crm-status-pill { margin-bottom: 5px; }
.crm-status-hint { display: block; margin-top: 4px; color: var(--pf-muted); font-weight: 850; line-height: 1.25; }
.premium-table td small { display: block; margin-top: 4px; line-height: 1.3; }
.packages-sales-action-wrap { margin-left: auto; }
.packages-page .toolbar-copy-line { align-items: flex-start; }
.packages-page .packages-consulta-actions { justify-content: flex-end; align-items: center; margin-top: 0; }
.packages-page .admin-view-toggle { margin-left: 0; }
.packages-page .status-pill + br + small,
.packages-page .admin-entity-grid .status-pill + br { margin-top: 5px; }
@media (max-width: 900px) {
  .admin-query-toolbar,
  .tutors-list-card .tutors-query-header,
  .pets-list-card .pets-filter-toolbar { display: grid !important; }
  .admin-view-toggle { width: 100%; justify-content: center; margin-left: 0; }
  .admin-card-actions-right { width: 100%; justify-content: stretch; }
  .admin-card-actions-right .btn { flex: 1 1 auto; }
}

/* v1.6.73 — menus de ações funcionais também na visão Cards */
.tutor-actions-menu-wrap.is-menu-open,
.pet-actions-menu-wrap.is-menu-open,
.service-actions-menu-wrap.is-menu-open,
.package-actions-menu-wrap.is-menu-open,
.row-menu-wrap.is-menu-open { z-index: 2147483647 !important; }
.service-actions-menu-wrap,
.package-actions-menu-wrap { position:relative; display:inline-flex; justify-content:flex-end; }
.service-row-menu,
.package-row-menu {
  position:absolute;
  right:0;
  top:calc(100% + 8px);
  min-width:210px;
  padding:8px;
  border-radius:18px;
  background:rgba(255,255,255,.98);
  border:1px solid rgba(13,57,94,.12);
  box-shadow:0 24px 80px rgba(7,27,44,.18);
  display:none;
  z-index:2147483647;
  max-height:min(420px,calc(100vh - 96px));
  overflow-y:auto;
}
.service-row-menu.open,
.package-row-menu.open { display:grid; gap:4px; animation:pf-fade-up .16s var(--pf-ease) both; }
.service-row-menu button,
.package-row-menu button {
  border:0;
  background:transparent;
  text-align:left;
  width:100%;
  padding:10px 11px;
  border-radius:12px;
  font-weight:850;
  color:var(--pf-blue-900);
  cursor:pointer;
}
.service-row-menu button:hover,
.package-row-menu button:hover { background:var(--pf-menu-hover); }
.service-row-menu button.danger,
.package-row-menu button.danger { color:#be123c; }
.dashboard-appointment-card { position:relative; padding-right:52px; }
.dashboard-card-kebab { position:absolute !important; top:14px; right:14px; z-index:30; pointer-events:auto !important; }


/* v1.6.75 — App Momentos: câmera realmente fixa no viewport */
body.app-client > .client-moment-floating-upload,
body.app-client .client-moment-floating-upload.is-fixed-to-viewport {
  position: fixed !important;
  right: max(18px, env(safe-area-inset-right, 0px)) !important;
  bottom: calc(104px + env(safe-area-inset-bottom, 0px)) !important;
  left: auto !important;
  top: auto !important;
  width: auto !important;
  height: auto !important;
  transform: none !important;
  z-index: 2147482500 !important;
  pointer-events: auto !important;
  margin: 0 !important;
}
body.app-client > .client-moment-floating-upload .client-moment-camera-btn,
body.app-client .client-moment-floating-upload.is-fixed-to-viewport .client-moment-camera-btn {
  position: relative !important;
  z-index: 1 !important;
  box-shadow: 0 22px 44px rgba(1,173,183,.34), 0 10px 22px rgba(249,161,151,.22), 0 0 0 7px rgba(255,255,255,.88) !important;
}
@media (max-width: 420px) {
  body.app-client > .client-moment-floating-upload,
  body.app-client .client-moment-floating-upload.is-fixed-to-viewport {
    right: max(14px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(98px + env(safe-area-inset-bottom, 0px)) !important;
  }
}

/* v1.6.76 — App agenda: transporte automático e endereço obrigatório */
body.app-client.client-pwa-layout-v1676 .client-transport-estimate {
  display: grid !important;
  grid-template-columns: 44px 1fr auto !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 15px !important;
  border-radius: 24px !important;
  background: linear-gradient(135deg, rgba(1, 173, 183, .12), rgba(248, 161, 152, .14)) !important;
  border: 1px solid rgba(1, 173, 183, .22) !important;
  box-shadow: 0 14px 32px rgba(31, 61, 68, .08) !important;
  margin: 2px 0 10px !important;
}

body.app-client.client-pwa-layout-v1676 .client-transport-estimate[hidden] {
  display: none !important;
}

body.app-client.client-pwa-layout-v1676 .client-transport-estimate-icon {
  width: 44px !important;
  height: 44px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fff !important;
  box-shadow: 0 10px 20px rgba(1, 173, 183, .14) !important;
  font-size: 1.35rem !important;
}

body.app-client.client-pwa-layout-v1676 .client-transport-estimate-body {
  min-width: 0 !important;
  display: grid !important;
  gap: 4px !important;
}

body.app-client.client-pwa-layout-v1676 .client-transport-estimate-body strong {
  color: #173b42 !important;
  font-weight: 950 !important;
}

body.app-client.client-pwa-layout-v1676 .client-transport-estimate-body p,
body.app-client.client-pwa-layout-v1676 .client-transport-estimate-body small {
  margin: 0 !important;
  color: rgba(31, 61, 68, .72) !important;
  line-height: 1.35 !important;
}

@media (max-width: 560px) {
  body.app-client.client-pwa-layout-v1676 .client-transport-estimate {
    grid-template-columns: 42px 1fr !important;
  }
  body.app-client.client-pwa-layout-v1676 .client-transport-estimate .btn {
    grid-column: 1 / -1 !important;
    width: 100% !important;
  }
}

/* v1.6.77 — Transporte Google Routes API */
body.app-client .client-transport-estimate .client-warning-text {
  display: block;
  margin: 4px 0 2px;
  color: #b45309;
  font-weight: 800;
}

/* v1.6.78 — Táxi Pet no card de transporte + CEP automático */
body.app-client .client-transport-toggle{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:#0f172a;
  margin-bottom:4px;
  cursor:pointer;
}
body.app-client .client-transport-toggle input{
  width:20px;
  height:20px;
  accent-color:#01ADB7;
}
body.app-client .client-transport-estimate{
  padding:16px!important;
  align-items:flex-start;
}
body.app-client .client-transport-estimate .btn{
  white-space:nowrap;
}
@media (max-width: 520px){
  body.app-client .client-transport-estimate .btn{
    width:100%;
    justify-content:center;
  }
}

/* v1.6.79 — App agenda extrato e confirmação WhatsApp */
.client-appointment-summary{
  border:1px solid rgba(1,173,183,.22);
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(1,173,183,.07));
  border-radius:22px;
  padding:16px;
  display:grid;
  gap:12px;
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}
.client-appointment-summary-head{display:flex;align-items:center;gap:12px;color:#0f172a}
.client-appointment-summary-head>span{width:42px;height:42px;border-radius:18px;display:grid;place-items:center;background:rgba(1,173,183,.12);font-size:22px;flex:0 0 auto}
.client-appointment-summary-head strong{display:block;font-size:15px;font-weight:950}
.client-appointment-summary-head small{display:block;color:#64748b;font-size:12px;margin-top:2px;line-height:1.35}
.client-appointment-summary-body{display:grid;gap:8px}
.client-appointment-summary-row,.client-appointment-summary-total{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-top:1px dashed rgba(15,23,42,.12);padding-top:9px;color:#334155;font-size:13px;line-height:1.35}
.client-appointment-summary-row strong,.client-appointment-summary-total strong{white-space:nowrap;color:#0f172a;font-size:14px}
.client-appointment-summary-row.taxi{color:#0f766e}
.client-appointment-summary-total{border-top:1px solid rgba(15,23,42,.14);font-weight:950;color:#0f172a;font-size:15px;margin-top:2px}
.client-appointment-summary-total strong{font-size:18px;color:#01ADB7}
.client-whatsapp-confirm-btn{background:linear-gradient(135deg,#22c55e,#16a34a)!important;color:#fff!important;border-color:transparent!important;margin-top:10px;margin-bottom:8px}
.admin-source-badge-app{display:inline-flex;align-items:center;gap:6px;border-radius:999px;background:linear-gradient(135deg,rgba(1,173,183,.15),rgba(249,161,151,.18));border:1px solid rgba(1,173,183,.22);color:#0f766e;font-weight:900;font-size:11px;padding:5px 8px;margin-top:6px;width:max-content}


/* v1.6.80 — Taxi Pet: resumo limpo e ações no rodapé do card */
body.app-client .client-transport-estimate{
  grid-template-columns:44px 1fr!important;
  align-items:flex-start!important;
}
body.app-client .client-transport-estimate-actions{
  grid-column:1 / -1;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding-top:10px;
  margin-top:2px;
  border-top:1px dashed rgba(15,23,42,.12);
  min-width:0;
}
body.app-client .client-transport-estimate-actions .btn{
  width:auto!important;
  white-space:nowrap;
  justify-content:center;
}
@media (max-width:520px){
  body.app-client .client-transport-estimate-actions{justify-content:stretch;}
  body.app-client .client-transport-estimate-actions .btn{flex:1 1 auto;}
}

/* v1.6.83 — Acessos do App: lista/cards, scroll infinito e modal premium */
body.app-access-page .app-access-list-card .table-scroll.no-inner-scroll,
body.app-access-page .app-access-table-wrap {
  max-height: none !important;
  overflow: visible !important;
}
body.app-access-page .app-access-toolbar {
  align-items: flex-start;
  gap: 16px;
}
body.app-access-page .app-access-toolbar .admin-view-toggle {
  margin-left: auto;
}
body.app-access-page .app-access-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
}
body.app-access-page .app-access-cards[hidden] {
  display: none !important;
}
body.app-access-page .app-access-card .actions {
  margin-top: 12px;
}
body.app-access-page .list-load-status,
body.app-access-page .infinite-loader {
  margin-top: 14px;
  text-align: center;
  color: var(--pf-muted);
  font-weight: 900;
}
.app-access-modal .app-access-modal-card {
  width: min(1080px, calc(100vw - 28px));
  max-height: min(88vh, 820px);
}
.app-access-modal-summary .big-number-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 0;
  margin-bottom: 18px;
}
.app-access-modal-summary .big-number-card {
  min-height: 126px;
}
.app-access-modal-summary .big-number-card strong {
  font-size: clamp(1.2rem, 2.2vw, 2rem);
  line-height: 1.08;
  word-break: break-word;
}
.app-access-modal-summary .big-number-card .status-pill {
  font-size: .85rem;
  white-space: normal;
}
.app-access-timeline {
  display: grid;
  gap: 10px;
}
.app-access-event-card {
  border: 1px solid rgba(13,57,94,.10);
  border-radius: 18px;
  padding: 14px 16px;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(248,252,253,.92));
  box-shadow: 0 10px 26px rgba(7,27,44,.06);
}
.app-access-event-card > div {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
}
.app-access-event-card strong {
  color: var(--pf-blue-900);
}
.app-access-event-card p {
  margin: 8px 0 4px;
  color: var(--pf-blue-650);
  font-weight: 850;
}
.app-access-event-card small {
  color: var(--pf-muted);
  font-weight: 750;
}
@media (max-width: 860px) {
  body.app-access-page .app-access-toolbar {
    flex-direction: column;
  }
  body.app-access-page .app-access-toolbar .admin-view-toggle {
    margin-left: 0;
    width: 100%;
    justify-content: center;
  }
  .app-access-modal-summary .big-number-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 560px) {
  .app-access-modal-summary .big-number-grid {
    grid-template-columns: 1fr;
  }
  .app-access-event-card > div {
    align-items:flex-start;
    flex-direction: column;
  }
}

/* v1.6.84 — App Acessos: ordenação funcional no cabeçalho */
.app-access-page .app-access-sortable-table th::after {
  content: none !important;
  display: none !important;
}
.app-access-page .app-access-sortable-table .th-sort {
  width: 100%;
  justify-content: flex-start;
  text-align: left;
  white-space: nowrap;
}
.app-access-page .app-access-sortable-table .th-sort .sort-arrow {
  color: #111827 !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  min-width: 12px !important;
  font-size: .85rem !important;
  font-weight: 950 !important;
}
.app-access-page .app-access-sortable-table .th-sort:hover,
.app-access-page .app-access-sortable-table .th-sort.active {
  color: var(--pf-blue-800) !important;
}


/* v1.6.85 — App Acessos: ações em menu 3 pontinhos + convite primeiro acesso */
body.app-access-page .app-access-sortable-table td:last-child,
body.app-access-page .app-access-sortable-table th:last-child {
  text-align: right;
  overflow: visible !important;
}
body.app-access-page .app-access-actions-menu-wrap {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
  width: auto;
  overflow: visible !important;
}
body.app-access-page .app-access-actions-menu-wrap.is-menu-open {
  z-index: 2147483647 !important;
}
body.app-access-page .app-access-row-menu {
  min-width: 252px;
  text-align: left;
  z-index: 2147483647 !important;
}
body.app-access-page .app-access-card {
  overflow: visible !important;
}
body.app-access-page .app-access-card .actions.end {
  display: flex;
  justify-content: flex-end;
  overflow: visible !important;
}
body.app-access-page .app-access-menu-btn {
  width: 36px;
  height: 36px;
  min-width: 36px;
}

/* v1.6.86 — Radar IA de Clientes: fila diária de WhatsApp com cadência segura */
body.client-radar-page .client-radar-hero .page-heading-row {
  gap: 18px;
}
body.client-radar-page .client-radar-hero-actions,
body.client-radar-page .client-radar-filters,
body.client-radar-page .client-radar-actions,
body.client-radar-page .client-radar-badges {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
body.client-radar-page .client-radar-ready-only {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(1, 173, 183, .18);
  border-radius: 14px;
  background: rgba(255,255,255,.72);
  font-weight: 800;
  color: #314155;
  white-space: nowrap;
}
body.client-radar-page .client-radar-ai-note {
  padding: 14px 16px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(1,173,183,.10), rgba(249,161,151,.12));
  border: 1px solid rgba(1,173,183,.16);
  font-weight: 800;
  color: #31505b;
}
body.client-radar-page .client-radar-table-wrap {
  overflow: visible !important;
  max-height: none !important;
}
body.client-radar-page .client-radar-table {
  table-layout: fixed;
}
body.client-radar-page .client-radar-table th:nth-child(1),
body.client-radar-page .client-radar-table td:nth-child(1) { width: 15%; }
body.client-radar-page .client-radar-table th:nth-child(2),
body.client-radar-page .client-radar-table td:nth-child(2) { width: 15%; }
body.client-radar-page .client-radar-table th:nth-child(3),
body.client-radar-page .client-radar-table td:nth-child(3) { width: 14%; }
body.client-radar-page .client-radar-table th:nth-child(4),
body.client-radar-page .client-radar-table td:nth-child(4) { width: 18%; }
body.client-radar-page .client-radar-table th:nth-child(5),
body.client-radar-page .client-radar-table td:nth-child(5) { width: 18%; }
body.client-radar-page .client-radar-table th:nth-child(6),
body.client-radar-page .client-radar-table td:nth-child(6) { width: 20%; }
body.client-radar-page .client-radar-table th:nth-child(7),
body.client-radar-page .client-radar-table td:nth-child(7) { width: 130px; }
body.client-radar-page .client-radar-table td {
  vertical-align: top;
}
body.client-radar-page .client-radar-table td small,
body.client-radar-page .client-radar-table td strong {
  display: block;
}
body.client-radar-page .client-radar-message {
  max-height: 190px;
  overflow: auto;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(31,41,55,.08);
  color: #334155;
  font-size: .9rem;
  line-height: 1.45;
}
body.client-radar-page .client-radar-actions {
  flex-direction: column;
  align-items: stretch;
}
body.client-radar-page .client-radar-actions .btn {
  width: 100%;
  justify-content: center;
  min-height: 38px;
}
@media (max-width: 980px) {
  body.client-radar-page .client-radar-toolbar,
  body.client-radar-page .client-radar-hero .page-heading-row {
    align-items: stretch;
    flex-direction: column;
  }
  body.client-radar-page .client-radar-filters .select,
  body.client-radar-page .client-radar-hero-actions .btn {
    width: 100%;
  }
  body.client-radar-page .client-radar-table {
    table-layout: auto;
    min-width: 1180px;
  }
  body.client-radar-page .client-radar-table-wrap {
    overflow-x: auto !important;
  }
}

/* v1.6.87 — Avaliações públicas e Admin */
.service-reviews-page .service-reviews-table td{vertical-align:top}
.service-reviews-page .service-reviews-table td small{display:block;color:#64748b;margin-top:4px;font-size:12px}
.service-reviews-page .compact-filter-row{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin:0}
.service-reviews-page .compact-filter-row .input{min-width:min(260px,100%)}
.service-reviews-page .row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
@media (max-width: 780px){.service-reviews-page .section-toolbar{align-items:stretch}.service-reviews-page .compact-filter-row{justify-content:stretch}.service-reviews-page .compact-filter-row .input,.service-reviews-page .compact-filter-row .select,.service-reviews-page .compact-filter-row .btn{width:100%}}

/* v1.6.92 — garante que o progresso do pacote apareça no card da agenda antes do menu de ações */
.agenda-compact-card .appointment-card-main {
  min-width: 0;
  flex: 1 1 auto;
  padding-right: 46px;
}
.agenda-compact-card .appointment-card-title {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: nowrap;
  max-width: 100%;
  min-width: 0;
}
.agenda-compact-card .appointment-title-main {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.agenda-compact-card .appointment-card-title .appointment-package-badge {
  flex: 0 0 auto;
  margin-left: 0;
  transform: none;
}
@media (max-width: 760px) {
  .agenda-compact-card .appointment-card-main { padding-right: 42px; }
  .agenda-compact-card .appointment-card-title { gap: 6px; }
}

/* v1.6.93 — Agenda: progresso de pacote visível no calendário e na visão por status */
.agenda-compact-card .appointment-package-line {
  display: flex;
  align-items: center;
  margin: 2px 48px 8px 0;
  min-width: 0;
}
.agenda-compact-card .appointment-package-line .status-package-badge {
  margin-left: 0;
  max-width: 100%;
  flex: 0 1 auto;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}
.agenda-compact-card .appointment-card-main {
  padding-right: 46px;
}
.agenda-compact-card .appointment-card-title {
  display: flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  min-width: 0;
}
.agenda-compact-card .appointment-title-main {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-appointment-card .cal-event-text {
  min-width: 0;
  width: 100%;
}
.calendar-appointment-card .calendar-package-line {
  display: flex;
  align-items: center;
  margin: 0 0 4px;
  min-width: 0;
  max-width: 100%;
}
.calendar-appointment-card .calendar-package-line .calendar-session-badge {
  margin-left: 0;
  max-width: 100%;
  flex: 0 1 auto;
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap;
}
.calendar-appointment-card .calendar-event-title {
  display: flex !important;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.calendar-appointment-card .calendar-event-time,
.calendar-appointment-card .calendar-event-separator {
  flex: 0 0 auto;
}
.calendar-appointment-card .calendar-event-pet {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-day .calendar-appointment-card,
.calendar-week-view .calendar-appointment-card,
.calendar-day-view .calendar-appointment-card {
  min-height: 66px;
}
@media (max-width: 760px) {
  .agenda-compact-card .appointment-package-line { margin-right: 42px; }
  .calendar-appointment-card .calendar-package-line .calendar-session-badge,
  .agenda-compact-card .appointment-package-line .status-package-badge { font-size: .66rem; padding-inline: 6px; }
}

/* v1.6.94 — Agenda: tags visuais de pagamento em todos os cards */
.agenda-page .agenda-payment-tag {
  --agenda-payment-color: #dc2626;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(220, 38, 38, .11);
  border: 1px solid rgba(220, 38, 38, .28);
  color: #991b1b;
  font-size: .74rem;
  line-height: 1;
  font-weight: 950;
  letter-spacing: .01em;
  white-space: nowrap;
  box-shadow: 0 8px 18px rgba(220, 38, 38, .08);
}
.agenda-page .agenda-payment-tag.is-paid {
  --agenda-payment-color: #16a34a;
  background: rgba(22, 163, 74, .12);
  border-color: rgba(22, 163, 74, .30);
  color: #166534;
  box-shadow: 0 8px 18px rgba(22, 163, 74, .08);
}
.agenda-page .agenda-payment-dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--agenda-payment-color);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--agenda-payment-color) 16%, transparent);
  flex: 0 0 auto;
}
.agenda-page .agenda-payment-tag.small {
  padding: 6px 9px;
  font-size: .72rem;
}
.agenda-page .agenda-payment-tag.mini {
  padding: 5px 8px;
  font-size: .68rem;
}
.agenda-page .payment-tag-line {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 7px;
}
.agenda-page .agenda-payment-method {
  color: rgba(38,48,95,.66);
  font-weight: 850;
  font-size: .72rem;
}
.agenda-page .calendar-payment-tag-line {
  margin-top: 5px;
  gap: 6px;
}
.agenda-page .calendar-appointment-card .agenda-payment-tag {
  max-width: 100%;
}
@media (max-width: 760px) {
  .agenda-page .agenda-payment-tag.small,
  .agenda-page .agenda-payment-tag.mini {
    padding: 5px 7px;
    font-size: .66rem;
  }
}

/* v1.6.97 — Avaliações: remove seta azul do header e troca ações por menu de 3 pontinhos */
.service-reviews-page .service-reviews-table .sort-arrow {
  display: none !important;
}
.service-reviews-page .service-reviews-table .th-sort,
.service-reviews-page .service-reviews-table .th-sort:hover,
.service-reviews-page .service-reviews-table .th-sort.active {
  color: inherit;
  gap: 0;
}
.service-reviews-page .service-reviews-table .th-sort.active {
  text-decoration: none;
}
.service-reviews-page .service-reviews-list-card .table-scroll.no-inner-scroll {
  max-height: none !important;
  overflow-y: visible !important;
}
.service-reviews-page .review-actions-menu-wrap {
  position: relative;
  display: flex;
  justify-content: flex-end;
  overflow: visible;
}
.service-reviews-page .review-actions-toggle,
.service-reviews-page .dots-btn.review-actions-toggle {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  border: 1px solid rgba(15, 23, 42, .10);
  background: rgba(255,255,255,.92);
  color: #233347;
  font-size: 1.25rem;
  font-weight: 950;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(15, 23, 42, .08);
}
.service-reviews-page .review-actions-toggle:hover,
.service-reviews-page .review-actions-toggle[aria-expanded="true"] {
  background: linear-gradient(135deg, rgba(1,173,183,.12), rgba(249,161,151,.12));
  border-color: rgba(1,173,183,.22);
}
.service-reviews-page .review-action-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 60;
  min-width: 190px;
  padding: 8px;
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(15,23,42,.10);
  box-shadow: 0 24px 70px rgba(15,23,42,.18);
  display: grid;
  gap: 5px;
}
.service-reviews-page .review-action-menu[hidden] {
  display: none !important;
}
.service-reviews-page .review-action-menu button,
.service-reviews-page .review-action-menu a {
  border: 0;
  background: transparent;
  color: #233347;
  text-align: left;
  text-decoration: none;
  padding: 10px 12px;
  border-radius: 13px;
  font-size: .9rem;
  font-weight: 900;
  cursor: pointer;
  width: 100%;
  display: block;
}
.service-reviews-page .review-action-menu button:hover,
.service-reviews-page .review-action-menu a:hover {
  background: linear-gradient(135deg, rgba(1,173,183,.10), rgba(249,161,151,.12));
}
@media (max-width: 780px) {
  .service-reviews-page .review-action-menu {
    right: 0;
    min-width: 178px;
  }
}

/* v1.6.98 · CRM e tutores: mensagens enviadas e ações no menu */
.status-pill.info {
  background: rgba(38,185,199,.13);
  color: #087d88;
  border-color: rgba(38,185,199,.22);
}
.crm-marketing-page .crm-kebab-wrap,
.crm-marketing-page .kebab-wrap {
  position: relative;
  display: inline-flex;
  justify-content: flex-end;
  overflow: visible;
}
.crm-marketing-page .kebab-menu,
.crm-marketing-page .app-kebab-menu,
.crm-marketing-page .crm-action-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 99990;
  min-width: 238px;
  max-width: min(320px, calc(100vw - 34px));
  padding: 8px;
  border-radius: 18px;
  border: 1px solid rgba(13,57,94,.12);
  background: rgba(255,255,255,.98);
  box-shadow: 0 24px 80px rgba(7,27,44,.18);
  display: none;
  text-align: left;
}
.crm-marketing-page .kebab-wrap.open .kebab-menu,
.crm-marketing-page .kebab-wrap.open .app-kebab-menu,
.crm-marketing-page .kebab-wrap.open .crm-action-menu {
  display: grid;
  gap: 4px;
  animation: pf-fade-up .16s var(--pf-ease) both;
}
.crm-marketing-page .kebab-menu button,
.crm-marketing-page .kebab-menu a,
.crm-marketing-page .app-kebab-menu button,
.crm-marketing-page .app-kebab-menu a,
.crm-marketing-page .crm-action-menu button,
.crm-marketing-page .crm-action-menu a {
  border: 0;
  width: 100%;
  background: transparent;
  text-align: left;
  padding: 10px 11px;
  border-radius: 12px;
  color: var(--pf-blue-900);
  font-weight: 850;
  font-size: .9rem;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
}
.crm-marketing-page .kebab-menu button:hover,
.crm-marketing-page .kebab-menu a:hover,
.crm-marketing-page .app-kebab-menu button:hover,
.crm-marketing-page .app-kebab-menu a:hover,
.crm-marketing-page .crm-action-menu button:hover,
.crm-marketing-page .crm-action-menu a:hover {
  background: var(--pf-menu-hover, rgba(38,185,199,.10));
}
.crm-message-preview {
  margin: 7px 0 4px;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(38,185,199,.08);
  border: 1px solid rgba(38,185,199,.14);
  color: rgba(13,57,94,.86);
  font-size: .82rem;
  line-height: 1.42;
  max-width: 420px;
  white-space: normal;
}
.crm-action-card {
  position: relative;
  padding-right: 58px;
}
.crm-action-card .crm-kebab-wrap {
  position: absolute;
  right: 14px;
  top: 14px;
}
.crm-action-card .crm-action-menu {
  right: 0;
}
.crm-card-copy { display: grid; gap: 5px; min-width: 0; }
@media (max-width: 760px) {
  .crm-action-card { padding-right: 16px; padding-top: 58px; }
  .crm-action-card .crm-kebab-wrap { top: 14px; right: 14px; }
  .crm-message-preview { max-width: 100%; }
}


/* v1.6.99 · CRM: botão direto de envio nas prioridades de hoje */
.crm-priority-card .crm-message-preview {
  margin-bottom: 8px;
}
.crm-priority-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 2px;
}
.crm-send-direct {
  width: fit-content;
  box-shadow: 0 10px 24px rgba(1,173,183,.18);
}
.crm-send-direct[disabled] {
  opacity: .65;
  cursor: not-allowed;
}
@media (max-width: 760px) {
  .crm-priority-actions .crm-send-direct {
    width: 100%;
    justify-content: center;
  }
}
