/* Layout isolado da Agenda: não altera Login, Portal ou demais módulos. */
.ao-shell{--ao-night:#041c32;--ao-gold:#edbf64;min-height:100vh;display:grid;grid-template-columns:174px minmax(0,1fr);background:#f4f7fc;color:#102745;font-family:Inter,Arial,sans-serif}.ao-shell *{box-sizing:border-box}.ao-shell button,.ao-shell input,.ao-shell select{font-family:inherit}.ao-menu{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:linear-gradient(160deg,#061e34,#001426);color:#e5edf7;padding:20px 10px;gap:22px}.ao-brand .logo{width:100%;padding:0}.ao-brand img{max-width:100%;height:50px;object-fit:contain}.ao-menu nav{display:grid;gap:6px}.ao-menu nav button{display:flex;align-items:center;gap:12px;border:0;border-radius:9px;background:transparent;color:#eef5ff;text-align:left;padding:13px 12px;font-size:13px}.ao-menu nav button:hover{background:#15324d}.ao-menu nav button.active{background:linear-gradient(100deg,#f2ce81,#e9b54d);color:#08223a;font-weight:750}.ao-menu svg{width:20px;height:20px;flex-shrink:0}.ao-motto{margin:auto 0 0;color:#edbf64;font-family:Georgia,serif;font-style:italic;font-size:23px;line-height:1.35;padding:15px}.ao-menu>small{font-size:11px;line-height:1.8;padding:0 12px;color:#bccbdf}.ao-workspace{min-width:0}.ao-top{position:relative;height:76px;display:flex;align-items:center;gap:20px;background:#041c32;color:white;padding:12px 26px;border:0;box-shadow:none}.ao-top #ao-search{display:flex;align-items:center;gap:12px;max-width:800px;flex:1;background:#143049;border:1px solid #1b3851;border-radius:9px;padding:0 14px}.ao-top #ao-search input{height:40px;width:100%;min-width:0;background:transparent;border:0;color:white;font-size:12px;padding:8px}.ao-top #ao-search input::placeholder{color:#d0dcea}.ao-top kbd{white-space:nowrap;font-size:10px;background:#244057;border-radius:4px;padding:4px}.ao-notifications{position:relative;background:transparent;border:0;color:#fff}.ao-notifications svg{width:24px;height:24px}.ao-user{position:relative;min-width:185px}.ao-user summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none;font-size:12px}.ao-user small{display:block;color:#bdcbdb;margin-top:6px}.ao-avatar{display:grid;place-items:center;background:#14364f;border-radius:50%;width:40px;height:40px;color:#fff;font-weight:700}.ao-user>div{position:absolute;right:0;top:52px;min-width:160px;z-index:30;background:#fff;box-shadow:0 8px 25px #10274530;border-radius:10px;padding:10px}.ao-user>div button{display:block;border:0;padding:12px;background:white;width:100%;text-align:left}.ao-page{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:16px;padding:18px;max-width:1900px;margin:auto}.ao-central{min-width:0}.ao-heading{display:flex;align-items:center;gap:15px;margin-bottom:18px}.ao-heading>div{flex:1}.ao-heading h1{font-family:inherit;font-size:30px;line-height:1.1;margin:0 0 8px;font-weight:800;letter-spacing:-1px;color:#091f3a}.ao-heading p{font-size:12px;margin:0;color:#55708b;line-height:1.5}.ao-gold{background:linear-gradient(100deg,#f2ce81,#e9b54d);border:0;color:#0d2337;font-weight:700;border-radius:8px;padding:14px 18px;white-space:nowrap}.ao-controls{justify-content:flex-start;flex-wrap:wrap;padding:9px;gap:5px;border-color:#e7edf7;border-radius:10px;margin-bottom:14px;min-height:58px}.ao-controls>button{width:auto;min-width:34px;height:36px;padding:7px 10px;background:#f0f4fa;color:#193353;display:block;white-space:nowrap}.ao-date{position:relative;flex:1;min-width:195px;font-size:12px;font-weight:700;padding:10px 12px;text-transform:capitalize}.ao-date input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.ao-controls .ao-modes{display:flex;flex-direction:row;min-width:0;gap:3px;flex-wrap:wrap}.ao-modes button{border:0;background:#f2f5fa;color:#173250;border-radius:7px;padding:10px 12px;font-size:11px}.ao-modes button.selected{background:#041c32;color:#fff}.ao-right{display:grid;gap:14px;align-content:start}.ao-panel{background:#fff;border:1px solid #e9eef7;border-radius:12px;padding:15px}.ao-panel h2{font-family:inherit;font-size:15px;font-weight:750;margin:0 0 14px;color:#102540}.ao-panel-title{display:flex;align-items:center;gap:5px}.ao-panel-title h2{flex:1;margin:0}.ao-panel-title button{border:0;border-radius:6px;background:#f3f6fa;padding:3px 10px;font-size:20px;color:#102540}.ao-month-title{text-align:center;text-transform:capitalize;font-size:12px;font-weight:700;margin:18px 0}.ao-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}.ao-calendar span{font-size:10px;color:#7790af;padding:6px 0}.ao-calendar button{border:0;background:transparent;border-radius:50%;aspect-ratio:1;padding:0;min-width:0;color:#294569;font-size:11px}.ao-calendar button.today{box-shadow:inset 0 0 0 1px #c99b3c}.ao-calendar button.selected{background:#061f37;color:#fff}.ao-calendar button:hover{background:#dce9fb;color:#102540}.ao-panel select{width:100%;min-width:0;background:#fff;border:1px solid #dfe7f2;color:#385573;border-radius:7px;padding:10px;margin-bottom:10px;font-size:12px}.ao-status-filters{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:6px 0 12px}.ao-status-filters button{border:1px solid transparent;border-radius:18px;font-size:10px;padding:9px 5px;display:flex;align-items:center;justify-content:center;gap:6px;white-space:normal}.ao-status-filters button.selected{outline:2px solid #1f3c88;outline-offset:1px}.ao-panel [data-clear-filters]{background:transparent;border:0;color:#47658b;padding:5px;font-size:11px}.ao-shell .status-scheduled{background:#e9f2ff;color:#174993;border-left-color:#3578e5}.ao-shell .status-confirmed{background:#e6f6ed;color:#166435;border-left-color:#22ab58}.ao-shell .status-waiting{background:#f0eafa;color:#633f9a;border-left-color:#9965d2}.ao-shell .status-in_service{background:#fff5d9;color:#815700;border-left-color:#e5b32c}.ao-shell .status-completed{background:#edf1f6;color:#4e6177;border-left-color:#8194ad;opacity:1}.ao-shell .status-cancelled{background:#ffebee;color:#a03145;border-left-color:#f25470}.ao-shell .status-no_show{background:#f1eaf0;color:#795567;border-left-color:#af8199;opacity:1}.ao-summary{display:grid;gap:7px;margin:15px 0}.ao-summary>div{display:grid;grid-template-columns:25px 30px 1fr;align-items:center;gap:9px;background:#f4f7fb;color:#3d5877;border-radius:7px;padding:9px;font-size:11px}.ao-summary strong{font-size:20px;color:#10243a}.ao-summary>div>span:first-child{font-size:18px}.ao-panel .ao-report{width:100%;padding:13px;background:#041c32;border:0;color:#fff;border-radius:7px;font-size:12px}.ao-panel [data-ao-block]{width:100%;background:#fff;border:1px solid #dbe5f1;padding:10px;margin-top:10px;border-radius:7px;color:#264565}.ao-shell .agenda-book{height:calc(100vh - 240px);min-height:380px;max-height:none;overflow:auto;box-shadow:none;border:1px solid #e0e9f4;border-radius:10px;animation:none;background:white}.ao-shell .agenda-grid{grid-template-columns:68px repeat(var(--cols),minmax(174px,1fr));min-width:100%;width:max-content}.ao-shell .pro-head,.ao-shell .corner{height:60px;background:#f7f9fd;position:sticky;top:0;border-color:#e2eaf4}.ao-shell .corner{left:0;font-size:11px;width:auto}.ao-shell .pro-head{padding:8px 12px;gap:8px}.ao-shell .pro-head>span{border-radius:50%;width:34px;height:34px;font-size:11px}.ao-shell .pro-head strong{font-family:inherit;font-size:12px;font-weight:750;white-space:normal}.ao-shell .pro-head small{font-size:10px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ao-shell .times{background:#f7f9fd}.ao-shell .times time{font-size:10px;font-weight:400;color:#6c84a1;border-color:#edf2f8;padding-top:4px}.ao-shell .times time.past,.ao-shell .slot.past{background:#f8fafc}.ao-shell .slot{border-color:#edf2f8}.ao-shell .slot:hover:not(:disabled){background:#eaf2fc}.ao-shell .pro-column{background:#fff;border-color:#e3eaf4}.ao-shell .appointment{border-width:0 0 0 4px;border-style:solid;left:5px;right:5px;border-radius:6px;box-shadow:none;padding:4px 8px;gap:1px;min-height:0}.ao-shell .appointment strong{font-size:11px;line-height:1.2;padding-right:12px}.ao-shell .appointment small{font-size:10px;color:inherit;line-height:1.2}.ao-shell .appointment time{order:3;font-size:9px;color:inherit;font-weight:400;line-height:1.2}.ao-shell .appointment em{display:none}.ao-card-status{position:absolute;right:5px;top:5px;font-size:12px}.ao-block{position:absolute;left:5px;right:5px;z-index:1;background:repeating-linear-gradient(135deg,#eef2f7,#eef2f7 3px,#f7f9fc 3px,#f7f9fc 6px);border:1px dashed #c6d5e4;border-radius:5px;color:#58728d;display:flex;align-items:center;justify-content:center;font-size:10px;overflow:hidden}.ao-shell .agenda-now{z-index:5;color:#9b6508;font-size:10px}.ao-week{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));overflow:auto;max-height:calc(100vh - 225px);gap:9px}.ao-week>section{background:#fff;border:1px solid #e3eaf4;border-radius:10px;padding:8px;min-height:350px}.ao-week-date{position:sticky;top:0;z-index:2;width:100%;border:0;padding:12px 6px;background:#f0f5fc;border-radius:6px;font-weight:700;color:#183852}.ao-week-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:10px;border:0;border-left:3px solid;margin-top:10px;border-radius:7px;width:100%;font-size:12px}.ao-week-card small{font-size:10px;line-height:1.4}.ao-week>section>p,.ao-week-block{font-size:11px;color:#607991;padding:10px;line-height:1.6}.ao-week-block{background:#edf2f7;border-radius:7px;margin-top:8px}.ao-shop{background:white;padding:16px;border:1px solid #e3eaf4;border-radius:10px}.ao-shop h2{font-size:18px;font-family:inherit}.appointment-row{width:100%;display:grid;grid-template-columns:55px 1fr 140px 110px;gap:10px;align-items:center;text-align:left;border:0;border-left:4px solid;border-radius:7px;padding:14px;margin-top:9px;font-size:12px}.appointment-row small{display:block;margin-top:5px;font-weight:400}.ao-search-results{display:grid;gap:8px;max-height:65vh;overflow:auto}.ao-search-results button{display:flex;flex-direction:column;text-align:left;gap:6px;border:1px solid #dde6f1;border-radius:8px;padding:14px;background:#f9fbfe}.ao-search-results small{color:#64748b}.ao-filter-toggle,.ao-mobile-pro{display:none}.ao-shell :focus-visible{outline:3px solid #c89b3c;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1650px){.ao-shell .agenda-grid{width:100%;grid-template-columns:68px repeat(var(--cols),minmax(180px,1fr))}}
@media(max-width:1200px){.ao-shell{grid-template-columns:70px minmax(0,1fr)}.ao-menu nav button{justify-content:center}.ao-menu nav span,.ao-motto,.ao-menu>small{display:none}.ao-brand img{height:38px}.ao-page{grid-template-columns:minmax(0,1fr) 230px;padding:12px;gap:12px}.ao-heading{flex-wrap:wrap}.ao-heading h1{font-size:26px}.ao-top{padding:12px 18px}.ao-controls .ao-modes{width:100%}}
@media(max-width:950px){.ao-page{grid-template-columns:minmax(0,1fr)}.ao-right{display:none}.ao-right.open{display:grid;position:fixed;inset:76px 0 0 auto;width:300px;max-width:90vw;overflow-y:auto;z-index:25;background:#f4f7fc;box-shadow:-10px 0 50px #071e3440;padding:15px}.ao-filter-toggle{display:block;border:1px solid #dbe4f0;background:#fff;border-radius:7px;padding:9px;font-size:11px;color:#2f4c6b}.ao-shell .agenda-book{height:calc(100vh - 300px)}.ao-user{min-width:0}.ao-user summary>span:nth-child(2){display:none}}
@media(max-width:700px){.ao-shell{display:block}.ao-menu{position:relative;width:100%;height:auto;padding:8px;gap:0}.ao-brand,.ao-menu>small{display:none}.ao-menu nav{display:flex;overflow-x:auto;gap:3px}.ao-menu nav button{padding:9px;min-width:42px}.ao-menu nav button.active span{display:block;font-size:11px}.ao-menu svg{width:19px;height:19px}.ao-top{height:60px;padding:8px 12px;gap:8px}.ao-top kbd{display:none}.ao-top #ao-search{padding:0 8px}.ao-top #ao-search input{font-size:11px}.ao-avatar{width:30px;height:30px;font-size:11px}.ao-page{padding:12px}.ao-heading p{font-size:11px}.ao-heading h1{font-size:25px}.ao-heading{gap:10px}.ao-gold{padding:12px;font-size:12px}.ao-heading>div{flex-basis:100%}.ao-controls .ao-date{font-size:11px;min-width:160px}.ao-modes button{padding:9px;font-size:11px}.ao-mobile-pro{display:block;margin:10px 0}.ao-mobile-pro label{font-size:11px;display:flex;align-items:center;gap:10px}.ao-mobile-pro select{flex:1;padding:10px;border:1px solid #dbe4f1;border-radius:7px}.ao-shell .agenda-grid{width:100%;grid-template-columns:50px minmax(220px,1fr);min-width:270px}.ao-shell .agenda-book{height:58vh;min-height:340px}.ao-shell .pro-head strong{font-size:13px}.ao-shell .appointment strong{font-size:11px}.ao-shell .appointment small{font-size:10px}.ao-shell .corner{font-size:10px}.ao-right.open{top:0}.appointment-row{grid-template-columns:42px 1fr;font-size:11px}.appointment-row>span,.appointment-row>b{grid-column:2}.ao-week{max-height:65vh}.ao-shell .month-grid{min-width:0;gap:3px}.ao-shell .month-grid button{padding:6px;min-width:0}.ao-shell .month-grid small{font-size:9px}}
/* Mantém a escala de 1,8 px/min apesar do tamanho mínimo global dos botões. */
.ao-shell .slot{height:27px;min-height:0;padding:0;border-radius:0}.ao-shell .ao-calendar button{min-height:28px}.ao-shell .ao-panel-title button{min-height:28px}.ao-shell .ao-controls>button{min-width:34px;min-height:36px}.ao-shell .ao-status-filters button{min-height:34px}

/* Agenda R4 — adaptação à área útil do monitor */
html:has(.ao-shell),body:has(.ao-shell),body:has(.ao-shell) #app{height:100%;overflow:hidden}
.ao-shell{height:100vh;height:100dvh;min-height:0;overflow:hidden;grid-template-columns:clamp(72px,11vw,174px) minmax(0,1fr)}
.ao-menu{height:100vh;height:100dvh;min-height:0;overflow:hidden;padding-block:clamp(8px,2vh,20px);gap:clamp(6px,1.8vh,22px)}
.ao-menu nav{min-height:0;gap:clamp(2px,.7vh,6px)}
.ao-menu nav button{padding-block:clamp(7px,1.35vh,13px)}
.ao-workspace{height:100vh;height:100dvh;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.ao-top{height:clamp(58px,8.2vh,76px);min-height:58px;padding-block:8px}
.ao-page{width:100%;height:100%;min-height:0;overflow:hidden;grid-template-columns:minmax(0,1fr) clamp(220px,18vw,258px);grid-template-rows:minmax(0,1fr);gap:clamp(8px,1vw,16px);padding:clamp(8px,1.7vh,18px)}
.ao-central{height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}
.ao-heading{min-height:0;margin-bottom:clamp(7px,1.5vh,18px)}
.ao-heading h1{font-size:clamp(24px,2vw,30px);margin-bottom:clamp(2px,.7vh,8px)}
.ao-controls{min-height:48px;margin-bottom:clamp(7px,1.2vh,14px);padding:clamp(5px,.9vh,9px)}
.ao-shell .agenda-book{height:auto;min-height:0;max-height:none;align-self:stretch}
.ao-right{height:100%;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;gap:clamp(8px,1.4vh,14px);padding-right:2px}
.ao-panel{padding:clamp(10px,1.5vh,15px)}
.ao-panel h2{margin-bottom:clamp(7px,1.2vh,14px)}
.ao-month-title{margin:clamp(7px,1.4vh,18px) 0}
.ao-calendar{gap:clamp(1px,.45vh,4px)}
.ao-calendar span{padding:clamp(2px,.65vh,6px) 0}
.ao-calendar button{aspect-ratio:auto;height:clamp(23px,3.2vh,28px)}
.ao-panel select{padding:clamp(7px,1vh,10px);margin-bottom:clamp(5px,.9vh,10px)}
.ao-status-filters{gap:clamp(4px,.7vh,7px);margin:4px 0 clamp(6px,1vh,12px)}
.ao-status-filters button{padding:clamp(6px,.9vh,9px) 4px;min-height:30px}
.ao-summary{gap:clamp(3px,.65vh,7px);margin:clamp(7px,1.2vh,15px) 0}
.ao-summary>div{padding:clamp(5px,.9vh,9px)}
.ao-summary strong{font-size:clamp(15px,2.2vh,20px)}
.ao-panel .ao-report{padding:clamp(8px,1.2vh,13px)}
.ao-week{height:100%;min-height:0;max-height:none}.ao-shop,.ao-shell .month-grid{min-height:0;overflow:auto}
@media(max-width:1350px){.ao-shell{grid-template-columns:72px minmax(0,1fr)}.ao-menu nav button{justify-content:center}.ao-menu nav span,.ao-motto,.ao-menu>small{display:none}.ao-brand img{height:38px}.ao-page{grid-template-columns:minmax(0,1fr) clamp(215px,21vw,245px)}.ao-shell .agenda-grid{grid-template-columns:58px repeat(var(--cols),minmax(155px,1fr))}}
@media(max-height:780px) and (min-width:951px){.ao-top{height:58px}.ao-page{padding:8px}.ao-heading{margin-bottom:6px}.ao-heading p{font-size:11px}.ao-controls{margin-bottom:6px;min-height:44px}.ao-controls>button{height:32px;min-height:32px}.ao-modes button{padding:7px 9px}.ao-date{padding:7px 10px}.ao-menu nav button{padding-block:7px}.ao-brand img{height:38px}.ao-panel{padding:9px}.ao-panel h2{margin-bottom:6px}.ao-month-title{margin:6px 0}.ao-calendar button{height:23px;min-height:23px}.ao-panel select{padding:7px;margin-bottom:5px}.ao-status-filters{gap:4px;margin-bottom:4px}.ao-status-filters button{padding:5px 3px;min-height:28px}.ao-summary{gap:3px;margin:6px 0}.ao-summary>div{padding:5px}.ao-panel .ao-report{padding:8px}.ao-panel [data-ao-block]{padding:7px;margin-top:6px}}
@media(max-width:950px){html:has(.ao-shell),body:has(.ao-shell),body:has(.ao-shell) #app{height:auto;min-height:100%;overflow:auto}.ao-shell{height:auto;min-height:100vh;overflow:visible}.ao-workspace{height:auto;min-height:calc(100vh - 60px);overflow:visible}.ao-page{height:auto;min-height:calc(100vh - 60px);overflow:visible}.ao-central{min-height:calc(100vh - 84px)}.ao-right.open{height:100dvh;overflow-y:auto}.ao-shell .agenda-book{height:58vh;min-height:340px}}

/* Agenda R5 — impede sobreposição no menu lateral em monitores baixos. */
@media(max-height:860px) and (min-width:701px){
  .ao-menu{gap:4px;padding-block:8px}
  .ao-menu nav{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding-right:2px}
  .ao-menu nav button{padding-block:7px;min-height:38px}
  .ao-motto{display:none}
  .ao-menu>small{display:block;margin-top:auto;padding-top:7px;line-height:1.45;font-size:9px;background:linear-gradient(180deg,transparent,#001426 18%)}
}
@media(max-height:650px) and (min-width:701px){
  .ao-brand{display:none}
  .ao-menu>small{display:none}
}

/* V3.2.0.7 r2: shared 15-minute geometry, independent of shell. */
.agenda-grid>.pro-column>.slot,.agenda-grid>.times>time{box-sizing:border-box;height:27px!important;min-height:27px!important;max-height:27px!important;margin:0!important;flex-shrink:0}
.agenda-grid>.pro-column>.slot{padding:0!important;border-radius:0!important;line-height:1;border-width:0 0 1px;transform:none}
.agenda-grid>.times>time{padding:3px 0 0;border-width:0 0 1px}
