:root{--vital-blue:#014bac;--vital-deep:#003b88;--vital-mid:#075bc0;--vital-soft:#eaf3ff;--vital-pale:#f5f9ff;--ink:#12345a;--navy:#014bac;--purple:#014bac;--violet:#075bc0;--pink:#075bc0;--bg:#f3f7fc;--line:#d7e4f2;--soft:#eaf3ff;--muted:#60758b;--shadow:0 14px 40px rgba(1,75,172,.10)}
html,body{background:var(--bg);color:var(--ink)}.app aside{background:var(--vital-blue);border-right-color:#ffffff26;box-shadow:10px 0 34px rgba(0,47,108,.18)}.app nav a{color:#eaf3ff}.app nav a:hover{background:#ffffff14}.app nav a.active{color:var(--vital-blue);border-left-color:#8fc5ff;box-shadow:0 8px 20px rgba(0,47,108,.18)}
.brand>span.brand-logo{display:block;width:220px;height:85px;flex:0 0 auto;border:0;border-radius:0;box-shadow:none;background:transparent url('/vitalmed-wordmark.jpg') center/contain no-repeat}.brand.light>div,.login-card .brand>div{display:none}.app aside .brand{justify-content:center;padding:10px 14px;border-bottom-color:#ffffff24}.login-card .brand{justify-content:center}.login-card .brand>span.brand-logo{width:245px;height:96px}
.login-shell{background:var(--bg)}.login-hero{background:var(--vital-blue)}.login-hero:after{border-color:#ffffff10}.login-hero p{color:#e2efff}.login-area{background:var(--vital-pale)}.login-card{box-shadow:0 25px 75px rgba(1,75,172,.15)}.welcome{background:var(--vital-blue)}.welcome:after{border-color:#ffffff10}.welcome .eyebrow,.welcome p{color:#e2efff}.welcome .pulse{background:#ffffff17;color:#fff}.eyebrow{color:var(--vital-blue)}
.primary,.stat:before{background:var(--vital-blue)}.primary{box-shadow:0 8px 18px rgba(1,75,172,.20)}.secondary{background:var(--vital-soft);color:var(--vital-blue);border-color:#c9def5}.menu-toggle{background:var(--vital-soft);color:var(--vital-blue);border-color:#c9def5}.user-chip>span,.avatar{background:var(--vital-soft)!important;color:var(--vital-blue)!important;border-color:#c9def5}.status.SCHEDULED{background:var(--vital-soft);color:var(--vital-blue)}input:focus,select:focus,textarea:focus{border-color:var(--vital-blue);box-shadow:0 0 0 4px rgba(1,75,172,.10)}
.vitalmed-wordmark,.room-brand,.wa-vitalmed{display:inline-block;background:transparent url('/vitalmed-wordmark.jpg') center/contain no-repeat}.vitalmed-wordmark{width:250px;height:96px}.room-brand{position:absolute;left:20px;width:178px;height:68px}.room-head{position:relative;background:var(--vital-blue)}.room{background:#062d64}.controls .start{background:var(--vital-blue)}.wa-vitalmed{width:140px;height:54px;flex:0 0 auto}.wa-titlebar{background:var(--vital-blue)}.wa-send,.wa-green{background:var(--vital-blue)}.wa-contact:hover,.wa-contact.selected{background:#e7f1ff}.wa-contact.unread{background:#f2f7ff}.wa-message.out{background:#dcecff}.guest-shell{background:var(--vital-pale)!important}.guest-card{box-shadow:0 24px 75px rgba(1,75,172,.13)!important}.guest-action{background:var(--vital-blue)!important}
@media(max-width:750px){.brand>span.brand-logo{width:210px;height:78px}.login-card .brand>span.brand-logo{width:225px;height:88px}.room-brand{display:none}.wa-vitalmed{width:108px;height:44px}}

/* Visão geral clínica */
.dashboard-hero{margin-bottom:16px}.dashboard-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px}.dashboard-kpi{display:flex;align-items:center;gap:14px;min-height:112px;padding:18px}.dashboard-kpi>div{display:flex;min-width:0;flex-direction:column}.dashboard-kpi small{color:#60758b;font-size:.72rem;font-weight:750}.dashboard-kpi strong{margin:3px 0;color:#102f54;font-size:1.7rem;line-height:1}.dashboard-kpi em{color:#8290a0;font-size:.68rem;font-style:normal}.kpi-icon{position:relative;width:42px;height:42px;flex:0 0 42px;border-radius:11px;background:#eaf3ff;color:#0754ad}.kpi-icon:before,.kpi-icon:after{content:"";position:absolute}.calendar-icon:before{inset:11px 9px 9px;border:2px solid currentColor;border-radius:3px}.calendar-icon:after{left:9px;right:9px;top:16px;border-top:2px solid currentColor}.clock-icon:before{inset:9px;border:2px solid currentColor;border-radius:50%}.clock-icon:after{left:20px;top:13px;width:6px;height:8px;border-left:2px solid currentColor;border-bottom:2px solid currentColor}.check-icon:before{left:12px;top:12px;width:15px;height:9px;border-left:3px solid currentColor;border-bottom:3px solid currentColor;transform:rotate(-45deg)}.note-icon:before{inset:9px 11px;border:2px solid currentColor;border-radius:3px}.note-icon:after{left:15px;top:16px;width:12px;border-top:2px solid currentColor;box-shadow:0 5px 0 currentColor}.people-icon:before{left:15px;top:9px;width:10px;height:10px;border:2px solid currentColor;border-radius:50%}.people-icon:after{left:9px;bottom:8px;width:22px;height:11px;border:2px solid currentColor;border-radius:12px 12px 5px 5px}.doctor-icon:before{left:18px;top:9px;width:4px;height:22px;background:currentColor;border-radius:2px}.doctor-icon:after{left:9px;top:18px;width:22px;height:4px;background:currentColor;border-radius:2px}
.kpi-icon.icon-svg{display:grid;place-items:center}.kpi-icon.icon-svg:before,.kpi-icon.icon-svg:after{display:none}.kpi-icon.icon-svg svg{display:block;width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.dashboard-analytics{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.85fr);gap:14px;margin-top:14px}.analytics-card{padding:21px;overflow:hidden}.analytics-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.analytics-card h2{margin:4px 0 0;font-size:1.05rem}.chart-legend{display:flex;gap:12px;color:#65778b;font-size:.69rem}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i,.status-dot{width:8px;height:8px;border-radius:50%}.legend-total{background:#176ac2}.legend-done{background:#26a77a}.bar-chart{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:10px;height:225px;margin-top:20px;padding-top:12px;border-bottom:1px solid #dbe4ee;background:repeating-linear-gradient(to bottom,#e8eef5 0,#e8eef5 1px,transparent 1px,transparent 52px)}.bar-column{display:grid;grid-template-rows:17px 1fr 16px 15px;align-items:end;text-align:center}.bar-value{color:#5f7185;font-size:.67rem;font-weight:800}.bar-track{position:relative;width:min(34px,75%);height:100%;margin:auto}.bar-track i{position:absolute;bottom:0;border-radius:5px 5px 1px 1px}.bar-total{left:0;width:100%;background:linear-gradient(#3f8cdc,#176ac2)}.bar-done{left:25%;width:50%;background:#26a77a}.bar-column b{font-size:.68rem;text-transform:capitalize}.bar-column small{color:#8493a2;font-size:.61rem}.status-overview{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:18px;margin-top:26px}.donut{position:relative;width:116px;height:116px;border-radius:50%;background:conic-gradient(#176ac2 0 28%,#f0a53a 28% 43%,#16a276 43% 58%,#7e8ea0 58% 85%,#df6572 85%);display:grid;place-items:center}.donut:before{content:"";position:absolute;inset:17px;border-radius:50%;background:#fff}.donut span{position:relative;display:grid;text-align:center}.donut b{font-size:1.45rem}.donut small{color:#7b8b9c;font-size:.65rem}.status-list{display:grid;gap:8px}.status-list>div{display:grid;grid-template-columns:9px minmax(0,1fr) auto 31px;align-items:center;gap:7px;font-size:.7rem}.status-list small{text-align:right;color:#8493a2}.status-dot.SCHEDULED{background:#176ac2}.status-dot.WAITING{background:#f0a53a}.status-dot.IN_PROGRESS{background:#16a276}.status-dot.COMPLETED{background:#7e8ea0}.status-dot.CANCELLED{background:#df6572}
@media(max-width:980px){.dashboard-analytics{grid-template-columns:1fr}.status-overview{grid-template-columns:140px 1fr}.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.dashboard-kpis{grid-template-columns:1fr 1fr;gap:8px}.dashboard-kpi{min-height:96px;padding:13px;gap:9px}.dashboard-kpi .kpi-icon{width:36px;height:36px;flex:0 0 36px;transform:none;border-radius:9px}.dashboard-kpi .kpi-icon svg{width:20px;height:20px}.dashboard-kpi strong{font-size:1.35rem}.dashboard-kpi em{display:none}.analytics-card{padding:16px}.analytics-card>header{display:block}.chart-legend{margin-top:8px}.bar-chart{gap:4px;height:190px}.status-overview{grid-template-columns:1fr}.donut{margin:auto}.dashboard-hero h2{font-size:1.16rem}}
.patient-booking-card{max-width:880px}.patient-slot-choice{flex-wrap:nowrap}.patient-slot-choice input{flex:1;min-width:0;background:#f4f6f9}.patient-slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:18px}.patient-slot-grid .button{width:100%}@media(max-width:620px){.patient-slot-choice{display:grid;grid-template-columns:1fr}.patient-slot-choice .button{width:100%}.patient-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.booking-availability{grid-column:1/-1;border-top:1px solid var(--line);padding-top:18px}.booking-availability h3{margin:0 0 5px}.booking-availability>p{margin:0 0 14px;color:var(--muted)}.available-day-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:9px}.available-day{appearance:none;border:1px solid var(--line);background:#fff;border-radius:12px;padding:12px;text-align:left;color:var(--ink);cursor:pointer;display:grid;gap:3px;transition:.15s}.available-day:hover,.available-day:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,106,194,.1)}.available-day.selected{border-color:var(--blue);background:#eef6ff}.available-day small{text-transform:capitalize;color:var(--muted)}.available-day b{text-transform:capitalize}.available-day span{font-size:.72rem;color:#176ac2;font-weight:750}.inline-slot-panel{margin-top:14px;padding:15px;border-radius:12px;background:#f5f8fb}.inline-slot-panel[hidden]{display:none}.inline-slot-panel header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}.inline-slot-panel header h4{margin:0}.inline-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}.inline-slot-grid button.selected{background:#176ac2;color:#fff}.booking-loading,.booking-empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);text-align:center}@media(max-width:620px){.available-day-grid{display:flex;overflow-x:auto;padding-bottom:5px;scroll-snap-type:x proximity}.available-day{min-width:138px;scroll-snap-align:start}.inline-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.institutional-partner{position:relative;z-index:1;flex:0 0 auto;margin:14px 16px 8px;padding:9px 10px;display:flex;align-items:center;gap:9px;border:1px solid #ffffff2b;border-radius:13px;background:#ffffff0d}.institutional-partner img{width:42px;height:42px;border-radius:10px;object-fit:cover}.institutional-partner span{display:flex;min-width:0;flex-direction:column}.institutional-partner small{font-size:.5rem;letter-spacing:.09em;color:#cfe4ff;font-weight:800}.institutional-partner b{margin-top:2px;color:#fff;font-size:.74rem;white-space:nowrap}.login-partner{position:relative;z-index:1;margin-top:34px;display:flex;align-items:center;gap:12px;width:max-content;padding:10px 14px;border:1px solid #ffffff35;border-radius:16px;background:#ffffff10;backdrop-filter:blur(8px)}.login-partner img{width:54px;height:54px;border-radius:13px;object-fit:cover}.login-partner span{display:flex;flex-direction:column}.login-partner small{font-size:.6rem;letter-spacing:.13em;color:#d9eaff;font-weight:800}.login-partner b{margin-top:3px;color:#fff;font-size:.9rem}@media(max-width:750px){.institutional-partner{margin:10px 14px 8px}.login-partner{margin-top:22px;padding:8px 11px}.login-partner img{width:44px;height:44px}.login-partner b{font-size:.8rem}}
.app aside .institutional-partner{margin-top:auto}.app aside>form{margin-top:0}

/* Refino visual do produto clínico */
:root{--bg:#f4f6f8;--line:#dbe2ea;--muted:#637083;--ink:#17243a;--soft:#edf4fb;--shadow:0 1px 2px rgba(15,34,58,.04),0 8px 24px rgba(15,34,58,.05)}
body{font-size:14px;letter-spacing:0}.app main{min-width:0;background:var(--bg)}
.app main>header{min-height:72px;padding:12px 28px;background:#fff;border-bottom:1px solid var(--line);box-shadow:none}.app main>header h1{font-size:1.35rem;letter-spacing:-.025em}.app main>header .eyebrow{font-size:.61rem;letter-spacing:.12em;color:#718096}
.content{max-width:1440px;margin:0 auto;padding:26px 28px 42px}.card,.panel{border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);background:#fff}.card:hover,.panel:hover{transform:none}.eyebrow{font-size:.64rem;line-height:1.25;letter-spacing:.11em;font-weight:750}h1,h2,h3{letter-spacing:-.025em}
.page-heading,.page-actions,.section-title{gap:18px;margin-bottom:18px}.page-heading h2,.page-actions h2,.section-title h2{margin:3px 0 0;font-size:1.28rem}.page-heading p,.page-actions p,.section-title p{margin:5px 0 0;color:var(--muted)}
.app aside{width:250px;background:#073f86;box-shadow:none}.app nav{padding:8px 12px;gap:2px}.app nav a{position:relative;min-height:40px;padding:10px 13px;border-radius:7px;border-left:0;font-size:.86rem;font-weight:600;transition:background .15s ease,color .15s ease}.app nav a:hover{transform:none;background:rgba(255,255,255,.09)}.app nav a.active{background:#fff;color:#074a9f;border-left:0;box-shadow:none}.app nav a.active:before{content:"";width:4px;height:18px;border-radius:4px;background:#0a62c3;margin-right:3px}.logout{min-height:40px;border-radius:7px}.institutional-partner{border-radius:9px;background:rgba(255,255,255,.07)}
button,.button,.primary,.secondary,.ghost,.danger-btn{min-height:40px;border-radius:8px;font-size:.84rem;font-weight:700;box-shadow:none;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.primary{background:#0754ad;box-shadow:none}.primary:hover{background:#064997;transform:none}.secondary{background:#fff;color:#164f8f;border:1px solid #bfcfe1}.secondary:hover{background:#f1f6fb;transform:none}.ghost:hover{transform:none}
input,select,textarea{border:1px solid #cbd5e1;border-radius:8px;background:#fff;min-height:42px;padding:10px 12px;font-size:.9rem}textarea{min-height:90px;line-height:1.5;resize:vertical}label{gap:6px;font-size:.79rem;font-weight:650;color:#34445a}input:focus,select:focus,textarea:focus{border-color:#377fc9;box-shadow:0 0 0 3px rgba(7,84,173,.1)}
.welcome{min-height:150px;padding:25px 28px;border:0;border-radius:12px;background:#074a9f;box-shadow:none}.welcome h2{margin:5px 0 6px;font-size:1.55rem}.welcome p{margin:0;font-size:.91rem}.stat-grid{gap:14px;margin-top:16px}.stat{min-height:108px;padding:19px 20px;border-radius:10px}.stat:before{display:none}.stat b{font-size:1.65rem;color:#152d4a}.stat span{font-size:.78rem;color:var(--muted)}
.section-title{margin-top:28px;padding-bottom:10px;border-bottom:1px solid var(--line)}.section-title>span{font-size:.76rem;color:var(--muted)}.toolbar,.form-card{padding:20px}.toolbar{margin-bottom:18px}
.list{gap:8px}.list-row{min-height:62px;padding:11px 14px;border-radius:9px;box-shadow:none}.list-row:hover{border-color:#b8c8da;background:#fbfdff}.appointment{padding:14px 16px;border-radius:10px;box-shadow:none;gap:15px}.appointment .date{border-radius:8px;background:#eef4fa;color:#164f8f}.appointment-main h3{margin:5px 0 2px;font-size:1rem}.appointment-actions{gap:7px}.status,.pill{border-radius:999px;padding:5px 9px;font-size:.66rem;font-weight:750;letter-spacing:.02em}.empty{padding:34px 22px;border-style:dashed;box-shadow:none;color:var(--muted);text-align:center}.avatar,.user-chip>span{border-radius:50%}.user-chip{padding:5px 8px 5px 5px;border:1px solid var(--line);border-radius:999px;background:#fff}
dialog,.patient-modal{border-radius:12px!important;box-shadow:0 24px 70px rgba(15,34,58,.22)!important}.modal-head{padding-bottom:14px;border-bottom:1px solid var(--line)}details.card>summary{padding:15px 18px;font-weight:750;color:#183b65;cursor:pointer}details.card[open]>summary{border-bottom:1px solid var(--line)}.panel{padding:20px}.panel-title{padding-bottom:15px;border-bottom:1px solid var(--line)}.icon-box{width:38px;height:38px;border-radius:8px;font-size:.67rem;font-weight:800;letter-spacing:.04em;background:#eaf2fb;color:#0754ad}.alert,.notice{border-radius:8px;box-shadow:none}
.certificate-icon{flex:0 0 38px}.certificate-icon svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-shell{background:#eef2f6}.login-hero{background:#073f86}.login-hero h1{max-width:600px;font-size:clamp(2.1rem,4vw,4.25rem);letter-spacing:-.055em}.login-card{border-radius:14px;box-shadow:0 18px 50px rgba(14,38,68,.12)}.login-card h2{font-size:1.35rem}.login-card .primary{width:100%}.login-partner{border-radius:10px}
@media(max-width:1000px){.content{padding:22px 20px 36px}.app main>header{padding:10px 20px}.split{grid-template-columns:1fr}}
@media(max-width:750px){.app aside{width:min(86vw,290px)}.app main>header{min-height:64px;padding:9px 14px;gap:9px}.app main>header h1{font-size:1.05rem}.app main>header .eyebrow{display:none}.content{padding:16px 13px 30px}.user-chip{border:0;padding:0;background:transparent}.user-chip>div{display:none}.welcome{min-height:134px;padding:21px 19px}.welcome h2{font-size:1.28rem}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat{min-height:92px;padding:15px}.stat b{font-size:1.42rem}.section-title,.page-actions{align-items:flex-start;flex-direction:column}.section-title .action-row,.page-actions .action-row{width:100%}.section-title .button,.page-actions>.button,.page-actions>button{width:100%;justify-content:center}.filter-row{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:10px}.filter-row label,.filter-row .button,.filter-row button{width:100%;min-width:0}.appointment{grid-template-columns:auto minmax(0,1fr);align-items:start}.appointment-actions{grid-column:1/-1;width:100%}.appointment-actions>.button,.invite-actions,.invite-actions>.button,.invite-actions form,.invite-actions button{width:100%}.form-card,.toolbar,.panel{padding:16px}.grid{grid-template-columns:1fr}.grid .wide{grid-column:auto}dialog,.patient-modal{width:calc(100% - 20px)!important;max-height:calc(100dvh - 20px);margin:10px}}
@media(max-width:390px){.filter-row{grid-template-columns:1fr}.stat-grid{gap:7px}.stat{padding:13px}}
.welcome{position:relative;isolation:isolate;overflow:hidden}.welcome:after,.welcome .pulse{display:none!important}.welcome:before{content:"";position:absolute;z-index:0;right:42px;top:50%;width:250px;height:116px;transform:translateY(-50%);background:url('/undb-policlinica-marca-dagua.png') center/contain no-repeat;opacity:.13}.welcome>div:first-child{position:relative;z-index:2;max-width:calc(100% - 285px)}@media(max-width:750px){.welcome:before{right:-18px;width:170px;height:80px;opacity:.1}.welcome>div:first-child{max-width:74%}}
/* Agenda médica em calendário */
.calendar-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:24px;margin-bottom:18px}.calendar-heading h2{margin:6px 0 3px;font-size:1.8rem}.calendar-heading p{margin:0;color:#64798a}.calendar-actions{display:flex;align-items:flex-end;gap:12px}.doctor-filter select{min-width:260px}.medical-calendar{padding:18px;overflow:hidden}.calendar-nav{display:flex;justify-content:flex-end;align-items:center;gap:8px;margin-bottom:14px}.calendar-arrow,.calendar-today{display:grid;place-items:center;min-width:42px;height:40px;border:1px solid var(--line);border-radius:11px;background:#fff;color:var(--ink);text-decoration:none;font-weight:900}.calendar-arrow{font-size:1.7rem}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays span{padding:8px;text-align:center;color:#718092;font-size:.72rem;font-weight:900;text-transform:uppercase}.calendar-grid{border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-day{position:relative;min-height:112px;padding:11px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;color:var(--ink);text-align:left;cursor:pointer;transition:.16s ease;overflow:hidden}.calendar-day:hover,.calendar-day.selected{z-index:1;background:#eef7ff;box-shadow:inset 0 0 0 2px #1673c9}.calendar-day.outside{background:#f7f9fb;color:#a3afba}.calendar-day.today .day-number{background:#0754ad;color:#fff}.day-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900}.day-count,.day-free{display:block;margin-top:12px;font-size:.72rem;font-weight:800}.day-count{color:#0754ad}.day-free{color:#8998a6}.day-dots{display:flex;gap:4px;position:absolute;left:11px;bottom:10px}.day-dots i{width:7px;height:7px;border-radius:50%;background:#3b82f6}.day-dots i.COMPLETED{background:#94a3b8}.day-dots i.CANCELLED{background:#ef9a9a}.day-dots i.IN_PROGRESS,.day-dots i.WAITING{background:#13a77b}.day-drawer{margin-top:18px;padding:24px;scroll-margin-top:18px}.day-drawer[hidden]{display:none}.day-drawer-head{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:18px}.day-drawer-head h2{margin:6px 0 3px;text-transform:capitalize}.day-drawer-head p{margin:0;color:#64798a}.drawer-close{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:#fff;font-size:1.5rem;cursor:pointer}.day-drawer-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:26px;margin-top:20px}.drawer-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.drawer-section-title h3{margin:0}.drawer-section-title span{font-size:.75rem;color:#718092}.drawer-patients{display:grid;gap:9px}.drawer-patient{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:13px;padding:13px;border:1px solid var(--line);border-radius:14px}.drawer-patient time{font-size:1.12rem;font-weight:900;color:#0754ad}.drawer-patient div{display:grid;gap:3px}.drawer-patient small{color:#718092}.drawer-patient .status{width:max-content}.drawer-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.slot-button{display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid #bcd8ed;border-radius:12px;background:#f3f9fe;color:#0754ad;text-decoration:none}.slot-button:hover{background:#e5f2fc;border-color:#0754ad}.slot-button small{color:#698095}.drawer-empty,.drawer-loading{grid-column:1/-1;padding:24px;border:1px dashed #cfd9e3;border-radius:13px;text-align:center;color:#718092;background:#fafcfd}
@media(max-width:750px){.calendar-toolbar{align-items:stretch;flex-direction:column;padding:18px}.calendar-actions{align-items:stretch;flex-direction:column}.doctor-filter select{min-width:0}.medical-calendar{padding:9px;border-radius:15px}.calendar-weekdays span{font-size:.62rem;padding:6px 2px}.calendar-day{min-height:76px;padding:6px}.day-number{width:25px;height:25px;font-size:.8rem}.day-count,.day-free{font-size:.58rem;margin-top:7px;line-height:1.2}.day-dots{left:7px;bottom:6px}.day-drawer{padding:17px}.day-drawer-grid{grid-template-columns:1fr}.drawer-patient{grid-template-columns:48px 1fr}.drawer-patient>a{grid-column:1/-1}.drawer-slots{grid-template-columns:repeat(2,1fr)}}
/* Disponibilidade médica visual */
.availability-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:25px;margin-bottom:18px}.availability-hero h2{margin:6px 0}.availability-hero p{margin:0;color:#64798a}.availability-actions{display:flex;gap:10px}.availability-editor{margin-bottom:18px;scroll-margin-top:18px}.availability-editor[hidden]{display:none}.availability-editor>.card{padding:24px}.editor-heading{display:flex;align-items:flex-start;justify-content:space-between}.editor-heading h2{margin:6px 0 0}.availability-calendar-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.availability-calendar-title h2{margin:5px 0}.availability-state{display:block;margin-top:10px;font-size:.68rem;font-weight:900}.availability-state.working{color:#08785a}.availability-state.blocked{color:#a52a3b}.availability-state.off{color:#8a98a5}.availability-day.blocked{background:#fff5f5}.availability-day-grid{display:grid;grid-template-columns:1fr .7fr;gap:25px;margin-top:20px}.availability-rule{display:grid;gap:8px}.availability-rule>div:not(.drawer-empty){display:flex;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:12px}.availability-rule small{color:#718092}.availability-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.availability-summary>.card{padding:20px}.availability-list{display:grid;gap:8px}.availability-list article{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.availability-list article div{display:grid;gap:3px}.availability-list small{color:#718092}.drawer-muted{color:#718092}
@media(max-width:750px){.availability-hero{align-items:stretch;flex-direction:column;padding:18px}.availability-actions{display:grid;grid-template-columns:1fr 1fr}.availability-day-grid,.availability-summary{grid-template-columns:1fr}.availability-calendar-title{align-items:flex-start;gap:12px}.availability-list article{align-items:flex-start}}
.chained-doctor-filter,.availability-admin-filter{display:grid;grid-template-columns:minmax(190px,1fr) minmax(220px,1fr);gap:10px}.availability-admin-filter{min-width:440px}
@media(max-width:750px){.chained-doctor-filter,.availability-admin-filter{grid-template-columns:1fr;min-width:0;width:100%}}

/* Proteção responsiva global: componentes nunca ultrapassam a área útil. */
html,body{max-width:100%;overflow-x:hidden}
.app,.app main,.content,.card,.panel,.toolbar,.form-card,.split,.grid,.page-actions,.section-title,.action-row,.filter-row,.list,.list-row,.appointment,.appointment-main,.appointment-actions,.calendar-toolbar,.calendar-actions,.medical-calendar,.calendar-grid,.calendar-day,.day-drawer,.day-drawer-grid,.availability-hero,.availability-actions,.availability-admin-filter,.availability-calendar-title,.availability-day-grid,.availability-summary,.availability-list,.doctor-row,.doctor-edit-form{min-width:0;max-width:100%}
input,select,textarea,button,.button{max-width:100%;min-width:0}
.calendar-toolbar,.calendar-actions,.availability-hero,.availability-actions,.availability-calendar-title,.page-actions,.section-title,.action-row,.filter-row{flex-wrap:wrap}
.calendar-actions,.availability-actions{justify-content:flex-end}
.chained-doctor-filter{flex:1 1 430px}.doctor-filter,.doctor-filter select{width:100%;min-width:0}
.calendar-grid>*{min-width:0}.calendar-day{width:100%}.day-count,.day-free,.drawer-patient b,.drawer-patient small,.availability-list b,.availability-list small{overflow-wrap:anywhere}
.calendar-legend{display:flex;align-items:center;gap:14px;margin-right:auto;flex-wrap:wrap}.calendar-legend span{display:flex;align-items:center;gap:6px;color:#5e7182;font-size:.72rem;font-weight:800}.calendar-legend i{width:10px;height:10px;border-radius:50%}.calendar-legend i.available{background:#20a66a}.calendar-legend i.restricted{background:#d84343}.calendar-legend i.full{background:#ed8b2d}.calendar-day.day-available{background:#f0fbf5;box-shadow:inset 0 0 0 1px #a9dfc3}.calendar-day.day-restricted{background:#fff2f2;box-shadow:inset 0 0 0 1px #efb1b1}.calendar-day.day-full{background:#fff7ed;box-shadow:inset 0 0 0 1px #f5c58e}.day-availability{display:block;margin-top:10px;font-size:.7rem;font-weight:900;line-height:1.2}.day-availability.available{color:#087c4c}.day-availability.restricted{color:#b52e2e}.day-availability.full{color:#b35a0c}.calendar-day.day-available:hover,.calendar-day.day-available.selected,.calendar-day.day-restricted:hover,.calendar-day.day-restricted.selected,.calendar-day.day-full:hover,.calendar-day.day-full.selected{box-shadow:inset 0 0 0 2px #1673c9}
.availability-actions{align-items:flex-end}.availability-admin-filter{flex:1 1 440px;min-width:min(440px,100%)}
.availability-actions>button{flex:0 1 auto}.availability-rule>div:not(.drawer-empty),.availability-list article{min-width:0}
.availability-rule>div:not(.drawer-empty)>*,.availability-list article>*{min-width:0;overflow-wrap:anywhere}.availability-row-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px!important}.availability-row-actions form{margin:0}.availability-row-actions button{white-space:nowrap}
.doctor-row{grid-template-columns:auto minmax(0,1fr) auto auto auto auto}.doctor-row>div{min-width:0}.doctor-row b,.doctor-row small{overflow-wrap:anywhere}
.doctor-dialog{width:min(880px,calc(100% - 24px));max-height:calc(100dvh - 24px);overflow:auto}
.doctor-edit-form header,.doctor-edit-form footer{display:flex;align-items:center;justify-content:space-between;gap:12px}.doctor-edit-form footer{position:sticky;bottom:0;margin:18px -24px -24px;padding:14px 24px;background:#fff;border-top:1px solid var(--line)}
.doctor-address-section{padding:13px 14px;border-left:4px solid #0754ad;border-radius:8px;background:#f1f6fb}.doctor-address-section b,.doctor-address-section small{display:block}.doctor-address-section small{margin-top:3px;color:var(--muted)}
.cep-inline{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.cep-inline button{white-space:nowrap}.cep-status{display:block;min-height:17px;margin-top:4px;color:var(--muted);font-size:.72rem}.cep-status[data-type=success]{color:#087052}.cep-status[data-type=error]{color:#a52a3b}
@media(max-width:1000px){.doctor-row{grid-template-columns:auto minmax(0,1fr) auto}.doctor-row>.button,.doctor-row>form{width:100%;grid-column:2/-1}.doctor-row>.button,.doctor-row>form button{justify-self:stretch;width:100%}}
@media(max-width:750px){
 .content{width:100%;overflow:hidden}.card,.panel,.toolbar,.form-card{width:100%}
 .calendar-toolbar,.calendar-actions,.availability-hero,.availability-actions{width:100%}
 .calendar-actions,.availability-actions{display:grid;grid-template-columns:1fr;width:100%}
 .calendar-actions>*,.availability-actions>*,.availability-actions>button{width:100%;max-width:none}
 .availability-admin-filter{grid-column:1/-1;min-width:0}
 .availability-calendar-title{display:grid;grid-template-columns:minmax(0,1fr) auto;width:100%}
 .availability-calendar-title .calendar-nav{align-self:start}
 .calendar-nav{flex-wrap:nowrap}.calendar-today{padding-inline:10px}
 .calendar-day{min-height:72px}.day-count,.day-free{white-space:normal;overflow-wrap:anywhere}
 .drawer-patient{grid-template-columns:44px minmax(0,1fr)}.drawer-patient .status,.drawer-patient>a{grid-column:1/-1;width:100%}
 .availability-rule>div:not(.drawer-empty),.availability-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
 .doctor-row{grid-template-columns:40px minmax(0,1fr)}.doctor-row .pill{grid-column:2;justify-self:start}.doctor-row>.button,.doctor-row>form{grid-column:1/-1}
 .doctor-edit-form footer{margin:16px -18px -18px;padding:12px 18px}.doctor-edit-form footer>*{flex:1}
 .cep-inline{grid-template-columns:1fr}.cep-inline button{width:100%}
}
@media(max-width:390px){.calendar-weekdays span{font-size:.54rem}.calendar-day{min-height:66px;padding:5px}.day-count,.day-free{font-size:.52rem}.availability-calendar-title{grid-template-columns:1fr}.availability-calendar-title .calendar-nav{justify-content:flex-start}}

/* Safari/iOS mantém uma largura intrínseca grande em controles de data. */
label:has(>input[type="date"]),label:has(>input[type="datetime-local"]),label:has(>input[type="month"]){min-width:0;max-width:100%;overflow:hidden}
input[type="date"],input[type="datetime-local"],input[type="month"]{display:block;box-sizing:border-box;inline-size:100%;width:100%;min-inline-size:0;min-width:0;max-inline-size:100%;max-width:100%}
@media(max-width:560px){input[type="date"],input[type="datetime-local"],input[type="month"]{font-size:16px;padding-inline:12px}}
