@font-face{font-family:Brevia;src:url('./assets/brevia-bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--brand:#9483e0;--pink:#ffbbc7;--mint:#76dfcf;--ink:#342c50;--purple:#6250a6;--muted:#756e88;--line:#e6e1f2;--paper:#faf9fe;--tint:#f0ecfc;--hour:78px;--gutter:52px;--column:148px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px system-ui,-apple-system,sans-serif}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--purple);outline-offset:3px}header{background:white;border-bottom:3px solid var(--pink)}.head{max-width:1280px;margin:auto;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand-logo{width:245px;height:auto;display:block}.readonly{font-size:12px;color:var(--purple);background:var(--tint);border-radius:30px;padding:8px 12px;white-space:nowrap}main{max-width:1280px;margin:auto;padding:26px 28px 40px}h1,h2,.patient{font-family:Brevia,system-ui,sans-serif}h1{font-size:29px;line-height:1.2;margin:0 0 8px}.intro{color:var(--muted);margin:0 0 22px;line-height:1.5}.controls{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.navigation{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);background:white;border-radius:11px;padding:11px 14px;min-height:44px}.primary{background:var(--purple);color:white;border-color:var(--purple)}.arrow{font-size:20px;line-height:1;width:44px;padding:0}.segmented{display:flex;background:var(--tint);padding:4px;border-radius:12px;margin-right:auto}.segmented button{border:0;border-radius:9px;background:transparent;color:var(--purple);padding:10px 22px;min-height:40px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--brand);color:white;box-shadow:0 2px 4px #9483e030}.date{background:white;border:1px solid var(--line);color:var(--ink);padding:10px;border-radius:11px;min-width:0;min-height:44px}.filters{display:flex;gap:10px}.filters input{min-width:0;flex:1;background:white;border:1px solid var(--line);border-radius:11px;padding:11px 14px}.filters select{background:white;border:1px solid var(--line);color:var(--ink);border-radius:11px;padding:10px;max-width:180px;min-width:0}.summary{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.summary h2{font-size:20px;margin:0;text-transform:capitalize}.summary span{color:var(--muted);font-size:12px;white-space:nowrap}.appointment{display:grid;grid-template-columns:95px 1fr auto;align-items:center;gap:20px;background:white;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:14px;padding:20px;margin-bottom:10px}.time strong{font-size:22px;letter-spacing:-.6px}.time small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.patient{font-size:17px;margin:0 0 5px;font-weight:700;overflow-wrap:anywhere}.procedure{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.badge{font-size:11px;font-weight:600;padding:7px 10px;border-radius:18px;white-space:nowrap;background:var(--tint);color:var(--purple)}.confirmed{background:#ddf8f2;color:#23695e}.completed{background:#efebff;color:#584298}.missed{background:#fff3da;color:#805914}.canceled{background:#ffe8ee;color:#913d58}.not_finalized{background:#fff0f4;color:#913d58}.block{border-style:dashed;background:#f5f3fa}.empty{text-align:center;padding:32px 18px;background:white;border:1px dashed #d9cfeb;border-radius:14px;color:var(--muted)}.empty strong{display:block;color:var(--ink);margin-bottom:8px}
.week-overview{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0 0 10px}.week-day{border:1px solid var(--line);background:white;border-radius:12px;padding:9px 2px;min-height:70px;display:grid;gap:3px;justify-items:center;font-size:11px;color:var(--muted)}.week-day strong{font-size:17px;color:var(--ink)}.week-day.active{background:var(--tint);border-color:var(--brand)}.week-day.has-items:after{content:'';width:5px;height:5px;background:var(--purple);border-radius:50%}.week-day.is-today strong{border-bottom:2px solid var(--mint)}.planner-help{font-size:12px;line-height:1.5;margin:0 0 12px;color:var(--muted)}.planner-scroll{overflow:auto;max-height:68vh;max-height:68svh;min-height:280px;border:1px solid var(--line);border-radius:14px;background:white;position:relative;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-color:var(--brand) var(--tint)}.planner-grid{display:grid;grid-template-columns:var(--gutter) repeat(7,minmax(var(--column),1fr));min-width:1088px;position:relative;isolation:isolate}.planner-corner{position:sticky;top:0;left:0;background:#f5f2fe;z-index:5;font-size:10px;color:var(--purple);display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:58px}.planner-heading{position:sticky;top:0;z-index:3;display:grid;align-content:center;gap:3px;height:58px;text-align:center;background:#f5f2fe;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--purple);font-size:12px;text-transform:capitalize}.planner-heading strong{font-size:17px;color:var(--ink)}.planner-heading.active{background:#e9e3fc;box-shadow:inset 0 -3px var(--brand)}.planner-heading.is-today{box-shadow:inset 0 -3px var(--mint)}.planner-hours{position:sticky;left:0;z-index:2;background:#fff;border-right:1px solid var(--line)}.hour-label{height:var(--hour);font-size:10px;color:var(--muted);text-align:center;padding-top:4px;border-top:1px solid var(--line)}.planner-column{position:relative;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 38px,#f3f0f8 38px,#f3f0f8 39px,transparent 39px,transparent 77px,var(--line) 77px,var(--line) 78px)}.planner-column.active{background-color:#fcfaff}.planner-column.is-today{background-color:#f4fffc}.planner-event{position:absolute;z-index:1;overflow:hidden;border:1px solid #ded5f5;border-left:3px solid var(--brand);border-radius:7px;padding:5px 6px;text-align:left;background:#f0ecfc;display:flex;flex-direction:column;gap:2px;color:var(--ink);line-height:1.2;min-width:0}.planner-event.confirmed{background:#e5faf5;border-color:#c4efe5;border-left-color:#52bba9}.planner-event.completed{background:#eee9fc;border-left-color:var(--brand)}.planner-event.missed{background:#fff5e3;border-color:#f1dfbc;border-left-color:#d4a452}.planner-event.canceled,.planner-event.not_finalized{background:#fff0f4;border-color:#f3d3de;border-left-color:#e69aaf}.planner-event.block{background:#f0eef5;border-color:#d3cce1;border-left-color:#90849f}.event-time{font-size:10px;font-weight:600;white-space:nowrap}.event-name{font-size:12px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-procedure,.event-status{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-status{margin-top:auto;font-weight:600}.planner-event.short .event-procedure,.planner-event.short .event-status{display:none}.planner-event.tiny .event-time{display:none}.empty-day{position:absolute;top:15px;left:8px;right:8px;text-align:center;color:#827993;font-size:11px;pointer-events:none}.week-empty{color:var(--muted);font-size:13px;margin:0 0 12px;padding:12px;background:var(--tint);border-radius:10px}
.bottom-tools{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.snapshot{font-size:12px;line-height:1.6;color:var(--muted);margin-bottom:16px}.snapshot strong{color:var(--purple);display:block;margin-bottom:3px}.import-area{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.import-area p{font-size:12px;color:var(--muted);margin:0;line-height:1.5;max-width:420px}.notice{font-size:13px;color:var(--purple);margin:8px 0 0;line-height:1.5}.notice:empty{display:none}.foot{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.7}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{border:1px solid var(--line);border-radius:20px;padding:24px;width:calc(100% - 32px);max-width:440px;color:var(--ink);box-shadow:0 20px 80px #342c5030}dialog::backdrop{background:#342c5080}.detail-heading{display:flex;justify-content:space-between;gap:12px;align-items:start}.detail-heading h2{margin:4px 0 18px;font-size:21px;overflow-wrap:anywhere}.close{padding:0;min-width:44px;font-size:24px}dialog dl{margin:0}dialog dt{font-size:12px;color:var(--muted);margin:16px 0 5px}dialog dd{margin:0;line-height:1.5;overflow-wrap:anywhere}.detail-readonly{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin:22px 0 0}
@media(max-width:650px){:root{--gutter:44px}.head{padding:16px;gap:10px}.brand-logo{width:205px}.readonly{font-size:10px;padding:7px 8px}main{padding:22px 14px 30px}h1{font-size:25px}.intro{font-size:13px;margin-bottom:18px}.navigation{gap:7px}.segmented{width:100%;margin:0 0 2px}.segmented button{flex:1;padding:10px}.date{flex:1;width:0;font-size:16px;padding:8px}.btn{padding:10px 12px}.arrow{padding:0;flex:none}.filters{gap:7px}.filters input{font-size:16px;padding:11px 10px;width:0}.filters select{font-size:13px;max-width:143px;width:143px;padding:8px}.summary{align-items:start}.summary h2{font-size:16px;line-height:1.4}.summary span{font-size:11px;white-space:normal;text-align:right;max-width:88px}.appointment{grid-template-columns:70px 1fr;gap:12px;padding:17px 14px}.appointment .badge{grid-column:2;justify-self:start}.time strong{font-size:20px}.patient{font-size:15px}.week-overview{gap:4px}.week-day{border-radius:9px;min-height:66px;font-size:10px}.week-day strong{font-size:16px}.planner-grid{min-width:1080px}.planner-help{font-size:11px}.import-area{display:block}.import-area .btn{width:100%;margin-bottom:9px}.brand-logo{max-width:62vw}}
.legend-wrap{margin-bottom:18px}.legend-caption{font-size:11px;color:var(--muted);margin:0 0 8px}.status-legend{display:flex;flex-wrap:wrap;gap:7px}.status-key{display:flex;align-items:center;gap:6px;font-size:11px;border:1px solid transparent;border-radius:8px;padding:8px 9px;min-height:38px;font-weight:600}.status-key[aria-pressed=true]{outline:2px solid var(--purple);outline-offset:1px}.status-icon{display:inline-flex;justify-content:center;align-items:center;flex:none;width:18px;height:18px;border:1px solid currentColor;border-radius:50%;font-size:11px;font-weight:800;line-height:1}.scheduled{background:#f0ecfc;color:#6250a6}.confirmed{background:#ddf8f2;color:#23695e}.completed{background:#e7dff9;color:#503689}.missed{background:#fff3da;color:#805914}.canceled{background:#eeeef1;color:#61616c}.not_finalized{background:#ffe8ee;color:#913d58}.appointment{background:white;color:var(--ink)}.appointment.scheduled{border-left-color:var(--brand)}.appointment.confirmed{border-left-color:#52bba9}.appointment.completed{border-left-color:#6250a6}.appointment.missed{border-left-color:#d4a452}.appointment.canceled{border-left-color:#91919d}.appointment.not_finalized{border-left-color:#e69aaf}.planner-event.completed{background:#e7dff9;border-left-color:#6250a6;color:#503689}.planner-event.canceled{background:#eeeef1;border-color:#d7d7df;border-left-color:#91919d;color:#61616c}.planner-event.not_finalized{background:#ffe8ee;color:#913d58}.event-name{display:flex;gap:4px;align-items:center;flex-shrink:0}.event-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-name .status-icon{width:16px;height:16px;font-size:10px}.legend-note{font-size:10px;color:var(--muted);margin:7px 0 0;line-height:1.5}
@media(max-width:650px){.status-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.status-key{font-size:10px;padding:7px 4px;gap:4px;justify-content:center}.status-key .status-icon{width:15px;height:15px;font-size:10px}.legend-wrap{margin-bottom:15px}}
@media(max-width:360px){.status-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}
.status-key{min-height:44px}.event-time{font-size:11px}.event-name{font-size:13px}.planner-event.short{padding:3px 5px;gap:1px}.planner-event.tiny{padding:1px 4px}
@media(min-width:361px) and (max-width:650px){.status-key{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Pesquisa concentrada na lupa; calendário mensal com estados do desktop. */
[hidden]{display:none!important}
.page-title h1,.detail-heading h2{color:var(--purple)}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.page-title h1{margin:0}.search-button{position:relative;flex:none;width:46px;height:46px;display:grid;place-items:center;padding:10px;color:var(--dark-purple)}.search-button svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.search-button.has-filters::after{content:'';position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--teal)}
.active-filters{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f0ecff;border-radius:10px;padding:8px 12px;margin-bottom:18px;font-size:12px;color:var(--dark-purple)}.active-filters span{min-width:0;overflow-wrap:anywhere}.active-filters .btn{padding:8px 12px;font-size:12px;flex:none}
#search-form label{display:block;font-size:13px;font-weight:600;margin:16px 0 8px}#search-form input,#search-form select{width:100%;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);font:inherit;font-size:16px;min-height:48px;padding:11px 12px}.search-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.search-hint{font-size:12px;line-height:1.6;color:var(--muted);margin:14px 0}
.agenda-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:start}.agenda-main{min-width:0}.mini-calendar{background:#fff;border:1px solid var(--line);border-radius:12px;padding:13px}.mini-calendar summary{cursor:pointer;text-transform:capitalize;color:var(--dark-purple);font-size:14px;font-weight:700;min-height:44px;line-height:1.5;list-style-position:inside}.calendar-collapse-hint{display:block;margin:3px 0 0;font-size:10px;font-weight:400;color:var(--muted);text-transform:none}.mini-calendar-nav{display:grid;grid-template-columns:40px 1fr 40px;gap:6px;align-items:center;margin:12px 0}.mini-calendar-nav .btn{padding:5px;min-height:40px;color:var(--dark-purple)}.mini-calendar-weekdays,.mini-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:2px}.mini-calendar-weekdays{color:var(--muted);font-size:10px;margin-bottom:3px}.calendar-day{border:0;background:none;padding:0;min-height:30px;display:grid;place-items:center;font-size:12px;cursor:pointer;color:var(--ink)}.calendar-day span{border-radius:50%;display:grid;place-items:center;width:27px;height:27px}.calendar-day:hover span{background:var(--aqua)}.calendar-day.outside{opacity:.52}.calendar-day.has-appointment span{background:#e7f8f4;color:var(--dark-teal);font-weight:800}.calendar-day.calendar-current-day span,.calendar-day.calendar-current-day.has-appointment span{background:#eee9ff;color:var(--dark-purple);font-weight:900}.calendar-day.has-block span,.calendar-day.has-block.has-appointment span,.calendar-day.has-block.calendar-current-day span{background:#e5e4e9;color:#716b79;font-weight:800}.calendar-day.is-holiday span,.calendar-day.is-holiday.has-appointment span,.calendar-day.is-holiday.has-block span,.calendar-day.is-holiday.calendar-current-day span{background:#f6ecef;color:#a65f6d;font-weight:900}.calendar-day.selected span{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px;font-weight:800}.calendar-day.selected:not(.has-appointment):not(.has-block):not(.is-holiday):not(.calendar-current-day) span{background:transparent;color:var(--dark-purple)}
.mini-calendar-legend{display:grid;grid-template-columns:1fr 1fr;gap:7px 9px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line);color:#655d73;font-size:10px}.mini-calendar-legend span{display:flex;align-items:center;gap:6px;min-width:0}.mini-calendar-legend span::before{content:'';width:10px;height:10px;flex:none;border-radius:50%;box-sizing:border-box}.mini-legend-today::before{border:1px solid #cfc4ee;background:#eee9ff}.mini-legend-selected::before{height:8px;border-bottom:2px solid var(--purple);border-radius:0;background:transparent}.mini-legend-appointment::before{background:#e7f8f4}.mini-legend-block::before{background:#e5e4e9}.mini-legend-holiday::before{background:#f6ecef}
.planner-column.is-holiday{background-color:#fff9fa;background-image:repeating-linear-gradient(-45deg,rgba(190,66,88,.075) 0,rgba(190,66,88,.075) 4px,transparent 4px,transparent 11px),repeating-linear-gradient(to bottom,transparent 0,transparent 77px,#eadfe4 78px)}.planner-column.is-holiday .empty-day{color:#b9435d;font-weight:700}.planner-event.block{border:1px dashed #867b9f;border-left:5px solid #75668e;background:repeating-linear-gradient(-45deg,#f2eff8 0,#f2eff8 6px,#ebe6f4 6px,#ebe6f4 12px);color:#55486d}.planner-event.status-missed .event-time,.planner-event.status-missed .event-procedure{color:#eee8f1}
.planner-event.agenda-event::after{pointer-events:none}.planner-event.agenda-event .event-time{padding-right:15px}.agenda-event .event-status{opacity:.85}.badge.completed{background:#e4edf8;color:#195b93}.badge.missed,.status-key.missed{background:#61546b;color:#fff}.badge.not_finalized,.status-key.not_finalized{background:#fff0f4;color:#a93658}.status-icon{flex-shrink:0}.footer-legends summary{font-size:13px;color:var(--dark-purple);cursor:pointer;min-height:44px}.footer-legends .status-legend{margin-top:14px}.status-key{cursor:default}.type-legend{display:flex;gap:10px 16px;flex-wrap:wrap;font-size:12px;margin:12px 0}.type-legend span::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.legend-first::before{background:#3587d6}.legend-preventive::before{background:#54aa74}.legend-orthodontic::before{background:#e978a6}.legend-maintenance::before{background:#8c78d6}.legend-procedure::before{background:#d9822b}
@media(max-width:800px){.agenda-layout{display:block}.mini-calendar{margin-bottom:18px}.mini-calendar-days{gap:1px}.calendar-day{min-height:42px;font-size:13px}.calendar-day span{width:32px;height:32px}.mini-calendar-legend{grid-template-columns:repeat(3,minmax(0,1fr));font-size:10px}.mini-calendar summary{min-height:40px}.calendar-collapse-hint{display:inline;margin-left:10px}.page-title h1{font-size:23px}.search-actions .btn{flex:1}.planner-scroll{max-height:72vh;max-height:72svh}}
/* O planner só rola na horizontal; todo movimento vertical pertence à página. */
.agenda-layout{display:block}
.planner-scroll{height:868px;max-height:none;min-height:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-y:auto;touch-action:auto}
.planner-grid{--hour:72px;--half-hour:36px}
.planner-column{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--half-hour) - 1px),#f3f0f8 calc(var(--half-hour) - 1px),#f3f0f8 var(--half-hour),transparent var(--half-hour),transparent calc(var(--hour) - 1px),var(--line) calc(var(--hour) - 1px),var(--line) var(--hour))}
.planner-column.is-holiday{background-image:repeating-linear-gradient(-45deg,rgba(190,66,88,.075) 0,rgba(190,66,88,.075) 4px,transparent 4px,transparent 11px),repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--hour) - 1px),#eadfe4 var(--hour))}
.date-trigger{display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;white-space:nowrap;color:var(--ink)}.date-trigger svg{width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.date-trigger #date-label{min-width:0;font-size:14px}
#calendar-dialog{padding:20px;max-height:calc(100vh - 32px);max-height:calc(100svh - 32px);overflow-y:auto}#calendar-dialog .detail-heading h2{font-size:20px}.mini-calendar-month{margin:0;text-align:center;text-transform:capitalize;font-size:15px;font-weight:700;color:var(--dark-purple)}#calendar-dialog .mini-calendar{margin:0;padding:12px;border:0}#calendar-dialog .calendar-day{min-height:42px}#calendar-dialog .calendar-day span{width:32px;height:32px}
.planner-event.short{padding:2px 5px;gap:0}.planner-event.tiny{padding:1px 4px}
/* Cabeçalho acompanha a página, sincronizado com a rolagem horizontal do corpo. */
.planner-wrap{position:relative;height:868px;background:white;border:1px solid var(--line);border-radius:14px}
.planner-sticky-head{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:var(--gutter) minmax(0,1fr);height:58px;background:#f5f2fe;border-radius:13px 13px 0 0}
.planner-header-viewport{overflow:hidden;min-width:0;border-radius:0 13px 0 0}
.planner-header-track{display:grid;grid-template-columns:repeat(7,minmax(var(--column),1fr));width:1036px;will-change:transform}
.planner-heading{position:relative;top:auto}
.planner-corner{position:relative;top:auto;left:auto;border-radius:13px 0 0 0}
.planner-scroll{height:808px;border:0;border-radius:0 0 13px 13px}
.planner-end-label{position:absolute;bottom:1px;left:0;right:0;background:white;text-align:center;font-size:10px;color:var(--muted)}
.page-actions{display:flex;gap:7px;flex:none}.search-button{width:44px;height:44px;min-height:44px}
.settings-feedback{font-size:12px;line-height:1.5;color:var(--purple);margin:0 0 12px}.settings-feedback:empty{display:none}
textarea{font:inherit;color:var(--ink)}dialog{max-height:calc(100vh - 32px);max-height:calc(100svh - 32px);overflow-y:auto;overscroll-behavior:contain}
#settings-form fieldset{border:0;padding:0;margin:0 0 22px;min-width:0}#settings-form legend{font-weight:700;color:var(--purple);padding:0;margin-bottom:4px}
#settings-form label,.whatsapp-panel label{display:block;font-size:13px;font-weight:600;margin:15px 0 7px}
#settings-form select,#settings-form textarea,.whatsapp-panel select,.whatsapp-panel input,.whatsapp-panel textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:10px;background:white;color:var(--ink);font:inherit;font-size:16px;min-height:44px}
textarea{resize:vertical;line-height:1.5}textarea:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
.settings-hours{display:grid;grid-template-columns:1fr 1fr;gap:12px}.message-variables{font-size:12px;color:var(--muted);line-height:1.6;margin-top:12px}.message-variables summary{min-height:44px;cursor:pointer;color:var(--purple)}.message-variables code{color:var(--purple);overflow-wrap:anywhere}
.form-error{font-size:13px;color:#a93658;line-height:1.5}.form-error:empty{display:none}
.detail-eyebrow{font-size:11px;color:var(--muted);margin:0 0 5px}.whatsapp-panel{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.whatsapp-panel h3{font-size:16px;color:var(--purple);margin:0 0 8px}.contact-info{font-size:12px;color:var(--muted);line-height:1.6;overflow-wrap:anywhere;margin:0}
.whatsapp-action{display:block;text-align:center;text-decoration:none;background:#267664;color:white;border-color:#267664;font-weight:600}.whatsapp-panel button:disabled{display:block;width:100%;color:var(--muted);background:#f5f3fa;cursor:default}.appointment[role=button]{cursor:pointer}.appointment[role=button]:focus-visible{outline:3px solid var(--purple);outline-offset:2px}
@media(max-width:650px){.page-title{gap:7px}.page-title h1{font-size:21px}.page-actions{gap:5px}dialog{padding:18px}.detail-heading h2{font-size:19px}.planner-header-track{width:1036px}}
@media(max-width:360px){.page-title h1{font-size:18px}.readonly{font-size:9px}.head{gap:5px}}
#detail-body{display:grid;grid-template-columns:75px minmax(0,1fr);align-items:start;gap:12px 10px;margin-top:4px}#detail-body dt,#detail-body dd{margin:0}#detail-body dt{padding-top:2px}#detail-body dd{font-size:14px;line-height:1.45}#detail-body .badge{display:inline-flex;gap:4px;align-items:center}
#details .whatsapp-panel{margin-top:16px;padding-top:14px}#details .detail-readonly{margin-top:16px;padding-top:12px}.whatsapp-action{position:sticky;bottom:0;z-index:2}
/* Consulta global de agendamentos, independente do dia e da semana do planner. */
#search-dialog{max-width:560px}#search-dialog .detail-heading{position:sticky;top:-24px;background:white;z-index:3;padding-top:8px}#search-dialog .detail-heading h2{font-size:20px}
.search-day-heading{font-size:13px;font-weight:700;color:var(--purple);text-transform:capitalize;margin:20px 0 9px;line-height:1.5}
#search-context{font-size:12px;color:var(--muted);line-height:1.5;margin:18px 0 0}.search-empty{font-size:14px;line-height:1.6;color:var(--muted);border:1px dashed var(--line);border-radius:12px;padding:18px;margin:18px 0 0}
#search-results .appointment{grid-template-columns:64px minmax(0,1fr);gap:8px 12px;padding:14px 12px;border-radius:11px}#search-results .appointment .badge{grid-column:2;justify-self:start}#search-results .time strong{font-size:19px}#search-results .patient{font-size:15px;line-height:1.4}#search-results .procedure{font-size:12px;line-height:1.5}
@media(max-width:650px){#search-dialog .detail-heading{top:-18px}#search-form label{margin-top:12px}.search-actions{margin-top:14px}#search-dialog .detail-heading h2{font-size:19px}}
.appointment.agenda-event{position:relative}.appointment.agenda-event::after{display:none}
.detail-actions{border-top:1px solid var(--line);margin-top:20px;padding-top:16px;display:grid;gap:12px}.detail-actions .contact-info{margin-bottom:2px}.detail-actions .whatsapp-action{position:static;line-height:1.5;padding:12px}.detail-actions button:disabled{background:#f5f3fa;color:var(--muted);cursor:default;line-height:1.5}
.review-message{min-height:44px;border:0;background:transparent;font:inherit;font-size:13px;color:var(--dark-purple);text-decoration:underline;text-underline-offset:3px;padding:8px}
.porter-test{display:flex;align-items:center;justify-content:center;gap:9px;color:var(--dark-purple);line-height:1.4;background:#f0ecff}.porter-test svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#message-dialog .whatsapp-panel{border:0;margin:0;padding:0}#settings-form input{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;font-size:16px;color:var(--ink)}
.porter-patient{font-size:15px;font-weight:700;margin:0 0 6px;overflow-wrap:anywhere}.porter-steps{font-size:12px;line-height:1.65;color:var(--muted);padding-left:21px;margin:18px 0}.porter-steps li{margin-bottom:9px}.porter-launch{display:block;text-decoration:none;text-align:center;background:#f0ecff;color:var(--dark-purple)}#porter-dialog .whatsapp-panel{margin-top:15px;padding-top:14px}#porter-dialog .contact-info{margin:4px 0}#porter-dialog h2{font-size:19px}

.access-panel{margin:18px 0 22px;padding:18px;border:1px solid var(--line);border-radius:14px;background:white}.access-panel p{font-size:14px;line-height:1.5}#unlock-form>label{display:block;margin:14px 0 8px}#agenda-password,#agenda-username{width:100%;min-height:48px;border:1px solid var(--line);border-radius:10px;padding:10px;font:inherit;font-size:16px}#unlock-form .password-toggle{display:flex;gap:9px;align-items:center;font-size:14px;min-height:44px}#unlock-submit{width:100%;margin-top:8px}.import-area{flex-wrap:wrap}

/* Pull feedback is shown only during the gesture or a refresh. */
.pull-refresh{display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;background:#f0ecff;color:var(--dark-purple);font-size:13px;font-weight:600;height:0;box-sizing:border-box}
.pull-refresh[hidden]{display:none}
.pull-refresh::before{content:"↓";font-size:18px}
.pull-refresh.refreshing::before{content:"";width:14px;height:14px;border:2px solid #d7ccf3;border-top-color:var(--dark-purple);border-radius:50%;animation:refresh-spin .8s linear infinite}
@keyframes refresh-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pull-refresh.refreshing::before{animation:none}}
.snapshot:has(strong:empty){display:none}
