:root{--ink:#1d2b28;--muted:#76817e;--line:#e5e9e5;--bg:#fafbf8;--white:#fff;--lime:#ddf77b;--olive:#607a09;--forest:#25473e;--warm:#f4f5f1;--danger:#ba4141}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:14px/1.55 Inter,system-ui,-apple-system,'Segoe UI',Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1{font-size:22px;font-weight:650;margin:0}h2{font-size:16px;font-weight:650;margin:0}h3{font-size:14px;font-weight:650;margin:16px 0}small,.muted,.subtle{color:var(--muted);font-size:12px}.block{display:block}.sidebar{position:fixed;left:0;top:0;bottom:0;width:64px;z-index:15;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;transition:width .2s;overflow:hidden}.sidebar:hover,.sidebar:focus-within{width:225px;box-shadow:8px 0 30px #16211d0b}.sidebar-brand{height:70px;display:flex;align-items:center;gap:13px;white-space:nowrap;padding:0 14px;margin-bottom:16px}.brandmark{border-radius:50%;display:inline-grid;place-items:center;width:36px;height:36px;flex:none;background:var(--lime);font-size:24px}.sidebar-brand small{display:block;font-size:11px}.nav-item{display:flex;align-items:center;gap:13px;padding:8px 13px;min-height:43px;white-space:nowrap;margin:3px 6px;border-radius:10px}.nav-item:hover,.nav-item.active{background:#f1f3ee}.nav-item.active{color:#26443d;font-weight:650}.nav-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:50%;font-size:21px;flex:none}.nav-item.active .nav-icon{border:1.5px solid #193b33}.nav-label{opacity:0;transition:opacity .15s}.sidebar:hover .nav-label,.sidebar:focus-within .nav-label{opacity:1}.sidebar-bottom{margin-top:auto;padding-bottom:15px}.user-icon{display:grid;place-items:center;width:34px;height:34px;margin:10px 14px;background:#f7ebcb;border-radius:50%}.app{margin-left:64px;min-height:100vh}.topbar{height:51px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#fff}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#b6df5c;margin-right:6px}.top-user{font-size:12px;color:#59655e}.content{padding:26px 28px;max-width:1900px;margin:auto}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar h2 small,.toolbar h1 small{font-weight:400;margin-left:5px}.btn,.primary{border:1px solid var(--line);border-radius:7px;padding:9px 14px;background:white;display:inline-flex;align-items:center;justify-content:center;min-height:36px;white-space:nowrap;color:#1e2a27}.btn:hover{background:#f5f8f0}.btn.icon{font-size:23px;padding:2px 12px}.primary{background:var(--lime);border-color:var(--lime);font-weight:650}.primary:hover{background:#d0ec65}.full{width:100%}.agenda-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;min-height:73vh}.agenda-body{min-width:0}.section-label{font-size:13px;font-weight:650;margin:9px 0 16px}.count{color:#84918b;margin-left:7px;font-weight:400}.appointment-list{border:1px solid #dbe2df;border-radius:10px;overflow:hidden}.appointment-row{padding:12px;display:grid;grid-template-columns:190px minmax(170px,1fr) 145px 150px 50px;align-items:center;gap:10px;border-bottom:1px solid #e4e7e5;min-height:68px}.appointment-row:last-child{border-bottom:0}.appointment-row small{display:block}.app-time{font-size:12px}.app-time b{display:block;white-space:nowrap}.app-patient{display:flex;align-items:center;gap:10px;min-width:0}.app-patient b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:inline-grid;place-items:center;flex:none;border-radius:50%;width:29px;height:29px;background:#f0ebeb;color:#3c3d3b;font-size:10px;font-weight:600;margin-right:8px}.app-patient .avatar{margin-right:0}.app-mode{color:#556c63;font-size:12px}.mode-icon{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#ddf1e8;margin-right:4px}.agenda-right{border-left:1px solid var(--line);padding-left:22px}.agenda-right>input{width:100%;margin:15px 0}.month-title{text-align:center;margin:20px 0 5px;font-weight:650}.agenda-right h3{margin-top:32px}.status{width:100%;border-color:transparent;font-size:12px;color:#7d4bb0}.status.confirmado{color:#225bbb}.status.realizado{color:#257343}.status.falta,.status.cancelado{color:#c54545}.status.pendente{color:#ad7c11}.filters{display:flex;gap:12px;align-items:center;margin-bottom:26px}.filters input{max-width:290px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;min-width:760px}td,th{padding:13px 12px;text-align:left;vertical-align:middle}th{font-size:12px;font-weight:500;color:#8a9290;border-bottom:1px solid var(--line)}td{font-size:13px}tbody tr:hover{background:#fafbf8}td .avatar{vertical-align:middle}.pill{border-radius:15px;background:#f1f4ee;padding:4px 9px;font-size:11px;color:#59705a}.pill.paga{background:#e0f5e0;color:#1c7b38}.pill.pendente{background:#fff3d8;color:#a77909}.pill.cancelada{background:#f9e5e5;color:#a12c2c}.inline-form{display:flex;align-items:center;gap:5px}.inline-form select{max-width:135px;font-size:12px;padding:7px}.inline-form .btn{padding:7px 10px;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.metric,.panel{border:1px solid var(--line);border-radius:9px;background:white;padding:19px}.metric{min-height:148px;display:flex;flex-direction:column;justify-content:space-between}.metric span{font-size:12px;color:#59635f}.metric strong{font-size:clamp(22px,3vw,38px);font-weight:500;letter-spacing:-1px}.bar-stat{display:flex;align-items:center;gap:18px;margin:16px 0}.bar-stat span{width:75px}.bar-track{height:18px;border-radius:15px;overflow:hidden;flex:1;background:#eff3e9}.bar-fill{height:100%;background:#8fc358;border-radius:15px}.pending-bar{background:#e6b63d}.two-cols{display:grid;grid-template-columns:1fr 1.3fr;gap:18px}.record-list{max-height:75vh;overflow:auto}.record-link{display:flex;flex-direction:column;border-bottom:1px solid var(--line);padding:10px}.record-link:hover,.record-link.selected{background:#f3f7e8}.record-link small{display:block}.service-row{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:14px}.service-row span{color:var(--muted);font-size:12px}.empty{padding:50px 24px;text-align:center;color:var(--muted)}.shade{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:25}.shade[hidden]{display:none}.drawer{position:fixed;right:0;top:0;bottom:0;background:white;width:min(440px,100%);z-index:30;transform:translateX(105%);transition:transform .2s;box-shadow:-8px 0 30px #0002;display:flex;flex-direction:column}.drawer.open{transform:translateX(0)}.drawer-header{padding:16px 18px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.close{border:0;background:transparent;font-size:25px}.drawer-content{padding:20px 18px;overflow-y:auto;flex:1}.drawer-actions{display:flex;justify-content:space-between;gap:10px;margin-top:20px;border-top:1px solid var(--line);padding:16px 0}.drawer-actions .primary{margin-left:auto;min-width:110px}label{display:block;font-size:13px;margin:11px 0 5px;color:#3b433f}input,textarea,select{display:block;border:1px solid #d6ddd9;border-radius:6px;background:#fff;padding:9px 11px;color:#1d2926;width:100%;min-height:37px;outline:none;margin-top:5px}input:focus,textarea:focus,select:focus{border-color:#709943;box-shadow:0 0 0 2px #dff1bf}textarea{resize:vertical}.check{display:flex;gap:9px;align-items:center;margin:12px 0}.check input{width:18px;height:18px;min-height:0;accent-color:var(--olive);margin:0}.segments{display:flex;background:#e8eae8;border-radius:5px;padding:3px;margin-top:8px}.seg{flex:1;border:0;border-radius:5px;background:transparent;padding:8px 1px;font-size:12px}.seg.active{background:white;box-shadow:0 1px 4px #0001}.date-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.service-summary{padding:13px;background:#f6f9f1;border:1px solid #edf0e5;border-radius:7px;margin-top:12px}.alert{padding:12px 15px;background:#e9f5d4;border:1px solid #d9ecc0;border-radius:6px;margin-bottom:15px}.alert.error{background:#fce9e9;border-color:#f2cece;color:#a12a2a}.auth-bg{min-height:100vh;background:linear-gradient(140deg,#eff4e7,#fff);display:grid;place-items:center;padding:20px}.auth-card{background:white;width:min(430px,100%);padding:34px;border:1px solid var(--line);box-shadow:0 16px 65px #2a423011;border-radius:15px}.auth-card .brand{font-weight:700;color:#28483d;font-size:20px;margin-bottom:23px}.auth-card h1{margin-bottom:5px}.auth-card p{color:var(--muted)}.auth-card .primary{width:100%;margin-top:18px}.auth-card hr{border:0;border-top:1px solid var(--line);margin:22px 0}
@media(max-width:1100px){.appointment-row{grid-template-columns:150px minmax(110px,1fr) 80px 110px 45px;gap:5px}.agenda-layout{grid-template-columns:1fr 210px}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.content{padding:16px}.topbar{padding:0 14px}.agenda-layout{grid-template-columns:1fr}.agenda-right{border-left:0;border-top:1px solid var(--line);padding:15px 0}.appointment-row{grid-template-columns:1fr 1fr;gap:8px}.app-mode{display:none}.appointment-row .btn{justify-self:end}.toolbar{align-items:flex-start}.toolbar-left{gap:5px}.two-cols,.metrics{grid-template-columns:1fr}.top-user,.topbar .subtle{display:none}.sidebar:hover,.sidebar:focus-within{width:190px}}

[hidden]{display:none!important}

.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}.cal-weekday{font-size:11px;color:#85938d;padding:8px 0}.cal-date{padding:9px 0;border-radius:7px;font-size:12px}.cal-date:hover,.cal-date.today{background:#edf6da}.cal-date.selected{background:#5c7709;color:white;font-weight:700}.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-top:13px}.cal-nav .btn{min-height:28px;padding:3px 12px}.hover-info{position:relative;cursor:help}.hover-card{display:none;position:absolute;left:0;top:100%;width:280px;z-index:22;background:white;border:1px solid #dce5d9;box-shadow:0 8px 24px #0002;border-radius:9px;padding:15px;white-space:normal;color:#25352f}.hover-card small{display:block;margin-top:6px;overflow-wrap:anywhere}.hover-info:hover .hover-card,.hover-info:focus-within .hover-card{display:block}.professional-inline{margin-top:5px;font-size:11px}.service-edit{display:flex;flex-wrap:wrap;gap:12px;align-items:end;padding:14px 0;border-bottom:1px solid var(--line)}.service-edit label{flex:1 1 145px;margin:0}.service-edit .check{flex:0 0 105px}.service-edit .primary{margin-bottom:0}.row-actions{display:flex;gap:5px;flex-wrap:wrap}.appointment-row{grid-template-columns:160px minmax(150px,1fr) 150px 120px minmax(130px,auto)}.appointment-row .row-actions .btn{font-size:11px;padding:5px}.highlight{background:#eff7d4!important;outline:2px solid #a5c56c}.inline-form{display:inline-flex}@media(max-width:760px){.appointment-row{grid-template-columns:1fr 1fr}.professional-inline{display:none}}


/* v1.1.1 agenda sidebar refinement */
.agenda-layout{grid-template-columns:minmax(0,1fr) 260px;gap:28px}
.agenda-right{border-left:1px solid var(--line);padding-left:20px}
.agenda-main-action{margin-bottom:10px;min-height:38px;border-radius:8px}
.agenda-secondary-action{margin-bottom:14px;min-height:38px;border-radius:8px;background:#f3f4f1;font-weight:500}
.agenda-secondary-action:hover{background:#ecefe8}
.agenda-calendar-box{padding-top:4px}
.cal-nav{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:10px;margin:4px 0 10px}
.cal-nav strong{text-align:center;font-size:13px;font-weight:650;text-transform:lowercase}
.calendar-arrow{width:34px;min-height:34px;padding:0;font-size:22px;color:#8b918d;border-radius:8px;background:#fafafa}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}
.cal-weekday{font-size:11px;color:#70827a;padding:2px 0 6px;text-transform:lowercase}
.cal-date{display:grid;place-items:center;height:32px;border-radius:9px;font-size:12px;color:#172623}
.cal-date:hover{background:#f1f5e8}
.cal-date.today{outline:1px solid #d5e4b8}
.cal-date.selected{background:var(--lime);color:#20301d;font-weight:700}
.cal-date.other-month{color:#aab3af}
.cal-date.selected.other-month{color:#20301d}
.agenda-search{margin-top:14px}
.agenda-right>input.agenda-search{width:100%;margin-bottom:0}
@media(max-width:1100px){.agenda-layout{grid-template-columns:1fr 240px}}
@media(max-width:760px){.agenda-layout{grid-template-columns:1fr}.agenda-right{border-left:0;border-top:1px solid var(--line);padding:16px 0 0}.agenda-main-action,.agenda-secondary-action{width:100%}}

/* v1.2 - Affiliation settings */
.affiliations-page{max-width:1300px;margin:auto;padding:30px 26px}.affiliations-page h1{margin-top:15px}.affiliation-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:20px}.affiliation-grid .panel{margin:12px 0 22px}.affiliation-panel h3{margin-top:22px}.affiliation-checks{display:flex;flex-wrap:wrap;gap:0 16px}.affiliation-checks label{min-width:160px}.affiliation-panel .primary{margin-top:12px}.appointment-availability{padding:10px 12px;background:#f3f6eb;border:1px solid #e6ebdb;border-radius:8px;font-size:12px}.slot-rule{font-size:11px;color:#6a7670}.billing-warning{color:#956d13}@media(max-width:840px){.affiliation-grid{grid-template-columns:1fr}}

/* v1.3 cobrança avulsa */
.agenda-billing-status{display:block;color:#718079;font-size:10px;white-space:normal}.billing-shell{max-width:1050px;margin:25px auto;padding:0 20px}.billing-head{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:22px}.billing-columns{display:grid;grid-template-columns:1.15fr 1fr;gap:20px}.billing-card{background:#fff;border:1px solid #e3e8e3;border-radius:12px;padding:24px;margin-bottom:18px}.billing-card h2{margin-bottom:16px}.billing-card p{margin:7px 0}.billing-card .check{margin:12px 0}.billing-summary{background:#f5f8ec;padding:17px;border-radius:9px}.billing-number{font-size:29px;font-weight:650}.billing-intro{font-size:12px;color:#67736c;margin-bottom:18px}.billing-note{background:#fff4dd;color:#71530c;padding:12px;border-radius:8px;font-size:12px}.billing-button{margin-top:14px;width:100%}.billing-pill{display:inline-block;padding:3px 10px;border-radius:20px;background:#eef3df;font-size:12px}.billing-card .row{display:flex;gap:10px;align-items:center}.billing-card .row>*{flex:1}.billing-error{background:#fce9e9;border-radius:8px;padding:12px;color:#982e2e;margin:12px 0}@media(max-width:800px){.billing-columns{grid-template-columns:1fr}}


/* v1.4 agenda views */
.agenda-toolbar{align-items:flex-start}
.agenda-toolbar-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.menu-dropdown{position:relative}
.menu-dropdown summary{list-style:none;display:flex;align-items:center;gap:8px;padding:9px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;min-height:36px;cursor:pointer}
.menu-dropdown summary::-webkit-details-marker{display:none}
.menu-dropdown[open] summary{box-shadow:0 4px 18px #00000010}
.menu-label{font-size:12px;color:#74817d}
.menu-dropdown strong{font-weight:500}
.menu-panel{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #00000012;padding:6px;z-index:14}
.menu-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:8px}
.menu-item:hover,.menu-item.active{background:#f1f4ec}
.menu-item.active::after{content:'✓';font-weight:700}
.menu-short{color:#9aa59f;font-size:12px}
.timeline-day,.week-view,.list-view{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.timeline-header,.week-head{display:grid;grid-template-columns:70px 1fr;align-items:end;padding:16px 0 6px}
.timeline-day-title,.week-day-head{display:grid;justify-items:center;gap:4px}
.timeline-day-title strong,.week-day-head strong{display:grid;place-items:center;width:28px;height:28px;border-radius:4px;background:#f0f2ed;font-size:20px;line-height:1;font-weight:700}
.timeline-day-title small,.week-day-head small{color:#61706a;font-size:13px;text-transform:capitalize}
.week-head{grid-template-columns:70px repeat(7,1fr);padding-right:0}
.week-head-spacer{height:1px}
.week-day-head.selected strong{background:#6e8a11;color:#fff}
.timeline-body,.week-body{display:grid;grid-template-columns:70px 1fr;border-top:1px solid var(--line)}
.timeline-hours{position:relative;height:var(--grid-height);background:#fff}
.timeline-hour{height:calc(var(--grid-height) / 15);padding:0 10px;display:flex;align-items:flex-start;justify-content:flex-end;color:#808983;font-size:12px;border-bottom:1px solid #eef0ec}
.timeline-column,.week-column{position:relative;height:var(--grid-height);background:#fff}
.timeline-column{border-left:1px solid var(--line)}
.week-columns{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--line)}
.week-column{border-right:1px solid var(--line)}
.week-column:last-child{border-right:0}
.week-column.weekend{background-image:repeating-linear-gradient(135deg,#fafafa 0,#fafafa 8px,#f1f2ef 8px,#f1f2ef 10px)}
.timeline-line{position:absolute;left:0;right:0;border-top:1px solid #eef0ec}
.timeline-now{position:absolute;left:0;right:0;border-top:2px solid #eb6d6d;z-index:3}
.event-card{position:absolute;left:8px;right:8px;border-radius:6px;padding:6px 10px;overflow:hidden;color:#26443c;box-shadow:0 1px 1px #00000008}
.event-card.compact{padding:5px 7px;font-size:12px}
.event-title{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-time{display:block;font-size:12px;opacity:.85}
.event-realizado{background:#cbe8c8;color:#35663a}
.event-confirmado{background:#cdd8f5;color:#36559f}
.event-agendado{background:#dbcdee;color:#704c8f}
.event-pendente{background:#f6e8bf;color:#8b6721}
.event-falta,.event-cancelado{background:#f0d2d2;color:#8a3d3d}
.timeline-empty{position:absolute;inset:30px 40px auto 40px}
.list-view{padding:10px 0}
.list-day-group{border-top:1px solid var(--line)}
.list-day-group:first-child{border-top:0}
.list-day-header{display:flex;align-items:center;gap:12px;padding:12px 18px;background:#fbfcf9;font-size:20px}
.day-number{display:grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:4px;background:#d8ef76;font-weight:700;font-size:20px;line-height:1}
.list-row{display:grid;grid-template-columns:120px 150px minmax(160px,1fr) minmax(180px,1fr) 160px 120px;gap:16px;padding:13px 18px;border-top:1px solid #eff2ed;align-items:center}
.list-status{font-weight:500}
.status-realizado{color:#2b7a43}.status-confirmado{color:#2457b8}.status-agendado{color:#7f58a1}.status-pendente{color:#a77909}.status-falta,.status-cancelado{color:#ba4141}
.list-professional{display:flex;align-items:center;gap:10px}.avatar.small{width:30px;height:30px;margin:0;background:#6fd3bb;color:#173930;font-size:11px}
.list-service{color:#586761}.list-charge{font-weight:500}.list-charge.paid{color:#ba870d}.list-charge.pending{color:#6c6f72}
.agenda-filters-box{margin-top:16px}.agenda-filters-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.agenda-filters-head h3{margin:0}.agenda-filters-head a{font-size:13px;color:#25342f}.filter-placeholder{border:1px dashed #d3dcd7;border-radius:8px;padding:10px 12px;color:#61706a;margin-top:8px;background:#fff}.agenda-summary{font-size:13px;color:#43524c;margin-top:14px}.agenda-summary ul{margin:8px 0 0 18px;padding:0}
@media(max-width:1200px){.list-row{grid-template-columns:110px 130px minmax(150px,1fr) minmax(160px,1fr) 140px 110px}}
@media(max-width:900px){.agenda-toolbar{flex-direction:column}.agenda-toolbar-actions{width:100%}.timeline-header,.timeline-body,.week-head,.week-body{grid-template-columns:48px 1fr}.week-head{grid-template-columns:48px repeat(7,1fr)}.list-row{grid-template-columns:1fr 1fr}.list-professional,.list-service,.list-charge{grid-column:auto}}
@media(max-width:760px){.menu-panel{left:0;right:auto}.week-head{overflow-x:auto}.week-columns{overflow-x:auto;display:flex}.week-column{min-width:140px}.list-row{grid-template-columns:1fr}.timeline-hour{padding-right:4px}.event-card{left:4px;right:4px}}

/* v1.4.1: cartão de informações ao passar sobre o paciente */
.agenda-hover-target{cursor:help;outline-offset:3px}
.agenda-hover-target:focus-visible{outline:2px solid #658a20;border-radius:3px}
.agenda-hover-popup{position:fixed;z-index:110;background:#fff;border:1px solid #e2e7e2;border-radius:9px;width:min(285px,calc(100vw - 24px));padding:14px 15px;box-shadow:0 14px 35px #17261e29;pointer-events:auto;font-size:12px;color:#26302b;line-height:1.45}
.agenda-hover-popup[hidden]{display:none!important}
.agenda-hover-popup .ah-title{font-size:13px;font-weight:650;margin:0 0 7px}
.agenda-hover-popup .ah-row{display:flex;align-items:center;gap:7px;margin:5px 0}
.agenda-hover-popup .ah-muted{color:#7b8680}
.agenda-hover-popup .ah-status{color:#357746}
.agenda-hover-popup .ah-divider{height:1px;background:#e8ece8;margin:11px 0}
.agenda-hover-popup .ah-charge{display:flex;align-items:center;justify-content:space-between;gap:8px}
.agenda-hover-popup .ah-charge-dot{display:inline-block;height:7px;width:7px;border-radius:50%;background:#e7b013;margin-right:6px}
.agenda-hover-popup .ah-charge-dot.paid{background:#54b777}
.agenda-hover-popup .ah-btn{display:inline-flex;padding:8px 10px;border-radius:6px;background:#f2f3f2;color:#303934;font-weight:550;text-decoration:none;white-space:nowrap}
.agenda-hover-popup .ah-btn:hover{background:#e9eeea}
.agenda-hover-popup .ah-label{font-size:11px;color:#85908a;margin:9px 0 4px}
.agenda-hover-popup .ah-professional{display:flex;align-items:center;gap:7px}
.agenda-hover-popup .ah-avatar{display:grid;place-items:center;width:23px;height:23px;background:#d9dcff;border-radius:50%;font-weight:650;color:#374b82}


/* v1.4.2 — mobile side menu controlled by click rather than touch hover */
.mobile-menu-toggle,.mobile-menu-backdrop{display:none}
@media(max-width:760px){
  .sidebar{width:64px;overflow-x:hidden;transition:width .2s ease;z-index:20}
  .sidebar:hover,.sidebar:focus-within{width:64px;box-shadow:none}
  .sidebar:hover .nav-label,.sidebar:focus-within .nav-label{opacity:0}
  .sidebar.mobile-open,.sidebar.mobile-open:hover,.sidebar.mobile-open:focus-within{width:225px;box-shadow:8px 0 30px #16211d26}
  .sidebar.mobile-open .nav-label,.sidebar.mobile-open:hover .nav-label,.sidebar.mobile-open:focus-within .nav-label{opacity:1}
  .mobile-menu-toggle{display:grid;place-items:center;position:absolute;top:16px;left:14px;width:36px;height:36px;border:0;border-radius:50%;background:var(--lime);color:#203b31;font-size:23px;z-index:2;padding:0;cursor:pointer;touch-action:manipulation}
  .sidebar-brand{padding-left:14px}
  .sidebar-brand .brandmark{visibility:hidden}
  .mobile-menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:rgba(17,28,23,.38);z-index:19}
  .nav-item{touch-action:manipulation}
}

/* v1.4.3: status menu and note action */
.appointment-status-menu{position:relative;color:#6c4c8d;font-size:13px;}
.appointment-status-menu>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;min-height:32px;cursor:pointer;border-radius:5px;padding:4px 6px;white-space:nowrap;}
.appointment-status-menu>summary::-webkit-details-marker{display:none;}
.appointment-status-menu>summary:hover,.appointment-status-menu[open]>summary{background:#f4f5f2;}
.status-chevron{font-size:17px;}
.appointment-status-options{position:absolute;top:calc(100% + 4px);left:0;width:190px;padding:5px;background:#fff;border:1px solid #dbe1df;border-radius:7px;box-shadow:0 6px 21px #18251b20;z-index:30;}
.status-option{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;gap:10px;padding:8px 11px;border:0;border-radius:5px;background:white;color:#3c4341;font-size:13px;font-weight:400;cursor:pointer;}
.status-option:hover{background:#f0f3ee;}
.option-agendado{color:#754ca5}.option-pendente{color:#ab7500}.option-confirmado{color:#2859b5}.option-realizado{color:#2e7541}.option-falta{color:#b33d3d}.option-cancelado{color:#424648}
.status-separator{border-top:1px solid #e8ece9;margin:5px 2px;}
.status-note-action{color:#404541}
/* Allow status menu to remain visible even inside the scrollable list */
.list-view{overflow:visible;}
.list-day-group,.list-row{overflow:visible;}
.list-status{position:relative;z-index:2;}
.list-row:has(.appointment-status-menu[open]){position:relative;z-index:12;background:white;}
@media(max-width:760px){.appointment-status-options{left:0;}}

/* v1.4.4 — usuário em duas linhas na barra lateral */
.sidebar-user{display:flex;align-items:center;gap:10px;min-height:65px;padding:10px 13px;border-top:1px solid var(--line);white-space:nowrap}
.sidebar-user .user-icon{margin:0;flex:0 0 34px}
.sidebar-user-text{display:flex;flex-direction:column;gap:1px;min-width:0;opacity:0;visibility:hidden;transition:opacity .15s}
.sidebar-user-text strong{font-weight:650;font-size:13px;line-height:1.25;overflow:hidden;text-overflow:ellipsis}
.sidebar-user-text small{display:block;font-size:11px;line-height:1.25;color:var(--muted)}
.sidebar:hover .sidebar-user-text,.sidebar:focus-within .sidebar-user-text{opacity:1;visibility:visible}
@media(max-width:760px){.sidebar:hover .sidebar-user-text,.sidebar:focus-within .sidebar-user-text{opacity:0;visibility:hidden}.sidebar.mobile-open .sidebar-user-text{opacity:1;visibility:visible}}

/* v1.4.5 — Nome e local do profissional em linhas separadas na agenda */
.list-professional{display:flex;align-items:center;gap:10px;min-width:0}
.list-professional > div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-width:0}
.list-professional > div > b{display:block;font-size:13px;line-height:1.35;max-width:100%;overflow-wrap:anywhere}
.list-professional > div > small{display:block;font-size:11px;line-height:1.3;color:var(--muted);margin:0;white-space:normal}

/* Perfil autenticado, menu por hover no desktop e toque/clique no celular */
.topbar{position:relative;z-index:18;overflow:visible}
.profile-menu{position:relative;flex-shrink:0}
.profile-menu-trigger{list-style:none;display:flex;align-items:center;gap:8px;border-radius:9px;border:1px solid transparent;padding:5px 9px;cursor:pointer;max-width:260px}
.profile-menu-trigger::-webkit-details-marker{display:none}
.profile-menu-trigger:hover,.profile-menu[open] .profile-menu-trigger{background:#f5f8f0;border-color:#e2e9d9}
.profile-menu-avatar{width:29px;height:29px;border-radius:50%;display:inline-grid;place-items:center;background:#68ceb6;color:#12382e;font-size:12px;font-weight:700;flex-shrink:0}
.profile-menu-label{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-menu-chevron{font-size:17px;color:#70817b}
.profile-menu-panel{display:none;position:absolute;top:calc(100% + 6px);right:0;min-width:230px;max-width:min(300px,92vw);padding:6px;border-radius:10px;background:#fff;border:1px solid #dfe8e0;box-shadow:0 13px 30px #16251f22;z-index:100}
.profile-menu[open] .profile-menu-panel{display:block}
@media(hover:hover) and (pointer:fine){.profile-menu:hover .profile-menu-panel,.profile-menu:focus-within .profile-menu-panel{display:block}}
.profile-menu-identity{padding:10px 12px;border-bottom:1px solid #eef0ed;margin-bottom:5px}
.profile-menu-identity strong,.profile-menu-identity small{display:block;max-width:250px;overflow-wrap:anywhere}
.profile-menu-identity small{font-size:11px}
.profile-menu-panel a{display:block;padding:10px 12px;border-radius:7px;font-size:13px}
.profile-menu-panel a:hover,.profile-menu-panel a:focus{background:#f0f6e7}
@media(max-width:760px){.profile-menu-label{max-width:105px}.topbar{padding:0 12px}.profile-menu-panel{right:0}}
.profile-form{max-width:690px;margin:0 auto}.profile-form .panel{margin:20px 0}.profile-form .btn{margin-right:8px}.profile-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}

/* WhatsApp manual assistido — agenda */
.list-whatsapp{min-width:115px;text-align:right}
.whatsapp-assist-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #cde6d3;background:#ecf8ee;color:#23673e;border-radius:7px;padding:7px 9px;font-size:12px;font-weight:600;white-space:nowrap}
.whatsapp-assist-link:hover,.whatsapp-assist-link:focus{background:#dff3e4;outline-color:#4e9b68}
.list-row{grid-template-columns:110px 125px minmax(125px,1fr) minmax(130px,1fr) 110px 110px 120px;gap:10px}
@media(max-width:1200px){.list-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.list-whatsapp{text-align:left}}
@media(max-width:760px){.list-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.list-whatsapp{text-align:left}}

/* v1.7.3: ações de cobrança diretamente na tabela financeira */
.charge-actions{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:150px}.charge-actions .btn{font-size:12px;padding:7px 10px;min-height:32px}.charge-actions .charge-wa{background:#e2f6e7;border-color:#bedfc6;color:#245e39;font-weight:600}.charge-actions .charge-wa:hover{background:#ccebd5}.charge-hint{font-size:11px;white-space:nowrap}#charges-table{min-width:1050px}

/* 1.7.7: estado da cobrança na agenda */
.list-charge.billing-status{font-size:12px;font-weight:600}
.list-charge.billing-pendente{color:#a36e00}
.list-charge.billing-paga{color:#267a40}
.list-charge.billing-isenta{color:#406f9c}
.list-charge.billing-cancelada{color:#a54646}
.list-charge.billing-sem-cobranca{color:#6c7275}

/* 1.7.8: management controls */
.delete-action{color:#a12d36!important;border-color:#e4c8cb!important;background:#fff!important}
.delete-action:hover{background:#fcebec!important}
.charge-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.charge-wa{background:#dff5e5!important;color:#176536!important;border-color:#bee9c9!important}
#charges-table th:last-child{min-width:270px}
#patient-table td:last-child{white-space:nowrap}


/* v1.6 — Identidade configurável da barra lateral */
.sidebar-brand{align-items:center;min-height:78px;padding:14px 14px 10px}
.sidebar-brand.is-logo{justify-content:center;padding:16px 12px 8px}
.sidebar-brand-logo{display:block;width:auto;max-width:170px;max-height:56px;object-fit:contain}
.sidebar-brand.is-initial .brandmark{font-size:13px;font-weight:700;letter-spacing:.08em}
.brand-choice{display:grid;gap:4px;margin-top:8px}
.brand-preview{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa}
.brand-preview img{display:block;max-width:220px;max-height:72px;width:auto;height:auto;object-fit:contain;margin-top:8px}
.brand-remove{margin-top:10px}
@media(max-width:760px){
  .sidebar-brand.is-logo{justify-content:flex-start;padding-left:56px;min-height:70px}
  .sidebar.mobile-open .sidebar-brand.is-logo{padding-left:14px}
  .sidebar-brand-logo{max-width:150px;max-height:48px}
}
