.ap-topbar { height:62px; display:flex; align-items:center; justify-content:space-between; padding:0 36px; background:white; border-bottom:1px solid var(--line); }
.ap-brand { font-size:26px; font-weight:800; letter-spacing:-1px; color:var(--ink); }
.ap-brand span { color:var(--mint); }
.ap-topbar > a:last-child { display:flex; align-items:center; gap:7px; font-size:12px; }
.ap-topbar .icon { width:16px; }
.ap-page { max-width:1480px; margin:auto; padding:30px 36px 45px; }
.ap-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; }
.ap-module-label { display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.ap-local { font-size:11px; color:var(--muted); padding:3px 8px; background:white; border:1px solid var(--line); border-radius:5px; }
.ap-heading h1 { font-size:32px; letter-spacing:-1px; }
.ap-heading p { color:var(--muted); font-size:13px; margin-top:5px; }
.ap-layout { display:grid; grid-template-columns:minmax(0,1fr) 286px; align-items:start; gap:24px; }
.ap-main { min-width:0; }
.ap-provider-filter { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); margin-bottom:12px; }
.ap-provider-filter select { width:auto; min-width:160px; padding:7px 10px; font-size:12px; }
.ap-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ap-period { display:flex; align-items:center; gap:5px; }
.ap-period strong { font-size:14px; text-align:center; padding:0 5px; }
.ap-period .icon-button { width:30px; height:34px; }
.ap-today { color:var(--petrol); font-size:12px; padding:7px 9px; margin-left:8px; }
.ap-segment { display:flex; background:#e9eeeb; border-radius:9px; padding:3px; gap:3px; }
.ap-segment button { padding:6px 13px; border-radius:7px; font-size:12px; color:var(--muted); }
.ap-segment button.active { background:white; color:var(--petrol); box-shadow:0 1px 4px #163b2b0d; }
.ap-calendar { border:1px solid var(--line); border-radius:14px; background:white; overflow:hidden; }
.ap-calendar-scroll { overflow:auto; max-height:600px; scrollbar-width:thin; }
.ap-calendar-days,.ap-calendar-grid { display:grid; grid-template-columns:46px repeat(var(--days),minmax(100px,1fr)); min-width:calc(46px + var(--days) * 100px); }
.ap-calendar-days { position:sticky; top:0; z-index:3; background:white; border-bottom:1px solid var(--line); }
.ap-calendar-days > button { display:grid; justify-items:center; gap:2px; padding:10px 2px; border-left:1px solid var(--line); }
.ap-calendar-days > button span { color:var(--muted); font-size:11px; }
.ap-calendar-days > button strong { display:grid; place-items:center; width:27px; height:27px; font-size:15px; font-weight:650; border-radius:50%; }
.ap-calendar-days > button.today strong { color:var(--petrol); }
.ap-calendar-days > button.selected strong { background:var(--petrol); color:white; }
.ap-time-heading { align-self:center; text-align:center; font-size:10px; color:var(--muted); }
.ap-hours { position:relative; background:white; }
.ap-hours > span { position:absolute; right:7px; font-size:10px; color:#87968f; padding-top:3px; font-variant-numeric:tabular-nums; }
.ap-day-column { position:relative; border-left:1px solid var(--line); background:repeating-linear-gradient(to bottom,transparent 0,transparent 67px,#edf1ee 67px,#edf1ee 68px); }
.ap-day-column.selected { background-color:#f9fcfa; }
.ap-calendar-event { position:absolute; left:4px; right:4px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; overflow:hidden; gap:1px; padding:2px 7px; border-radius:6px; border-left:3px solid var(--petrol); background:#e1f0eb; text-align:left; color:#165c53; }
.ap-calendar-event:hover { background:#d4e9e1; }
.ap-calendar-event strong { font-size:11px; line-height:14px; font-weight:650; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; max-width:100%; }
.ap-calendar-event span { font-size:10px; line-height:12px; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; max-width:100%; }
.ap-calendar-event.proposed { border:1px dashed #9c7647; border-left-width:3px; background:#fff4e2; color:#816236; }
.ap-calendar-event.short span { display:none; }
.ap-requests { background:white; border:1px solid var(--line); border-radius:14px; padding:18px; margin-top:51px; }
.ap-requests-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.ap-requests h2,.ap-agenda h2 { font-size:16px; }
.ap-requests-heading > span { font-size:12px; color:var(--petrol); background:var(--mint-light); width:24px; height:24px; display:grid; place-items:center; border-radius:7px; }
.ap-request { display:grid; gap:7px; width:100%; border-top:1px solid var(--line); padding:15px 0; text-align:left; }
.ap-request:last-child { padding-bottom:0; }
.ap-request-top { display:flex; align-items:center; gap:8px; }
.ap-request-top .avatar { width:30px; height:30px; font-size:10px; }
.ap-request-top strong { flex:1; font-size:13px; }
.ap-request-top .icon { width:15px; color:var(--muted); }
.ap-request > span:nth-child(2) { font-size:12px; color:var(--ink); }
.ap-request small { font-size:11px; color:var(--muted); }
.ap-agenda { background:white; border:1px solid var(--line); border-radius:14px; margin-top:24px; padding:18px 20px 3px; }
.ap-agenda-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.ap-list-row { width:100%; display:flex; align-items:center; gap:13px; padding:14px 0; border-top:1px solid var(--line); text-align:left; }
.ap-list-copy { flex:1; display:grid; gap:3px; }
.ap-list-copy strong { font-size:13px; }
.ap-list-copy > span { font-size:12px; }
.ap-list-copy small { font-size:11px; color:var(--muted); }
.ap-list-row > .icon { width:16px; color:var(--muted); }
.ap-status { display:inline-block; width:max-content; padding:4px 8px; background:#eef2ef; color:var(--muted); border-radius:6px; font-size:11px; white-space:nowrap; }
.ap-status.confirmed { color:#1c6b5e; background:#e5f3ec; }
.ap-status.pending,.ap-status.proposed { color:#8b6731; background:#fff3df; }
.ap-status.rejected,.ap-status.cancelled { color:#976364; background:#f8eded; }
.ap-empty { color:var(--muted); font-size:12px; padding:16px 0; }
.ap-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 18px; }
.ap-readonly-fields { border:0; padding:0; margin:0; min-width:0; }
.ap-modal { width:min(520px,calc(100vw - 28px)); }
.ap-modal .modal-footer { gap:8px; flex-wrap:wrap; }
.ap-modal .modal-footer .button { font-size:12px; padding:10px 14px; }
.ap-error { color:var(--danger); font-size:13px; margin-top:14px; }
.ap-requested { color:var(--muted); font-size:12px; margin-bottom:20px; }
.ap-detail { display:grid; gap:17px; margin:22px 0 0; }
.ap-detail > div { display:grid; grid-template-columns:94px 1fr; gap:12px; }
.ap-detail dt { color:var(--muted); font-size:12px; }
.ap-detail dd { margin:0; font-size:13px; }
.ap-detail-note { white-space:pre-wrap; margin-top:22px; padding:12px; border-radius:9px; background:var(--canvas); font-size:13px; }
#toast-root.ap-toast { position:fixed; bottom:25px; left:50%; transform:translateX(-50%); padding:12px 20px; width:max-content; max-width:90vw; background:var(--ink); color:white; border-radius:10px; z-index:200; font-size:13px; }
@media(max-width:1100px) { .ap-layout { grid-template-columns:minmax(0,1fr); } .ap-requests { margin-top:0; } .ap-request { display:inline-grid; width:calc(100% / 3 - 12px); margin-right:12px; vertical-align:top; } }
@media(max-width:650px) { .ap-topbar { padding:0 18px; } .ap-page { padding:24px 18px; } .ap-heading { align-items:start; } .ap-heading h1 { font-size:27px; } .ap-heading .button { font-size:12px; padding:10px 12px; } .ap-toolbar { align-items:start; flex-direction:column; } .ap-period strong { font-size:12px; } .ap-today { margin-left:0; } .ap-request { display:grid; width:100%; margin:0; } .ap-agenda-heading { align-items:start; } .ap-segment button { padding:6px 10px; } .ap-list-row .avatar { display:none; } }

.ap-hours-modal { width:min(610px,calc(100vw - 28px)); }
.ap-hours-fields { border:0; margin:0; padding:0; }
.ap-hours-day { padding:14px 0; border-bottom:1px solid var(--line); }
.ap-hours-day-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; font-size:13px; margin-bottom:8px; }
.ap-hours-day-heading label { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); }
.ap-hours-day-heading input { width:auto; accent-color:var(--petrol); }
.ap-hours-interval { display:grid; grid-template-columns:1fr 1fr 36px; align-items:end; gap:10px; margin:8px 0; }
.ap-hours-interval label { font-size:11px; color:var(--muted); }
.ap-hours-interval input { width:100%; margin-top:4px; }
.ap-hours-add { display:flex; align-items:center; gap:5px; padding:6px 0; background:none; border:0; font-size:12px; color:var(--petrol); }
.ap-hours-add svg { width:14px; height:14px; }
.ap-hours-closed,.ap-slot-note { color:var(--muted); font-size:12px; line-height:1.6; }
.ap-current-time { min-height:40px; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:var(--paper); font-size:13px; }
.ap-slot-picker { margin:18px 0 8px; }
.ap-slot-picker>strong { font-size:13px; }
.ap-slot-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(76px,1fr)); gap:7px; margin-top:10px; }
.ap-slot { min-height:38px; border:1px solid var(--line); border-radius:8px; background:var(--paper); color:var(--petrol); font-size:13px; }
.ap-slot.selected { color:white; background:var(--petrol); border-color:var(--petrol); }
.ap-slot:disabled { opacity:.45; }
