*{box-sizing:border-box}html{font-family:Inter,Segoe UI,Arial,sans-serif;color:#18262b;background:#f3f7f6}body{margin:0}header{height:66px;background:#fff;border-bottom:1px solid #dfe8e6;display:flex;align-items:center;padding:0 22px;position:sticky;top:0;z-index:30}.brand{display:flex;align-items:center;gap:10px;color:#155f56;font-size:19px}.brand img{height:42px;max-width:55px;object-fit:contain}.user{margin-left:auto;font-size:14px}.user a{color:#155f56}.hamb{display:none;border:0;background:none;font-size:24px}.shell{display:flex;min-height:calc(100vh - 66px)}aside{width:240px;flex:0 0 240px;background:#133932;padding:15px 12px}aside a{display:block;color:#e6f4f1;text-decoration:none;padding:11px 13px;border-radius:9px;margin:2px 0}aside a:hover{background:#205248}aside hr{border:0;border-top:1px solid #346158;margin:10px 4px}main{flex:1;min-width:0;padding:26px;max-width:1500px}h1{margin:0 0 8px}h2{font-size:18px}.muted{color:#6d7d80}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.cards div,.panel{background:#fff;border:1px solid #dfe8e6;border-radius:15px;box-shadow:0 5px 18px rgba(22,52,48,.05)}.cards div{padding:20px}.cards strong{display:block;font-size:30px;color:#155f56}.cards span{color:#718185}.panel{padding:20px;margin:16px 0}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}.form-grid .wide{grid-column:1/-1}.check{flex-direction:row!important;align-items:center}.check input{width:auto}input,select,textarea{font:inherit;border:1px solid #cad8d5;border-radius:9px;padding:10px 11px;background:#fff;min-width:0}textarea{min-height:88px;resize:vertical}button,.btn{font:inherit;border:0;background:#176c60;color:#fff;padding:10px 14px;border-radius:9px;cursor:pointer;text-decoration:none;display:inline-block}.ghost{background:#e9f3f1;color:#155f56}.big{padding:15px 24px;font-weight:700}.inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline input{flex:1;min-width:120px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:720px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e6eceb;font-size:14px;vertical-align:top}th{color:#53676b;font-size:12px;text-transform:uppercase}.badge{background:#e7f2ef;border-radius:99px;padding:5px 8px;font-size:12px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:14px}.ok{background:#e5f6ed;color:#17663b}.error{background:#fee9e7;color:#9f261f}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#123b34,#1f6b60)}.login-card{width:min(430px,92vw);background:#fff;padding:34px;border-radius:20px;box-shadow:0 20px 70px #0004;display:grid;gap:14px}.login-card img{max-height:85px;max-width:160px;margin:auto}.login-card h1{text-align:center;color:#155f56}.login-card p,.login-card small{text-align:center;color:#708082}.login-card label{display:grid;gap:6px}.hero{display:flex;justify-content:space-between;align-items:center;gap:15px}.chat-layout{display:grid;grid-template-columns:220px 1fr;gap:15px}.channels a{display:block;padding:10px;color:#155f56;text-decoration:none}.chatbox{min-height:560px;display:flex;flex-direction:column}.messages{flex:1;overflow:auto;max-height:520px}.msg{padding:10px 3px;border-bottom:1px solid #edf1f0}.msg small{margin-left:8px;color:#879597}.msg p{margin:5px 0}.voice-room{display:flex;justify-content:space-between;align-items:center;border:1px solid #dfe8e6;padding:16px;border-radius:12px;margin:10px 0}.report{max-width:850px;margin:auto;background:white;padding:45px}.signature{margin-top:55px;text-align:center}.anamnese{max-height:1100px;overflow:auto;padding-right:5px}@media print{header,aside,.report button{display:none!important}.shell{display:block}main{padding:0}.report{box-shadow:none;max-width:none}.panel{border:0}}@media(max-width:900px){.hamb{display:block}.brand b{font-size:16px}aside{position:fixed;z-index:25;left:-260px;top:66px;bottom:0;transition:.2s;overflow:auto}.menu-open aside{left:0}main{padding:16px;width:100%}.cards{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}.chat-layout{grid-template-columns:1fr}.channels{display:flex;overflow:auto}.hero{align-items:flex-start;flex-direction:column}.user{font-size:12px}}@media(max-width:520px){.cards{grid-template-columns:1fr}header{padding:0 10px}.brand img{height:36px}.user{max-width:120px;text-align:right}.panel{padding:14px}.login-card{padding:24px}.form-grid{gap:10px}}
/* ===== Interface profissional v2 ===== */
.page-title{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:0 0 18px}.page-title h1{font-size:28px}.status-pill{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfe5df;background:#edf8f5;color:#176c60;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:700}.pro-cards div,.finance-cards div{position:relative;overflow:hidden}.pro-cards div:before,.finance-cards div:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#176c60}.cards small{display:block;margin-top:5px;color:#91a09d}.cards .money{font-size:24px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px}.dashboard-grid.thirds{grid-template-columns:repeat(3,minmax(0,1fr))}.panel-head,.section-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.panel-head h2,.section-title h2{margin:0}.panel-head p,.section-title p{margin:4px 0 0}.section-title{justify-content:flex-start}.section-icon{width:42px;height:42px;border-radius:12px;background:#e8f4f1;display:grid;place-items:center;font-size:20px}.bar-chart{display:grid;gap:14px;margin-top:18px}.bar-row{display:grid;gap:6px}.bar-label{display:flex;justify-content:space-between;gap:12px;font-size:13px}.bar-track,.split-bar{height:11px;border-radius:999px;background:#edf2f1;overflow:hidden;display:flex}.bar-track i{display:block;height:100%;background:#176c60;border-radius:999px;min-width:2px}.split-bar i{display:block;height:100%;background:#176c60}.split-bar em{display:block;height:100%;background:#b7d4ce}.bar-row>small{color:#849491}.finance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.finance-summary>div{padding:12px;border:1px solid #e3ecea;border-radius:12px}.finance-summary span{display:block;font-size:12px;color:#738481}.finance-summary b{display:block;margin-top:5px}.positive{color:#168150!important}.negative{color:#c44949!important}.legend-list{display:grid;gap:4px;margin-top:12px}.legend-list>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #edf2f1}.legend-list small{color:#849491}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#176c60;margin-right:7px}.form-divider{border-top:1px solid #e5ecea;padding-top:14px;margin-top:3px;color:#155f56}.pro-form input,.pro-form select,.pro-form textarea{background:#fbfdfc}.badge.good{background:#e2f5eb;color:#17704a}.badge.bad{background:#fdeaea;color:#a93636}.danger{background:#fcebea;color:#aa3636;padding:7px 10px}.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-nav b{min-width:150px;text-align:center;text-transform:capitalize}.scheduler summary{cursor:pointer;font-weight:700;color:#176c60;padding:4px 0 14px}.calendar-panel{padding:0;overflow:hidden}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{background:#f3f8f7;border-bottom:1px solid #dfe8e6}.weekdays b{padding:12px;text-align:center;font-size:12px;color:#5b716d;text-transform:uppercase}.month-grid{align-items:stretch}.cal-day{min-height:145px;border-right:1px solid #e4ecea;border-bottom:1px solid #e4ecea;padding:8px;background:#fff;min-width:0}.cal-day:nth-child(7n){border-right:0}.cal-day.empty{background:#fafcfb}.cal-day.today{background:#f0faf7;box-shadow:inset 0 0 0 2px #7cc1b3}.day-num{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.day-num span{font-weight:800}.day-num small{background:#176c60;color:#fff;border-radius:999px;padding:2px 6px}.calendar-event{border-left:3px solid #176c60;background:#edf7f4;border-radius:6px;padding:6px;margin:5px 0;display:grid;gap:2px;overflow:hidden}.calendar-event b,.calendar-event span,.calendar-event small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event b{font-size:11px}.calendar-event span{font-size:10px;color:#475e5a}.calendar-event small{font-size:9px;color:#7d8d8a}.status-cancelado{border-left-color:#c44949;background:#fceded}.status-falta{border-left-color:#d9912e;background:#fff3df}.status-feito{border-left-color:#347eb0;background:#eaf4fb}.more{color:#176c60;font-weight:700}.vertical-bars{height:250px;display:flex;align-items:flex-end;justify-content:center;gap:50px;padding:28px 20px 0}.vertical-bars>div{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px}.vertical-bars span{display:block;width:72px;max-height:180px;min-height:3px;background:#176c60;border-radius:9px 9px 3px 3px}.vertical-bars span.expense{background:#c75b5b}.vertical-bars b{font-size:12px}.vertical-bars small{color:#728380}.month-bars{height:260px;display:grid;grid-template-columns:repeat(12,1fr);align-items:end;gap:8px;padding-top:25px}.month-bar{height:225px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:0}.month-column{height:180px;width:100%;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(to top,#f2f6f5 1px,transparent 1px);background-size:100% 45px;border-bottom:1px solid #dbe6e3}.month-column i{display:block;width:min(28px,60%);min-height:2px;background:#176c60;border-radius:7px 7px 0 0}.month-value{font-size:9px;color:#6f817d;white-space:nowrap}.month-bar b{font-size:11px}.chart-legend{display:flex;gap:14px;justify-content:center;margin-top:14px;font-size:12px;color:#6d7d80}.chart-legend i{display:inline-block;width:10px;height:10px;background:#176c60;border-radius:3px;margin-right:5px}
@media(max-width:1100px){.dashboard-grid,.dashboard-grid.thirds{grid-template-columns:1fr}.cal-day{min-height:125px}}
@media(max-width:760px){.page-title{align-items:flex-start;flex-direction:column}.calendar-nav{width:100%;justify-content:space-between}.calendar-panel{overflow-x:auto}.calendar{min-width:720px}.finance-summary{grid-template-columns:1fr}.month-bars{overflow-x:auto;grid-template-columns:repeat(12,54px);justify-content:start}.vertical-bars{gap:30px}.pro-cards .money{font-size:21px}}

/* V3 Neurointensiva + Financeiro profissional */
.event-prof{display:block;font-weight:700;margin-top:3px}
.agenda-filters{align-items:end}
.agenda-filters .btn{align-self:end;text-align:center}
.patient-calendar-head{border-left:4px solid #176b5b}
.block{display:block;margin-top:4px}
.inline.compact{gap:5px;flex-wrap:wrap}
.inline.compact select{min-width:110px}
.calendar-event{border-left:3px solid #176b5b}
@media(max-width:800px){
  .agenda-filters{grid-template-columns:1fr}
  .calendar.month-grid{grid-template-columns:1fr}
  .calendar.weekdays{display:none}
  .cal-day.empty{display:none}
  .cal-day{min-height:auto}
  .cal-day .day-num{position:sticky;top:0}
}

/* ===== V4 - Tema preto/branco + agenda semanal Neurointensiva ===== */
:root{--ink:#0a0a0a;--paper:#fff;--soft:#f5f5f5;--line:#d7d7d7;--muted2:#666}
html{color:var(--ink);background:#ededed}body{background:#ededed}
header{background:#fff;border-color:#d0d0d0}.brand,.brand b,.user a{color:#000}
aside{background:#050505}aside a{color:#fff}aside a:hover{background:#242424}aside hr{border-color:#333}
main{background:#f3f3f3}.muted{color:#666}.cards div,.panel{background:#fff;border-color:#d4d4d4;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.cards strong,.login-card h1,.scheduler summary,.form-divider,.more,.channels a{color:#000}
.pro-cards div:before,.finance-cards div:before{background:#000}.section-icon{background:#eee;color:#000}.status-pill{border-color:#bbb;background:#f3f3f3;color:#000}
input,select,textarea{border-color:#bfbfbf;background:#fff;color:#000}button,.btn{background:#000;color:#fff;border:1px solid #000}.ghost{background:#fff;color:#000;border:1px solid #111}.ghost:hover{background:#eee}
.badge{background:#ededed;color:#111;border:1px solid #d0d0d0}.badge.good,.badge.bad,.danger,.ok,.error{background:#eee!important;color:#000!important;border:1px solid #bbb}.login-page{background:#111}.login-card{border:1px solid #222}.pro-form input,.pro-form select,.pro-form textarea{background:#fff}
.bar-track,.split-bar{background:#e3e3e3}.bar-track i,.split-bar i,.dot,.vertical-bars span,.month-column i,.chart-legend i{background:#111}.split-bar em,.vertical-bars span.expense{background:#999}.positive,.negative{color:#000!important}
.patient-calendar-head{border-left-color:#000}.calendar-event{border-left-color:#111;background:#eee}.cal-day.today{background:#f4f4f4;box-shadow:inset 0 0 0 2px #111}.day-num small{background:#111}.weekdays{background:#f1f1f1}.weekdays b{color:#333}

.neuro-week-panel{padding:0;overflow:hidden}.neuro-week-head{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:18px 20px;border-bottom:1px solid #d4d4d4}.neuro-week-head>div{text-align:center}.neuro-week-head h2{margin:0;font-size:24px;text-transform:uppercase}.neuro-week-head p{margin:4px 0 0}.weekly-scroll{overflow:auto}.weekly-grid{display:grid;grid-template-columns:105px repeat(5,minmax(175px,1fr));min-width:980px;background:#d8d8d8;gap:1px}.weekly-corner,.weekly-day-head,.weekly-time,.weekly-cell{background:#fff}.weekly-corner,.weekly-day-head{min-height:58px;display:flex;align-items:center;justify-content:center;font-weight:800}.weekly-day-head{flex-direction:column;gap:3px}.weekly-day-head small{font-weight:500;color:#666}.weekly-day-head.active-day{background:#111;color:#fff}.weekly-day-head.active-day small{color:#ddd}.weekly-time{min-height:118px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;background:#f1f1f1}.weekly-cell{min-height:118px;padding:7px;display:flex;flex-direction:column;gap:6px}.weekly-event{position:relative;background:#efefef;border:1px solid #c8c8c8;border-left:7px solid #111;border-radius:9px;padding:9px 10px;display:grid;gap:4px;min-height:94px;overflow:hidden}.weekly-event strong{font-size:13px;text-transform:uppercase}.weekly-event b{font-size:12px}.weekly-event span{font-size:11px;text-transform:uppercase}.weekly-event small{font-size:11px;color:#444;text-transform:uppercase}.weekly-event.presence-faltou{border-left-style:dashed;background:#fafafa}.weekly-event.presence-pendente{border-left-color:#777}.weekly-event.presence-dispensado{border-left-color:#aaa}.week-actions{display:flex;justify-content:center;padding:14px;border-top:1px solid #ddd}.month-secondary summary{cursor:pointer;font-weight:800;padding:2px 0}.month-secondary .calendar-panel{margin-top:14px}
@media(max-width:760px){.neuro-week-head{grid-template-columns:1fr;text-align:center}.neuro-week-head>a{width:100%;text-align:center}.weekly-grid{grid-template-columns:82px repeat(5,165px);min-width:907px}.weekly-time,.weekly-cell{min-height:108px}.weekly-event{min-height:84px;padding:7px}.weekly-corner{position:sticky;left:0;z-index:4}.weekly-time{position:sticky;left:0;z-index:3;border-right:1px solid #bbb}}

/* ===== V5 - Agenda semanal fiel ao layout aprovado ===== */
.agenda-screen{max-width:1480px;margin:0 auto}.agenda-page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.agenda-page-heading h1{margin:0;font-size:28px}.agenda-page-heading p{margin:4px 0 0;color:#707070}.agenda-admin-menu{position:relative}.agenda-admin-menu>summary{list-style:none;cursor:pointer;background:#111;color:#fff;border-radius:9px;padding:11px 16px;font-weight:800}.agenda-admin-menu>summary::-webkit-details-marker{display:none}.agenda-admin-popover{position:absolute;right:0;top:48px;width:min(780px,88vw);z-index:30;background:#fff;border:1px solid #bbb;border-radius:14px;padding:18px;box-shadow:0 18px 40px #0002}.agenda-toolbar{background:#fff;border:1px solid #ddd;border-radius:10px;padding:18px;display:grid;grid-template-columns:minmax(520px,1.7fr) minmax(230px,.7fr) minmax(300px,.8fr);gap:24px;align-items:end;margin-bottom:18px}.agenda-toolbar-grid{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(130px,1fr)) auto;gap:10px;align-items:end}.agenda-toolbar label,.agenda-period,.agenda-legend{font-size:12px;font-weight:800;color:#222}.agenda-toolbar select{margin-top:7px;width:100%;height:40px;border:1px solid #ccc;border-radius:7px;background:#fff;padding:0 10px}.agenda-view-button{height:40px;background:#111;color:#fff;border:0;border-radius:7px;padding:0 14px;font-weight:800}.agenda-period span,.agenda-legend>span{display:block;margin-bottom:7px}.agenda-period b{display:flex;align-items:center;height:40px;border:1px solid #ccc;border-radius:7px;padding:0 12px;font-weight:500}.agenda-legend>div{height:40px;border:1px solid #ddd;border-radius:7px;display:flex;align-items:center;gap:8px;padding:0 12px;font-weight:500;white-space:nowrap}.agenda-legend i{width:17px;height:17px;border-radius:4px;display:inline-block;border:1px solid #bbb}.legend-scheduled{background:#ece9f6}.legend-present{background:#39c85c!important;border-color:#39c85c!important;margin-left:8px}.patient-week-card{background:#fff;border:1px solid #ddd;border-radius:10px;padding:18px 18px 10px}.patient-week-card>h2{text-align:center;margin:0 0 16px;font-size:24px;letter-spacing:.3px}.clinic-week-scroll{overflow:auto;border:1px solid #d8d8d8;border-radius:8px}.clinic-week-grid{display:grid;grid-template-columns:105px repeat(5,minmax(190px,1fr));min-width:1055px;background:#ddd;gap:1px}.clinic-corner,.clinic-day-head,.clinic-time,.clinic-slot{background:#fff}.clinic-corner,.clinic-day-head{height:48px;display:flex;align-items:center;justify-content:center;font-weight:800}.clinic-day-head{flex-direction:column;gap:2px}.clinic-day-head small{font-size:10px;color:#777;font-weight:500}.clinic-day-head.is-today{background:#111;color:#fff}.clinic-day-head.is-today small{color:#ddd}.clinic-time{min-height:98px;display:flex;align-items:center;justify-content:center;font-weight:800;background:#f4f4f4}.clinic-slot{min-height:98px;padding:6px}.clinic-event{position:relative;min-height:84px;border:1px solid #bdbdbd;border-radius:7px;background:#f0edf7;padding:8px 8px 7px 13px;display:grid;gap:3px;overflow:hidden}.clinic-event:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#999}.clinic-event.is-present:before{background:#39c85c}.clinic-event strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clinic-event b{font-size:11px;text-transform:uppercase}.clinic-event span{font-size:10px}.clinic-event small{font-size:10px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-room{font-size:10px;font-weight:800;text-transform:uppercase}.event-presence-form{margin-top:3px}.event-presence-form select{width:100%;border:1px solid #c8c8c8;border-radius:5px;background:#fff;font-size:10px;padding:2px 4px}.clinic-week-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:18px 0 5px}.clinic-week-nav a{justify-self:start;text-decoration:none;border:1px solid #111;color:#111;border-radius:7px;padding:9px 14px;font-size:12px;font-weight:800}.clinic-week-nav a:last-child{justify-self:end}.clinic-week-nav .today-button{justify-self:center;background:#111;color:#fff}.patient-picker select{font-weight:700}
@media(max-width:1180px){.agenda-toolbar{grid-template-columns:1fr}.agenda-toolbar-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}.agenda-view-button{width:100%}.agenda-period,.agenda-legend{max-width:none}.agenda-legend>div{width:max-content;max-width:100%}}
@media(max-width:760px){.agenda-page-heading{align-items:flex-start;flex-direction:column}.agenda-admin-menu{width:100%}.agenda-admin-menu>summary{text-align:center}.agenda-admin-popover{position:static;width:100%;margin-top:8px}.agenda-toolbar{padding:12px;gap:14px}.agenda-toolbar-grid{grid-template-columns:1fr}.agenda-legend>div{height:auto;min-height:40px;flex-wrap:wrap}.patient-week-card{padding:12px 8px 8px}.patient-week-card>h2{font-size:18px}.clinic-week-grid{grid-template-columns:80px repeat(5,165px);min-width:905px}.clinic-corner,.clinic-time{position:sticky;left:0;z-index:4}.clinic-time{z-index:3}.clinic-week-nav{grid-template-columns:1fr 1fr}.clinic-week-nav .today-button{grid-column:1/-1;grid-row:1;justify-self:center}.clinic-week-nav a:first-child{grid-row:2}.clinic-week-nav a:last-child{grid-row:2}.clinic-event{padding-left:12px}}

/* ===== V6 - Permissões por profissional + relatório anual de presença ===== */
.permissions-box{border:1px solid #cfcfcf;border-radius:12px;padding:18px;background:#fafafa;margin-top:4px}.permissions-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px}.permissions-head h3{margin:0 0 4px}.permission-actions{display:flex;gap:8px;flex-wrap:wrap}.permission-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.permission-group{background:#fff;border:1px solid #d8d8d8;border-radius:10px;padding:13px;display:grid;gap:9px}.permission-group>b{border-bottom:1px solid #e2e2e2;padding-bottom:8px}.permission-item{display:flex!important;align-items:center;gap:9px;font-weight:600!important;cursor:pointer}.permission-item input{width:17px!important;height:17px;margin:0}.admin-access-note{margin-top:12px;border-left:4px solid #111;background:#eee;padding:10px 12px;font-size:13px}.permissions-disabled{opacity:.55}.professional-form .permissions-box{grid-column:1/-1}
.presence-report{display:grid;gap:18px}.report-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;border-bottom:2px solid #111;padding:6px 2px 14px}.report-heading>div{display:grid;gap:4px}.report-heading b{font-size:20px;letter-spacing:.5px}.report-heading strong{font-size:19px;text-align:right}.report-heading small,.report-heading span{color:#666}.presence-cards{grid-template-columns:repeat(6,1fr)}.presence-cards>div{min-height:120px}.attendance-chart{height:245px;display:grid;grid-template-columns:repeat(12,1fr);gap:9px;align-items:end;padding:18px 4px 2px}.attendance-month{display:grid;grid-template-rows:22px 170px auto auto;gap:5px;text-align:center;min-width:0}.attendance-values{font-size:10px;display:flex;justify-content:center;gap:5px}.attendance-values span:first-child{font-weight:800}.attendance-bars{height:170px;display:flex;align-items:flex-end;justify-content:center;gap:2px;border-bottom:1px solid #bbb}.attendance-bars i{display:block;width:24%;min-height:0;border-radius:4px 4px 0 0}.attendance-bars .present{background:#111}.attendance-bars .absent{background:#8a8a8a}.attendance-bars .other{background:#fff;border:1px solid #aaa}.attendance-month b{font-size:11px}.attendance-month small{font-size:9px;color:#777}.absence-ranking{display:grid;gap:8px}.absence-ranking>div{display:flex;justify-content:space-between;gap:15px;padding:10px 12px;background:#f5f5f5;border:1px solid #ddd;border-radius:8px}.absence-ranking>div span b{display:inline-block;min-width:30px}.empty-state{text-align:center;padding:28px;color:#777}.presence-filter{grid-template-columns:2fr 1fr auto}.print-report{max-width:1500px;margin:auto}
@media(max-width:1100px){.permission-groups{grid-template-columns:1fr 1fr}.presence-cards{grid-template-columns:repeat(3,1fr)}.attendance-chart{overflow-x:auto;grid-template-columns:repeat(12,minmax(58px,1fr))}}
@media(max-width:700px){.permissions-head{flex-direction:column}.permission-groups{grid-template-columns:1fr}.presence-cards{grid-template-columns:1fr 1fr}.presence-filter{grid-template-columns:1fr}.report-heading{align-items:flex-start;flex-direction:column}.report-heading strong{text-align:left}.attendance-chart{grid-template-columns:repeat(12,55px);overflow-x:auto}.attendance-bars i{width:28%}}
@media print{header,aside,.no-print,.hamb,.user{display:none!important}.shell{display:block!important}main{padding:0!important;background:#fff!important}.presence-report{display:block}.presence-report .panel{box-shadow:none;border:1px solid #bbb;margin:12px 0;break-inside:avoid}.presence-cards{display:grid;grid-template-columns:repeat(6,1fr)}.presence-cards>div{box-shadow:none!important;border:1px solid #bbb!important}.attendance-chart{height:210px}.attendance-month{grid-template-rows:20px 145px auto auto}.attendance-bars{height:145px}.table-wrap{overflow:visible}table{font-size:10px}.print-report{max-width:none}}

/* ==========================================================
   CLÍNICA DA PSIQUE — LAYOUT MODERNO COMPLETO v3
   Mantém a logo original e toda a lógica do sistema.
   ========================================================== */
:root{
  --navy:#081d35;
  --navy-2:#0d2947;
  --navy-3:#12375b;
  --teal:#09a78f;
  --teal-2:#17b9a4;
  --blue:#2477e8;
  --purple:#8b55e9;
  --orange:#f2a51a;
  --red:#dc5b68;
  --bg:#f4f7fb;
  --surface:#ffffff;
  --line:#e4eaf1;
  --text:#142033;
  --muted:#728096;
  --shadow:0 10px 35px rgba(18,40,70,.07);
  --radius:16px;
}
html{background:var(--bg);color:var(--text)}
body{background:var(--bg);color:var(--text);min-height:100vh}
.topbar,header{height:72px;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:0 26px 0 282px;box-shadow:0 2px 14px rgba(22,42,68,.035);z-index:40}
.topbar-title{display:flex;flex-direction:column;line-height:1.15;gap:3px}
.topbar-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#8a97aa;font-weight:700}
.topbar-title b{font-size:16px;color:#1a2940}
.brand{display:none}
.user-card{display:flex;align-items:center;gap:10px;margin-left:auto;font-size:13px}
.user-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--teal),var(--blue));color:#fff;font-weight:800;box-shadow:0 5px 14px rgba(36,119,232,.2)}
.user-info{display:grid;line-height:1.2}.user-info b{font-size:13px}.user-info small{font-size:10px;color:var(--muted);font-weight:500;margin-top:2px}
.user-links{display:flex;align-items:center;gap:7px;margin-left:4px}.user-links a{font-size:11px;text-decoration:none;color:#45617e;background:#f3f6fa;padding:6px 8px;border-radius:8px}.user-links a:last-child{color:#b94b57;background:#fff0f2}.user-links a:hover{filter:brightness(.97)}
.shell{min-height:calc(100vh - 72px);display:flex}
aside{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:50;overflow:auto;background:linear-gradient(180deg,var(--navy) 0%,#07172a 100%);padding:18px 14px 24px;box-shadow:8px 0 28px rgba(6,24,45,.08);scrollbar-width:thin;scrollbar-color:#284563 transparent}
.side-brand{display:flex;align-items:center;gap:12px;padding:4px 8px 19px;margin-bottom:10px;border-bottom:1px solid rgba(255,255,255,.09)}
.side-brand img{width:46px;height:46px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.12))}
.side-brand div{display:grid;gap:2px;min-width:0}.side-brand b{color:#fff;font-size:15px;white-space:nowrap}.side-brand span{font-size:10px;color:#8fb1c7;white-space:nowrap}
.nav-label{padding:4px 11px 8px;font-size:9px;font-weight:800;letter-spacing:.12em;color:#6789a3}
aside a{position:relative;display:flex;align-items:center;gap:9px;color:#c8d6e4;text-decoration:none;padding:10px 11px;border-radius:10px;margin:3px 0;font-size:13px;font-weight:600;transition:.18s ease;border:1px solid transparent}
aside a:hover{background:rgba(255,255,255,.07);color:#fff;transform:translateX(2px)}
aside a.active{background:linear-gradient(135deg,#08a98f,#10bfa6);color:#fff;box-shadow:0 7px 18px rgba(9,167,143,.24);border-color:rgba(255,255,255,.1)}
aside a.active:after{content:"";position:absolute;right:9px;width:5px;height:5px;border-radius:50%;background:#fff;opacity:.9}
aside hr{border:0;border-top:1px solid rgba(255,255,255,.09);margin:13px 6px 10px}
main{margin-left:260px;flex:1;width:calc(100% - 260px);max-width:none;padding:30px 34px 48px;min-height:calc(100vh - 72px)}
h1{color:#15243a;font-size:27px;letter-spacing:-.02em}h2{color:#1e2e45;font-size:17px}h3{color:#26384f}.muted{color:var(--muted)}
.page-title{margin:0 0 20px}.page-title h1{font-size:28px;margin-bottom:5px}.page-title p{font-size:13px;margin:0}
.status-pill{border:1px solid #cbece5;background:#effbf8;color:#087c6a;padding:7px 11px;box-shadow:0 2px 8px rgba(9,167,143,.05)}
.cards{gap:16px;margin:20px 0}.cards div,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.cards div{padding:18px 20px;transition:.18s ease}.cards div:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(18,40,70,.09)}
.cards strong{font-size:28px;letter-spacing:-.02em;color:#17263d}.cards span{color:#738197;font-size:12px;font-weight:600}.cards small{color:#95a0af;font-size:11px}
.pro-cards div:before,.finance-cards div:before{width:4px;background:linear-gradient(180deg,var(--teal),var(--blue))}.pro-cards div:nth-child(2):before,.finance-cards div:nth-child(2):before{background:linear-gradient(180deg,var(--blue),#58a0ff)}.pro-cards div:nth-child(3):before,.finance-cards div:nth-child(3):before{background:linear-gradient(180deg,var(--purple),#b98cff)}.pro-cards div:nth-child(4):before,.finance-cards div:nth-child(4):before{background:linear-gradient(180deg,var(--orange),#ffc65a)}
.panel{padding:20px 22px;margin:17px 0}.panel-head,.section-title{margin-bottom:15px}.section-icon{background:linear-gradient(135deg,#e9fbf7,#eaf3ff);color:#087d6b;border:1px solid #dcefea}.dashboard-grid{gap:17px}.dashboard-grid.thirds{gap:17px}
input,select,textarea{border:1px solid #dbe3ec;border-radius:10px;padding:10px 12px;background:#fbfcfe;color:#26364b;outline:none;transition:.16s}input:focus,select:focus,textarea:focus{border-color:#58a8d6;box-shadow:0 0 0 3px rgba(36,119,232,.08);background:#fff}.form-grid label{color:#4a5b70;font-size:12px}.pro-form input,.pro-form select,.pro-form textarea{background:#fbfcfe}
button,.btn{background:linear-gradient(135deg,#079f88,#09b99f);border-radius:10px;padding:10px 14px;font-weight:700;box-shadow:0 5px 12px rgba(8,167,143,.12);transition:.16s}button:hover,.btn:hover{transform:translateY(-1px);filter:saturate(1.04);box-shadow:0 8px 16px rgba(8,167,143,.18)}.ghost{background:#edf4fb;color:#2d5f91;box-shadow:none;border:1px solid #dbe8f3}.danger{background:#fff0f2;color:#b8424f;border:1px solid #ffd9de;box-shadow:none}
.table-wrap{border-radius:var(--radius)}table{border-collapse:separate;border-spacing:0}th{background:#f7f9fc;color:#66768b;font-size:10px;letter-spacing:.045em;border-bottom:1px solid #e5ebf1;padding:11px 10px}td{color:#34455a;border-bottom:1px solid #edf1f5;padding:12px 10px}tr:last-child td{border-bottom:0}tbody tr:hover td{background:#fbfdff}.badge{background:#edf7f5;color:#267565;border:1px solid #dceee9}.badge.good{background:#eaf8f1}.badge.bad{background:#fff0f0}
.bar-track,.split-bar{background:#edf1f6}.bar-track i,.split-bar i{background:linear-gradient(90deg,var(--teal),#31c7b1)}.split-bar em{background:#b8cbd8}.dot{background:var(--teal)}
.finance-summary>div{border-color:#e6ebf2;background:#fbfcfe}.legend-list>div{border-color:#edf1f5}.vertical-bars span,.month-column i{background:linear-gradient(180deg,var(--blue),#1657ad)}
.calendar-panel{border-color:var(--line)}.weekdays{background:#f6f8fb;border-color:#e5eaf0}.cal-day{border-color:#edf1f5}.cal-day.today{background:#f1fbf9;box-shadow:inset 0 0 0 2px #7bd4c5}.day-num small{background:var(--teal)}.calendar-event{border-left-color:var(--teal);background:#eefaf7}.calendar-nav b{color:#2b3e56}
.chat-layout{gap:18px}.channels a{color:#335c81;border-radius:8px}.channels a:hover{background:#edf5fb}.msg{border-color:#edf1f5}.voice-room{border-color:#e2e8ef;background:#fbfcfe}
.alert{border:1px solid transparent;box-shadow:0 4px 15px rgba(0,0,0,.03)}.ok{background:#ecfaf3;color:#177351;border-color:#d5f0e3}.error{background:#fff0f1;color:#a63b47;border-color:#f8d9dd}
.permissions-box{border:1px solid #e2e9f0!important;background:#fbfcfe!important;border-radius:14px!important}
.report{border-radius:18px;box-shadow:var(--shadow)}
/* Login no mesmo padrão moderno, mantendo logo original */
.login-page{background:radial-gradient(circle at 18% 20%,rgba(9,167,143,.22),transparent 31%),radial-gradient(circle at 82% 80%,rgba(36,119,232,.2),transparent 32%),linear-gradient(145deg,#07192e,#0d2d4c);padding:24px}.login-card{border:1px solid rgba(255,255,255,.2);border-radius:24px;padding:36px;box-shadow:0 28px 80px rgba(0,0,0,.28)}.login-card img{max-height:96px;max-width:190px}.login-card h1{color:#14243b;font-size:25px}.login-card button{padding:12px}.login-card input{background:#f8fafc}
/* Rolagem e detalhes */
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#eef2f6}::-webkit-scrollbar-thumb{background:#c7d1dc;border-radius:20px;border:2px solid #eef2f6}::-webkit-scrollbar-thumb:hover{background:#aebbc8}
@media(max-width:1100px){.topbar,header{padding-left:24px}.topbar-title{margin-left:6px}.hamb{display:block;color:#24445f;background:#eef4f8;box-shadow:none;padding:8px 10px}.hamb:hover{transform:none;box-shadow:none}.shell{display:block}aside{left:-275px;transition:.23s ease}.menu-open aside{left:0}.menu-open:before{content:"";position:fixed;inset:0;background:rgba(5,18,33,.45);z-index:45}main{margin-left:0;width:100%;padding:24px}.user-links{display:none}.dashboard-grid,.dashboard-grid.thirds{grid-template-columns:1fr}.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.topbar,header{height:64px;padding:0 12px}.topbar-title{display:none}.user-card{gap:7px}.user-info small{display:none}.user-avatar{width:32px;height:32px}.shell{min-height:calc(100vh - 64px)}aside{top:0}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:24px}main{padding:18px 12px 35px}.cards{grid-template-columns:1fr}.panel{padding:15px}.form-grid{grid-template-columns:1fr}.calendar{min-width:700px}.calendar-panel{overflow:auto}.side-brand{padding-top:3px}}

/* ===== Layout v4: fotos + agenda colorida + identificação visual ===== */
.user-avatar{overflow:hidden}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.person-cell{display:flex;align-items:center;gap:10px;min-width:170px}.person-cell img,.person-cell>span{width:38px;height:38px;border-radius:50%;object-fit:cover;flex:0 0 auto;border:2px solid #fff;box-shadow:0 2px 10px rgba(18,40,70,.12)}.person-cell>span{display:grid;place-items:center;background:linear-gradient(135deg,#dff7f1,#e6efff);color:#1f6589;font-weight:800}.patient-person img,.patient-person>span{width:42px;height:42px}
.photo-upload-field{grid-column:1/-1}.photo-upload-row{display:flex;align-items:center;gap:14px;padding:12px;border:1px dashed #cdd9e5;border-radius:14px;background:#f8fbfd}.profile-preview{width:78px;height:78px;border-radius:18px;object-fit:cover;box-shadow:0 7px 20px rgba(17,44,72,.12);border:3px solid #fff}.profile-preview.placeholder,.patient-photo-large.placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#e7faf6,#edf3ff);font-size:30px}.photo-upload-row input[type=file]{flex:1;background:#fff}.photo-upload-field small{color:#8795a8;margin-top:4px}
.patient-photo-editor{display:flex;align-items:center;gap:18px;padding:16px;border:1px solid #dfe7ef;border-radius:16px;background:linear-gradient(135deg,#f9fcff,#f5fbf9)}.patient-photo-large{width:108px;height:108px;border-radius:24px;object-fit:cover;flex:0 0 auto;border:4px solid #fff;box-shadow:0 10px 26px rgba(16,48,78,.12)}.patient-photo-editor label{flex:1}.patient-photo-editor small{font-weight:500;color:#7d8b9d;margin-top:5px}
.agenda-patient-heading{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 0 16px}.agenda-patient-heading img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 6px 18px rgba(15,44,72,.16)}.agenda-patient-heading h2{margin:0;text-align:left;font-size:23px}.agenda-patient-heading small{display:block;color:#7a8798;margin-top:3px}

/* Agenda semelhante ao mockup: cartões pastel diferentes por profissional */
.clinic-event{border:0!important;box-shadow:0 3px 10px rgba(31,55,79,.08);color:#24364b;transition:.15s}.clinic-event:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(31,55,79,.13)}.clinic-event:before{width:5px!important}.clinic-event.event-color-1{background:#dff6ec}.clinic-event.event-color-1:before{background:#18aa70}.clinic-event.event-color-2{background:#e5f0ff}.clinic-event.event-color-2:before{background:#4387eb}.clinic-event.event-color-3{background:#fff2d9}.clinic-event.event-color-3:before{background:#e4a52c}.clinic-event.event-color-4{background:#f1e7ff}.clinic-event.event-color-4:before{background:#925de0}.clinic-event.event-color-5{background:#ffe6e9}.clinic-event.event-color-5:before{background:#e16574}.clinic-event.event-color-6{background:#e5f7f7}.clinic-event.event-color-6:before{background:#1ea6aa}.clinic-event.is-present{box-shadow:inset 0 0 0 2px rgba(37,173,96,.28),0 3px 10px rgba(31,55,79,.08)}.clinic-event.is-present:after{content:"✓";position:absolute;right:6px;top:6px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#28b866;color:#fff;font-size:10px;font-weight:900}.clinic-day-head.is-today{background:linear-gradient(135deg,#087fcb,#08a98f)!important}.patient-week-card{border:1px solid #e2e9f1;box-shadow:var(--shadow)}.clinic-week-scroll{border-color:#e2e8ef}.clinic-week-grid{background:#e8edf3}.clinic-time{background:#f7f9fc}.agenda-toolbar{border-color:#e2e8ef;box-shadow:var(--shadow)}.agenda-admin-menu>summary,.agenda-view-button,.clinic-week-nav .today-button{background:linear-gradient(135deg,#087fcb,#09a78f)}

/* Ponto com foto do terapeuta */
.point-hero{display:flex;justify-content:space-between;align-items:center;gap:26px;background:linear-gradient(135deg,#ffffff 0%,#f4fbfa 100%);overflow:hidden;position:relative}.point-hero:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-120px;top:-140px;background:radial-gradient(circle,rgba(9,167,143,.13),transparent 68%)}.point-profile{display:flex;align-items:center;gap:18px;position:relative;z-index:1}.point-profile>img,.point-profile>span{width:112px;height:112px;border-radius:28px;object-fit:cover;border:4px solid #fff;box-shadow:0 12px 28px rgba(12,42,72,.16);flex:0 0 auto}.point-profile>span{display:grid;place-items:center;background:linear-gradient(135deg,#09a78f,#2477e8);color:#fff;font-size:38px;font-weight:800}.point-profile small{display:block;color:#7b8999;text-transform:uppercase;letter-spacing:.08em;font-weight:800;font-size:10px}.point-profile h2{font-size:24px;margin:4px 0}.point-profile p{margin:0 0 10px;color:#65768a}.point-time{font-size:18px;color:#183454}.point-action{display:grid;gap:10px;width:min(330px,100%);position:relative;z-index:1}.point-action label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#53657b}.point-action .big{font-size:15px;padding:14px}.point-action>small{text-align:center;color:#8996a5}

/* Refino global para aproximar todo o sistema do mockup */
.topbar:before{content:"";position:absolute;left:282px;right:0;bottom:-1px;height:2px;background:linear-gradient(90deg,rgba(9,167,143,.35),rgba(36,119,232,.15),transparent)}
.panel{transition:box-shadow .18s,border-color .18s}.panel:hover{border-color:#d9e3ed}.page-title h1{font-weight:800}.btn,.status-pill,button{letter-spacing:-.01em}.section-title h2,.panel-head h2{font-weight:800}.table-wrap table td:first-child{font-weight:600}
@media(max-width:800px){.patient-photo-editor,.point-hero,.point-profile{align-items:flex-start;flex-direction:column}.point-action{width:100%}.point-profile>img,.point-profile>span{width:90px;height:90px;border-radius:22px}.patient-photo-large{width:90px;height:90px}.agenda-patient-heading{justify-content:flex-start;padding-left:8px}.topbar:before{left:0}}
.compact-person{min-width:135px}.compact-person img,.compact-person>span{width:32px;height:32px}.compact-person .badge{margin-left:4px}

/* Agenda recorrente em lote */
.agenda-create-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.recurring-menu summary{background:linear-gradient(135deg,#0f766e,#0ea5a4)!important;color:#fff!important}.recurring-popover{width:min(1180px,94vw)!important;right:0!important;max-height:82vh;overflow:auto}.recurring-head h3{margin:0 0 4px;font-size:20px}.recurring-head p{margin:0;color:#64748b}.recurring-basics{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin:16px 0}.recurring-basics label{display:flex;flex-direction:column;gap:5px}.recurring-tip{padding:10px 12px;border-radius:10px;background:#ecfeff;border:1px solid #a5f3fc;color:#155e75;margin-bottom:12px}.recurring-table-wrap{overflow:auto;border:1px solid #e2e8f0;border-radius:12px}.recurring-table{min-width:1020px;margin:0}.recurring-table th{white-space:nowrap;background:#f8fafc}.recurring-table td{padding:8px}.recurring-table input,.recurring-table select{min-width:105px;width:100%;padding:8px}.recurring-table td:nth-child(3) select{min-width:180px}.recurring-table td:nth-child(4) input{min-width:150px}.recurring-table td:nth-child(7) input{min-width:70px}.remove-recurring{border:0;background:#fee2e2;color:#991b1b;border-radius:9px;width:34px;height:34px;font-size:21px;cursor:pointer}.recurring-footer{display:flex;justify-content:space-between;gap:12px;margin-top:14px;align-items:center}@media(max-width:800px){.recurring-basics{grid-template-columns:1fr}.agenda-create-actions{justify-content:flex-start}.recurring-footer{flex-direction:column;align-items:stretch}}

/* Segurança V1 */
.logout-form{display:inline;margin:0}.logout-form button{background:none;border:0;padding:0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline}.logout-form input{display:none}


/* Agenda - cores por STATUS (V4)
   Agendado = branco | Pendente = amarelo | Confirmado = verde | Cancelado = vermelho
   Realizado permanece azul para diferenciar sessões concluídas. */
.agenda-legend .legend-agendado{background:#fff!important;border-color:#aeb8c4!important}
.agenda-legend .legend-pendente{background:#fff3bf!important;border-color:#e1b900!important;margin-left:8px}
.agenda-legend .legend-confirmado{background:#d9f7e5!important;border-color:#28a964!important;margin-left:8px}
.agenda-legend .legend-cancelado{background:#ffe0e0!important;border-color:#d94a4a!important;margin-left:8px}
.clinic-event.status-agendado{background:#fff!important;border:1px solid #d5dbe3!important;color:#24364b!important}
.clinic-event.status-agendado:before{background:#aeb8c4!important}
.clinic-event.status-pendente{background:#fff3bf!important;border:1px solid #ead36a!important;color:#4b3a00!important}
.clinic-event.status-pendente:before{background:#e1b900!important}
.clinic-event.status-confirmado{background:#d9f7e5!important;border:1px solid #83d5a7!important;color:#174d31!important}
.clinic-event.status-confirmado:before{background:#28a964!important}
.clinic-event.status-cancelado{background:#ffe0e0!important;border:1px solid #ef9b9b!important;color:#702222!important;opacity:.92}
.clinic-event.status-cancelado:before{background:#d94a4a!important}
.clinic-event.status-realizado{background:#dceeff!important;border:1px solid #90bfea!important;color:#17466d!important}
.clinic-event.status-realizado:before{background:#3f8dcc!important}
/* A presença continua mostrando o check, mas não muda a cor definida pelo status. */
.clinic-event.is-present{box-shadow:inset 0 0 0 2px rgba(37,173,96,.18),0 3px 10px rgba(31,55,79,.08)!important}

/* ===== Agenda V5 - cartão inteiro sinalizado =====
   A cor ocupa TODO o cartão do atendimento.
   Se a presença estiver como "Presente", o cartão inteiro fica VERDE,
   independentemente do status administrativo do agendamento. */
.clinic-event.status-agendado{
  background:#ffffff!important;
  border:2px solid #cbd5e1!important;
  color:#1f2937!important;
}
.clinic-event.status-pendente{
  background:#ffe58f!important;
  border:2px solid #e2b400!important;
  color:#473800!important;
}
.clinic-event.status-confirmado{
  background:#9ee6b8!important;
  border:2px solid #28a964!important;
  color:#103d27!important;
}
.clinic-event.status-cancelado{
  background:#ffaaaa!important;
  border:2px solid #dc4c4c!important;
  color:#641d1d!important;
  opacity:1!important;
}
.clinic-event.status-realizado{
  background:#acd7ff!important;
  border:2px solid #438dcc!important;
  color:#123f63!important;
}
/* PRESENÇA prevalece visualmente: presente = cartão todo verde */
.clinic-event.is-present,
.clinic-event.status-agendado.is-present,
.clinic-event.status-pendente.is-present,
.clinic-event.status-confirmado.is-present,
.clinic-event.status-realizado.is-present,
.clinic-event.status-cancelado.is-present{
  background:#75dc98!important;
  border:2px solid #159447!important;
  color:#0d3a21!important;
  box-shadow:0 5px 14px rgba(21,148,71,.20)!important;
}
.clinic-event.is-present:before{background:#087b36!important;width:7px!important}
.clinic-event.is-present:after{
  content:"✓";
  position:absolute;
  right:7px;
  top:7px;
  width:21px;
  height:21px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#087b36!important;
  color:#fff!important;
  font-size:12px;
  font-weight:900;
}
.clinic-event.is-present strong,
.clinic-event.is-present b,
.clinic-event.is-present span,
.clinic-event.is-present small,
.clinic-event.is-present .event-line{color:#0d3a21!important}
.clinic-event.is-present .event-presence-form select{
  background:rgba(255,255,255,.82)!important;
  border-color:#2ca45b!important;
  color:#0d3a21!important;
}
/* Garante que o conteúdo interno não crie blocos brancos sobre a cor do cartão. */
.clinic-event strong,.clinic-event b,.clinic-event span,.clinic-event small,.clinic-event .event-line{background:transparent!important}


/* ===== Agenda V6 - PRESENÇA prevalece sobre status =====
   Presente = verde | Faltou = vermelho | Dispensado = cinza.
   Presença Pendente mantém a cor do status. */
.clinic-event.is-absent,
.clinic-event.status-agendado.is-absent,
.clinic-event.status-pendente.is-absent,
.clinic-event.status-confirmado.is-absent,
.clinic-event.status-realizado.is-absent,
.clinic-event.status-cancelado.is-absent{
  background:#ff8f8f!important;
  border:2px solid #d92d20!important;
  color:#5f1712!important;
  opacity:1!important;
  box-shadow:0 5px 14px rgba(217,45,32,.20)!important;
}
.clinic-event.is-absent:before{background:#b42318!important;width:7px!important}
.clinic-event.is-absent:after{
  content:"✕";position:absolute;right:7px;top:7px;width:21px;height:21px;border-radius:50%;
  display:grid;place-items:center;background:#b42318!important;color:#fff!important;font-size:12px;font-weight:900;
}
.clinic-event.is-absent strong,.clinic-event.is-absent b,.clinic-event.is-absent span,.clinic-event.is-absent small,.clinic-event.is-absent .event-line{color:#5f1712!important}
.clinic-event.is-absent .event-presence-form select{background:rgba(255,255,255,.86)!important;border-color:#d92d20!important;color:#5f1712!important}

.clinic-event.is-excused,
.clinic-event.status-agendado.is-excused,
.clinic-event.status-pendente.is-excused,
.clinic-event.status-confirmado.is-excused,
.clinic-event.status-realizado.is-excused,
.clinic-event.status-cancelado.is-excused{
  background:#d8dee7!important;border:2px solid #8793a4!important;color:#344054!important;opacity:1!important;
}
.clinic-event.is-excused:before{background:#667085!important;width:7px!important}
.clinic-event.is-excused strong,.clinic-event.is-excused b,.clinic-event.is-excused span,.clinic-event.is-excused small,.clinic-event.is-excused .event-line{color:#344054!important}


/* ===== Agenda V7 - presença simples e visual igual ao mockup =====
   ÚNICAS CORES DE PRESENÇA:
   Presente = verde | Pendente = amarelo | Faltou = vermelho.
   O status administrativo do agendamento NÃO altera a cor do cartão. */
.agenda-legend.presence-only>div{gap:10px;flex-wrap:wrap}
.agenda-legend .legend-presente{background:#86e6a5!important;border-color:#20a957!important}
.agenda-legend .legend-pendente-presenca{background:#ffe58a!important;border-color:#e0b500!important;margin-left:8px}
.agenda-legend .legend-faltou{background:#ff9a9a!important;border-color:#d92d20!important;margin-left:8px}

.clinic-week-grid{grid-template-columns:88px repeat(7,minmax(155px,1fr))!important;min-width:1175px!important}
.clinic-day-head{min-height:62px!important;background:#f8fafc!important}
.clinic-day-head b{font-size:12px}.clinic-day-head small{font-size:11px}
.clinic-day-head.is-today{background:linear-gradient(135deg,#0b6fd3,#0ca678)!important;color:#fff!important}
.clinic-time{min-height:112px!important;background:#f8fafc!important;font-size:13px!important}
.clinic-slot{min-height:112px!important;padding:7px!important;background:#fff!important}

.clinic-event,
.clinic-event.status-agendado,.clinic-event.status-pendente,.clinic-event.status-confirmado,.clinic-event.status-realizado,.clinic-event.status-cancelado{
  min-height:96px!important;border-radius:9px!important;padding:8px!important;border:1px solid transparent!important;
  color:#172033!important;box-shadow:0 3px 10px rgba(31,55,79,.09)!important;opacity:1!important;
  display:flex!important;flex-direction:column!important;gap:6px!important;
}
.clinic-event:before,.clinic-event:after{display:none!important}
.clinic-event.presence-present{background:#b9f2c9!important;border-color:#72d891!important}
.clinic-event.presence-pending{background:#ffe89b!important;border-color:#e8c44d!important}
.clinic-event.presence-absent{background:#ffb0b0!important;border-color:#ec7070!important}
.clinic-event.presence-present:hover{background:#aaf0be!important}
.clinic-event.presence-pending:hover{background:#ffe48b!important}
.clinic-event.presence-absent:hover{background:#ffa2a2!important}
.clinic-event strong,.clinic-event b,.clinic-event span,.clinic-event small,.clinic-event .event-line,.clinic-event .event-meta{color:#172033!important;background:transparent!important}
.event-main{display:flex;align-items:center;gap:8px;min-width:0}
.event-patient-photo{width:34px;height:34px;border-radius:8px;object-fit:cover;border:2px solid rgba(255,255,255,.85);box-shadow:0 1px 3px #0001;flex:0 0 34px}
.event-patient-photo.placeholder{display:grid;place-items:center;background:#fff;font-size:14px;font-weight:900}
.event-info{min-width:0;display:flex;flex-direction:column;gap:1px}
.event-info strong{font-size:11px!important;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none!important}
.event-info small{font-size:9.5px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none!important}
.event-info b{font-size:9.5px!important;text-transform:none!important}
.event-meta{font-size:8.8px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.event-presence-form{margin-top:auto!important}
.event-presence-form select{height:24px!important;font-size:9.5px!important;background:rgba(255,255,255,.88)!important;border:1px solid rgba(23,32,51,.22)!important;color:#172033!important}

@media(max-width:760px){
 .clinic-week-grid{grid-template-columns:72px repeat(7,150px)!important;min-width:1122px!important}
 .clinic-time{font-size:11px!important}
}

/* Logo oficial Clínica da Psique - V9 */
.login-card .login-logo-completa{width:100%;max-width:330px;height:auto;max-height:none;object-fit:contain;margin:0 auto 4px;display:block}.side-brand.side-brand-logo{padding:5px 5px 16px;display:block}.side-brand.side-brand-logo img{width:100%;height:auto;max-height:74px;object-fit:contain;filter:brightness(0) invert(1);opacity:.96}

/* ===== V10 FINAL - LOGIN PRETO E BRANCO ===== */
.login-page{
  min-height:100vh;
  padding:28px;
  display:grid;
  place-items:center;
  background-image:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.08)),url('/assets/fundo-login-clinica.png');
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
}
.login-card{
  width:min(470px,94vw);
  background:rgba(255,255,255,.96);
  border:1px solid rgba(0,0,0,.14);
  border-radius:18px;
  padding:34px 38px;
  box-shadow:0 22px 65px rgba(0,0,0,.22);
  backdrop-filter:blur(8px);
  gap:13px;
}
.login-card .login-logo-completa{width:100%;max-width:360px;height:auto;max-height:none;margin:0 auto 8px;display:block;filter:grayscale(1) contrast(1.15)}
.login-card p{font-weight:700;font-size:18px;color:#111;margin:2px 0 4px}.login-card p::before{content:'Acesso ao Sistema';font-size:20px;display:block}.login-card p{font-size:0}.login-card p::after{content:'Informe seu usuário e senha para acessar';display:block;font-size:13px;font-weight:400;color:#666;margin-top:7px}
.login-card label{color:#222;font-weight:600;font-size:13px}.login-card input{border:1px solid #d4d7dc;background:#fff;border-radius:8px;padding:12px 13px;box-shadow:none}.login-card button{background:#111!important;color:#fff!important;border:1px solid #111;border-radius:7px;font-weight:700;padding:13px}.login-card button:hover{background:#2b2b2b!important}.login-card small{color:#777;margin-top:2px}
@media(max-width:600px){.login-page{padding:16px;background-position:center}.login-card{padding:26px 22px}.login-card .login-logo-completa{max-width:310px}}

/* ===== V11 FINAL MONOCROMATICO ===== */
:root{--ink:#111;--ink2:#252525;--paper:#fff;--soft:#f4f4f4;--line:#e1e1e1}
body:not(.login-page){background:#f3f3f3!important;color:#171717!important}
body:not(.login-page) header.topbar{background:#fff!important;border-bottom:1px solid #dedede!important}
body:not(.login-page) .topbar:before{background:#111!important;opacity:.12}
body:not(.login-page) aside{background:linear-gradient(180deg,#111,#1a1a1a)!important}
body:not(.login-page) aside a{color:#f4f4f4!important}
body:not(.login-page) aside a:hover{background:#2a2a2a!important}
body:not(.login-page) aside a.active,body:not(.login-page) aside a[aria-current="page"]{background:#fff!important;color:#111!important;box-shadow:0 7px 20px #0003!important}
body:not(.login-page) aside hr{border-color:#333!important}
body:not(.login-page) .nav-label{color:#aaa!important}
body:not(.login-page) .panel,body:not(.login-page) .cards>div{background:#fff!important;border-color:#e2e2e2!important;box-shadow:0 6px 20px rgba(0,0,0,.05)!important}
body:not(.login-page) .cards strong{color:#111!important}
body:not(.login-page) button,body:not(.login-page) .btn{background:#111!important;color:#fff!important}
body:not(.login-page) .ghost{background:#eee!important;color:#111!important}
body:not(.login-page) .status-pill{background:#fff!important;color:#111!important;border-color:#ddd!important}
body:not(.login-page) .user-avatar{background:#111!important;color:#fff!important}
body:not(.login-page) a{accent-color:#111}
body:not(.login-page) .progress-fill,body:not(.login-page) [class*="bar-fill"]{background:#111!important}
.side-brand.side-brand-logo img{filter:brightness(0) invert(1)!important;max-height:82px!important}

.login-page{background-image:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)),url('/assets/fundo-login-clinica.png')!important;background-size:cover!important;background-position:center!important}
.login-card{width:min(470px,94vw)!important;background:rgba(255,255,255,.97)!important;border:1px solid #d8d8d8!important;box-shadow:0 24px 70px rgba(0,0,0,.25)!important;padding:34px 38px!important}
.login-card .login-logo-completa{max-width:350px!important;filter:grayscale(1) contrast(1.2)!important}
.login-card p::before{content:'Acesso ao Sistema'!important}
.login-card p::after{content:'Informe seu usuário e senha para acessar'!important}
.login-card button{background:#111!important;color:#fff!important}
.login-card small{display:none!important}

/* ===== V12 FINAL MOBILE - foco em uso dos terapeutas no celular =====
   Regras somente para telas pequenas: o desktop permanece inalterado. */
@media (max-width: 760px){
  html,body{max-width:100%;overflow-x:hidden}
  body:not(.login-page){font-size:15px}
  body:not(.login-page) header.topbar{height:60px!important;padding:0 10px!important;gap:8px}
  body:not(.login-page) .hamb{display:block!important;min-width:42px;min-height:42px;padding:7px 10px!important;font-size:23px!important;border-radius:10px!important}
  body:not(.login-page) .user-card{margin-left:auto!important;min-width:0;max-width:calc(100vw - 64px);gap:7px!important}
  body:not(.login-page) .user-info{min-width:0;max-width:170px}
  body:not(.login-page) .user-info b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
  body:not(.login-page) .user-info small{display:none!important}
  body:not(.login-page) .user-avatar{width:34px!important;height:34px!important;flex:0 0 34px}
  body:not(.login-page) .shell{min-height:calc(100vh - 60px)!important}
  body:not(.login-page) aside{top:0!important;width:min(82vw,300px)!important;left:min(-84vw,-305px)!important;padding:14px 12px 22px!important;z-index:60!important;box-shadow:12px 0 34px rgba(0,0,0,.28)}
  body:not(.login-page).menu-open aside{left:0!important}
  body:not(.login-page).menu-open:before{z-index:55!important}
  body:not(.login-page) aside a{padding:13px 14px!important;font-size:14px!important;margin:3px 0!important}
  body:not(.login-page) .side-brand.side-brand-logo img{max-height:66px!important}
  body:not(.login-page) main{margin-left:0!important;width:100%!important;padding:14px 10px 28px!important;min-width:0!important}
  body:not(.login-page) h1{font-size:23px!important;line-height:1.18}
  body:not(.login-page) h2{font-size:17px!important;line-height:1.25}
  body:not(.login-page) .page-title{gap:8px!important;margin-bottom:14px!important}
  body:not(.login-page) .page-title,.panel-head,.section-title{align-items:flex-start!important;flex-direction:column!important}
  body:not(.login-page) .page-title .btn,body:not(.login-page) .page-title button{width:100%;text-align:center}
  body:not(.login-page) .cards{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;margin:13px 0!important}
  body:not(.login-page) .cards>div{padding:13px 12px!important;border-radius:13px!important;min-width:0}
  body:not(.login-page) .cards strong{font-size:22px!important;overflow-wrap:anywhere}
  body:not(.login-page) .cards span{font-size:11px!important}
  body:not(.login-page) .panel{padding:14px 12px!important;margin:12px 0!important;border-radius:14px!important;max-width:100%;overflow:hidden}
  body:not(.login-page) .dashboard-grid,body:not(.login-page) .dashboard-grid.thirds{grid-template-columns:1fr!important;gap:10px!important}
  body:not(.login-page) .form-grid{grid-template-columns:1fr!important;gap:10px!important}
  body:not(.login-page) .form-grid .wide{grid-column:auto!important}
  body:not(.login-page) input,body:not(.login-page) select,body:not(.login-page) textarea{width:100%!important;max-width:100%;min-height:44px;font-size:16px!important;padding:10px 11px!important}
  body:not(.login-page) textarea{min-height:115px;line-height:1.45}
  body:not(.login-page) button,body:not(.login-page) .btn{min-height:43px;padding:10px 14px!important;font-size:14px!important}
  body:not(.login-page) .inline{width:100%;align-items:stretch!important;gap:8px!important}
  body:not(.login-page) .inline>input,body:not(.login-page) .inline>select{flex:1 1 150px!important}
  body:not(.login-page) .inline>button,body:not(.login-page) .inline>.btn{flex:1 1 auto;text-align:center}
  body:not(.login-page) .table-wrap{width:100%;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;border-radius:12px;position:relative}
  body:not(.login-page) .table-wrap table{min-width:680px!important;width:max-content!important;max-width:none}
  body:not(.login-page) .table-wrap th,body:not(.login-page) .table-wrap td{white-space:nowrap;padding:10px 9px!important;font-size:12px!important}
  body:not(.login-page) .table-wrap .person-cell{min-width:145px}
  body:not(.login-page) .finance-summary{grid-template-columns:1fr!important}
  body:not(.login-page) .photo-upload-row,body:not(.login-page) .patient-photo-editor,body:not(.login-page) .point-hero,body:not(.login-page) .point-profile{flex-direction:column!important;align-items:stretch!important}
  body:not(.login-page) .photo-upload-row input[type=file]{width:100%!important}
  body:not(.login-page) .point-action{width:100%!important}
  body:not(.login-page) .report{padding:18px!important;width:100%!important}
  body:not(.login-page) .chatbox{min-height:440px}
  body:not(.login-page) .messages{max-height:55vh}
  body:not(.login-page) .voice-room{flex-direction:column!important;align-items:stretch!important;gap:10px}
  body:not(.login-page) .clinic-week-scroll,body:not(.login-page) .calendar-panel{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  body:not(.login-page) .clinic-week-grid{grid-template-columns:66px repeat(7,148px)!important;min-width:1102px!important}
  body:not(.login-page) .agenda-toolbar{padding:10px!important}
  body:not(.login-page) .agenda-create-actions{width:100%;justify-content:stretch!important}
  body:not(.login-page) .agenda-create-actions>*{flex:1 1 145px;text-align:center}
  body:not(.login-page) .recurring-popover{position:fixed!important;left:8px!important;right:8px!important;top:70px!important;width:auto!important;max-height:calc(100vh - 82px)!important}
  body:not(.login-page) .recurring-footer{align-items:stretch!important}
  body:not(.login-page) .recurring-footer button,body:not(.login-page) .recurring-footer .btn{width:100%}
  /* Evoluções: leitura e digitação confortáveis no celular */
  body:not(.login-page) form[action=""]{max-width:100%}
  body:not(.login-page) .panel .page-title h2{font-size:18px!important}
  body:not(.login-page) .panel .page-title .muted{font-size:12px;line-height:1.45}
}
@media (max-width: 430px){
  body:not(.login-page) .cards{grid-template-columns:1fr 1fr!important}
  body:not(.login-page) .cards>div{padding:12px 10px!important}
  body:not(.login-page) .cards strong{font-size:20px!important}
  body:not(.login-page) .user-info{max-width:135px}
  body:not(.login-page) main{padding-left:8px!important;padding-right:8px!important}
  body:not(.login-page) .panel{padding-left:11px!important;padding-right:11px!important}
}

/* V13: ações da conta acessíveis no menu mobile */
.mobile-account-actions{display:none}
@media(max-width:1100px){
  .mobile-account-actions{display:block;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18)}
  .mobile-account-actions>a{display:block!important}
  .mobile-logout-form{margin:2px 0 18px}
  .mobile-logout-form input{display:none}
  .mobile-logout-form button{display:block;width:100%;text-align:left;background:transparent;color:#e6f4f1;padding:11px 13px;border:0;border-radius:9px;box-shadow:none;font:inherit;cursor:pointer}
  .mobile-logout-form button:hover{background:#205248;transform:none;box-shadow:none}
}
