.calendar-head{display:flex;justify-content:space-between;align-items:center;margin:30px 0 18px;gap:16px}.calendar-head h2{font-size:22px;margin:0}.calendar-head button{border:1px solid #444;border-radius:5px;padding:8px 15px}.calendar-filters{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}label{display:grid;gap:8px;font-size:12px;color:#c5c5c5}select,input{font:inherit;color:#fff;background:#0b0b0b;border:1px solid #555;border-radius:5px;min-height:46px;padding:10px;min-width:0;width:100%}input:focus-visible,select:focus-visible{outline:2px solid white;outline-offset:3px}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.day{border:1px solid #333;border-radius:5px;padding:12px 4px;font-size:11px}.day strong{display:block;font-size:24px;margin-top:8px}.day[aria-pressed=true],.slot[aria-pressed=true]{background:#f6f6f2;color:#080808;border-color:#fff}.day:disabled{opacity:.35}.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:28px 0;min-height:80px}.slot{border:1px solid #555;border-radius:5px;padding:18px;font-size:20px}.slot small{display:block;font-size:11px;margin-top:8px}.empty-calendar{grid-column:1/-1;padding:42px 20px;border:1px solid #333;text-align:center;color:#c5c5c5}.booking-panel{border-top:1px solid #444;padding:24px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.booking-panel strong{display:block;margin-bottom:8px}.appointments{display:grid;gap:10px;margin-top:20px}.appointment{border:1px solid #333;border-left:3px solid #f3f3f1;border-radius:4px;padding:20px;display:flex;justify-content:space-between;gap:20px}.appointment p{font-size:12px}.appointment strong{font-size:15px}.appointment .actions{display:flex;gap:10px}.appointment button{border:1px solid #555;border-radius:4px;padding:6px 12px;font-size:12px}.appointment.cancelled{opacity:.55;border-left-color:#555}.agenda-section{margin-top:48px;padding-top:24px;border-top:1px solid #333}.section-controls{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-controls h2{margin:0}.text-button{text-decoration:underline;font-size:12px}.internal-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));border:1px solid #333;margin-top:24px;overflow:auto}.agenda-day{min-height:270px;border-right:1px solid #333;padding:10px}.agenda-day h3{font-size:12px;border-bottom:1px solid #333;padding-bottom:16px;margin:6px 0}.agenda-day .appointment{padding:10px;display:block;margin:10px 0}.agenda-day .appointment strong{font-size:12px}.agenda-day .appointment .actions{display:block;margin-top:8px}.agenda-day .appointment button{padding:2px 5px;font-size:10px;min-height:36px}.agenda-day .empty-day{font-size:12px;color:#777}.editor{margin-top:30px;border:1px solid #444;padding:24px;border-radius:5px}.editor summary{cursor:pointer;font-size:15px;font-weight:600;min-height:32px}.editor form{margin-top:24px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.hours-row{display:grid;grid-template-columns:90px repeat(2,1fr);gap:16px;margin-bottom:14px;align-items:center}.shift{display:flex;gap:8px;align-items:center}.shift input[type=checkbox]{width:20px;min-height:20px;flex:none}.shift input[type=time]{width:100%;font-size:12px}.hours-row>strong{font-size:12px}.duration-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.notice{font-size:12px;margin:12px 0}#team-ui .primary{display:inline-flex}#refresh{font-size:12px}footer{display:flex;justify-content:space-between}.status-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-top:6px}.login-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.legend-note{font-size:11px;color:#aaa}#internal-name{max-width:380px;margin:20px 0}#history-list{margin:20px 0}
/* taste-skill-ignore: borders separate calendar cells and weekly schedule form rows. */@media(max-width:700px){main{padding:0 20px;margin-top:28px}.topbar{padding:16px 20px;height:84px}.brand{font-size:14px;gap:10px}.brand img{width:38px;height:45px}.header-actions{gap:12px}.header-actions a{font-size:11px}.calendar-head{margin-top:24px}.calendar-head h2{font-size:18px}.calendar-head button{padding:4px 10px}.weekdays{gap:4px}.day{font-size:10px;padding:10px 2px}.day strong{font-size:19px}.calendar-filters{gap:12px}.slots{grid-template-columns:repeat(2,1fr)}.booking-panel{align-items:stretch;flex-direction:column}.form-grid,.duration-grid{grid-template-columns:1fr 1fr}.hours-row{grid-template-columns:1fr;gap:8px;border-bottom:1px solid #333;padding-bottom:14px}.editor{padding:18px}.internal-grid{display:block;overflow:visible}.agenda-day{border-right:0;border-bottom:1px solid #333;min-height:0;padding:16px}.agenda-day .appointment{display:flex}.agenda-day h3{border:0;padding:0}.appointment{padding:16px}.appointment .actions{flex-direction:column}.test-note{white-space:normal}.page-title{align-items:start}.section-controls{align-items:start}.internal-grid .agenda-day:has(.empty-day){min-height:90px}}
@media(prefers-reduced-motion:no-preference){.slot,.day{transition:background .15s,color .15s}.slot:hover,.day:hover:enabled{border-color:#fff}}

/* taste-skill-ignore: borders separate calendar cells and weekly schedule form rows. */@media(max-width:700px){.internal-grid .agenda-day[data-active=false]{display:none}.internal-grid .agenda-day[data-active=true]{min-height:180px}.section-controls{align-items:center}.page-title{display:flex;flex-direction:row}.test-note{font-size:10px}.calendar-filters{grid-template-columns:1fr}.topbar .brand-sub{font-size:10px}}

/* Agenda: contraste discreto e grelha ilustrativa sem reservas. */
.page-title h1,.calendar-head h2,.day strong,.section-controls h2{color:#f4f4f2;text-shadow:0 1px 0 #777,0 2px 5px #000,0 0 16px #ffffff18}
.day:not([aria-pressed=true]),.calendar-head button{background:linear-gradient(160deg,#1d1d1d,#080808 70%);box-shadow:inset 0 1px 0 #ffffff1c,0 4px 12px #0009}
.day[aria-pressed=true] strong{text-shadow:0 1px 0 #fff,0 2px 3px #0002}

.day[aria-pressed=true] strong{color:#080808}
#calendar-ui:has(#schedule-preview:not([hidden])) #slots{display:none}

/* Compact time choices with comfortable touch targets. */
.slots{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;margin:20px 0;align-items:start;min-height:44px}
.slot{min-width:0;min-height:44px;padding:10px 8px;border:1px solid #353535;border-radius:4px;background:#111;color:#eee;font-size:16px;font-weight:600;line-height:1.25;font-variant-numeric:tabular-nums;box-shadow:none}
.slot small{font-size:10px;font-weight:400;line-height:1.3;color:#aaa;margin-top:4px;white-space:normal}
.slot[aria-pressed=true]{background:#f6f6f2;color:#080808;border-color:#f6f6f2}
.slot[aria-pressed=true] small{color:#333}
.slot:focus-visible{outline:2px solid #fff;outline-offset:3px}
#calendar-ui:has(#barber option:checked:not([value=""])) .slot small{display:none}
@media(max-width:700px){
 .slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 #calendar-ui:has(#barber option:checked:not([value=""])) .slots{grid-template-columns:repeat(4,minmax(0,1fr))}
 .slot{font-size:15px;padding:10px 5px}
}

/* Semantic colour stays within appointment and availability indicators. */
.slot:not([aria-pressed=true]):not(:disabled){background:#14231b;border-color:#395a45;color:#b8ddc4}
.slot:not([aria-pressed=true]) small{color:#b8ddc4}
.slot:not([aria-pressed=true]):not(:disabled):hover{background:#1c3023;border-color:#8dbb9c}
.slot[aria-pressed=true]{outline:2px solid #b8ddc4;outline-offset:1px}
body[data-internal=true] .appointment[data-signal=busy]{background:#251a1b;border-color:#503437;border-left-color:#c48c91}
body[data-internal=true] .appointment[data-signal=busy] .status-label{color:#e1b3b7}
body[data-internal=true] .appointment[data-signal=soon]{background:#282317;border-color:#574a2c;border-left-color:#ccb471}
body[data-internal=true] .appointment[data-signal=soon] .status-label{color:#ead597}
body[data-internal=true] .appointment[data-signal=neutral]{background:#111;border-color:#333;border-left-color:#777}
body[data-internal=true] .status-label{font-size:12px;text-transform:none;letter-spacing:0;line-height:1.5}
.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 20px;margin:18px 0;font-size:12px;color:#ddd}
.calendar-legend span{display:inline-flex;align-items:center;gap:7px}
.calendar-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b8ddc4}
.calendar-legend .busy i{background:#c48c91}.calendar-legend .soon i{background:#ccb471}
