[hidden]{display:none!important}
html,body{min-height:100%;background:#f3f7f5}
body{overflow-x:hidden}
.access-view{position:fixed;inset:0;z-index:100;min-height:100dvh}
.app{width:100%;min-height:100dvh;background:#f3f7f5}
.main{min-height:100dvh;background:#f3f7f5}
.content{width:100%;max-width:none;padding:32px clamp(20px,3vw,48px) 48px}
.topbar{min-height:92px;padding:20px clamp(20px,3vw,48px)}
.stats{grid-template-columns:repeat(4,minmax(180px,1fr));max-width:1180px}
.stat{min-height:132px;display:flex;flex-direction:column;justify-content:center}
.panel{max-width:1180px;box-shadow:0 8px 28px rgba(16,36,31,.045)}
.sidebar{box-shadow:12px 0 32px rgba(16,36,31,.08)}
.appointment-panel{overflow:hidden}.appointment-filters{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}.appointment-filters #appointment-filter{box-shadow:none}.appointment-list-meta{display:flex;justify-content:space-between;gap:12px;margin:0;padding:14px 18px 8px;color:#667b74;font-size:12px}.appointment-table-wrap{max-width:100%;overflow-x:auto;scrollbar-gutter:stable;padding:0 18px 8px}.appointment-table{min-width:620px;table-layout:fixed}.appointment-table th:nth-child(1){width:120px}.appointment-table th:nth-child(2){width:auto}.appointment-table th:nth-child(3){width:110px}.appointment-table th:nth-child(4){width:150px}.appointment-table td{vertical-align:middle;overflow:hidden}.appointment-table td>span:not(.badge){display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appointment-actions{display:flex;align-items:center;gap:8px;white-space:nowrap}.appointment-actions .appointment-icon-action{display:inline-grid;place-items:center;width:38px;height:38px;min-width:38px;padding:0;border:1px solid #cddbd5;border-radius:10px;background:#fff;color:#10241f;box-shadow:none;cursor:pointer}.appointment-actions .appointment-icon-action:hover{background:#f4f8f6;border-color:#abc4ba}.appointment-actions .appointment-icon-action:focus-visible{outline:3px solid rgba(42,118,97,.22);outline-offset:2px}.appointment-actions .appointment-icon-action svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.danger-link{color:#9a332d!important}.appointment-modal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.content>.appointment-detail-page,.content>.client-detail-page{width:100%;max-width:900px;padding:24px!important;box-sizing:border-box;overflow:hidden}.appointment-detail-intro{margin:0 0 20px;color:#667b74}.appointment-detail-intro p{margin:0}.appointment-detail-grid,.client-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;gap:14px}.appointment-detail-grid>.detail:last-child{grid-column:1/-1}.appointment-detail-actions,.client-detail-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid #dfe7e3}.appointment-detail-actions button,.client-detail-actions button{min-height:42px;border:1px solid #cbd8d2;border-radius:10px;padding:10px 14px;font-weight:750;cursor:pointer}.appointment-detail-actions .secondary-button,.client-detail-actions .secondary-button{margin-right:auto;background:#fff;color:#12231f}.appointment-detail-actions .primary-button,.client-detail-actions .primary-button{background:#12231f;border-color:#12231f;color:#fff}.appointment-detail-actions .danger-button,.client-detail-actions .danger-button{background:#fff0ef;border-color:#e7bcbc;color:#b84740}.client-detail-grid>.detail:last-child{grid-column:1/-1}.client-appointments-section{margin-top:20px;border:1px solid #d8e2dd;border-radius:16px;overflow:hidden;background:#fff}.client-appointments-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #dfe7e3}.client-appointments-head small{display:block;color:#2a7661;font-size:11px;font-weight:800;letter-spacing:.12em}.client-appointments-head h2{margin:4px 0 0;font-size:18px}.client-appointments-head>span{color:#667b74;font-size:13px}.client-appointment-list{display:grid;gap:0;padding:0 20px}.client-appointment-item{display:grid;gap:5px;padding:16px 0;border-bottom:1px solid #edf1ef}.client-appointment-item:last-child{border-bottom:0}.client-appointment-item small{color:#667b74}.client-empty-appointments{margin:0;padding:20px 0;color:#667b74}.client-appointments-pagination{margin:0;padding:16px 20px;border-top:1px solid #dfe7e3}.error-state{border:1px dashed #dfb6b1;background:#fff8f7;color:#893832}
@media(min-width:1400px){.content{padding-right:max(48px,calc((100vw - 250px - 1440px)/2 + 48px));padding-left:max(48px,calc((100vw - 250px - 1440px)/2 + 48px))}}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.topbar{min-height:76px}.content{padding:22px 18px 36px}.sidebar{box-shadow:18px 0 42px rgba(5,22,18,.25)}.appointment-list-meta{align-items:flex-start;flex-direction:column}.appointment-table{min-width:620px}}
@media(max-width:767px){.content>.appointment-detail-page,.content>.client-detail-page{padding:18px!important}.appointment-detail-grid,.client-detail-grid{grid-template-columns:1fr}.appointment-detail-grid>.detail:last-child,.client-detail-grid>.detail:last-child{grid-column:auto}.appointment-detail-actions,.client-detail-actions{display:grid;grid-template-columns:1fr}.appointment-detail-actions .secondary-button,.client-detail-actions .secondary-button{margin-right:0}.appointment-detail-actions button,.client-detail-actions button{width:100%}.client-appointments-head{align-items:flex-start;flex-direction:column}.client-appointment-list{padding:0 16px}.client-appointments-head,.client-appointments-pagination{padding-left:16px;padding-right:16px}}@media(max-width:560px){.access-card{padding:28px 22px;border-radius:18px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{min-height:108px;padding:16px}.stat strong{font-size:26px}.panel{margin-top:14px}.topbar>div small{display:none}.appointment-filters{grid-template-columns:1fr}.appointment-list-meta{padding-inline:14px}.appointment-table-wrap{padding-inline:14px}}
@media(max-width:380px){.stats{grid-template-columns:1fr}}
.appointment-table{min-width:760px}.appointment-table th:nth-child(4){width:145px}.appointment-table th:nth-child(5){width:150px}.appointment-table td>.appointment-status-badge{display:inline-flex;align-items:center;max-width:100%;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:750;line-height:1.2;white-space:nowrap}.appointment-status-confirmed{background:#e5f3ed;color:#17624f}.appointment-status-pending_client_confirmation{background:#fff4d9;color:#765600}.appointment-status-cancelled{background:#fde9e7;color:#9a332d}.appointment-status-completed{background:#e9eef8;color:#334f7a}.appointment-status-unknown{background:#eef2f0;color:#52635d}
.list-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.list-toolbar .filters{margin-bottom:0}.client-filters{flex:1}.secondary-filter-action{min-height:42px;border:1px solid #2a7661!important;background:#fff!important;color:#1e6653!important;box-shadow:none!important;white-space:nowrap}.secondary-filter-action:hover{background:#eef7f3!important}.filter-actions{display:flex;gap:10px}.appointment-filters{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(145px,.8fr) minmax(120px,.6fr) minmax(180px,1fr) auto;align-items:center}.appointment-filters .filter-actions button{min-height:42px}.client-table{table-layout:fixed}.client-table th:nth-child(1){width:36%}.client-table th:nth-child(2){width:20%}.client-table th:nth-child(3){width:14%}.client-table th:nth-child(4){width:15%}.client-table th:nth-child(5){width:20%}.client-table td{overflow:hidden}.client-name-cell{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1050px){.appointment-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.appointment-filters .filter-actions{grid-column:1/-1;justify-content:flex-end}}@media(max-width:560px){.list-toolbar{display:grid}.list-toolbar .secondary-filter-action{width:100%}.appointment-filters{grid-template-columns:1fr}.appointment-filters .filter-actions{display:grid;grid-column:auto}.appointment-filters .filter-actions button{width:100%}}

/* Ações do detalhe do agendamento: uma ação principal e operações destrutivas contextuais. */
.appointment-detail-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px}
.appointment-detail-back{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;justify-self:start;width:auto!important;min-height:40px!important;padding:8px 4px!important;border:0!important;background:transparent!important;color:#526861;font-weight:750;cursor:pointer}
.appointment-detail-back:hover{color:#11634f;text-decoration:underline;text-underline-offset:3px}
.appointment-detail-back:focus-visible{outline:3px solid rgba(42,118,97,.22);outline-offset:3px;border-radius:8px}
.appointment-detail-primary-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.appointment-detail-primary-actions>.btn,.appointment-detail-more-actions>summary{min-height:42px;white-space:nowrap}
.appointment-detail-more-actions{position:relative}
.appointment-detail-more-actions>summary{display:inline-flex;align-items:center;justify-content:center;gap:7px;list-style:none;cursor:pointer;user-select:none}
.appointment-detail-more-actions>summary::-webkit-details-marker{display:none}
.appointment-detail-more-actions>summary svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.appointment-detail-more-actions[open]>summary{background:#edf5f1;border-color:#91b6aa;color:#105d4b}
.appointment-detail-action-menu{position:absolute;z-index:20;right:0;bottom:calc(100% + 8px);display:grid;min-width:220px;padding:6px;border:1px solid #d5e0db;border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(16,51,42,.16)}
.appointment-detail-action-menu button{width:100%!important;min-height:40px!important;padding:9px 11px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#263a34;text-align:left;font-weight:700;cursor:pointer}
.appointment-detail-action-menu button:hover,.appointment-detail-action-menu button:focus-visible{background:#f1f6f4!important;outline:0}
.appointment-detail-action-menu button.danger{color:#b42318}
.appointment-detail-action-menu button.danger:hover,.appointment-detail-action-menu button.danger:focus-visible{background:#fff1f0!important}

@media(max-width:767px){
  .appointment-detail-actions{grid-template-columns:1fr;gap:12px;padding-top:16px}
  .appointment-detail-back{justify-self:center;min-height:36px!important;padding:6px 8px!important}
  .appointment-detail-primary-actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;width:100%}
  .appointment-detail-primary-actions>#complete-appointment,
  .appointment-detail-primary-actions>#mark-appointment-no-show{grid-column:1/-1;width:100%}
  .appointment-detail-primary-actions>[data-page-appointment-action="edit"]{width:100%}
  .appointment-detail-more-actions>summary{min-width:128px}
  .appointment-detail-action-menu{right:0;bottom:calc(100% + 7px);max-width:calc(100vw - 60px)}
}
.appointment-status-no_show{color:var(--atende-color-danger);background:var(--atende-color-danger-soft)}
