/* An alternative reading of the existing cards; no styles leak into the fallback. */
.follow-up-session-rail { --rail-card-width:max(260px,calc(var(--rail-viewport-width,1000px)*.46)); --rail-edge-space:max(0px,calc((var(--rail-viewport-width,1000px) - var(--rail-card-width))/2)); --rail-overlap:.28; min-width:0; margin:0 -2px; }
/* A parent entrance scale distorts initial rail geometry on long histories.
   Card detent motion remains entirely owned by the rail below. */
.detail-panel:has(.follow-up-session-rail) { animation:none!important; transform:none!important; }
.follow-up-session-rail-stage { position:relative; min-width:0; }
.follow-up-rail-priority { display:flex; align-items:center; gap:6px; grid-column:3; justify-self:start; min-width:0; max-width:100%; min-height:44px; border:0; border-radius:12px; padding:8px 10px; background:transparent; color:var(--primary,#7053ac); font:inherit; font-size:12px; font-weight:700; line-height:1.35; text-align:left; cursor:pointer; }
.follow-up-rail-priority svg { flex:0 0 16px; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.follow-up-rail-priority:hover { background:var(--theme-soft,#f2edfb); }
.follow-up-rail-priority[hidden] { display:none; }
.follow-up-session-rail-controls { position:absolute; inset:0 2px 44px; z-index:110; display:flex; align-items:center; justify-content:space-between; pointer-events:none; }
.follow-up-session-rail-controls>button { position:relative; isolation:isolate; display:grid; place-items:center; flex:0 0 44px; width:44px; height:44px; padding:0; border:0; border-radius:22px; background:transparent; color:var(--primary,#7053ac); font:inherit; font-size:22px; cursor:pointer; pointer-events:auto; transition:transform .16s; }
.follow-up-session-rail-controls>button::before { content:""; position:absolute; inset:6px; z-index:-1; border:1px solid var(--border,#e3dded); border-radius:50%; background:var(--surface,#fff); box-shadow:0 2px 6px #4537670a; }
.follow-up-session-rail-controls>button:hover:not(:disabled)::before { background:var(--theme-soft,#f2edfb); border-color:var(--primary,#7053ac); }
.follow-up-session-rail-controls>button:active:not(:disabled) { transform:scale(.96); }
.follow-up-session-rail-controls>button:disabled { opacity:.4; cursor:default; box-shadow:none; }
.follow-up-session-rail-caption { position:absolute; inset:auto 8px 0; min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.follow-up-session-rail-caption>[data-rail-position] { min-width:36px; margin-left:auto; color:var(--tx-3,#81758d); text-align:right; font-size:12px; font-variant-numeric:tabular-nums; }
.follow-up-session-rail-viewport { position:relative; overflow-x:auto; overflow-y:hidden; width:100%; min-width:0; scroll-snap-type:x mandatory; scroll-padding-inline:calc((100% - var(--rail-card-width))/2); overscroll-behavior-inline:contain; scrollbar-width:thin; scrollbar-color:var(--border,#dcd4e8) transparent; }
.follow-up-session-rail-track { display:flex; align-items:stretch; gap:0; width:max-content; min-width:100%; box-sizing:border-box; padding:16px 0 56px; margin:0; list-style:none; }
.follow-up-session-rail-track::before,.follow-up-session-rail-track::after { content:""; display:block; flex:0 0 var(--rail-edge-space); width:var(--rail-edge-space); }
.follow-up-session-rail-item { position:relative; display:flex; flex-direction:column; flex:0 0 var(--rail-card-width); margin-inline-end:calc(var(--rail-card-width)*var(--rail-overlap)*-1); min-width:0; box-sizing:border-box; scroll-snap-align:center; scroll-snap-stop:always; border-radius:var(--composition-card-radius,24px); }
.follow-up-session-rail-item:last-child { margin-inline-end:0; }
.follow-up-session-rail-item::before,.follow-up-session-rail-item::after { display:none; }
.follow-up-rail-card,.follow-up-session-rail-item>.follow-up-rail-supplied-card { position:relative; display:flex; flex:1; flex-direction:column; width:100%; box-sizing:border-box; min-height:208px!important; height:auto; padding:20px!important; margin:0!important; border:1px solid var(--border,#e3dded); border-radius:var(--composition-card-radius,24px); color:var(--tx,#302641); background:var(--surface,#fff)!important; box-shadow:var(--composition-card-shadow,0 5px 20px #45376708); opacity:1!important; transition:none!important; animation:none!important; transform:perspective(1100px) translate3d(0,var(--rail-y,6px),var(--rail-depth,0px)) rotateY(var(--rail-rotate,0deg)) scale(var(--rail-scale,.86)); transform-origin:center center; will-change:transform; }
.follow-up-session-rail-item.is-selected>.follow-up-rail-card,.follow-up-session-rail-item.is-selected>.follow-up-rail-supplied-card { box-shadow:0 7px 18px #30204412,0 1px 4px #30204408!important; }
.follow-up-rail-card-header { display:grid; gap:8px; text-align:center; opacity:1!important; transition:none!important; animation:none!important; }
.follow-up-rail-card-header .session-planning-card-topline { justify-content:center; }
.follow-up-session-rail .follow-up-rail-card-header .follow-up-rail-date-label { display:inline-flex; align-items:baseline; justify-content:center; gap:6px; font-size:inherit!important; line-height:inherit; margin:0; color:inherit; }
.follow-up-rail-date-label b { font:inherit; }
.follow-up-rail-card-header h4 { margin:0; }
.follow-up-session-card-content { display:grid; gap:10px; min-width:0; margin:12px 0; text-align:left; }
.follow-up-session-card-content h4 { margin:0; font-size:15px; line-height:1.4; }
.follow-up-session-card-intent,.follow-up-session-card-exercises>strong,.follow-up-session-card-note>strong { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; text-overflow:ellipsis; }
.follow-up-session-card-exercises,.follow-up-session-card-note { display:grid; gap:3px; margin:0; min-width:0; font-size:13px; line-height:1.4; }
.follow-up-session-card-exercises>span,.follow-up-session-card-note>span { color:var(--tx-3,#81758d); font-size:11px; font-weight:650; }
.follow-up-session-card-exercises>strong,.follow-up-session-card-note>strong { font-weight:650; }
.follow-up-session-card-exercises small { color:var(--tx-3,#81758d); white-space:nowrap; }
.follow-up-session-card-markers { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0; }
.follow-up-session-card-markers>div { min-width:0; }
.follow-up-session-card-markers dt { color:var(--tx-3,#81758d); font-size:11px; }
.follow-up-session-card-markers dd { margin:2px 0 0; font-size:23px; font-weight:750; line-height:1.2; }
.follow-up-session-card-markers dd small { margin-left:2px; font-size:12px; font-weight:500; color:var(--tx-3,#81758d); }
.follow-up-session-card-empty,.follow-up-session-card-recorded { margin:0; font-size:13px; line-height:1.4; color:var(--tx-3,#81758d); }
.follow-up-session-card-phase { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--tx-3,#81758d); font-size:10px; font-weight:650; line-height:1.4; }
.session-preparation-frame-summary .session-preparation-phase { display:grid; grid-column:1/-1; gap:8px; min-width:0; align-items:start; }
.session-preparation-phase>label { display:grid; gap:6px; min-width:0; color:var(--tx-3,#81758d); font-size:12px; font-weight:650; }
.session-preparation-phase select { box-sizing:border-box; width:100%; max-width:460px; min-width:0; min-height:44px; padding:9px 12px; border:1px solid var(--border,#e3dded); border-radius:12px; background:var(--surface,#fff); color:var(--tx,#302641); font:inherit; font-size:14px; font-weight:500; text-overflow:ellipsis; }
.session-preparation-phase>button { justify-self:start; min-height:44px; }
.session-preparation-phase>button[hidden],.session-preparation-phase>[data-session-phase-message]:empty { display:none; }
.session-preparation-phase>[data-session-phase-message] { margin:0; color:var(--tx-3,#81758d); font-size:12px; line-height:1.4; }
.session-preparation-phase select:focus-visible { outline:3px solid var(--primary,#7053ac); outline-offset:3px; }
.follow-up-session-rail .follow-up-rail-card-header :is(h4,h3) { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; text-overflow:ellipsis; }
.follow-up-session-rail .session-pyramid-open-label { margin-top:auto; }
.follow-up-session-rail-item.is-planned>.follow-up-rail-card,.follow-up-session-rail-item.is-planned>.follow-up-rail-supplied-card { border-color:var(--rail-planned-border,#e6cdbd); background:linear-gradient(135deg,var(--rail-planned-surface,#fff7ef),var(--rail-planned-surface-end,#f9e6d8))!important; }
.follow-up-session-rail-item.is-priority>.follow-up-rail-card,.follow-up-session-rail-item.is-priority>.follow-up-rail-supplied-card,
.follow-up-session-rail-item.is-started>.follow-up-rail-card,.follow-up-session-rail-item.is-started>.follow-up-rail-supplied-card { border-color:var(--primary,#7053ac)!important; background:linear-gradient(135deg,var(--theme-soft,#f0eafb),var(--surface,#fff))!important; box-shadow:0 0 0 1px var(--primary,#7053ac),0 8px 26px #4537670d; }
.follow-up-session-rail-item.is-cancelled>.follow-up-rail-card,.follow-up-session-rail-item.is-cancelled>.follow-up-rail-supplied-card { background:var(--surface-alt,#f7f5f8)!important; border-style:dashed; box-shadow:none; }
.follow-up-rail-card-copy { display:grid; gap:10px; }
.follow-up-rail-state { color:var(--tx-3,#81758d); font-size:12px; font-weight:750; }
.follow-up-session-rail-item.is-planned .follow-up-rail-state,.follow-up-session-rail-item.is-started .follow-up-rail-state { color:var(--rail-planned-text,#8a572f); }
.follow-up-session-rail-item.is-priority .follow-up-rail-state,.follow-up-session-rail-item.is-started .follow-up-rail-state { color:var(--primary,#7053ac); }
.follow-up-rail-date { font-size:clamp(23px,2.5vw,32px); letter-spacing:-.035em; line-height:1.2; overflow-wrap:anywhere; }
.follow-up-rail-time { color:var(--tx-3,#81758d); font-size:14px; font-variant-numeric:tabular-nums; }
.follow-up-rail-card h3 { margin:4px 0 0; font-size:16px; line-height:1.4; overflow-wrap:anywhere; }
.follow-up-rail-today { justify-self:start; padding:4px 8px; border-radius:8px; background:var(--surface,#fff); color:var(--primary,#7053ac); font-size:12px; font-weight:700; }
.follow-up-rail-open { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:44px; margin-top:auto; padding:20px 0 0; border:0; background:transparent; color:var(--primary,#7053ac); font:inherit; font-size:13px; font-weight:750; text-align:left; cursor:pointer; }
.follow-up-session-rail :is(button,[tabindex]):focus-visible { outline:3px solid var(--primary,#7053ac); outline-offset:4px; }
.follow-up-session-rail-item:focus-visible { outline:none; }
.follow-up-session-rail-item:focus-visible>:is(.follow-up-rail-card,.follow-up-rail-supplied-card) { outline:3px solid var(--primary,#7053ac); outline-offset:4px; }
.follow-up-session-rail-empty { margin:0; padding:20px 0; color:var(--tx-3,#81758d); }
.follow-up-rail-navigation { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:0 12px; min-width:0; margin:0 6px 6px; }
.follow-up-rail-phase-jump { display:grid; min-width:0; gap:4px; margin-top:12px; padding-top:12px; border-top:1px solid var(--border,#e3dded); }
.follow-up-rail-phase-jump>span { color:var(--tx-3,#81758d); font-size:11px; }
.follow-up-rail-phase-jump select { display:block; width:100%; min-width:0; min-height:44px; padding:8px 24px 8px 10px; border:1px solid var(--border,#e3dded); border-radius:12px; background:var(--surface,#fff); color:var(--tx,#302641); font:inherit; font-size:12px; font-weight:650; text-overflow:ellipsis; cursor:pointer; }
.follow-up-rail-calendar-trigger { display:flex; align-items:center; justify-content:center; grid-column:2; justify-self:center; gap:8px; min-width:0; max-width:100%; min-height:44px; padding:8px 12px; border:1px solid var(--border,#e3dded); border-radius:12px; background:var(--surface,#fff); color:var(--primary,#7053ac); font:inherit; font-size:13px; font-weight:700; cursor:pointer; }
.follow-up-rail-calendar-trigger>i { font-size:15px; font-style:normal; }
.follow-up-rail-calendar-trigger svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.follow-up-rail-calendar-trigger span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.follow-up-rail-calendar { position:fixed; inset:auto; margin:0; z-index:2000; width:min(360px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); box-sizing:border-box; overflow:auto; overscroll-behavior:contain; padding:16px; border:1px solid var(--border,#e3dded); border-radius:20px; background:var(--surface,#fff); color:var(--tx,#302641); box-shadow:0 14px 46px #30204424,0 2px 8px #3020440a; }
.follow-up-rail-calendar::backdrop { background:transparent; }
.follow-up-rail-calendar[hidden] { display:none; }
.follow-up-rail-calendar>header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 8px; font-size:15px; }
.follow-up-rail-calendar button { font:inherit; cursor:pointer; }
.follow-up-rail-calendar>header>button,.follow-up-rail-calendar-month-controls>button { display:grid; place-items:center; flex:0 0 36px; width:36px; min-height:44px; padding:0; border:0; border-radius:12px; color:var(--primary,#7053ac); background:transparent; font-size:23px; }
.follow-up-rail-calendar button:disabled { cursor:default; }
.follow-up-rail-calendar-month-controls { display:flex; align-items:center; gap:6px; }
.follow-up-rail-calendar-month-controls>button:disabled { opacity:.35; }
.follow-up-rail-calendar-month-controls>label { display:grid; flex:1; gap:3px; min-width:0; }
.follow-up-rail-calendar-month-controls label>span { color:var(--tx-3,#81758d); font-size:10px; }
.follow-up-rail-calendar-month-controls select { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:6px; border:1px solid var(--border,#e3dded); border-radius:10px; background:var(--surface,#fff); color:var(--tx,#302641); font:inherit; font-size:13px; }
.follow-up-rail-calendar-month-title { margin:12px 0 8px; font-size:12px; font-weight:700; text-transform:capitalize; }
.follow-up-rail-calendar-weekdays,.follow-up-rail-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; }
.follow-up-rail-calendar-weekdays>span { padding:5px 0; color:var(--tx-3,#81758d); text-align:center; font-size:11px; }
.follow-up-rail-calendar-days>button { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; min-width:0; min-height:44px; padding:3px 0; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--tx-3,#81758d); font-size:13px; }
.follow-up-rail-calendar-days>button.is-outside-month { visibility:hidden; }
.follow-up-rail-calendar-days>button.has-session { color:var(--primary,#7053ac); background:var(--theme-soft,#f2edfb); font-weight:750; }
.follow-up-rail-calendar-days>button.has-session:hover { border-color:var(--primary,#7053ac); }
.follow-up-rail-calendar-days>button.is-selected { border-color:var(--primary,#7053ac); box-shadow:inset 0 0 0 1px var(--primary,#7053ac); }
.follow-up-rail-calendar-days small { font-size:9px; line-height:1; font-weight:600; }
.follow-up-rail-calendar-choices { display:grid; gap:6px; margin-top:12px; padding-top:12px; border-top:1px solid var(--border,#e3dded); }
.follow-up-rail-calendar-choices>strong { margin-bottom:3px; font-size:12px; }
.follow-up-rail-calendar-choices>button { display:grid; gap:4px; min-height:44px; padding:10px; border:1px solid var(--border,#e3dded); border-radius:12px; background:var(--surface,#fff); color:var(--tx,#302641); text-align:left; }
.follow-up-rail-calendar-choices>button>span { color:var(--tx-3,#81758d); font-size:11px; }
.follow-up-rail-calendar-choices>button>strong { font-size:13px; }
.follow-up-rail-calendar-undated { width:100%; min-height:44px; margin-top:10px; padding:8px; border:0; border-radius:12px; background:var(--theme-soft,#f2edfb); color:var(--primary,#7053ac); font-size:12px!important; font-weight:700!important; }
.follow-up-rail-calendar-empty { color:var(--tx-3,#81758d); font-size:13px; }
.follow-up-session-rail select:focus-visible { outline:3px solid var(--primary,#7053ac); outline-offset:3px; }
@media(max-width:760px){
 .follow-up-session-rail { --rail-card-width:calc(var(--rail-viewport-width,358px)*.58); --rail-overlap:.34; }
 .follow-up-rail-priority { grid-column:1; grid-row:1; justify-self:center; max-width:100%; text-align:center; }
 .follow-up-session-rail-track { padding-top:14px; padding-bottom:56px; }
 .follow-up-rail-card,.follow-up-session-rail-item>.follow-up-rail-supplied-card { min-height:248px!important; max-height:none; height:auto!important; padding:18px!important; gap:8px; }
 .follow-up-session-rail .session-planning-card-date,.follow-up-rail-date { font-size:21px!important; line-height:1.25; }
 .follow-up-session-rail .session-planning-card-date>span { font-size:13px; line-height:1.35; margin-top:6px; }
 .follow-up-session-rail .follow-up-rail-card-header .follow-up-rail-date-label { display:grid; gap:2px; }
 .follow-up-rail-date-label b { font-size:26px; line-height:1.1; }
 .follow-up-rail-date-label>span { font-size:12px; line-height:1.2; font-weight:600; letter-spacing:0; }
 .follow-up-session-card-content { gap:8px; margin:6px 0; }
 .follow-up-session-card-content h4 { font-size:14px; }
 .follow-up-session-card-markers { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 10px; }
 .follow-up-session-card-markers dt { min-height:2.6em; line-height:1.2; }
 .follow-up-rail-navigation { grid-template-columns:minmax(0,1fr); gap:0; margin-inline:0; }
 .follow-up-rail-calendar-trigger { grid-column:1; grid-row:2; padding-inline:6px; }
}
@media(prefers-reduced-motion:reduce){
 .follow-up-session-rail *,.follow-up-session-rail *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}
