/* Scheduling extends APPICS Navy/Teal tokens and the existing offer/checkout dialogs. */
.pcs { --pcs-ink:var(--ink,#f3f5fb); --pcs-muted:var(--muted,#aeb9ce); --pcs-panel:var(--panel,#171e31); --pcs-input:var(--input,#232d43); --pcs-line:var(--line,#364058); --pcs-teal:var(--teal,#7fe8dc); color:var(--pcs-ink); font:400 14px/1.5 var(--font,system-ui,sans-serif); min-width:0; }
.pcs *, .pcs *::before, .pcs *::after { box-sizing:border-box; }
.pcs h3 { font-size:20px; line-height:1.3; margin:0 0 6px; }
.pcs h4 { font-size:15px; line-height:1.4; margin:0 0 6px; }
.pcs p { margin:0; }
.pcs .pcs-muted { color:var(--pcs-muted); font-size:12px; }
.pcs .pcs-field { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:13px; font-weight:500; }
.pcs input, .pcs select { min-height:44px; width:100%; min-width:0; border:1px solid var(--pcs-line); border-radius:8px; padding:9px 10px; background:var(--pcs-input); color:var(--pcs-ink); font:400 14px/1.5 var(--font,system-ui,sans-serif); color-scheme:dark; }
.pcs select { text-overflow:ellipsis; }
.pcs .pcs-button { min-height:44px; border:1px solid var(--pcs-line); border-radius:8px; padding:9px 12px; background:transparent; color:var(--pcs-ink); cursor:pointer; font:500 13px/1.4 var(--font,system-ui,sans-serif); transition:background-color 160ms ease-out; }
.pcs .pcs-button:hover:not(:disabled) { background:var(--pcs-input); }
.pcs .pcs-button:disabled, .pcs input:disabled, .pcs select:disabled { opacity:.45; cursor:default; }
.pcs :is(button,input,select):focus-visible { outline:2px solid var(--pcs-teal); outline-offset:3px; }
.pcs .pcs-button[aria-pressed="true"] { color:#091a22; background:var(--pcs-teal); border-color:var(--pcs-teal); }
.pcs-availability { padding-top:20px; border-top:1px solid var(--pcs-line); }
.pcs-summary { margin:12px 0 16px !important; color:var(--pcs-muted); font-size:12px; }
.pcs-week { display:flex; flex-direction:column; gap:10px; margin:18px 0; }
.pcs-week-row { display:grid; grid-template-columns:100px minmax(0,1fr) auto; align-items:start; gap:12px; }
.pcs-day-label { padding-top:12px; font-weight:500; }
.pcs-windows { display:flex; flex-direction:column; gap:8px; min-width:0; }
.pcs-unavailable { display:flex; align-items:center; min-height:44px; padding:8px 12px; border:1px dashed var(--pcs-line); border-radius:8px; color:var(--pcs-muted); font-size:12px; }
.pcs-range { display:flex; gap:8px; align-items:center; }
.pcs-range input { width:80px; flex:1; }
.pcs-range .pcs-button { flex:none; padding:8px 10px; font-size:18px; }
.pcs-week-row > .pcs-button, .pcs-exceptions > .pcs-button { color:var(--pcs-teal); border-color:var(--pcs-teal); }
.pcs-exceptions, .pcs-rules { border-top:1px solid var(--pcs-line); padding-top:18px; margin-top:18px; }
.pcs-exceptions > .pcs-button { margin-top:12px; }
.pcs-exception { display:grid; grid-template-columns:minmax(145px,1fr) minmax(0,1fr) auto; gap:10px; align-items:center; margin-top:12px; }
.pcs-rule-fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:14px; }
.pcs-status { min-height:22px; margin-top:12px !important; font-size:12px; color:var(--pcs-muted); overflow-wrap:anywhere; }
.pcs-calendar { margin:16px 0 22px; }
.pcs-calendar > .pcs-muted { margin-top:8px; }
.pcs-month-nav { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:18px; margin-bottom:8px; }
.pcs-month-nav strong { font-size:15px; }
.pcs-month-nav .pcs-button { width:44px; font-size:22px; padding:4px; }
.pcs-weekdays, .pcs-month-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; }
.pcs-weekdays { text-align:center; color:var(--pcs-muted); font-size:11px; margin:10px 0 6px; }
.pcs-month-grid .pcs-button { padding:8px 0; border-color:transparent; font-size:14px; }
.pcs-month-grid .pcs-button:not(:disabled) { border-color:var(--pcs-teal); color:var(--pcs-teal); }
.pcs-month-grid .pcs-button[aria-pressed="true"] { color:#091a22; }
.pcs-month-grid .pcs-button:disabled { opacity:.3; }
.pcs-times { margin-top:18px; }
.pcs-time-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:12px; }
.pcs-time-list .pcs-button { font-variant-numeric:tabular-nums; font-size:12px; padding:10px 4px; }
.pcs-calendar > .pcs-button { margin-top:8px; }
.po-sheet:has(.pcs-availability) { background:var(--bg,#101626); }
.po-sheet-actions { border-top:1px solid var(--line,#364058); padding-top:18px; }
.pco-overlay:has(.pcs-calendar) .pvk-checkout { max-height:92dvh; overflow:auto; overscroll-behavior:contain; }
@media (min-width:760px) { .po-sheet:has(.pcs-availability) { width:min(780px,calc(100% - 48px)); } }
@media (max-width:520px) {
 .pcs-week-row { grid-template-columns:minmax(0,1fr) auto; gap:8px; padding-bottom:8px; }
 .pcs-day-label { grid-column:1; padding:0; align-self:center; }
 .pcs-week-row > .pcs-button { grid-column:2; grid-row:1; }
 .pcs-windows { grid-column:1 / -1; }
 .pcs-rule-fields { grid-template-columns:1fr; gap:12px; }
 .pcs-exception { grid-template-columns:minmax(0,1fr) auto; }
 .pcs-exception > .pcs-muted { grid-column:1; grid-row:2; }
 .pcs-exception > .pcs-button { grid-column:2; grid-row:1 / 3; }
 .pcs-time-list { gap:6px; }
}
@media (prefers-reduced-motion:reduce) { .pcs .pcs-button { transition:none; } }
/* Keep the approved compact weekly list within the existing edit sheet. */
.po-sheet:has(.pcs-availability) .po-form { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr); gap:16px; }
.po-sheet:has(.pcs-availability) .po-field:has([name="description"]), .po-sheet:has(.pcs-availability) .po-form > section, .po-sheet:has(.pcs-availability) .po-active, .po-sheet:has(.pcs-availability) .po-sheet-actions { grid-column:1 / -1; }
.po-sheet:has(.pcs-availability) .po-field :is(input,textarea) { min-height:44px; padding:9px 12px; }
.po-sheet:has(.pcs-availability) .po-field { gap:6px; }
.pco-overlay .pco-call-description { margin:0 0 12px; font-size:13px; color:var(--pro-muted,#b5bed1); line-height:1.5; }
@media (max-width:520px) {
 .po-sheet:has(.pcs-availability) .po-form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
 .po-sheet:has(.pcs-availability) .po-field:has([name="title"]) { grid-column:1 / -1; }
}
.pco-overlay:has(.pcs-calendar) .pvk-co-foot { background:#121826; bottom:0; }

.pcs-calendar > .pcs-field { margin-top:16px; }
