/* 21st.dev-inspired analytics, using Dawnby's existing surfaces and typography. */
body[data-dashboard-studio]{--insight-planned:color-mix(in srgb,var(--studio-accent) 32%,var(--studio-surface));--insight-planned-edge:var(--studio-accent);--insight-reviewed:var(--studio-accent);--insight-unfilled:var(--studio-warning);--insight-line:color-mix(in srgb,var(--studio-muted) 13%,transparent)}
#main[data-health-view="today"] .hw-grid-mid.insight-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;gap:24px}
.insight-section{display:flex;flex-direction:column;min-width:0}
#main[data-health-view="today"] .insight-card{display:flex;flex-direction:column;flex:1;padding:22px 24px;min-width:0;overflow:hidden}
.insight-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.insight-period{display:flex;align-items:center;gap:8px;margin:0;color:var(--studio-accent);font-size:14px;font-weight:600}
.insight-period svg{width:18px;height:18px;flex-shrink:0}
.insight-unit{font-size:12px;color:var(--studio-muted)}
.insight-metric{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.insight-value{margin:0;color:var(--studio-text);font-family:var(--dawnby-font);font-size:44px;line-height:1.05;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.insight-value>span{font-size:24px;font-weight:600;color:var(--studio-muted);letter-spacing:0}
.insight-caption{margin:6px 0 0;font-size:14px;color:var(--studio-muted)}
.insight-secondary{text-align:right;display:flex;flex-direction:column;gap:5px;font-variant-numeric:tabular-nums}
.insight-secondary strong{font-size:15px;font-weight:600;color:var(--studio-text)}
.insight-secondary>span{font-size:12px;color:var(--studio-muted)}
.insight-legend{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin-bottom:22px;font-size:13px;color:var(--studio-muted)}
.insight-legend>span{display:inline-flex;align-items:center;gap:7px}
.insight-dot{display:inline-block;width:9px;height:9px;border-radius:3px}
.insight-dot.planned{background:var(--insight-planned);box-shadow:inset 0 0 0 1px var(--insight-planned-edge)}
.insight-dot.reviewed,.insight-dot.assigned{background:var(--insight-reviewed)}
.insight-dot.unfilled{background:var(--insight-unfilled)}
/* Each chart day opens a roster date, so a day column never goes under the 48 floor (D-0175). When seven do not fit, the
   chart scrolls sideways inside its card with the axis held in place; the top axis label needs the padding to stay unclipped, and the right-edge shade shows only while more days lie that way. */
.insight-chart{--insight-height:180px;--insight-axis-width:28px;--insight-chart-gap:8px;--insight-day-gap:4px;display:grid;grid-template-columns:var(--insight-axis-width) minmax(calc(7*var(--dawnby-interaction-comfortable-touch-target) + 6*var(--insight-day-gap)),1fr);gap:var(--insight-chart-gap);margin-top:-2px;margin-bottom:14px;padding-block:8px 2px;overflow-x:auto;overscroll-behavior-x:contain;scroll-padding-inline-start:calc(var(--insight-axis-width) + var(--insight-chart-gap));background:linear-gradient(to left,var(--studio-surface) 40%,transparent) right/28px 100% no-repeat local,linear-gradient(to left,color-mix(in srgb,var(--studio-text) 9%,transparent),transparent) right/12px 100% no-repeat scroll}
.insight-axis{position:sticky;left:0;z-index:1;background:var(--studio-surface);height:var(--insight-height);font-size:11px;font-variant-numeric:tabular-nums;color:var(--studio-muted)}
.insight-axis>span{position:absolute;right:0;transform:translateY(-50%)}
.insight-axis>span:nth-child(1){top:0}.insight-axis>span:nth-child(2){top:25%}.insight-axis>span:nth-child(3){top:50%}.insight-axis>span:nth-child(4){top:75%}.insight-axis>span:nth-child(5){top:100%}
.insight-plot{position:relative;isolation:isolate;display:grid;grid-template-columns:repeat(7,minmax(var(--dawnby-interaction-comfortable-touch-target),1fr));gap:var(--insight-day-gap);min-width:0}
.insight-plot::before{content:'';position:absolute;inset:0 0 auto;height:var(--insight-height);border-bottom:1px solid var(--insight-line);background:linear-gradient(to bottom,var(--insight-line) 1px,transparent 1px) 0 0/100% var(--insight-grid-step,25%);pointer-events:none;z-index:-1}
.insight-day{position:relative;display:flex;flex-direction:column;gap:12px;min-width:var(--dawnby-interaction-comfortable-touch-target);min-height:var(--dawnby-interaction-comfortable-touch-target);padding:0 3px;border:0;border-radius:8px;background:transparent;color:var(--studio-muted);font:inherit;text-align:center;cursor:pointer;transition:background-color 130ms ease}
.insight-day:hover,.insight-day.is-inspected,.insight-day:focus-visible{background:var(--studio-tint)}
.insight-day:focus-visible{outline:2px solid var(--studio-accent);outline-offset:-2px}
.insight-bars{height:var(--insight-height);display:flex;align-items:flex-end;justify-content:center;gap:4px;min-width:0;width:100%;pointer-events:none;transform-origin:center bottom}
.insight-bar{display:block;flex:0 1 19px;min-width:0;border-radius:5px 5px 1px 1px;transform-origin:center bottom}
.insight-bar.planned{background:var(--insight-planned);box-shadow:inset 0 0 0 1px var(--insight-planned-edge)}
.insight-bar.reviewed,.insight-bar.assigned{background:var(--insight-reviewed)}
.insight-bar.unfilled{background:repeating-linear-gradient(135deg,transparent,transparent 3px,color-mix(in srgb,var(--studio-surface) 14%,transparent) 3px,color-mix(in srgb,var(--studio-surface) 14%,transparent) 5px),var(--insight-unfilled)}
.is-stacked .insight-bars{flex-direction:column-reverse;align-items:center;justify-content:flex-start;gap:0}
.is-stacked .insight-bar{flex:0 0 auto;width:24px;max-width:75%;border-radius:4px 4px 0 0}
.is-stacked .insight-bar.assigned:has(+.unfilled:not([data-bar-value="0"])){border-radius:0 0 3px 3px}
.insight-day-label{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:35px;font-size:12px;line-height:1.2;font-weight:500}
.insight-day-label small{display:flex;align-items:center;gap:3px;font:inherit;font-size:11px}
.insight-day-label small i{display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--studio-accent)}
.insight-day.is-today .insight-day-label{color:var(--studio-accent);font-weight:700}
.insight-readout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;min-height:50px;padding:10px 12px;border:1px solid var(--polish-line);border-radius:10px;background:color-mix(in srgb,var(--studio-page) 55%,transparent);font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums}
.insight-readout>span{color:var(--studio-muted)}
.insight-readout>strong{color:var(--studio-text);font-weight:600}
.insight-note{font-size:12px;line-height:1.5;color:var(--studio-muted);margin:12px 0;min-height:36px}
.insight-values{margin-top:auto;font-size:12px;color:var(--studio-muted)}
.insight-values summary{display:flex;align-items:center;gap:7px;min-height:var(--dawnby-interaction-comfortable-touch-target);cursor:pointer;border-radius:6px;list-style:none;font-weight:600;color:var(--studio-accent)}
.insight-values summary::-webkit-details-marker{display:none}
.insight-values summary::before{content:'›';font-size:18px;line-height:1;transition:transform 150ms ease}
.insight-values[open] summary::before{transform:rotate(90deg)}
.insight-values summary:focus-visible{outline:2px solid var(--studio-accent);outline-offset:2px}
.insight-table-wrap{max-width:100%;overflow:auto}
.insight-values table{border-collapse:collapse;width:100%;font-size:12px;text-align:left;font-variant-numeric:tabular-nums}
.insight-values th,.insight-values td{padding:8px 4px;border-bottom:1px solid var(--polish-line)}
.insight-values th{font-weight:600}.insight-values td{text-align:right}
.insight-values thead th:not(:first-child){text-align:right}
.insight-finance{margin:6px 0 0;border-top:1px solid var(--polish-line);font-size:13px}
.insight-finance>div{display:flex;align-items:center;justify-content:space-between}
.insight-finance dd{font-family:var(--dawnby-font);font-size:18px;font-weight:700;margin:0}
.insight-coverage-action{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;border-top:1px solid var(--polish-line);margin-top:6px;font-size:12px;color:var(--studio-muted)}
.insight-coverage-action button{display:flex;align-items:center;gap:6px;min-height:var(--dawnby-interaction-comfortable-touch-target);padding:0;border:0;background:none;color:var(--studio-accent);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.insight-coverage-action button svg{width:14px;height:14px}
.insight-coverage-action button:focus-visible{outline:2px solid var(--studio-accent);outline-offset:3px;border-radius:4px}
#main[data-health-view="today"] .insight-finance .button{background:transparent;min-height:var(--dawnby-interaction-comfortable-touch-target);padding:0;font-size:13px}
.insight-source-note{grid-column:1/-1;margin:-8px 4px 0;font-size:12px;line-height:1.5;color:var(--studio-muted)}
/* A useful task panel, with record-opening actions and no cosmetic completion ticks. */
#main[data-health-view="today"] .hw-grid-team.insight-team-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.insight-people-column{display:grid;gap:24px;min-width:0}
.insight-reviews{min-width:0}
#main[data-health-view="today"] .insight-review-card{padding:20px 20px 12px}
.insight-review-intro{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 16px;font-size:14px;font-weight:600;color:var(--studio-text)}
.insight-review-intro>span{font-size:12px;font-weight:400;color:var(--studio-muted)}
.insight-review-filters{display:flex;gap:6px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--polish-line)}
.insight-review-filters button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:var(--dawnby-interaction-comfortable-touch-target);padding:8px 12px;border:1px solid var(--polish-line);border-radius:12px;background:transparent;color:var(--studio-muted);font:inherit;font-size:13px;cursor:pointer}
.insight-review-filters button>span{display:grid;place-items:center;min-width:20px;height:20px;border-radius:6px;background:var(--studio-page);font-size:11px;font-weight:600}
.insight-review-filters button[aria-pressed="true"]{background:var(--studio-tint);border-color:color-mix(in srgb,var(--studio-accent) 24%,transparent);color:var(--studio-accent)}
.insight-review-list{margin:0;padding:0;list-style:none}
.insight-review-list>li+li{border-top:1px solid var(--polish-line)}
.insight-review-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto 16px;align-items:center;gap:12px;width:100%;min-height:92px;padding:14px 0;border:0;border-radius:8px;background:transparent;color:var(--studio-text);text-align:left;font:inherit;cursor:pointer}
.insight-review-row:hover,.insight-review-row:focus-visible{background:var(--polish-hover)}
.insight-review-row .avatar{width:34px;height:34px;min-width:34px}
.insight-review-row>svg{width:16px;height:16px;color:var(--studio-muted)}
.insight-review-copy{display:flex;flex-direction:column;gap:4px;min-width:0}
.insight-review-copy>strong{font-size:15px;font-weight:600;line-height:1.35}
.insight-review-copy>span{font-size:13px;line-height:1.4;color:var(--studio-muted);overflow-wrap:anywhere}
.insight-review-copy>small{font-size:12px;color:var(--studio-muted)}
.insight-due{font-size:11px;line-height:1.4;font-weight:600;white-space:nowrap;padding:4px 7px;border-radius:6px;background:var(--studio-tint);color:var(--studio-accent)}
.insight-due.overdue,.insight-due.expired{background:color-mix(in srgb,var(--studio-danger) 14%,var(--studio-surface));color:var(--studio-danger)}
.insight-due.today{background:color-mix(in srgb,var(--studio-warning) 14%,var(--studio-surface));color:var(--studio-warning)}
.insight-review-more{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:var(--dawnby-interaction-comfortable-touch-target);margin:4px 0;border:1px solid var(--polish-line);border-radius:10px;background:transparent;color:var(--studio-accent);font:inherit;font-size:13px;cursor:pointer}
.insight-review-more svg{width:14px;height:14px}
.insight-review-foot{padding-top:12px;margin:0;border-top:1px solid var(--polish-line);font-size:12px;line-height:1.5;color:var(--studio-muted)}
.insight-review-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:30px 12px;text-align:center;color:var(--studio-muted)}
.insight-review-empty>svg{width:24px;height:24px;color:var(--studio-accent)}
.insight-review-empty strong{font-size:14px;color:var(--studio-text);font-weight:600}
.insight-review-empty p{font-size:13px;line-height:1.5;margin:0;max-width:32ch}
.insight-record-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--studio-tint);color:var(--studio-accent)}
.insight-record-icon svg{width:18px;height:18px}
.insight-review-row:focus-visible,.insight-review-filters button:focus-visible,.insight-review-more:focus-visible{outline:2px solid var(--studio-accent);outline-offset:2px}
#main[data-health-view="roster"] [data-roster-day].insight-roster-selected{background:var(--studio-tint)}
#main[data-health-view="roster"] .hw-week-header [data-roster-day].insight-roster-selected{box-shadow:inset 0 3px 0 var(--studio-accent);color:var(--studio-accent)}
@media(max-width:1100px){#main[data-health-view="today"] :is(.hw-grid-mid.insight-grid,.hw-grid-team.insight-team-grid){grid-template-columns:minmax(0,1fr)}}
:root[data-dawnby-text="larger"] #main[data-health-view="today"] :is(.hw-grid-mid.insight-grid,.hw-grid-team.insight-team-grid){grid-template-columns:minmax(0,1fr)}
@media(max-width:640px){
 #main[data-health-view="today"] .insight-card{padding:18px 16px}
 .insight-card-top{gap:8px;margin-bottom:18px}.insight-period{font-size:13px}.insight-unit{font-size:11px}
 .insight-metric{gap:12px}.insight-value{font-size:40px}.insight-secondary strong{font-size:13px}.insight-secondary>span{font-size:11px}.insight-caption{font-size:13px}
 .insight-chart{--insight-height:160px;--insight-axis-width:22px;--insight-chart-gap:6px;--insight-day-gap:2px}.insight-day{padding:0 2px}.insight-bars{gap:3px}.insight-bar{flex-basis:12px;border-radius:3px 3px 0 0}.is-stacked .insight-bar{width:20px}
 .insight-day-label{font-size:11px}.insight-day-label small{font-size:10px}.insight-legend{gap:10px 16px;font-size:12px}
 .insight-readout{flex-direction:column;align-items:flex-start;justify-content:center;min-height:62px}
 .insight-review-row{grid-template-columns:34px minmax(0,1fr) 16px;gap:8px 10px}.insight-review-row>.profile-avatar-wrap,.insight-review-row>.insight-record-icon{grid-column:1;grid-row:1;align-self:start}.insight-review-copy{grid-column:2;grid-row:1}.insight-review-row>.insight-due{grid-column:2;grid-row:2;justify-self:start}.insight-review-row>svg{grid-column:3;grid-row:1/3}
}
@media(prefers-reduced-motion:reduce){.insight-day,.insight-values summary::before{transition:none}}
