:root {
  --brand-olive:#4d5943;
  --brand-olive-dark:#263123;
  --brand-sage:#a8b09f;
  --brand-mist:#edf2ed;
  --brand-cream:#f8faf6;
  --brand-orange:#ce7a41;
  --brand-orange-soft:#f4e1d2;
  --brand-teal:#008e75;
  font-family: Inter, Arial, sans-serif;
  color: #172019;
  background: var(--brand-mist);
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; font-size: 14px; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; border: 0; background: transparent; }
.topbar { height: 58px; display: flex; align-items: center; gap: 10px; padding: 0 16px; color: white; background: linear-gradient(90deg,var(--brand-olive-dark),var(--brand-olive)); border-bottom:3px solid var(--section-color,var(--brand-orange)); }
.topbar h1 { font-size: 22px; margin: 0; }
.menu-button { color: white; font-size: 22px; }
.topbar-icon { display:grid; place-items:center; width:20px; height:20px; color:var(--section-color,#d9efe8); }
.topbar-icon svg, nav svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.topbar[data-section="agenda"] { --section-color:#d07b42; }
.topbar[data-section="patients"] { --section-color:#d07b42; }
.topbar[data-section="trash"] { --section-color:#ff7878; }
.topbar[data-section="finance"] { --section-color:#d07b42; }
.topbar[data-section="affiliates"] { --section-color:#7c8cff; }
.topbar[data-section="online"] { --section-color:#f4b45f; }
.topbar[data-section="checkin"] { --section-color:#61aee9; }
.topbar[data-section="todo"] { --section-color:#4bd28a; }
.topbar[data-section="backup"] { --section-color:#c3ccd8; }
.page { width: min(1120px, calc(100% - 28px)); margin: 22px auto; display: grid; gap: 18px; }
.card { background: rgba(255,255,255,.92); border:1px solid #d9e1d7; border-radius: 10px; box-shadow: 0 10px 30px #26312312; overflow: hidden; }
.card-heading { min-height: 54px; display: flex; justify-content: space-between; align-items: center; padding: 0 20px; border-bottom: 1px solid #e4ebe8; background:linear-gradient(90deg,#ffffff,#f7faf5); }
.heading-actions { display:flex; align-items:center; gap:10px; }
h2 { margin: 0; font-size: 16px; }
.patient-form { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; padding: 18px 20px 20px; }
label { display: grid; gap: 7px; color: #334039; font-size: 12px; }
input, select, textarea { min-width: 0; padding: 10px 12px; border: 1px solid #cfd9d5; border-radius: 6px; background: white; }
input:focus, select:focus, textarea:focus { outline:2px solid #ce7a4138; border-color:var(--brand-orange); }
.form-divider { grid-column: 1 / -1; padding-top: 14px; border-top: 1px solid #dfe8e4; color: #087b67; font-weight: 600; }
.wide { grid-column: span 2; }
.form-submit { grid-column: 1 / -1; }
.primary-button { padding: 11px 16px; border-radius: 6px; color: white; background: linear-gradient(135deg,#6d7a5f,var(--brand-olive)); font-weight: 700; box-shadow:0 8px 18px #4d594322; }
.segmented, .calendar-toolbar { display: flex; align-items: center; gap: 8px; }
.segmented button, .calendar-toolbar button, .table-toolbar button { padding: 8px 12px; border-radius: 6px; background: #edf1f1; color: #334039; }
.segmented .active, .calendar-toolbar .active { background: var(--brand-orange); color: white; }
.calendar-views { padding: 14px 20px 0; flex-wrap: wrap; }
.calendar-toolbar { padding: 14px 20px 8px; }
.calendar-toolbar span { flex: 1; }
#calendarGrid { height:520px; overflow:auto; border-top:1px solid #eef2f1; }
.week-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; padding: 0 20px 18px; }
.day-grid { padding: 0 20px 18px; }
.day-grid .day { min-height: 220px; }
.calendar-weekdays, .month-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; padding:0 20px; }
.calendar-weekdays { padding-top:4px; padding-bottom:6px; color:#6a7973; font-size:11px; font-weight:700; text-align:center; text-transform:uppercase; }
.month-grid { padding-bottom:18px; }
.month-grid .day { min-height:116px; }
.day.outside { opacity:.45; background:#f5f7f6; }
.clickable-day { cursor:pointer; transition:box-shadow .15s, border-color .15s; }
.clickable-day:hover { border-color:var(--brand-orange); box-shadow:inset 0 0 0 1px var(--brand-orange); }
.annual-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:4px 20px 18px; }
.year-month { overflow:hidden; border:1px solid #e1e8e5; border-radius:7px; }
.year-month h3 { margin:0; padding:10px; color:#38695d; background:#f3f7f5; font-size:13px; text-transform:capitalize; }
.mini-weekdays, .mini-month-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; padding:3px; }
.mini-weekdays { color:#72817c; font-size:9px; font-weight:700; text-align:center; }
.mini-day { min-height:38px; border-radius:3px; }
.mini-day strong { padding:3px; font-size:9px; background:#f7f9f8; }
.compact-appointment { width:calc(100% - 4px); margin:2px; padding:3px; overflow:hidden; font-size:8px; white-space:nowrap; text-overflow:ellipsis; }
.day { min-height: 100px; border: 1px solid #e1e8e5; border-radius: 7px; overflow: hidden; }
.day strong { display: flex; justify-content: space-between; padding: 9px; background: #f3f5f5; }
.day.today strong { color: white; background: var(--brand-olive); }
.calendar-add { display:grid; place-items:center; width:18px; height:18px; padding:0; border-radius:4px; color:#087b6f; background:white; font-size:13px; font-weight:700; line-height:1; box-shadow:0 0 0 1px #b7dfd8 inset; }
.day.today .calendar-add { color:#006b60; }
.appointment { margin: 8px; padding: 7px; border-radius: 5px; color: #9a3412; background: #ffedd5; font-size: 11px; }
.appointment { display:block; width:calc(100% - 16px); text-align:left; }
.appointment small { display:flex; flex-wrap:wrap; gap:4px; align-items:center; margin-top:4px; font-size:10px; }
.appointment small span + span { padding-left:4px; border-left:1px solid currentColor; font-weight:700; }
.appointment.blocked { color:#8a5c00; background:#fff3d5; }
.appointment.empty-slot { display:flex; justify-content:space-between; align-items:center; color:#678075; background:#f6faf8; border:1px dashed #c8d8d1; }
.appointment.empty-slot span { color:#8ba099; font-size:10px; font-weight:700; }
.appointment.status-scheduled { color:#a16207; background:#fef9c3; }
.appointment.status-pending { color:#c2410c; background:#ffedd5; }
.appointment.status-renew { color:#1d4ed8; background:#dbeafe; }
.appointment.status-late { color:#b91c1c; background:#fee2e2; }
.appointment.status-done { color:#047857; background:#ecfdf5; }
.table-toolbar { display: flex; gap: 10px; align-items: center; padding: 14px 20px; }
.table-toolbar label { display: flex; margin-left: auto; align-items: center; }
.table-scroll { overflow: auto; max-height: 330px; }
table { width: 100%; border-collapse: collapse; min-width: 760px; font-size: 12px; }
th, td { padding: 13px 18px; border-top: 1px solid #ebf0ef; text-align: left; }
th { background: #f8faf9; color: #61706a; }
.pill { display: inline-block; padding: 4px 9px; border-radius: 999px; background: #e2f5ee; color: #16856d; font-size: 11px; }
.tag { color: #008e75; background: #e3f8f2; }
.sidebar { position:fixed; inset:0 auto 0 0; z-index:3; display:flex; flex-direction:column; width:74px; overflow:hidden; color:#d7ddd4; background:linear-gradient(180deg,#263123,#4d5943); transform:none; transition:width .22s ease; box-shadow:4px 0 22px #0003; }
.sidebar:hover { width:245px; }
.sidebar-title { min-height:112px; display:flex; gap:12px; align-items:center; padding:18px 17px; border-bottom:1px solid #ffffff18; }
.sidebar-title button { display:none; margin-left:auto; color:white; font-size:28px; }
.brand-logo { display:flex; gap:12px; align-items:center; min-width:190px; }
.brand-symbol { display:grid; place-items:center; flex:0 0 auto; width:42px; height:42px; overflow:hidden; border:1px solid #ce7a4160; border-radius:50%; background:#4d5943; }
.brand-symbol img { width:100%; height:100%; object-fit:cover; object-position:center; }
.brand-copy, .profile-copy { min-width:155px; opacity:0; transition:opacity .12s; }
.sidebar:hover .brand-copy, .sidebar:hover .profile-copy { opacity:1; }
.brand-copy strong { display:block; color:#f0a365; font-size:13px; letter-spacing:1px; text-transform:uppercase; }
.brand-copy small { color:#d8d8ce; font-size:9px; letter-spacing:3px; text-transform:uppercase; }
nav { display:grid; padding:14px 8px; gap:3px; }
nav button { display:flex; gap:15px; align-items:center; min-height:46px; padding:12px 14px; overflow:hidden; border-radius:18px; text-align:left; font-weight:700; color:#d7ddd4 !important; white-space:nowrap; }
nav button svg { flex:0 0 auto; }
nav button span, .settings-button span:last-child { opacity:0; transition:opacity .12s; }
.sidebar:hover nav button span, .sidebar:hover .settings-button span:last-child { opacity:1; }
nav button.active { color:#f3a464 !important; background:#ce7a4120; box-shadow:inset 3px 0 var(--brand-orange); }
.landing-link { display:grid; grid-template-columns:18px 1fr; gap:5px 15px; align-items:center; width:100%; padding:12px 22px; overflow:hidden; color:#f3a464; text-decoration:none; border-top:1px solid #ffffff10; }
.landing-link svg { width:18px; height:18px; flex:0 0 auto; }
.landing-link span, .landing-link small { opacity:0; transition:opacity .12s; }
.sidebar:hover .landing-link span, .sidebar:hover .landing-link small { opacity:1; }
.landing-link small { grid-column:2; font-size:10px; color:#c9d1c790; line-height:1.3; }
.landing-link:hover { color:#ffb87a; background:#f3a46410; }
.landing-link--patient { color:#7ec8a0; border-top:none; }
.landing-link--patient:hover { color:#a5dfc0; background:#7ec8a010; }
.landing-link--affiliate-signup { color:#c8a96e; }
.landing-link--affiliate-signup:hover { color:#e0c98e; background:#c8a96e10; }

/* Topbar de retorno da landing page */
.landing-back-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200; max-width:100vw;
  background: rgba(20,26,18,0.96); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(200,169,110,0.2);
  padding: 0 14px; height: 48px;
  display: flex; align-items: center; gap:6px;
  overflow-x: auto; white-space: nowrap;
}
.landing-back-btn {
  color: #c8a96e; text-decoration: none; font-size: 13px; font-weight: 600;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: 8px; transition: background 0.15s, color 0.15s;
}
.landing-back-btn:hover { background: rgba(200,169,110,0.12); color: #e0c080; }
.agenda-online-body .agenda-online-page { padding-top: 48px; }
.backup-button { display:grid; grid-template-columns:18px 1fr; gap:5px 15px; align-items:center; width:100%; padding:12px 22px; overflow:hidden; color:#c9d1c7; text-align:left; }
.backup-button small { grid-column:2; max-width:165px; white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
.backup-button span:not(.backup-icon), .backup-button small { opacity:0; transition:opacity .12s; }
.sidebar:hover .backup-button span, .sidebar:hover .backup-button small { opacity:1; }
.backup-icon { display:grid; place-items:center; flex:0 0 auto; width:18px; height:18px; }
.backup-icon svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; }
.sidebar-footer { display:grid; gap:10px; margin-top:auto; padding:14px 16px; border-top:1px solid #ffffff18; }
.settings-button, .profile-button { display:flex; gap:14px; align-items:center; overflow:hidden; color:#d7ddd4; white-space:nowrap; }
.settings-icon { font-size:20px; }
.profile-avatar { display:grid; place-items:center; flex:0 0 auto; width:40px; height:40px; border:1px solid #ffffff30; border-radius:50%; color:#e59253; font-weight:700; font-size:12px; }
.profile-copy strong, .profile-copy small { display:block; }
.profile-copy small { margin-top:3px; color:#c8d4c5; font-size:11px; }
.overlay { position: fixed; inset: 0; z-index: 2; display: none; background: #0006; }
.overlay.open { display: block; }
.section-tabs { display:flex; gap: 8px; padding: 0 20px; border-bottom: 1px solid #e1e8e6; }
.section-tabs button { padding: 14px 12px; }
.section-tabs .active { color:var(--brand-orange); border-bottom: 2px solid var(--brand-orange); }
.stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; padding: 18px 20px; }
.stat { padding: 18px; border: 1px solid #bee4d8; border-radius: 7px; background:#effbf7; }
.stat strong { display:block; margin-top:8px; color:#078b6e; font-size:22px; }
.content { padding: 18px 20px; }
.scroll-panel { max-height:560px; overflow:auto; padding-right:6px; scrollbar-gutter:stable; }
.expanded-panel { max-height:none; overflow:visible; }
.profile-list.scroll-panel { margin-top:12px; border-top:1px solid #edf1ef; }
.profile-list.scroll-panel .profile-card:first-child { margin-top:12px; }
.finance-payment-list.scroll-panel { max-height:600px; margin-top:6px; padding-right:8px; }
.view-toggle { white-space:nowrap; }
.bar { display:flex; gap: 12px; align-items:center; margin:12px 0; }
.bar span:first-child { width:32px; }
.bar-track { flex:1; height:22px; overflow:hidden; border:1px solid #a8b09f; border-radius:14px; background:#f7faf5; }
.bar-fill { height:100%; padding:4px 9px; color:white; background:linear-gradient(90deg,var(--brand-orange),#9f5f34); font-size:11px; font-weight:700; text-align:right; }
.check-card { padding: 15px; margin-top: 12px; border: 1px solid #9ad4ff; border-radius: 7px; background:#eff8ff; }
.check-card h3 { margin:0 0 7px; }
.check-card p { margin:5px 0; font-size:12px; }
.check-card a { color:inherit; }
.check-reminders, .check-renewal { border-color:#ffbd78; background:#fff7ee; }
.check-followup { border-color:#8be6c1; background:#effcf6; }
.check-late { border-color:#ffb0b0; background:#fff3f3; }
.checkin-tabs { padding-top:14px; flex-wrap:wrap; }
.checkin-tabs span { display:inline-block; margin-left:5px; padding:2px 6px; border-radius:99px; background:#bde8ff; font-size:10px; }
.checkin-info { padding:14px; border:1px solid #acdfff; border-radius:7px; color:#09658f; background:#eff9ff; }
.check-message { margin-top:12px; padding:11px; border:1px solid #e1e5e8; border-radius:7px; background:white; }
.check-message strong { color:#087f6e; font-size:11px; }
.check-message pre { margin:9px 0 0; white-space:pre-wrap; font:12px/1.5 monospace; }
.check-actions { display:flex; gap:8px; margin-top:10px; }
.check-actions button { flex:1; padding:9px; border:1px solid #00a27a; border-radius:5px; color:#008c6b; }
.check-actions button:last-child { color:white; background:#009c76; }
.check-reminders .check-actions button, .check-renewal .check-actions button { border-color:#f47b11; color:#d75d00; }
.check-reminders .check-actions button:last-child, .check-renewal .check-actions button:last-child { color:white; background:#f16900; }
.check-late .check-actions button { border-color:#e52b2b; color:#d92525; }
.check-late .check-actions button:last-child { color:white; background:#e32727; }
.empty-checkin { padding:24px; text-align:center; }
.todo-table input { width:16px; height:16px; }
.expense-form { display:grid; grid-template-columns: 1fr 1fr; gap:12px; padding:16px; border:1px solid #ffb6b6; border-radius:7px; background:#fff5f2; }
.expense-form h3 { grid-column:1/-1; margin:0; color:#a71919; }
.expense-form button { grid-column:1/-1; color:white; background:#e12727; padding:10px; border-radius:5px; }
.finance-tabs { padding-top:14px; }
.finance-year-control { display:flex; align-items:center; gap:16px; color:var(--brand-olive); font-weight:800; }
.finance-year-control button { width:32px; height:32px; border:0; color:var(--brand-olive); background:#eef4ec; border-radius:6px; font-size:22px; line-height:1; }
.finance-year-control button:hover { color:white; background:var(--brand-orange); }
.finance-year-control strong { min-width:48px; text-align:center; }
.finance-panel { margin-bottom:20px; padding:18px; border:1px solid #dce5e2; border-radius:8px; }
.finance-panel:first-child { border-color:#bdd0b6; background:#f4f8f2; }
.finance-panel h3 { margin:0 0 16px; font-size:16px; }
.finance-panel-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.finance-panel-heading div { display:flex; gap:15px; align-items:center; color:#008e75; }
.finance-panel-heading button { color:#008e75; font-size:22px; }
.bar { cursor:pointer; border-radius:8px; }
.bar:focus { outline:2px solid var(--brand-orange); outline-offset:3px; }
.bar-fill { min-width:0; overflow:hidden; white-space:nowrap; }
.current-bar .bar-track { outline:2px solid var(--brand-orange); outline-offset:2px; }
.focus-finance-month { outline:3px solid #00a884; outline-offset:4px; border-radius:8px; }
.finance-stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 20px; }
.finance-stats div { display:grid; gap:7px; padding:15px; border:1px solid #a8e9c5; border-radius:7px; background:#effcf5; }
.finance-stats div:nth-child(2) { border-color:#ffc2c2; background:#fff4f4; }
.finance-stats div:nth-child(3), .finance-stats div:nth-child(4) { border-color:#bdd4ff; background:#f1f6ff; }
.finance-stats small { color:#60726d; font-size:10px; text-transform:uppercase; }
.finance-stats strong { color:#007c5f; font-size:19px; }
.finance-stats div:nth-child(2) strong { color:#c81d1d; }
.finance-stats div:nth-child(n+3) strong { color:#3150d9; }
.payment-line, .expense-line { display:flex; gap:14px; align-items:center; padding:8px 0; }
.payment-line span, .expense-line span { flex:1; }
.payment-line small { width:52px; color:#61706f; text-align:right; }
.patient-month { padding:12px 0; border-top:1px solid #e3e9e7; }
.patient-month h4 { display:flex; justify-content:space-between; margin:0 0 9px; }
.patient-month h4 strong { color:#008e75; }
.patient-month article, .expense-entry { display:flex; justify-content:space-between; gap:12px; margin-top:8px; padding:12px; border:1px solid #c9dcff; border-radius:7px; background:#f1f6ff; }
.patient-month article small, .patient-month article span, .expense-entry small { display:block; margin-top:5px; color:#66758c; font-size:11px; }
.patient-month article > strong { color:#3150d9; }
.expense-line { border-bottom:1px solid #edf0ef; }
.expense-entry { border-color:#ffd1d1; background:#fff7f7; }
.expense-entry > strong { color:#c81d1d; }
.portal-selector { display:grid; gap:7px; max-width:420px; margin-bottom:16px; color:#53645e; font-size:12px; font-weight:700; }
.portal-search-control { display:flex; align-items:center; gap:8px; padding:0 12px; border:1px solid #cfd8d5; border-radius:7px; background:white; }
.portal-search-control svg { width:16px; height:16px; stroke:#65746e; fill:none; stroke-width:2; }
.portal-search-control input { flex:1; min-width:0; padding-left:0; border:0; background:transparent; }
.portal-search-control input:focus { outline:0; box-shadow:none; }
.portal-grid { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:16px; align-items:start; }
.portal-preview, .portal-requests { display:grid; gap:14px; }
.portal-section, .portal-requests { padding:16px; border:1px solid #d9e6e2; border-radius:8px; background:#fbfdfc; }
.portal-link-panel { display:flex; justify-content:space-between; gap:12px; align-items:center; border-color:#b8d6ff; background:#f3f7ff; }
.portal-link-panel p { margin:6px 0 0; }
.portal-section h3, .portal-requests h3 { margin:0 0 12px; font-size:15px; }
.portal-requests-heading { display:grid; gap:4px; padding-bottom:4px; border-bottom:1px solid #e3ece8; }
.portal-requests-heading h3, .portal-requests-heading p { margin:0; }
.portal-requests h4 { margin:0; color:#213027; font-size:13px; }
.portal-patient-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:14px; }
.portal-patient-heading small, .portal-stats small, .next-appointment small { display:block; color:#6b7c75; font-size:10px; text-transform:uppercase; }
.portal-patient-heading h3 { margin:4px 0 0; font-size:20px; }
.portal-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.portal-stats div, .next-appointment { display:grid; gap:6px; min-height:72px; padding:13px; border:1px solid #bddfd7; border-radius:7px; background:#effbf8; }
.portal-stats div:nth-child(3n), .next-appointment { border-color:#c7d7ff; background:#f3f6ff; }
.portal-stats strong, .next-appointment strong { color:#087b6f; font-size:17px; }
.next-appointment { margin-top:10px; }
.portal-request-form { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.portal-request-form .wide, .portal-request-form button { grid-column:1/-1; }
.portal-history { display:grid; gap:8px; margin-bottom:14px; }
.portal-history-item, .request-card { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid #e0e7e5; border-radius:7px; background:white; }
.portal-history-item small, .request-card small, .request-card p { display:block; margin-top:5px; color:#65746e; font-size:11px; }
.portal-history-item span { align-self:center; padding:4px 8px; border-radius:99px; color:#2753d7; background:#e8efff; font-size:11px; font-weight:700; }
.portal-history-item .done { color:#047857; background:#dcfce7; }
.request-card { display:grid; }
.request-card.renewal-request { border-color:#f3c892; background:#fff8ed; }
.request-card.renewal-request.closed { opacity:.75; }
.request-received { color:#1f8a5f !important; font-weight:700; text-transform:uppercase; letter-spacing:.02em; }
.request-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(72px,1fr)); gap:8px; }
.trash-icon-button { display:grid; place-items:center; min-height:36px; padding:8px; border:1px solid #f2bbbb; color:#a42020; background:#fff1f1; }
.trash-icon-button svg { width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2; }
.public-portal-body {
  --brand-green:#4d6f50;
  --brand-green-deep:#465341;
  --brand-caramel:#d07e43;
  --brand-sage:#a7ad9c;
  --brand-cream:#f7f3ea;
  background:
    radial-gradient(circle at 20% -10%, #d07e4330 0 220px, transparent 221px),
    linear-gradient(180deg,#eef4ef 0%,#f8f5ee 48%,#eef3ee 100%);
}
.public-portal-body .sidebar, .public-portal-body .topbar, .public-portal-body .overlay { display:none !important; }
.public-portal-body .page { width:100% !important; margin:0 !important; padding:0 !important; }
.public-portal-page { min-height:100vh; display:grid; gap:14px; align-content:start; width:min(100%,520px); margin:0 auto; padding:14px; }
.public-portal-hero {
  position:relative;
  overflow:hidden;
  display:grid;
  gap:12px;
  padding:20px 18px 24px;
  border:1px solid #ffffff22;
  border-radius:0 0 26px 26px;
  color:white;
  background:linear-gradient(145deg,var(--brand-green-deep),#3f5f43 65%,#304137);
  box-shadow:0 18px 38px #243a2d30;
}
.public-portal-hero::after { content:""; position:absolute; right:-70px; top:-80px; width:190px; height:190px; border-radius:50%; background:#d07e4326; pointer-events:none; }
.public-portal-brand { position:relative; z-index:1; display:flex; align-items:center; gap:12px; }
.public-portal-brand img { width:82px; height:82px; object-fit:contain; padding:8px; border:1px solid #ffffff1f; border-radius:18px; background:#ffffff10; filter:drop-shadow(0 10px 18px #111a1438); }
.public-portal-brand small { color:#e5e9dd; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:0; }
.public-portal-hero h1 { position:relative; z-index:1; margin:0; max-width:10ch; font-size:30px; line-height:1.02; }
.public-portal-hero span { position:relative; z-index:1; width:max-content; max-width:100%; padding:7px 12px; border-radius:999px; color:#25331f; background:linear-gradient(135deg,#f2c48f,var(--brand-caramel)); font-size:12px; font-weight:900; box-shadow:0 10px 22px #0f1f1630; }
.public-linked-menu { position:sticky; top:0; z-index:3; display:flex; gap:8px; width:100%; overflow-x:auto; overscroll-behavior-x:contain; scroll-behavior:smooth; padding:8px; border:1px solid #d8e3d8; border-radius:16px; background:#fffffff0; backdrop-filter:blur(10px); box-shadow:0 12px 26px #263a2e14; }
.agenda-online-page .public-linked-menu { width:min(520px,100%); margin:0 auto 14px; border-color:#d6a65f55; background:#172014e6; box-shadow:0 14px 32px #0005; }
.public-linked-menu button { flex:1 0 116px; display:flex; justify-content:center; align-items:center; gap:7px; min-height:54px; padding:8px 9px; border-radius:12px; color:#28352a; background:#edf4ed; font-weight:950; white-space:normal; text-align:center; line-height:1.05; }
.public-linked-menu button > span:not(.nav-sticker):not(.nav-coupon-badge) { min-width:0; overflow-wrap:anywhere; word-break:normal; }
.agenda-online-page .public-linked-menu button { color:#0b120d; background:#f5ead8; }
.public-linked-menu .nav-panel { color:#101812; background:linear-gradient(135deg,#e8fff7,#d7f7e8); }
.public-linked-menu .nav-agenda { color:#113b20; background:linear-gradient(135deg,#effff2,#bcf7ca); box-shadow:inset 0 0 0 1px #40d46d, 0 0 18px #28d85b45; }
.public-linked-menu .nav-agenda { flex-wrap:wrap; }
.agenda-online-page .public-linked-menu .nav-agenda { color:#102812; background:linear-gradient(135deg,#d9ffd6,#39df65); box-shadow:inset 0 0 0 1px #a8ffb8, 0 0 22px #39df6566; }
.public-linked-menu .nav-portal { color:#3d4b39; background:linear-gradient(135deg,#f7f3ea,#e3e7da); }
.public-linked-menu button.active { color:#fffaf2; background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep)); box-shadow:0 10px 22px #304b3830; }
.agenda-online-page .public-linked-menu button.active { color:#20140a; background:linear-gradient(135deg,#ffd089,#c97834); }
.public-linked-menu button.disabled { opacity:.58; color:#7a8880; background:#eef4f0; }
.agenda-online-page .public-linked-menu button.disabled { color:#b7aa98; background:#1d241a; }
.nav-sticker { display:grid; place-items:center; width:28px; height:28px; border-radius:10px; font-size:19px; line-height:1; box-shadow:0 6px 14px #0002; }
.nav-sticker-money { background:linear-gradient(135deg,#fff2c8,#ffc766); }
.nav-sticker-progress { background:linear-gradient(135deg,#e7f1ff,#9dccff); }
.nav-coupon-badge { display:grid; place-items:center; min-width:38px; min-height:26px; padding:3px 8px; border-radius:999px; color:#063f1d; background:linear-gradient(135deg,#62ff8d,#09a83b); font-size:12px; font-weight:950; box-shadow:0 0 0 2px #d8ffdf inset, 0 0 18px #18d957aa; }
.public-portal-card { display:grid; gap:12px; padding:16px; border:1px solid #e3e5dc; border-radius:18px; background:#fffefa; box-shadow:0 14px 34px #2a3b2e14; }
.public-brand-loading { justify-items:center; text-align:center; padding:28px 18px; }
.public-brand-loading img { width:150px; max-width:70%; }
.public-portal-card.renewal-callout { border-color:#e9bd88; background:linear-gradient(180deg,#fff9ef,#fffdf8); box-shadow:0 14px 34px #d07e431c; }
.public-portal-card h1, .public-portal-card h2 { margin:0; }
.public-portal-card h2 { font-size:17px; }
.public-portal-card > small, .public-summary small { color:#7c8576; font-size:10px; font-weight:900; text-transform:uppercase; }
.public-section-heading { display:flex; justify-content:space-between; gap:10px; align-items:center; }
.public-agenda-badge { padding:8px 12px; border-radius:999px; color:#fffaf2; background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep)); font-size:12px; font-weight:900; box-shadow:0 10px 20px #2d4c3830; }
.public-help { margin:0; color:#65746e; font-size:13px; line-height:1.45; }
.public-open-agenda { min-height:50px; border-radius:14px; background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep)); box-shadow:0 14px 28px #2f4a3930; }
.renewal-callout .public-open-agenda { background:linear-gradient(135deg,#e0a064,var(--brand-caramel)); box-shadow:0 14px 28px #d07e4330; }
.public-install-card { grid-template-columns:1fr auto; align-items:center; border-color:#dec39f; background:linear-gradient(135deg,#fffefa,#fff3df); }
.public-install-card h2 { font-size:16px; }
.public-install-button { min-height:42px; border-radius:13px; background:linear-gradient(135deg,#e0a064,var(--brand-caramel)); box-shadow:0 12px 24px #d07e4330; white-space:nowrap; }
.public-install-help { display:grid; gap:14px; justify-items:center; padding:20px; text-align:center; }
.public-install-help img { width:140px; max-width:70%; }
.public-install-help h2, .public-install-help p { margin:0; }
.public-install-help p { color:#65746e; line-height:1.45; }
.public-instructions-card { grid-template-columns:1fr auto; align-items:center; background:linear-gradient(135deg,#fffefa,#f2f5ef); }
.public-instructions-card h2 { font-size:16px; }
.public-instructions-button { min-height:42px; border-radius:13px; color:#465341; border-color:#cfd8c8; background:#fffefa; white-space:nowrap; }
.public-instructions-modal { display:grid; gap:16px; padding:18px; }
.public-instructions-modal header { display:flex; gap:12px; align-items:center; }
.public-instructions-modal header img { width:72px; height:72px; object-fit:contain; padding:8px; border-radius:16px; background:#f3efe5; }
.public-instructions-modal header small { display:block; color:#7c8576; font-size:10px; font-weight:900; text-transform:uppercase; }
.public-instructions-modal h2 { margin:4px 0 0; color:#263322; font-size:20px; }
.public-instructions-modal ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.public-instructions-modal li { position:relative; padding:11px 12px 11px 34px; border:1px solid #e3e8df; border-radius:13px; color:#344239; background:#fffefa; line-height:1.35; }
.public-instructions-modal li::before { content:""; position:absolute; left:13px; top:18px; width:8px; height:8px; border-radius:50%; background:var(--brand-caramel); box-shadow:0 0 0 4px #d07e4320; }
.public-summary { grid-template-columns:1fr 1fr; }
.public-summary div { display:grid; gap:6px; min-height:78px; padding:13px; border:1px solid #d8e4d8; border-radius:14px; background:linear-gradient(180deg,#f6fbf7,#eef6f0); }
.public-summary strong, .public-next { color:#087665; font-size:21px; }
.public-summary span { width:max-content; max-width:100%; padding:5px 9px; border-radius:999px; color:#69400c; background:#f7e0bd; font-size:11px; font-weight:900; }
.public-summary .final-validity { border-color:#e3b06f; background:linear-gradient(180deg,#fff7e8,#fffdfa); box-shadow:0 0 0 2px #f5d5a8 inset; }
.public-summary .final-validity small { color:#8a5b06; }
.public-summary .final-validity strong { color:#ad6420; }
.public-summary .final-validity span { color:#31512b; background:#dff4c9; }
.public-request-form { display:grid; gap:11px; }
.public-request-form label { display:grid; gap:6px; color:#53645e; font-size:12px; font-weight:800; }
.public-request-form input, .public-request-form textarea { min-height:44px; border-radius:10px; font-size:16px; }
.public-request-form button { min-height:48px; border-radius:10px; }
.public-history { display:grid; gap:8px; }
.public-history article, .public-history-action { display:flex; justify-content:space-between; gap:10px; align-items:center; width:100%; padding:12px; border:1px solid #e3e8df; border-radius:14px; text-align:left; background:#fffefa; }
.public-history-action { border-color:#cfdcca; background:linear-gradient(180deg,#f8fbf6,#eff6ee); cursor:pointer; }
.public-history-action span { flex:0 0 auto; padding:6px 9px; border-radius:999px; color:#fffaf2; background:linear-gradient(135deg,var(--brand-green),var(--brand-green-deep)); font-size:11px; font-weight:900; }
.public-history article.locked { opacity:.75; }
.public-history small { display:block; margin-top:5px; color:#6a7973; }
.agenda-online-body { background:#0f1510; overflow-x:hidden; }
.agenda-online-body, .agenda-online-body .page { max-width:100vw; }
.agenda-online-route .topbar, .agenda-online-route .sidebar, .agenda-online-route .overlay,
.agenda-online-body .topbar, .agenda-online-body .sidebar, .agenda-online-body .overlay { display:none !important; }
.agenda-online-body .page { width:100%; max-width:none; margin:0; }
.agenda-online-page { min-height:100vh; padding:18px; color:#fff6ea; background:radial-gradient(circle at 20% 0%, #8b5b2c66, transparent 32%), linear-gradient(160deg,#10170f 0%,#1f2b1e 48%,#0b0f0c 100%); }
.agenda-online-loading { display:grid; gap:10px; width:min(430px,100%); margin:20vh auto 0; padding:28px; border:1px solid #d9a15d55; border-radius:22px; background:#172014; box-shadow:0 22px 60px #0008; }
.agenda-online-loading h1 { margin:0; }
.agenda-online-topbar { display:flex; justify-content:center; align-items:center; width:min(520px,100%); margin:0 auto 0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.agenda-online-topbar img { display:block; width:min(360px,90vw); height:auto; max-height:128px; object-fit:contain; }
.agenda-online-hero { display:grid; gap:18px; width:min(520px,100%); margin:0 auto; padding:0 0 20px; }
.agenda-online-copy { display:grid; justify-items:center; gap:14px; padding-top:0; text-align:center; }
.online-kicker { width:max-content; padding:7px 11px; border:1px solid #d6a65f66; border-radius:999px; color:#f7c987; background:#2b2113; font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.agenda-online-copy h1 { margin:0; font-size:42px; line-height:1; letter-spacing:0; }
.agenda-online-copy p { margin:0; color:#dfd4c2; font-size:16px; line-height:1.5; }
.online-cta, .online-submit { position:relative; display:grid; place-items:center; min-height:52px; padding:14px 18px; overflow:hidden; border-radius:14px; color:#20140a; background:linear-gradient(135deg,#ffd089,#c97834); font-weight:950; text-decoration:none; box-shadow:0 16px 36px #c9783444; transition:transform .16s, background .16s, box-shadow .16s; }
.online-cta::after { content:""; position:absolute; inset:-40% auto -40% -50%; width:42%; transform:skewX(-18deg); background:linear-gradient(90deg,transparent,#fff8,transparent); animation:onlineShine 2.4s infinite; }
.online-cta:active, .online-submit:active { transform:scale(.98); }
.online-submit.is-sending, .online-submit.is-success, .online-submit:active { color:white; background:linear-gradient(135deg,#18a66f,#087b6f); box-shadow:0 16px 36px #087b6f45; }
.online-submit.is-success { cursor:default; box-shadow:0 0 0 3px #18a66f22, 0 18px 38px #087b6f4f; }
.online-submit.is-error { color:white; background:linear-gradient(135deg,#ef6358,#b91c1c); box-shadow:0 0 0 3px #ef635822, 0 18px 38px #b91c1c45; }
.agenda-online-photo { position:relative; min-height:340px; overflow:hidden; border:1px solid #d6a65f55; border-radius:28px; background:linear-gradient(145deg,#273323,#10140f); box-shadow:0 28px 70px #0009; }
.agenda-online-photo img { width:100%; height:100%; min-height:340px; object-fit:cover; object-position:center top; display:block; }
.agenda-online-photo.missing-image { display:grid; place-items:center; }
.agenda-online-photo.missing-image::after { content:""; display:block; width:92px; height:92px; border-radius:50%; border:1px solid #d6a65f66; }
.agenda-online-panel { display:grid; gap:16px; width:min(520px,100%); margin:0 auto; padding:18px; border:1px solid #d6a65f3f; border-radius:24px; background:#fff9f0; color:#172019; box-shadow:0 24px 70px #0007; }
.online-panel-heading { display:grid; gap:4px; }
.online-panel-heading small { color:#b66a00; font-size:11px; font-weight:950; text-transform:uppercase; }
.online-panel-heading h2 { font-size:25px; }
.online-date-label { position:relative; color:#263123; font-size:13px; font-weight:900; }
.online-date-label span { display:flex; justify-content:space-between; gap:8px; align-items:center; }
.online-date-label b { position:relative; color:#b66a00; font-size:11px; font-weight:950; }
.online-date-label b::before { content:""; position:absolute; left:50%; top:-38px; width:18px; height:18px; border-right:4px solid #c97834; border-bottom:4px solid #c97834; transform:translateX(-50%) rotate(45deg); animation:onlineArrowBounce 1s infinite; pointer-events:none; filter:drop-shadow(0 4px 6px #c9783440); }
.online-date-label input { min-height:48px; border-radius:14px; font-size:16px; }
.online-slots-guide { display:flex; gap:8px; align-items:center; margin-top:-4px; color:#6a5b45; font-size:12px; font-weight:900; }
.online-slots-guide span { display:block; width:18px; height:18px; border-radius:50%; background:linear-gradient(135deg,#ffd089,#c97834); box-shadow:0 0 0 5px #f4b45f22; }
.online-slots { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.online-slots p { grid-column:1 / -1; margin:0; color:#617168; }
.online-slots button { display:grid; gap:5px; min-height:78px; padding:12px; border:1px solid #f1c98b; border-radius:16px; color:#8a4d08; background:#fff5e3; text-align:left; box-shadow:inset 0 0 0 1px #fff; }
.online-slots button strong { font-size:25px; }
.online-slots button small { color:#6a5b45; font-weight:800; }
.online-slots button.selected { border-color:#c97834; color:#172019; background:linear-gradient(135deg,#ffd089,#f4b45f); box-shadow:0 14px 26px #c9783433; }
.online-booking-form { display:grid; gap:12px; }
.online-booking-form label { color:#263123; font-size:12px; font-weight:900; }
.online-booking-form input, .online-booking-form select, .online-booking-form textarea { min-height:48px; border-radius:14px; font-size:16px; }
.online-booking-form textarea { min-height:94px; }
.online-note { margin:0; color:#6f7a72; font-size:12px; text-align:center; }
.online-admin-grid { display:grid; grid-template-columns:minmax(280px,380px) 1fr; gap:18px; align-items:start; }
.online-admin-preview, .online-admin-requests { display:grid; gap:12px; }
.admin-phone-shell { padding:12px; border-radius:28px; background:#151b13; box-shadow:0 18px 45px #26312322; }
.admin-online-mini { overflow:hidden; border:1px solid #d6a65f55; border-radius:22px; color:#fff6ea; background:#10170f; }
.mini-hero { display:grid; min-height:260px; align-content:end; position:relative; padding:16px; background:linear-gradient(160deg,#273323,#10170f); }
.mini-hero img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.78; }
.mini-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#10170f 8%,transparent 70%); }
.mini-hero div { position:relative; z-index:1; display:grid; gap:7px; }
.mini-hero span { color:#f7c987; font-size:10px; font-weight:950; text-transform:uppercase; }
.mini-hero h3, .mini-hero p { margin:0; }
.mini-hero h3 { font-size:24px; line-height:1; }
.mini-hero p { color:#e5d7c4; font-size:12px; line-height:1.4; }
.mini-slots { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:12px; background:#fff9f0; }
.mini-slots span { padding:10px; border-radius:12px; color:#8a4d08; background:#fff0d1; font-weight:950; }
.admin-online-mini button { width:calc(100% - 24px); margin:0 12px 12px; padding:12px; border-radius:12px; color:#20140a; background:linear-gradient(135deg,#ffd089,#c97834); font-weight:950; }
.online-admin-link { display:grid; gap:5px; padding:12px; border:1px solid #dce5df; border-radius:10px; background:#f8faf6; }
.online-admin-link span { color:#087b6f; font-size:12px; word-break:break-all; }
.online-admin-requests h3 { margin:0; }
.online-request-list { display:grid; gap:12px; max-height:650px; overflow-y:auto; padding-right:6px; }
.online-request-list::-webkit-scrollbar { width:8px; }
.online-request-list::-webkit-scrollbar-thumb { border-radius:999px; background:#cbd8d2; }
.online-request-card { display:grid; gap:12px; padding:14px; border:1px solid #e0e8e4; border-radius:10px; background:white; }
.online-request-card.pending { border-color:#f1c98b; background:#fff8ed; }
.online-request-card strong, .online-request-card small, .online-request-card span { display:block; }
.online-request-card small { margin-top:4px; color:#6b7973; }
.online-request-card p { margin:10px 0; color:#334039; line-height:1.45; }
.online-request-card span { width:max-content; padding:5px 9px; border-radius:999px; color:#8a4d08; background:#fff0d1; font-size:11px; font-weight:900; }
.affiliate-ref-badge { padding:10px 12px; border:1px solid #c7e6db; border-radius:12px; color:#087b6f; background:#f0fbf7; font-size:13px; font-weight:800; }
.affiliate-share-panel { display:grid; gap:12px; padding:14px; border:1px solid #f1c98b; border-radius:16px; color:#20140a; background:linear-gradient(135deg,#fff8ed,#fff0d1); box-shadow:0 12px 28px #c9783420; }
.affiliate-share-panel small { color:#b66a00; font-size:10px; font-weight:950; text-transform:uppercase; }
.affiliate-share-panel strong { display:block; margin-top:4px; color:#7a4d00; font-size:20px; }
.affiliate-share-panel p { margin:7px 0 0; color:#5f4b2e; font-size:13px; line-height:1.45; }
.affiliate-share-panel button { min-height:50px; border-radius:14px; color:#20140a; background:linear-gradient(135deg,#ffd089,#c97834); font-weight:950; box-shadow:0 12px 26px #c9783433; }
.affiliate-share-panel-top { width:min(520px,100%); margin:14px auto 16px; }
.affiliate-coupon-banner { display:flex; align-items:center; flex-wrap:wrap; gap:10px; width:min(520px,100%); max-width:100%; min-width:0; margin:0 auto 14px; padding:12px 14px; border:1px solid #f1c98b; border-radius:16px; color:#20140a; background:linear-gradient(135deg,#fff8ed,#ffd089); box-shadow:0 14px 30px #0004; }
.affiliate-coupon-info { display:flex; align-items:center; gap:9px; flex:1; min-width:0; }
.affiliate-coupon-banner small { color:#8a4d08; font-size:11px; font-weight:950; text-transform:uppercase; flex-shrink:0; }
.affiliate-coupon-banner strong { color:#172019; font-size:18px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.affiliate-coupon-banner span { padding:7px 9px; border-radius:999px; color:#063f35; background:#dff8ef; font-size:12px; font-weight:950; white-space:nowrap; flex-shrink:0; }
.affiliate-coupon-share-btn { flex-shrink:0; display:flex; align-items:center; gap:6px; padding:9px 14px; border-radius:10px; background:#172019; color:#c8a96e; font-size:12px; font-weight:800; border:1px solid rgba(200,169,110,0.35); white-space:nowrap; transition:all 0.15s; }
.affiliate-coupon-share-btn:hover { background:#263123; }
.affiliate-overview { display:grid; grid-template-columns:minmax(260px,1fr) 1.5fr; gap:18px; padding:18px 20px; }
.affiliate-overview-copy { display:grid; gap:6px; align-content:center; }
.affiliate-overview-copy small { color:#087b6f; font-size:10px; font-weight:900; text-transform:uppercase; }
.affiliate-overview-copy h2 { font-size:24px; }
.affiliate-overview-copy p { margin:0; color:#65746e; line-height:1.45; }

/* ─── ADMIN AFILIADOS REDESIGN ─── */
.adm-af-header { padding:18px 20px; display:flex; flex-direction:column; gap:16px; }
.adm-af-title-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.adm-af-eyebrow { display:block; font-size:10px; font-weight:900; text-transform:uppercase; color:#087b6f; letter-spacing:0.6px; margin-bottom:4px; }
.adm-af-title { font-size:22px; font-weight:800; color:#172019; margin:0; }
.adm-af-signup-link-btn { display:flex; align-items:center; gap:7px; padding:10px 16px; border-radius:10px; background:linear-gradient(135deg,#2d4028,#1e2a1b); color:#c8a96e; font-size:13px; font-weight:800; border:1px solid rgba(200,169,110,0.3); box-shadow:0 3px 10px rgba(20,26,18,0.2); transition:all 0.15s; white-space:nowrap; }
.adm-af-signup-link-btn:hover { box-shadow:0 5px 16px rgba(20,26,18,0.3); transform:translateY(-1px); }
.adm-af-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
@media(max-width:600px) { .adm-af-kpis { grid-template-columns:repeat(2,1fr); } }
.adm-af-kpi { background:#f4f6f2; border-radius:10px; padding:12px; border:1px solid #e4e8e2; }
.adm-af-kpi strong { display:block; font-size:20px; font-weight:900; color:#172019; }
.adm-af-kpi small { display:block; font-size:11px; color:#6a7e6a; margin-top:2px; }
.adm-af-kpi--money strong { color:#2d4028; font-size:16px; }

/* SEÇÕES */
.adm-af-section { padding:16px 18px; }
.adm-af-section-header { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; }
.adm-af-section-title { display:flex; align-items:center; gap:8px; }
.adm-af-section-title span { font-size:18px; }
.adm-af-section-title h3 { font-size:15px; font-weight:800; color:#172019; margin:0; }
.adm-af-icon-btn { display:flex; align-items:center; gap:6px; padding:7px 12px; border-radius:8px; background:#f0f2ee; border:1px solid #e0e4de; color:#3a4e3a; font-size:12px; font-weight:700; transition:all 0.15s; }
.adm-af-icon-btn:hover { background:#e4e8e2; }

/* FORM CRIAR */
.adm-af-create-details summary { display:none; }
.adm-af-create-details[open] { margin-bottom:14px; background:#f8faf6; border-radius:10px; padding:14px; border:1px solid #e0e4de; }
.adm-af-create-form { display:flex; flex-direction:column; gap:10px; }
.adm-af-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media(max-width:500px) { .adm-af-form-grid { grid-template-columns:1fr; } }
.adm-af-create-form label { font-size:12px; font-weight:700; color:#3a4e3a; display:flex; flex-direction:column; gap:4px; }
.adm-af-create-form input, .adm-af-create-form select { padding:8px 10px; border-radius:8px; border:1.5px solid #dde1da; font-size:13px; }

/* CARDS AFILIADO */
.adm-af-cards-list { display:flex; flex-direction:column; gap:10px; }
.adm-af-card { background:#fff; border:1px solid #e4e8e2; border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; gap:12px; transition:box-shadow 0.15s; }
.adm-af-card:hover { box-shadow:0 3px 12px rgba(20,26,18,0.09); }
.adm-af-card-main { display:flex; align-items:flex-start; gap:12px; }
.adm-af-card-avatar { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#2d4028,#1e2a1b); color:#c8a96e; font-size:14px; font-weight:900; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.adm-af-card-info { flex:1; min-width:0; }
.adm-af-card-top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:6px; }
.adm-af-card-top strong { font-size:14px; font-weight:800; color:#172019; }
.adm-af-status { padding:3px 8px; border-radius:999px; font-size:11px; font-weight:700; }
.adm-af-status--active { background:#e8f5e9; color:#2e7d32; }
.adm-af-status--inactive { background:#f5f5f5; color:#757575; }
.adm-af-card-meta { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.adm-af-coupon { font-size:12px; font-weight:800; color:#2d4028; background:#f0f7f0; padding:3px 8px; border-radius:6px; }
.adm-af-tier { font-size:11px; font-weight:700; padding:3px 8px; border-radius:999px; }
.adm-af-tier--junior { background:#e8f5e9; color:#2e7d32; }
.adm-af-tier--senior { background:#fff8e1; color:#92610a; }
.adm-af-commission { font-size:12px; font-weight:800; color:#e07b39; }
.adm-af-leads-count { font-size:11px; color:#8a9e87; }
.adm-af-pix { font-size:11px; color:#6a7e6a; margin-top:4px; display:flex; align-items:center; gap:4px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* BOTÕES AÇÕES */
.adm-af-card-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; padding-top:8px; border-top:1px solid #f0f2ee; }
.adm-af-btn { display:flex; align-items:center; gap:5px; padding:6px 11px; border-radius:7px; font-size:12px; font-weight:700; transition:all 0.15s; }
.adm-af-btn--agenda { background:#e8f5e9; color:#2e7d32; border:1px solid #c8e6c9; }
.adm-af-btn--agenda:hover { background:#c8e6c9; }
.adm-af-btn--panel { background:#e3f2fd; color:#1565c0; border:1px solid #bbdefb; }
.adm-af-btn--panel:hover { background:#bbdefb; }
.adm-af-btn--portal { background:#fff3e0; color:#e65100; border:1px solid #ffe0b2; }
.adm-af-btn--edit { background:#f3f0ff; color:#5e35b1; border:1px solid #d1c4e9; }
.adm-af-btn--edit:hover { background:#d1c4e9; }
.adm-af-btn--logs { background:#f5f5f5; color:#616161; border:1px solid #e0e0e0; }
.adm-af-btn--delete { background:#fce4ec; color:#c62828; border:1px solid #ef9a9a; margin-left:auto; }
.adm-af-btn--delete:hover { background:#ef9a9a; }
.affiliate-kpis { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.affiliate-kpis div { display:grid; gap:6px; min-height:72px; padding:13px; border:1px solid #c7e6db; border-radius:8px; background:#f0fbf7; }
.affiliate-kpis small { color:#697970; font-size:10px; font-weight:800; text-transform:uppercase; }
.affiliate-kpis strong { color:#087b6f; font-size:20px; }
.affiliates-grid { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:16px; align-items:start; }
.affiliate-form, .affiliate-panel { display:grid; gap:12px; }
.affiliate-form h3, .affiliate-panel h3 { margin:0; }
.affiliate-list { display:grid; gap:10px; }
.affiliate-card { display:flex; justify-content:space-between; gap:12px; align-items:center; padding:12px; border:1px solid #e0e8e4; border-radius:8px; background:white; }
.affiliate-card small { display:block; margin-top:5px; color:#66758c; font-size:11px; }
.affiliate-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.affiliate-create-card { padding:13px; border:1px solid #d9e6e2; border-radius:8px; background:#fbfdfc; }
.affiliate-create-card summary, .affiliate-collapsible summary { display:flex; justify-content:space-between; gap:12px; align-items:center; cursor:pointer; font-weight:800; list-style:none; }
.affiliate-create-card summary::-webkit-details-marker, .affiliate-collapsible summary::-webkit-details-marker { display:none; }
.affiliate-create-card summary::after, .affiliate-collapsible summary::after { content:"+"; color:#087b6f; font-size:18px; line-height:1; }
.affiliate-create-card[open] summary::after, .affiliate-collapsible[open] summary::after { content:"-"; }
.affiliate-create-card form { margin-top:13px; }
.affiliate-collapsible summary { min-height:54px; padding:0 20px; border-bottom:1px solid transparent; }
.affiliate-collapsible[open] summary { border-bottom-color:#e4ebe8; }
.affiliate-collapsible summary b { color:#087b6f; font-size:11px; }
.affiliate-filters { display:grid; grid-template-columns:repeat(6,1fr) auto; gap:12px; align-items:end; }
.affiliate-table-wrap .table-scroll { max-height:520px; }
.affiliate-main-grid { display:grid; grid-template-columns:1fr; gap:18px; }
.affiliate-directory .content { padding-top:14px; }
.affiliate-public-page { min-height:100vh; display:grid; gap:14px; align-content:start; width:min(100%,720px); margin:0 auto; padding:14px; }
.affiliate-public-hero { border-radius:0 0 18px 18px; }
.affiliate-section-menu { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding:8px; border:1px solid #d9e6e2; border-radius:14px; background:#fbfdfc; }
.affiliate-section-menu button { min-height:40px; border-radius:10px; color:#087b6f; background:#edf8f4; font-weight:900; }
.affiliate-public-stats { grid-template-columns:repeat(4,1fr); }
.affiliate-public-stats div { display:grid; gap:5px; min-height:72px; padding:12px; border:1px solid #c7e6db; border-radius:10px; background:#f0fbf7; }
.affiliate-public-stats small { color:#697970; font-size:10px; font-weight:800; text-transform:uppercase; }
.affiliate-public-stats strong { color:#087b6f; font-size:20px; }
.affiliate-public-leads { display:grid; gap:10px; }
.affiliate-public-leads article { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid #e0e8e4; border-radius:10px; background:#fbfdfc; }
.affiliate-public-leads small, .affiliate-public-leads span { display:block; margin-top:5px; color:#65746e; font-size:11px; }
.affiliate-public-leads button { margin-top:9px; }
.affiliate-patient-portal-button { min-height:38px; padding:9px 12px; border-radius:10px; font-size:12px; white-space:nowrap; }
.affiliate-public-commissions { display:grid; gap:10px; }
.affiliate-public-commissions article { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid #d9e6ff; border-radius:10px; background:#f7faff; }
.affiliate-public-commissions small, .affiliate-public-commissions span { display:block; margin-top:5px; color:#65746e; font-size:11px; }
.affiliate-public-commissions article > div:last-child { text-align:right; }
.modal-card:has(.public-availability-modal) { width:min(460px, calc(100% - 24px)); padding:0; border-radius:18px; }
.public-availability-modal { display:grid; gap:14px; padding:16px; }
.public-availability-modal header { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.public-availability-modal header small { color:#697970; font-size:10px; font-weight:800; text-transform:uppercase; }
.public-availability-modal header h2 { margin:4px 0 0; font-size:20px; }
.public-availability-modal header button { color:#6c7b74; font-size:22px; }
.public-availability-modal label { display:grid; gap:7px; color:#53645e; font-size:12px; font-weight:800; }
.public-availability-modal input, .public-availability-modal textarea { min-height:44px; border-radius:10px; font-size:16px; }
.public-slots { display:grid; grid-template-columns:1fr 1fr; gap:9px; }
.public-slots p { grid-column:1/-1; margin:0; color:#65746e; }
.public-slots button { display:grid; gap:4px; min-height:64px; padding:11px; border:1px solid #c7e6db; border-radius:12px; text-align:left; background:#f0fbf7; }
.public-slots button.available { color:#087b6f; }
.public-slots button.busy { color:#8b5a5a; border-color:#edd0d0; background:#fff5f5; opacity:.75; }
.public-slots strong { font-size:18px; }
.public-slots small { font-size:11px; }
.muted { color:#73817b; }
.field-row { display:flex; flex-wrap:wrap; gap:12px; }
.field-row label { flex:1; min-width:140px; }
.auth-page { min-height: calc(100vh - 58px); display:grid; place-items:center; padding:20px; }
.auth-card { width:min(420px,100%); padding:26px; background:white; border-radius:12px; box-shadow:0 8px 28px #19392a18; }
.auth-card h2 { margin-bottom:8px; font-size:22px; }
.auth-card form { display:grid; gap:13px; margin-top:20px; }
.auth-actions { display:flex; gap:10px; }
.auth-actions button { flex:1; }
.secondary-button { padding:11px 16px; border:1px solid #bdd0c9; border-radius:6px; color:#377261; background:white; font-weight:700; }
.session-bar { display:flex; justify-content:flex-end; align-items:center; gap:12px; margin-bottom:-8px; color:#5c6e67; font-size:12px; }
.error { color:#bc2626; }
.profile-card { display:flex; justify-content:space-between; gap:12px; margin-top:12px; padding:15px; border:1px solid #dfe8e5; border-radius:7px; }
.profile-card p { margin:8px 0; color:#65746e; }
.profile-main { flex:1; }
.profile-select { display:flex; align-items:center; gap:6px; align-self:center; color:#65746e; }
.patient-list-toolbar { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.patient-list-toolbar > input { flex:1; min-width:220px; }
.patient-list-toolbar label { display:flex; align-items:center; gap:6px; }
.profile-actions { display:flex; align-items:center; gap:8px; }
.danger-button { padding:11px 16px; border-radius:6px; color:white; background:#cf3636; font-weight:700; }
.small-button { padding:7px 11px; }
.link-button { color:#087e91; text-decoration:underline; text-align:left; }
.patient-name { color:#172019; font-weight:700; text-decoration:none; }
.plan-button { border:0; cursor:pointer; }
.renew-badge { display:block; margin-top:6px; padding:4px 7px; border-radius:99px; color:#1d4ed8; background:#dbeafe; font-size:10px; font-weight:700; }
.return-list { display:grid; gap:5px; }
.return-tag { display:flex; gap:5px; align-items:center; width:max-content; padding:3px 7px; border-radius:99px; background:#e8f5ff; }
.return-tag.future, .return-tag.done { color:#047857; background:#ecfdf5; }
.return-tag.done { opacity:.6; text-decoration:line-through; }
.return-tag.late { color:#b91c1c; background:#fee2e2; }
.return-tag.pending-return { color:#c2410c; background:#ffedd5; }
.return-tag.scheduled { color:#15803d; background:#dcfce7; }
.return-tag.scheduled-late { color:#a16207; background:#fef9c3; }
.return-tag.portal-renewal { color:#1d4ed8; background:#dbeafe; }
.return-tag button { color:inherit; font-size:11px; }
.return-tag span { font-size:11px; font-weight:700; }
.row-actions { display:flex; flex-wrap:wrap; gap:5px; }
.row-actions button { padding:5px 7px; border-radius:5px; background:#eef3f1; color:#53645e; font-size:11px; }
.danger-link { color:#b52323; }
.hidden { display:none !important; }
.compact td, .compact th { padding-top:7px; padding-bottom:7px; }
.toast { position:fixed; right:20px; bottom:20px; z-index:8; padding:13px 17px; border-radius:7px; color:white; background:#1b936f; box-shadow:0 8px 24px #1b503733; font-weight:700; }
.modal-shell { position:fixed; inset:0; z-index:7; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top,12px) 20px env(safe-area-inset-bottom,12px); background:#0007; overscroll-behavior:contain; touch-action:pan-y; }
.modal-card { width:min(440px,100%); max-height:90vh; max-height:90dvh; overflow:auto; padding:20px; border-radius:10px; background:white; box-shadow:0 12px 35px #0003; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.modal-card:has(.patient-profile) { width:min(760px,100%); padding:0; }
.modal-card:has(.af-commission-modal) { width:min(640px,100%); padding:0; }
.modal-card h2 { margin-bottom:14px; }
.modal-card h3 { margin-top:18px; }
.modal-form { display:grid; gap:12px; }
.date-only-button { padding:11px 16px; border:1px solid #7bc8bb; border-radius:6px; color:#087b6f; background:#effcf9; font-weight:700; }
.modal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
.info-box { padding:11px; border:1px solid #c5e5ff; border-radius:6px; background:#eef7ff; }
.filter-list { display:grid; gap:10px; margin:14px 0; }
.filter-list label { display:flex; align-items:center; gap:8px; padding:13px; border:1px solid #e0e7e5; border-radius:7px; }
.full-button { width:100%; }
.patient-profile-header { display:flex; justify-content:space-between; align-items:center; padding:15px 18px; border-bottom:1px solid #e5e9ee; }
.patient-profile-header h2 { margin:0; font-size:16px; text-transform:uppercase; }
.patient-profile-header button { color:#8d99a8; font-size:20px; }
.profile-header-actions { display:flex; align-items:center; gap:12px; }
.whatsapp-share-button { color:#fff !important; background:#25d366; border:none; border-radius:7px; padding:8px 14px; font-size:12px !important; font-weight:600; white-space:nowrap; }
.whatsapp-share-button:hover { background:#1ebe5a; }
.profile-summary, .finance-summary { display:grid; grid-template-columns:1fr 1fr; gap:14px; padding:16px; }
.profile-summary div, .finance-summary div { display:grid; gap:6px; min-height:68px; padding:13px 15px; border:1px solid #dfe5ea; border-radius:7px; }
.profile-summary small, .finance-summary small, .current-plan-card small, .wallet-total small { color:#6e7b8e; font-size:10px; text-transform:uppercase; }
.profile-summary a { color:#008b7f; font-weight:700; }
.profile-section { padding:5px 16px 16px; border-top:1px solid #e2e7ec; }
.profile-section-title { display:flex; justify-content:space-between; align-items:center; padding:15px 0 8px; }
.profile-section-title h3 { margin:0; font-size:13px; }
.profile-section-title button { color:#008f83; font-size:11px; font-weight:700; }
.finance-summary { padding:6px 0 0; }
.finance-summary div:nth-child(1) { border-color:#a7ebbd; background:#effcf3; }
.finance-summary div:nth-child(2) { border-color:#b8d6ff; background:#eff6ff; }
.finance-summary div:nth-child(3) { border-color:#dfc4ff; background:#faf4ff; }
.finance-summary div:nth-child(4) { border-color:#c2ccff; background:#f2f4ff; }
.finance-summary strong { color:#087b46; font-size:16px; }
.finance-summary div:nth-child(n+2) strong { color:#3548dd; font-size:14px; }
.profile-tabs { display:flex; gap:4px; border-bottom:1px solid #dce3e8; }
.profile-tabs button { padding:12px 14px; color:#324051; font-size:12px; }
.profile-tabs .active { color:#008f83; border-bottom:2px solid #008f83; }
.profile-tab-content { min-height:150px; padding:14px 0 4px; }
.current-plan-card, .plan-history-card, .wallet-entry, .wallet-total { display:grid; gap:8px; margin-bottom:10px; padding:14px; border:1px solid #a4eadb; border-radius:7px; background:#f0fffb; }
.profile-consultations { display:flex; flex-wrap:wrap; gap:12px; }
.profile-consultations label { display:flex; align-items:center; gap:5px; color:#067b71; }
.profile-consultations button { color:#008f83; font-size:11px; text-decoration:underline; }
.completed-date { opacity:.65; text-decoration:line-through; }
.plan-history-card { border-color:#dfe5eb; background:#fbfcfd; }
.plan-history-card small, .wallet-entry small, .wallet-entry span { display:block; color:#687588; font-size:11px; }
.plan-history-card span { display:inline-block; margin:7px 12px 0 0; color:#087e71; font-size:12px; }
.wallet-total { border-color:#b8d6ff; background:#eff6ff; }
.wallet-total strong { color:#2753d7; font-size:26px; }
.wallet-entry { display:flex; justify-content:space-between; border-color:#dfe5eb; background:#fbfcfd; }
.wallet-entry > strong { color:#2753d7; font-size:16px; }
.empty-profile { padding:24px; color:#8b95a4; font-style:italic; text-align:center; }
.profile-footer { display:grid; grid-template-columns:1fr 1fr; gap:11px; padding:14px 16px; border-top:1px solid #e2e7ec; }
.profile-footer button:first-child { grid-column:1; }
.profile-footer .primary-button { grid-column:2; }
.profile-footer .danger-button { grid-column:1/-1; }
.removing { opacity:0; transform:translateX(15px); transition:.25s; }
/* Lixeira de afiliados */
.trash-affiliate-list { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.trash-affiliate-card { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:14px 16px; border:1px solid #f2d9d9; border-radius:8px; background:#fff9f9; transition:opacity .25s; }
.trash-af-info { display:flex; flex-direction:column; gap:4px; flex:1; }
.trash-af-info strong { font-size:14px; color:#1a1a1a; }
.trash-af-code code { font-size:12px; background:#f0f4f2; padding:2px 6px; border-radius:4px; color:#3a5a4a; font-family:monospace; }
.trash-af-meta { font-size:12px; color:#888; }
.trash-af-actions { display:flex; gap:8px; align-items:center; flex-shrink:0; }
@media (max-width:600px) { .trash-affiliate-card { flex-wrap:wrap; } .trash-af-actions { width:100%; } .trash-af-actions button { flex:1; } }
.backup-import { display:grid; gap:10px; margin-top:18px; padding:16px; border:1px solid #bdd0c9; border-radius:8px; background:#f8fbfa; }
.backup-import h3 { margin:0; }
.backup-import textarea { width:100%; }
.backup-import pre { white-space:pre-wrap; margin:0; color:#334039; }
@keyframes onlineShine {
  0% { left:-55%; }
  48%,100% { left:115%; }
}
@keyframes onlineArrowBounce {
  0%,100% { transform:translateX(-50%) translateY(0) rotate(45deg); opacity:.85; }
  50% { transform:translateX(-50%) translateY(5px) rotate(45deg); opacity:1; }
}
@media (min-width:801px) { .topbar { padding-left:92px; } .page { padding-left:74px; } .menu-button { display:none; } }
@media (max-width: 800px) { .sidebar { width:245px; transform:translateX(-105%); transition:transform .2s; } .sidebar.open { transform:translateX(0); } .sidebar-title button { display:block; } .brand-copy,.profile-copy,.backup-button span,.backup-button small,nav button span,.settings-button span:last-child { opacity:1 !important; } .page { width:min(100% - 16px,720px); margin:12px auto; gap:12px; } .topbar h1 { font-size:18px; } .patient-form { grid-template-columns:1fr; padding:14px; } .wide { grid-column:span 1; } .card-heading { gap:10px; padding:0 14px; } .heading-actions { flex-wrap:wrap; justify-content:flex-end; } .view-toggle { padding:7px 10px; font-size:12px; } .scroll-panel { max-height:470px; } .finance-payment-list.scroll-panel { max-height:500px; } .calendar-views,.calendar-toolbar,.table-toolbar,.content { padding-left:12px; padding-right:12px; } .calendar-toolbar { flex-wrap:wrap; } #calendarGrid { height:430px; } .week-grid { grid-template-columns:1fr; padding:0 12px 14px; } .month-grid { min-width:720px; } .annual-grid { grid-template-columns:1fr; padding:4px 12px 14px; } .stat-grid,.finance-stats,.portal-grid,.portal-stats,.portal-request-form,.affiliates-grid,.affiliate-public-stats,.affiliate-filters,.affiliate-overview,.affiliate-kpis { grid-template-columns:1fr; } .affiliate-card,.affiliate-public-leads article { flex-wrap:wrap; } .affiliate-actions { width:100%; justify-content:flex-start; } .affiliate-collapsible summary { padding:0 12px; } .portal-link-panel { display:grid; } .profile-summary,.finance-summary,.expense-form { grid-template-columns:1fr; } .profile-footer { grid-template-columns:1fr; } .profile-card { flex-wrap:wrap; } .profile-select { width:100%; } .profile-actions { width:100%; flex-wrap:wrap; } .profile-actions button { flex:1; } .check-actions { display:grid; grid-template-columns:1fr; } .finance-tabs,.checkin-tabs,.section-tabs { overflow-x:auto; flex-wrap:nowrap; padding-left:12px; padding-right:12px; } .finance-tabs button,.checkin-tabs button { flex:0 0 auto; white-space:nowrap; } .auth-card { padding:20px; } }
@media (max-width: 800px) { .online-admin-grid { grid-template-columns:1fr; } .agenda-online-copy h1 { font-size:36px; } .agenda-online-page { padding:14px; } .online-slots { gap:8px; } .online-slots button { min-height:72px; padding:10px; } .online-slots button strong { font-size:22px; } }

