/* Cabra Macho · agenda V56. Camada responsiva, sem dependências externas. */
:root{--cm-surface:#151719;--cm-border:#3c4044;--cm-muted:#b9bec2;--cm-radius:16px}
[hidden]{display:none!important}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
.cm-mobile-nav,.cm-booking-dock{display:none}
body:has(#booking-form){background:radial-gradient(ellipse at top right,#262a2e55,transparent 55%),#090a0b}
body:has(#booking-form) .inner-main{padding-top:38px}
body:has(#booking-form) .section-heading{margin-bottom:28px;max-width:720px}
body:has(#booking-form) .section-heading h1{font-size:clamp(42px,5.5vw,70px);letter-spacing:0}
body:has(#booking-form) .section-heading h1 em{text-decoration:none}
body:has(#booking-form) .section-heading p{font-size:14px;line-height:1.7}
.cm-booking-progress{display:grid;grid-template-columns:repeat(4,1fr);max-width:850px;margin:0 0 26px;padding:8px;border:1px solid var(--cm-border);border-radius:var(--cm-radius);background:#111315;scroll-margin-top:100px}
.cm-booking-progress button{display:flex;gap:10px;align-items:center;padding:12px 14px;border:0;background:transparent;color:var(--cm-muted);border-radius:10px;font:600 12px/1.4 Manrope,Arial,sans-serif;min-height:48px;cursor:pointer}
.cm-booking-progress button>span{display:grid;place-items:center;flex-shrink:0;width:27px;height:27px;border:1px solid #5b6065;border-radius:50%;font-size:11px}
.cm-booking-progress [aria-current]{background:#f5f5f4;color:#090a0b}
.cm-booking-progress [aria-current]>span{border-color:#090a0b}
.cm-booking-progress .is-complete:not([aria-current])>span{background:#373b3f;color:#fff}
.cm-booking-progress button:disabled{opacity:.42;cursor:default}
#booking-form{grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:start}
#booking-form .booking-fields{min-width:0;display:grid;gap:20px}
#booking-form .panel,#booking-form .summary-card{border:1px solid var(--cm-border)!important;border-radius:var(--cm-radius);background:var(--cm-surface)!important;padding:28px;box-shadow:none}
#booking-form .panel{margin:0;scroll-margin-top:110px}
#booking-form .panel h2{font-family:Manrope,Arial,sans-serif;text-transform:none;letter-spacing:-.025em;font-size:20px;line-height:1.4;display:flex;align-items:center;gap:12px;margin:0 0 20px}
#booking-form .step{display:inline-grid;place-items:center;flex-shrink:0;width:30px;height:30px;margin:0;background:#2a2e31;border:1px solid #4a4f53;border-radius:50%;font:700 11px Manrope,Arial,sans-serif;color:#f5f5f4}
#booking-form .booking-combo-hint,#booking-form .booking-helper{font-size:12px;line-height:1.7;color:var(--cm-muted);margin-bottom:18px}
#booking-form .options-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#booking-form .option{position:relative;border:1px solid #50555a;border-radius:12px;min-height:92px;padding:18px;text-align:left;background:#101214;transition:border-color .15s,background .15s}
#booking-form .option strong{font:700 14px/1.45 Manrope,Arial,sans-serif;text-transform:none;letter-spacing:0;padding-right:15px}
#booking-form .option>span:not(.combo-chip){font-size:12px;color:#c8cdd1;line-height:1.5;margin-top:5px}
#booking-form .option.selected:after{content:'✓';position:absolute;right:12px;top:15px;font-weight:800}
#booking-form .option:hover:not(.selected){background:#24282c;border-color:#d7dadb}
#booking-form .summary-card{position:sticky;top:116px}
#booking-form .summary-card h3{font:700 22px/1.3 Manrope,Arial,sans-serif;text-transform:none;letter-spacing:-.04em;margin:12px 0 24px}
#booking-summary .summary-line{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #34383c;font-size:12px}
#booking-summary .summary-line>span:last-child{font-weight:700;text-align:right;max-width:65%;overflow-wrap:anywhere}
#booking-form .privacy-ack{display:flex;gap:10px;font-size:11px;line-height:1.7;align-items:flex-start;margin:20px 0}
#booking-form input[type=checkbox]{width:18px;height:18px;flex-shrink:0;accent-color:#e8eaeb;margin:2px 0}
#booking-form input:not([type=checkbox]),#booking-form textarea{border-radius:10px;min-height:48px;font-size:16px;padding:12px 14px}
#booking-form label{font-size:12px}
#booking-form .button,#booking-form .booking-time-picked{border-radius:10px}
#booking-form .booking-calendar{border:1px solid #42474b;border-radius:12px;padding:14px;background:#101214}
#booking-form .day-strip-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:8px}
#booking-form .day-strip-toolbar strong{text-transform:capitalize;font-size:13px}
#booking-form .day-strip-nav{display:flex;gap:6px}
#booking-form .day-strip-nav button{width:40px;height:40px;border:1px solid #50555a;border-radius:8px;background:#23272a;color:#fff;font-size:24px}
#booking-form .booking-day-strip{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;overflow:visible}
#booking-form .booking-day{min-width:0;width:100%;min-height:85px;padding:9px 2px;border:1px solid #3c4247;border-radius:10px;background:#1d2124;color:#f5f5f4;display:flex;flex-direction:column;align-items:center;gap:7px}
#booking-form .booking-day strong{font:700 21px Manrope,Arial,sans-serif}
#booking-form .booking-weekday{font-size:10px;text-transform:capitalize}
#booking-form .booking-day-hint{font-size:8px;letter-spacing:0}
#booking-form .booking-day:disabled{opacity:.35}
#booking-form .booking-scroll-tip{display:none}
#booking-form .booking-other-date{font-size:12px;margin:14px 0 22px}
#booking-form .booking-other-date summary{cursor:pointer;padding:12px 0;color:#d7dadb}
#booking-form .booking-slots-heading{font:700 16px/1.5 Manrope,Arial,sans-serif;text-transform:none;letter-spacing:0;margin-top:24px}
#booking-form .booking-selected-date,#booking-selected-date{font-size:12px;display:inline-block}
.cm-slot-tools{margin:16px 0 10px}
.cm-periods{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.cm-periods button{border:1px solid #50555a;border-radius:999px;background:#101214;color:#d7dadb;padding:10px 14px;min-height:42px;font:600 11px Manrope,Arial,sans-serif;cursor:pointer}
.cm-periods button[aria-pressed=true]{background:#e8eaeb;color:#090a0b;border-color:#e8eaeb}
.cm-show-unavailable{display:flex;gap:8px;align-items:center;color:var(--cm-muted);font-size:11px!important}
#cm-slots-count{font-size:11px;color:#d7dadb;margin:12px 0}
#booking-form .slots-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#booking-form .slot{border-radius:10px;background:#101214;color:#f5f5f4;border:1px solid #5b6369;min-height:66px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:5px}
#booking-form .slot strong{font:700 16px Manrope,Arial,sans-serif}
#booking-form .slot small{font-size:10px;color:#c5ccd1}
#booking-form .slot:disabled{border-style:dashed;opacity:.4}
#booking-form .booking-day-legend{font-size:10px;gap:12px}
.cm-slots-empty{border:1px dashed #51585d;border-radius:12px;padding:18px;font-size:12px;line-height:1.7;background:#101214}
.cm-slots-empty button{background:#e8eaeb;color:#090a0b;border:0;border-radius:8px;min-height:44px;padding:10px 15px;font-weight:700;margin:4px 6px 0 0}
.cm-slots-empty button:disabled{opacity:.4}
#booking-success{border-radius:20px;border:1px solid #51585d;padding:35px;max-width:720px;margin:30px auto;background:#151719}
#booking-success h2{font:700 28px/1.3 Manrope,Arial,sans-serif;letter-spacing:-.04em;text-transform:none}
#booking-success p{font-size:14px;line-height:1.8}
.cm-booking-trust{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 0;color:#b9bec2;font-size:11px}
.cm-booking-trust span{display:flex;align-items:center;gap:6px}
.cm-quick-book{margin-top:22px;padding:20px 24px;border:1px solid #4b5055;border-radius:16px;background:#151719;display:flex;align-items:center;justify-content:space-between;gap:20px}
.cm-quick-book strong{font:700 17px Manrope,Arial,sans-serif;display:block}
.cm-quick-book p{color:#b9bec2;font-size:12px;margin:8px 0 0;line-height:1.6}
.cm-quick-book a{flex-shrink:0}
@media(max-width:1000px) and (min-width:761px){#booking-form{grid-template-columns:minmax(0,1fr) 280px}#booking-form .panel,#booking-form .summary-card{padding:20px}#booking-form .options-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  html{scroll-padding-top:90px}input,select,textarea{font-size:16px!important}button{min-height:44px}
  .cm-has-mobile-nav{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))!important}
  .cm-mobile-nav{display:flex;justify-content:space-around;align-items:stretch;position:fixed;inset:auto 0 0;z-index:80;border-top:1px solid #434a50;background:#111416f5;backdrop-filter:blur(18px);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));gap:4px}
  .cm-mobile-nav>a,.cm-mobile-nav>button{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:50px;border:0;border-radius:10px;background:transparent;color:#b9bec2;text-decoration:none;font:600 10px/1.3 Manrope,Arial,sans-serif;letter-spacing:0}
  .cm-mobile-nav svg{width:21px;height:21px}.cm-mobile-nav [aria-current],.cm-mobile-nav .cm-nav-book{color:#fff;background:#2b3034}
  .cm-has-mobile-nav .cabramacho-social-float{bottom:calc(94px + env(safe-area-inset-bottom,0px))!important}
  body:has(#booking-form) .cabramacho-social-float{display:none!important}
  body:has(#booking-form) .inner-main{padding:24px 0 35px}
  body:has(#booking-form) .inner-main>.container{width:calc(100% - 28px);max-width:620px}
  body:has(#booking-form) .back-link{font-size:11px;margin-bottom:22px}
  body:has(#booking-form) .section-heading{margin-bottom:20px}
  body:has(#booking-form) .section-heading .eyebrow{font-size:9px;letter-spacing:.15em}
  body:has(#booking-form) .section-heading h1{font-size:43px;margin-top:12px}
  body:has(#booking-form) .section-heading p{font-size:12px;max-width:310px}
  body:has(#booking-form) .tricolore-line{display:none}
  .cm-booking-trust{gap:12px;font-size:10px;margin-top:12px}
  .cm-booking-progress{padding:5px;margin-bottom:16px;gap:2px;border-radius:13px;scroll-margin-top:8px}
  .cm-booking-progress button{padding:10px 2px;gap:7px;flex-direction:column;font-size:9px;min-height:70px}
  .cm-booking-progress button>span{width:24px;height:24px;font-size:10px}
  #booking-form{display:block;padding-bottom:112px}
  #booking-form .panel,#booking-form .summary-card{padding:20px 16px;border-radius:16px}
  #booking-form .panel h2{font-size:18px;gap:10px;margin-bottom:17px}
  #booking-form .options-grid{grid-template-columns:1fr;gap:10px}
  #booking-form .option{min-height:83px;padding:17px 20px}
  #booking-form .option strong{font-size:14px}
  #booking-form .summary-card{position:static;margin-top:16px}
  #booking-form .summary-card h3{font-size:20px}
  #booking-form .booking-fields{display:block}
  #booking-form .booking-calendar{padding:11px 8px}
  #booking-form .booking-day-strip{gap:4px}
  #booking-form .booking-day{min-height:76px;padding:8px 1px;border-radius:8px;gap:6px}
  #booking-form .booking-day strong{font-size:18px}
  #booking-form .booking-weekday{font-size:9px}
  #booking-form .booking-day-hint{font-size:7px}
  #booking-form .booking-other-date{padding:0 12px;border-radius:10px}
  #booking-form .booking-other-date summary{padding:14px 0}
  #booking-form .slots-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  #booking-form .input-grid{grid-template-columns:1fr;gap:18px}
  #booking-form .booking-time-picked{flex-wrap:wrap;padding:16px}
  .cm-periods{gap:5px}.cm-periods button{font-size:10px;padding:10px 12px}
  .cm-booking-dock{display:flex;justify-content:space-between;align-items:center;gap:12px;position:fixed;inset:auto 0 0;z-index:80;padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));background:#111416f5;border-top:1px solid #50565b;backdrop-filter:blur(18px)}
  .cm-dock-info{min-width:0;flex:1}.cm-dock-info small{font-size:9px;color:#b9bec2;display:block;margin-bottom:5px}.cm-dock-info strong{font-size:12px;color:#f5f5f4;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cm-dock-actions{display:flex;gap:7px}.cm-dock-actions button{border:1px solid #545b60;border-radius:10px;background:#22272b;color:#fff;min-height:48px;padding:10px 13px;font:700 11px Manrope,Arial,sans-serif;white-space:nowrap}
  #cm-booking-next{background:#f5f5f4;color:#090a0b;border-color:#f5f5f4}#cm-booking-next:disabled{background:#373d42;color:#b9bec2;border-color:#4b5156;opacity:.7}#cm-booking-back:disabled{display:none}
  .cm-quick-book{margin:16px auto;padding:20px;align-items:flex-start;flex-direction:column;gap:16px}.cm-quick-book a{width:100%}
  .admin-content{padding-bottom:100px!important}.admin-heading .admin-actions{gap:8px}.admin-heading h1{font-size:32px}
  .cm-admin-nav{z-index:80}.admin-content .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.admin-content .stat-card{padding:17px!important;border-radius:12px}
  .admin-content .admin-section,.admin-content .appointment-card,.admin-content .day-entry{border-radius:14px!important}
  .admin-content .appointment-actions{gap:8px}.admin-content .appointment-actions button,.admin-content .appointment-actions a{min-height:44px!important;border-radius:8px!important;padding:10px 12px!important}
  .admin-content .day-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .admin-content .agenda-toolbar{display:grid!important;grid-template-columns:1fr 1fr;gap:12px}.admin-content .agenda-search-label{grid-column:1/-1}
  .admin-content .day-picker-row{display:flex;flex-wrap:wrap;gap:8px}.admin-content .day-picker-row label{flex:1;min-width:140px}.admin-content .day-picker-row>.button{flex:1 1 42%;font-size:10px}
  #barber-appointments .restricted-table-wrapper{overflow:visible;border:0;background:transparent}
  #barber-appointments .restricted-table,#barber-appointments tbody{display:block;width:100%;min-width:0!important}
  #barber-appointments thead{display:none}
  #barber-appointments tr{display:grid;grid-template-columns:1fr 1fr;gap:14px;background:#191c1f;border:1px solid #454c52;border-radius:16px;padding:18px;margin-bottom:14px}
  #barber-appointments td{display:block!important;border:0!important;padding:0!important;font-size:13px;min-width:0;overflow-wrap:anywhere}
  #barber-appointments td:before{content:attr(data-mobile-label);display:block;font-size:10px;color:#b9bec2;margin-bottom:6px}
  #barber-appointments td:nth-child(2){grid-column:2;grid-row:1}#barber-appointments td:last-child{grid-column:1/-1;border-top:1px solid #3e454b!important;padding-top:14px!important}
  #barber-appointments .barber-row-actions{display:flex;gap:8px;flex-wrap:wrap}#barber-appointments .barber-row-actions button{min-height:44px;border-radius:8px;flex:1 1 42%}
  .restricted-shell{width:calc(100% - 24px);padding-bottom:25px}.restricted-header{gap:12px;flex-wrap:wrap}.restricted-header h1{font-size:32px}
  .restricted-overview{gap:10px}.restricted-overview>div{border-radius:12px}.barber-date-nav strong{font-size:18px}
  .barber-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px}.barber-slot-grid button{border-radius:10px;min-height:64px}
  dialog{max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 40px);overflow:auto;border-radius:16px!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media print{.cm-mobile-nav,.cm-booking-dock,.cm-booking-progress{display:none!important}}
