/* 2026-07-09 REL_95 -- SHARED inline slot picker styles (.di-slots*): mode tabs + horizontal day slider (gap-grouping) + period-grouped time chips.
   Global di-system tokens only (page-agnostic; extracted from REL_86 .dp-slots, --p-* mapped to --*). Auto-initialised by di-slotpicker.js on every
   .di-slots[data-provider/...]. Used by the doctor profile, org/hospital page, and the future clinic page. Light-only (di dark==light). */
.di-slots { margin-top:16px; background:var(--tint); border:1px solid var(--line); border-radius:var(--r-lg); padding:16px 18px; min-width:0; }
.di-slots__load, .di-slots__empty { font-size:13px; color:var(--ink2); padding:6px 0; }
.di-slots__hd { display:flex; align-items:center; gap:10px; font-size:13.5px; margin-bottom:12px; }
.di-slots__today { display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:700; color:var(--green-ink); background:color-mix(in srgb, var(--green-ink) 12%, var(--white)); padding:3px 9px; border-radius:20px; }
.di-slots__today i { width:6px; height:6px; border-radius:50%; background:var(--green-ink); }
/* consultation-mode = a prominent, labelled segmented control (icons + full-width). */
.di-slots__modewrap { margin-bottom:14px; }
.di-slots__modelbl { display:block; margin-bottom:7px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.di-slots__modes { display:flex; gap:4px; background:var(--tint); padding:4px; border:1px solid var(--line); border-radius:12px; }
.di-slots__mode { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px; border:none; background:transparent; padding:10px 12px; border-radius:9px; font-family:inherit; font-weight:700; font-size:13.5px; color:var(--ink2); cursor:pointer; min-height:44px; transition:background .15s, color .15s, box-shadow .15s; }
.di-slots__mode svg { width:16px; height:16px; stroke:currentColor; stroke-width:2; fill:none; flex:0 0 auto; }
.di-slots__mode:hover { color:var(--ink); }
.di-slots__mode.on { background:var(--white); color:var(--blue); box-shadow:0 1px 3px color-mix(in srgb, var(--ink) 12%, transparent); }
/* date SLIDER: prev/next arrows flank a scroll strip whose native scrollbar is HIDDEN (users slide via the arrows). */
.di-slots__nav { display:flex; align-items:center; gap:6px; margin-bottom:14px; }
.di-slots__arrow { flex:0 0 auto; width:30px; height:30px; border-radius:50%; border:1.5px solid var(--line); background:var(--white); color:var(--blue); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:.15s; }
.di-slots__arrow svg { width:16px; height:16px; stroke:currentColor; stroke-width:2.4; fill:none; }
.di-slots__arrow:hover { border-color:var(--blue); background:color-mix(in srgb, var(--blue) 8%, var(--white)); }
.di-slots__strip { position:relative; flex:1; min-width:0; display:flex; gap:8px; overflow-x:auto; scroll-behavior:smooth; scrollbar-width:none; } /* position:relative -> active-day offsetLeft is strip-relative (JS scroll-centering); scrollbar hidden -> slider arrows drive it */
.di-slots__strip::-webkit-scrollbar { display:none; }
.di-slots__day { flex:0 0 auto; min-width:62px; border:1.5px solid var(--line); border-radius:12px; background:var(--white); padding:8px 6px; cursor:pointer; text-align:center; transition:.15s; }
.di-slots__day span { display:block; font-size:11px; color:var(--ink2); text-transform:uppercase; letter-spacing:.03em; }
.di-slots__day b { display:block; font-family:inherit; font-size:17px; color:var(--ink); margin:1px 0; }
.di-slots__day em { display:block; font-size:10.5px; color:var(--green-ink); font-style:normal; font-weight:700; }
.di-slots__day:hover { border-color:var(--blue); }
.di-slots__day.on { border-color:var(--blue); background:color-mix(in srgb, var(--blue) 7%, var(--white)); box-shadow:0 1px 3px color-mix(in srgb, var(--ink) 12%, transparent); }
/* grouped no-slot RANGE pill: one muted dashed cell for a run of empty days; click jumps to the next available day. */
.di-slots__gap { flex:0 0 auto; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; padding:8px 12px; border:1.5px dashed var(--line); border-radius:12px; background:var(--tint); cursor:pointer; text-align:center; transition:.15s; }
.di-slots__gap b { font-family:inherit; font-size:12px; font-weight:700; color:var(--ink2); white-space:nowrap; }
.di-slots__gap em { font-style:normal; font-size:10.5px; color:var(--muted); }
.di-slots__gap:hover { border-color:var(--blue); background:color-mix(in srgb, var(--blue) 6%, var(--white)); }
/* time-chips area: FIXED height + vertical scroll so the card stays compact and the picker controls stay put; chips 4-per-row. */
.di-slots__body { max-height:280px; overflow-y:auto; margin:2px -6px 0 0; padding-right:6px; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.di-slots__body::-webkit-scrollbar { width:6px; }
.di-slots__body::-webkit-scrollbar-thumb { background:var(--line); border-radius:6px; }
.di-slots__grp { margin-bottom:13px; }
.di-slots__gl { display:block; font-size:11.5px; font-weight:800; color:var(--ink2); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.di-slots__chips { display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.di-slots__chip { border:1.5px solid color-mix(in srgb, var(--blue) 22%, var(--white)); background:var(--white); color:var(--blue); border-radius:9px; padding:10px 8px; font-size:12.5px; font-weight:700; cursor:pointer; transition:.15s; min-height:44px; text-align:center; white-space:nowrap; }
.di-slots__chip:hover { background:var(--blue); color:var(--white); border-color:var(--blue); }
/* brand-matched focus ring on the slot picker controls. */
.di-slots__chip:focus-visible, .di-slots__day:focus-visible, .di-slots__mode:focus-visible, .di-slots__gap:focus-visible, .di-slots__arrow:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
/* signed-in-as-provider notice (transient, bottom-centre). */
.di-slots-toast { position:fixed; left:50%; bottom:24px; transform:translate(-50%, 12px); z-index:95; max-width:calc(100vw - 32px); background:var(--ink); color:var(--white); font-size:13.5px; font-weight:600; padding:12px 18px; border-radius:12px; box-shadow:0 12px 30px color-mix(in srgb, var(--ink) 30%, transparent); opacity:0; transition:opacity .25s, transform .25s; pointer-events:none; }
.di-slots-toast.on { opacity:1; transform:translate(-50%, 0); }
@media (max-width:380px) { .di-slots__chips { grid-template-columns:repeat(3, 1fr); } }
