.review-dashboard { display:grid; grid-template-columns:minmax(0,1fr); gap:1.15rem; align-items:start; }
.dashboard-disclaimer { margin-bottom:1rem; padding:.8rem 1rem; border:1px solid #e6eaf1; border-radius:10px; background:#f8f9fc; color:#63718a; font-size:.74rem; line-height:1.55; }.dashboard-disclaimer p { margin:0 0 .35rem; }.dashboard-disclaimer>span { font-size:.67rem; color:#748097; }
.review-widget, .patient-widget { --widget-accent:78,109,156; position:relative; min-width:0; border:1px solid rgba(var(--widget-accent),.22); border-radius:14px; box-shadow:0 3px 15px -8px rgba(var(--widget-accent),.30); overflow:hidden; transition:box-shadow .18s,border-color .18s; }
[data-theme="sage"] { --widget-accent:72,119,111; }
[data-theme="sand"] { --widget-accent:141,112,78; }
[data-theme="violet"] { --widget-accent:113,91,167; }
.review-widget::before, .patient-widget::before { content:""; position:absolute; top:0; inset-inline:0; height:3px; background:linear-gradient(90deg,rgba(var(--widget-accent),.18),rgba(var(--widget-accent),.68),rgba(var(--widget-accent),.18)); }
.review-widget:hover, .patient-widget:hover { border-color:rgba(var(--widget-accent),.38); box-shadow:0 6px 20px -10px rgba(var(--widget-accent),.40); }
.review-widget .widget-header { padding:1rem 1.2rem .85rem; background:linear-gradient(110deg,rgba(var(--widget-accent),.085),rgba(var(--widget-accent),.025) 60%,transparent); border-bottom:1px solid rgba(var(--widget-accent),.12); }
.widget-title { position:relative; margin:0 0 .65rem; padding-inline-end:2rem; line-height:1.35; font-size:1rem; font-weight:600; }
.widget-title-copy { display:flex; flex-direction:column; gap:.22rem; min-width:0; }
.widget-code { color:rgb(var(--widget-accent,78,109,156)); font-weight:700; letter-spacing:.075em; font-size:.65rem; line-height:1.25; }
.widget-name { overflow-wrap:anywhere; }
.widget-help { position:absolute; inset-inline-end:-3px; top:0; width:28px; height:28px; padding:0; border:0; color:#647082; background:transparent; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; border-radius:50%; }
.widget-help-symbol { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; border:1px solid currentColor; border-radius:50%; font-size:10px; line-height:1; font-family:Georgia,serif; font-weight:600; }
.widget-help:hover { color:rgb(var(--widget-accent,78,109,156)); background:transparent; }
.widget-help:focus-visible, .widget-chart:focus-visible, .widget-details summary:focus-visible, .widget-chart-data summary:focus-visible { outline:2px solid rgb(var(--widget-accent,78,109,156)); outline-offset:3px; }
.dashboard-widget-tooltip .tooltip-inner { max-width:min(26rem,calc(100vw - 2rem)); text-align:start; font-size:.82rem; line-height:1.5; padding:.75rem .9rem; }
.widget-meta { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .7rem; font-size:.69rem; }
.widget-period { color:#5e6c80; }
.widget-state { padding:.17rem .5rem; border-radius:20px; background:rgba(var(--widget-accent),.07); color:rgb(var(--widget-accent)); font-weight:500; }
.widget-state::before { content:""; display:inline-block; width:4px; height:4px; margin-inline-end:.35rem; vertical-align:middle; border-radius:50%; background:currentColor; }
.widget-state[data-state="insufficient"], .widget-state[data-state="no_data"] { background:#f0f1f4; color:#687181; }
.review-widget .widget-body { padding:1rem 1.2rem; }
.widget-source { font-size:.7rem; color:#69758a; margin-bottom:1rem; line-height:1.5; }
.widget-notice, .widget-caution { font-size:.77rem; line-height:1.55; padding:.6rem .75rem; border-radius:8px; background:rgba(var(--widget-accent),.045); border-inline-start:2px solid rgba(var(--widget-accent),.30); color:#5c687b; margin:0 0 1rem; overflow-wrap:anywhere; }
.widget-caution { font-weight:500; }
.widget-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(125px,1fr)); gap:.7rem; margin-bottom:1.15rem; }
.widget-metric { min-width:0; padding:.8rem .85rem; background:linear-gradient(145deg,rgba(var(--widget-accent),.065),rgba(var(--widget-accent),.015)); border:1px solid rgba(var(--widget-accent),.12); border-radius:10px; }
.widget-metric-label { display:block; font-size:.73rem; font-weight:500; color:#5c687c; line-height:1.4; }
.widget-metric-value { color:rgb(var(--widget-accent)); font-size:1.8rem; font-weight:600; line-height:1.25; margin:.3rem 0; letter-spacing:-.035em; overflow-wrap:anywhere; }
.widget-metric-value small { font-size:.75rem; font-weight:400; letter-spacing:0; color:#637087; }
.widget-metric-value--text { font-size:.98rem; line-height:1.5; letter-spacing:0; }
.widget-metric-context { display:block; font-size:.68rem; line-height:1.45; color:#6c778a; }
.widget-progress-list { display:grid; gap:.85rem; margin-bottom:1rem; }
.widget-progress-list--long { max-height:330px; overflow-y:auto; padding-inline-end:.5rem; }
.widget-progress-label { display:flex; justify-content:space-between; gap:.75rem; font-size:.75rem; margin-bottom:.35rem; line-height:1.4; }
.widget-progress-label strong { flex-shrink:0; font-size:.75rem; }
.widget-progress-track { height:7px; border-radius:10px; background:rgba(var(--widget-accent),.08); overflow:hidden; }
.widget-progress-track>span { display:block; height:100%; border-radius:10px; background:linear-gradient(90deg,rgba(var(--widget-accent),.55),rgba(var(--widget-accent),.9)); }
.widget-progress-context { font-size:.67rem; color:#68758a; }
.widget-chart-block { margin:1rem 0; min-width:0; }
.widget-chart-title, .widget-frequency h6, .widget-calendar-block h6 { font-size:.8rem; font-weight:600; margin-bottom:.55rem; color:#46536b; }
.widget-chart { min-height:180px; min-width:0; width:100%; border-radius:9px; background:linear-gradient(180deg,rgba(var(--widget-accent),.018),transparent); }
.widget-chart-loading { display:flex; min-height:180px; align-items:center; justify-content:center; padding:1rem; text-align:center; font-size:.75rem; color:#7a8494; }
.widget-chart-caption { margin:.4rem 0; font-size:.67rem; line-height:1.5; color:#68758a; }
.widget-chart-tooltip { padding:.5rem .7rem; font-size:.75rem; background:var(--bs-body-bg,#fff); color:var(--bs-body-color,#46536b); max-width:260px; white-space:normal; }
.widget-chart-tooltip strong { display:block; margin-bottom:.3rem; }
.widget-chart-tooltip div { display:flex; gap:1rem; justify-content:space-between; }
.widget-details, .widget-chart-data { border-top:1px solid rgba(var(--widget-accent),.14); margin-top:1rem; padding-top:.7rem; }
.widget-details>summary, .widget-chart-data>summary { cursor:pointer; color:rgb(var(--widget-accent)); font-size:.75rem; font-weight:500; list-style-position:inside; }
.widget-details>summary>span { margin-inline-start:.5rem; color:#788394; font-weight:400; font-size:.65rem; }
.widget-chart-data { margin-top:.5rem; padding-top:.4rem; border-top-style:dashed; }
.widget-chart-data>summary { font-size:.67rem; color:#6d788b; }
.review-widget .table { margin: .7rem 0 0; font-size:.75rem; }
.review-widget .table th { font-size:.68rem; text-transform:none; letter-spacing:0; color:#5b687b; background:rgba(var(--widget-accent),.04); }
.review-widget .table td, .review-widget .table th { min-width:7rem; max-width:28rem; white-space:normal; overflow-wrap:anywhere; padding:.6rem .55rem; }
.widget-empty { display:flex; gap:.8rem; align-items:flex-start; padding:1rem .9rem; margin:.7rem 0; border:1px dashed rgba(var(--widget-accent),.22); background:rgba(var(--widget-accent),.02); border-radius:10px; color:#69768a; }
.widget-empty strong { color:#526078; font-size:.84rem; font-weight:500; }
.widget-empty p { font-size:.75rem; line-height:1.6; margin:.35rem 0 0; }
.widget-empty-icon { font-size:1.5rem; color:rgba(var(--widget-accent),.65); line-height:1.25; }
.widget-alerts { list-style:none; padding:0; margin:0; display:grid; gap:.7rem; }
.widget-alerts li { display:flex; gap:.8rem; padding:.9rem; border:1px solid rgba(var(--widget-accent),.18); border-radius:10px; background:rgba(var(--widget-accent),.025); }
.widget-alert-icon { display:flex; align-items:center; justify-content:center; border:1px solid rgba(var(--widget-accent),.4); color:rgb(var(--widget-accent)); width:21px; height:21px; border-radius:50%; flex-shrink:0; font-size:.75rem; }
.widget-alerts strong { font-size:.82rem; }.widget-alerts p { font-size:.77rem; margin:.25rem 0; }.widget-alerts small { font-size:.7rem; color:#66748a; }
.widget-notes { display:grid; gap:.55rem; }
.widget-note { border:1px solid rgba(var(--widget-accent),.15); padding:.65rem .8rem; border-radius:9px; background:rgba(var(--widget-accent),.02); }
.widget-note summary { cursor:pointer; font-size:.77rem; }.widget-note-meta { display:block; font-size:.65rem; color:rgb(var(--widget-accent)); margin-bottom:.3rem; }.widget-note-preview { display:block; line-height:1.5; }.widget-note p { margin:.6rem 0 0; font-size:.78rem; line-height:1.6; overflow-wrap:anywhere; }
.widget-select-group { margin-top:1rem; }.widget-select-group>label { display:block; font-size:.72rem; font-weight:500; margin-bottom:.4rem; }.widget-select-group>.form-select { margin-bottom:.9rem; max-width:100%; font-size:.76rem; }
.widget-calendar { display:grid; grid-template-columns:repeat(10,minmax(0,1fr)); gap:.3rem; margin:.7rem 0; }
.widget-calendar-day { display:flex; align-items:center; justify-content:center; min-height:27px; border:1px solid rgba(var(--widget-accent),.16); border-radius:5px; font-size:.67rem; color:#68758a; background:#f5f6f9; }
.widget-calendar-day.is-active { background:rgba(var(--widget-accent),.83); color:#fff; border-color:transparent; font-weight:600; }
.widget-calendar-day.is-unobserved { border-style:dashed; background:repeating-linear-gradient(135deg,transparent,transparent 4px,rgba(var(--widget-accent),.04) 4px,rgba(var(--widget-accent),.04) 6px); }
.widget-frequency-days { display:flex; gap:.35rem; flex-wrap:wrap; }.widget-frequency-day { display:flex; flex-direction:column; align-items:center; width:36px; min-height:46px; border-radius:7px; background:rgba(var(--widget-accent),.04); border:1px solid rgba(var(--widget-accent),.13); color:#62718a; padding:.2rem; }.widget-frequency-day small { font-size:.58rem; }.widget-frequency-day strong { font-size:.8rem; }.frequency-2 { background:rgba(var(--widget-accent),.13); }.frequency-3 { background:rgba(var(--widget-accent),.25); color:#334a6a; }.frequency-0 { border-style:dashed; }
.widget-insights { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.6rem; margin-top:.8rem; }.widget-insights>div { padding:.7rem; background:rgba(var(--widget-accent),.035); border-radius:8px; }.widget-insights strong { display:block; font-size:.72rem; }.widget-insights span { display:block; margin:.25rem 0; font-weight:600; }.widget-insights small { font-size:.66rem; color:#6e798a; }
.widget-practice-sections { display:grid; gap:1rem; margin-top:1rem; }.widget-practice { min-width:0; padding:1rem; border:1px solid rgba(var(--widget-accent),.16); border-radius:11px; }.widget-practice>h6 { font-size:.87rem; font-weight:600; padding-bottom:.6rem; border-bottom:1px solid rgba(var(--widget-accent),.12); margin-bottom:1rem; }.widget-practice .widget-metric { padding:.65rem; }.widget-practice .widget-metric-value { font-size:1.45rem; }
.widget-forecast-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:.85rem; }.widget-forecast-item { min-width:0; padding:1rem; border-radius:11px; background:rgba(var(--widget-accent),.035); border:1px solid rgba(var(--widget-accent),.13); }.widget-forecast-heading { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.4rem; font-size:.84rem; }.widget-forecast-heading>span { font-size:.7rem; color:#6e768b; }.widget-forecast-value { font-size:1.9rem; color:rgb(var(--widget-accent)); font-weight:600; margin:.6rem 0; }.widget-forecast-value small { font-size:.8rem; margin-left:.2rem; font-weight:400; }.widget-forecast-range { position:relative; height:22px; margin:.5rem 8px 0; }.widget-forecast-range::before { position:absolute; content:""; top:10px; inset-inline:0; height:2px; background:rgba(var(--widget-accent),.15); }.widget-forecast-band { position:absolute; top:6px; height:10px; background:rgba(var(--widget-accent),.22); border-radius:4px; }.widget-forecast-point { position:absolute; top:4px; width:14px; height:14px; background:rgb(var(--widget-accent)); border:2px solid white; border-radius:50%; transform:translateX(-50%); box-shadow:0 0 0 1px rgba(var(--widget-accent),.5); }.widget-range-ticks { display:flex; justify-content:space-between; font-size:.6rem; color:#778195; margin:0 8px; }.widget-forecast-evidence { display:flex; flex-wrap:wrap; gap:.4rem; margin:.6rem 0; }.widget-forecast-evidence span { font-size:.66rem; padding:.15rem .4rem; border:1px solid rgba(var(--widget-accent),.13); border-radius:4px; }
[data-widget-id="PRED02"] .widget-metric:nth-child(2) { border-style:dashed; background:rgba(var(--widget-accent),.055); }
.patient-widget .card-body { padding:1.25rem; }.patient-widget .widget-title { padding-bottom:.7rem; border-bottom:1px solid rgba(var(--widget-accent),.12); }.patient-widget .widget-metric-value { font-size:2.3rem; }.patient-widget .list-group-item { border-color:rgba(var(--widget-accent),.14); border-radius:8px!important; margin-bottom:.5rem; font-size:.84rem; background:rgba(var(--widget-accent),.025); }.patient-widget .list-group-item>span:last-child { flex-shrink:0; color:rgb(var(--widget-accent)); }.patient-widget .text-muted { font-size:.83rem; }.patient-widget .widget-patient-comparison { display:flex; align-items:baseline; gap:.7rem; flex-wrap:wrap; font-size:.8rem; color:#69758a; margin-top:.7rem; }
.review-widget .apexcharts-legend-series:focus-visible { outline:2px solid rgb(var(--widget-accent)); outline-offset:2px; border-radius:3px; }
@media(min-width:1100px) { .review-dashboard { grid-template-columns:repeat(2,minmax(0,1fr)); }.review-widget--wide { grid-column:1/-1; }.widget-practice-sections { grid-template-columns:repeat(2,minmax(0,1fr)); }.widget-forecast-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:575px) { .review-dashboard { gap:1rem; }.review-widget .widget-header { padding:.9rem .9rem .75rem; }.review-widget .widget-body { padding:.9rem; }.widget-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }.widget-metric { padding:.65rem; }.widget-metric-value { font-size:1.55rem; }.widget-metric-value--text { font-size:.86rem; }.widget-metric-context { font-size:.65rem; }.widget-chart { min-height:180px; }.widget-practice { padding:.8rem; }.widget-calendar { grid-template-columns:repeat(7,minmax(0,1fr)); }.widget-progress-label { font-size:.71rem; }.widget-source { font-size:.65rem; }.widget-title { font-size:.96rem; }.widget-frequency-days { gap:.25rem; }.widget-frequency-day { width:30px; }.patient-widget .card-body { padding:1rem; }.widget-insights { grid-template-columns:minmax(0,1fr); } }
@media(pointer:coarse) { .widget-help { width:44px; height:44px; top:-8px; inset-inline-end:-10px; } }
@media(prefers-reduced-motion:reduce) { .review-widget, .patient-widget { transition:none; } }
