/* Signed-in dashboard, part 4: the Overview (views/home.js). The working surface is
   a two-column split — hunt reports table left (~65%), latest activity and species
   right (~35%) — stacking into one column under 1100px. */

.is-dash .d-split { display: grid; grid-template-columns: minmax(0, 65fr) minmax(300px, 35fr); align-items: start; gap: 16px; }
.is-dash .d-split-main, .is-dash .d-split-side { display: grid; align-content: start; gap: 16px; min-width: 0; }
@media (max-width: 1099.98px) {
  .is-dash .d-split { grid-template-columns: minmax(0, 1fr); }
}

/* Hunt reports table: column widths that keep one line per hunt. */
.is-dash .d-overview .d-col-id { width: 1%; }
.is-dash .d-overview .d-col-people .d-cell-trunc { max-width: 28ch; }
.is-dash .d-overview .d-col-species .d-cell-trunc { max-width: 26ch; }
.is-dash .d-overview .d-col-dogs .d-cell-trunc { max-width: 16ch; }
/* Narrower main column (about 740px at 1440, 700px at 1366): shorter caps (full text
   in each cell's tooltip), and below 1600 Dogs and Photos (both on each report's page)
   step aside, so Birds stays in view without scrolling. On phones only #, Date, Blind
   and Birds remain; the report page has the rest. */
@media (max-width: 1599.98px) {
  .is-dash .d-overview .d-col-blind .d-cell-trunc { max-width: 16ch; }
  .is-dash .d-overview .d-col-people .d-cell-trunc { max-width: 18ch; }
  .is-dash .d-overview .d-col-species .d-cell-trunc { max-width: 16ch; }
  .is-dash .d-overview .d-col-dogs .d-cell-trunc { max-width: 10ch; }
}
@media (max-width: 1599.98px) {
  .is-dash .d-overview .d-col-dogs, .is-dash .d-overview .d-col-photos { display: none; }
}
@media (max-width: 639.98px) {
  .is-dash .d-overview .d-col-people, .is-dash .d-overview .d-col-species { display: none; }
}

/* Latest activity: one compact card row per report. */
.is-dash .d-activity-list { list-style: none; margin: 0; padding: 0; }
.is-dash .d-activity-list > li + li { border-top: 1px solid var(--d-border); }
.is-dash .d-activity { display: grid; gap: 4px; padding: 10px 16px; color: var(--d-text); text-decoration: none; }
.is-dash .d-activity:hover { background: var(--d-hover); color: var(--d-text); }
.is-dash .d-activity:active { background: var(--d-selected); }
.is-dash .d-activity:focus-visible { outline-offset: -2px; }
.is-dash .d-activity-top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.is-dash .d-activity-who { flex: 1; min-width: 0; overflow: hidden; font-size: 13px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.is-dash .d-activity-time { flex: none; color: var(--d-muted); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.is-dash .d-activity-line {
  display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; min-width: 0; padding-left: 32px;
  color: var(--d-text-2); font-size: 13px; font-variant-numeric: tabular-nums;
}
.is-dash .d-activity-kind { color: var(--d-text); font-weight: 500; }
.is-dash .d-activity-detail { flex-basis: 100%; overflow: hidden; color: var(--d-muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 639.98px) {
  .is-dash .hero-head { align-items: flex-start; }
  .is-dash .d-activity { padding: 10px 12px; }
}

/* Hunt morning (huntmorning.js): the shooting-hours cards inset in their panel. */
.is-dash .d-morning .d-stat { background: var(--d-raised); border-radius: var(--d-radius-md); }
/* ◀ day ▶ on Hunt morning: the day steps without the top bar's picker. */
.is-dash .d-day-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.is-dash .d-day-arrow { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 8px; color: var(--d-text); text-decoration: none; background: var(--d-raised); font-size: 12px; }
.is-dash .d-day-arrow:hover { background: var(--d-hover); }
.is-dash .d-day-current { color: var(--d-text); font-weight: 600; }
.is-dash .d-reports-panel { scroll-margin-top: calc(var(--d-bar-h) + 12px); }
/* While a picked season loads its totals, the Analytics section dims instead of the page reloading. */
.is-dash .d-analytics { transition: opacity 0.15s ease; }
.is-dash .d-analytics.is-updating { opacity: 0.55; pointer-events: none; }
/* The Analytics section header: a rule across the page with the season chips at its right. */
.is-dash .d-section-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 20px 0 2px; padding-bottom: 8px; border-bottom: 1px solid var(--d-border); scroll-margin-top: calc(var(--d-bar-h) + 12px); }
.is-dash .d-section-title { margin: 0; color: var(--d-text); font: 700 20px/1.2 var(--d-sans); letter-spacing: -0.01em; }
/* Week ahead: a day in the next seven is a button that opens its hourly table; shooting hours and the current hour are marked. */
.is-dash .d-week-day { display: grid; justify-items: center; padding: 2px 6px; border: 0; border-radius: 6px; cursor: pointer; color: inherit; font: inherit; background: transparent; }
.is-dash .d-week-day small { display: block; color: var(--d-muted); font-size: 10px; font-weight: 500; }
.is-dash .d-week-day:hover, .is-dash .d-week-day[aria-expanded="true"] { color: var(--d-text); background: var(--d-raised); }
.is-dash .d-week-day:focus-visible { outline: 2px solid var(--d-text); }
.is-dash .d-week-detail-title { margin: 12px 0 6px; color: var(--d-text); font: 600 13px var(--d-sans); }
.is-dash .d-week-hourly td { text-align: left; }
.is-dash .d-week-hourly tr.is-light th, .is-dash .d-week-hourly tr.is-light td { background: var(--d-raised); }
.is-dash .d-week-hourly tr.is-now th, .is-dash .d-week-hourly tr.is-now td { box-shadow: inset 0 -1px 0 var(--d-text), inset 0 1px 0 var(--d-text); }
.is-dash .d-week-back { margin-left: 4px; }
/* Best conditions (marshconditionscard.js): headline, the week against the record, combo tables, factor chips, by blind. */
.is-dash .d-mc-body { display: grid; gap: 4px; }
.is-dash .d-mc-headline { margin: 0 0 8px; color: var(--d-text-2); font: 500 14px/1.45 var(--d-sans); }
.is-dash .d-mc-headline strong { color: var(--d-text); font-weight: 600; }
.is-dash .d-mc-title { margin: 10px 0 6px; color: var(--d-text); font: 600 13px var(--d-sans); text-align: left; caption-side: top; }
.is-dash .d-mc-week { display: grid; gap: 3px; margin: 0; padding: 0; list-style: none; }
.is-dash .d-mc-week li { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 10px; padding: 5px 8px; border-radius: 8px; font-size: 12.5px; color: var(--d-text-2); }
.is-dash .d-mc-week li.is-best { background: var(--d-raised); box-shadow: inset 0 0 0 1px var(--d-text); }
.is-dash .d-mc-week .d-mc-day { color: var(--d-text); font-weight: 600; }
.is-dash .d-mc-week strong { color: var(--d-text); font-weight: 600; }
.is-dash .d-mc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.is-dash .d-mc-table { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.is-dash .d-mc-table th, .is-dash .d-mc-table td { padding: 6px 8px; border-bottom: 1px solid var(--d-border); text-align: left; vertical-align: top; }
.is-dash .d-mc-table thead th { color: var(--d-muted); font-size: 11.5px; font-weight: 500; white-space: nowrap; }
.is-dash .d-mc-table tbody th { color: var(--d-text); font-weight: 500; }
.is-dash .d-mc-table .is-num { text-align: right; white-space: nowrap; }
.is-dash .d-mc-table tr.is-few th, .is-dash .d-mc-table tr.is-few td { color: var(--d-muted); }
.is-dash .d-mc-up { color: var(--d-emerald); }
.is-dash .d-mc-down { color: var(--d-rose); }
.is-dash .d-mc-factors { display: grid; gap: 6px; margin: 0 0 10px; }
.is-dash .d-mc-factor { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 8px; align-items: baseline; font-size: 12.5px; }
.is-dash .d-mc-factor dt { color: var(--d-muted); font-weight: 500; }
.is-dash .d-mc-factor dd { display: flex; flex-wrap: wrap; gap: 4px; margin: 0; }
.is-dash .d-mc-chip { padding: 2px 8px; border-radius: 999px; color: var(--d-text); background: var(--d-raised); font-variant-numeric: tabular-nums; }
.is-dash .d-mc-chip small { color: var(--d-muted); font-size: 11px; }
.is-dash .d-mc-chip.is-few { color: var(--d-muted); background: transparent; box-shadow: inset 0 0 0 1px var(--d-border); }
@media (max-width: 899.98px) {
  .is-dash .d-mc-grid { grid-template-columns: 1fr; }
  .is-dash .d-mc-factor { grid-template-columns: 1fr; gap: 3px; }
}
.is-dash .d-wind-obs { margin: 10px 0 6px; color: var(--d-text); font-size: 13px; font-weight: 600; }
.is-dash .d-morning-note { margin: 0; color: var(--d-muted); font-size: 12px; line-height: 1.5; }
@media (max-width: 639.98px) {
  .is-dash .d-morning .d-stat-value { font-size: 22px; }
}

/* Most hunted blinds (#2): the "last hunted" line sits under the blind's name. */
.is-dash .d-ov-blinds .rank-main { grid-template-columns: minmax(0, 1fr); }
.is-dash .d-ov-blinds .rank-detail { white-space: normal; }

/* Blind performance (#14): birds per hunt by condition, shaded against each blind's own
   average. Diverging blue (above) / red (below) tints of the validated pair #3987e5 /
   #e66767 over the panel, white text at 8:1 or better; a 2px gap between cells. */
/* The table scrolls inside the panel on phones, never the page. */
.is-dash .d-ov-perf { min-width: 0; }
.is-dash .d-perf-controls { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.is-dash .d-perf-scroll { position: relative; max-width: 100%; overflow-x: auto; }
.is-dash .d-perf { width: 100%; border-collapse: separate; border-spacing: 2px; font-variant-numeric: tabular-nums; }
.is-dash .d-perf th { padding: 4px 6px; color: var(--d-muted); font-size: 11.5px; font-weight: 500; text-align: center; white-space: nowrap; }
.is-dash .d-perf .d-perf-blind { position: sticky; left: 0; z-index: 1; min-width: 116px; background: var(--d-panel); color: var(--d-text); font-size: 13px; text-align: left; }
.is-dash .d-perf thead .d-perf-blind { color: var(--d-muted); font-size: 11.5px; }
.is-dash .d-perf td { min-width: 44px; padding: 6px 4px; border-radius: 4px; color: var(--d-text); font-size: 13px; text-align: center; }
.is-dash .d-perf td small { display: block; color: var(--d-text-2); font-size: 10.5px; white-space: nowrap; }
.is-dash .d-perf tr.is-club th, .is-dash .d-perf tr.is-club td { font-weight: 600; }
.is-dash .d-perf .is-much-better, .is-dash .d-perf-legend .is-much-better { background: #294c78; }
.is-dash .d-perf .is-better, .is-dash .d-perf-legend .is-better { background: #22344a; }
.is-dash .d-perf .is-usual, .is-dash .d-perf-legend .is-usual { background: var(--d-raised); }
.is-dash .d-perf .is-worse, .is-dash .d-perf-legend .is-worse { background: #482d2e; }
.is-dash .d-perf .is-much-worse, .is-dash .d-perf-legend .is-much-worse { background: #773e3f; }
.is-dash .d-perf .is-few, .is-dash .d-perf .is-empty { color: var(--d-muted); }
.is-dash .d-perf .is-few small { color: var(--d-muted); }
.is-dash .d-perf-legend .is-few { box-shadow: inset 0 0 0 1px var(--d-border-strong); }
.is-dash .d-perf .is-now { box-shadow: inset 0 0 0 1px var(--d-text-2); }
.is-dash .d-perf th.is-now { color: var(--d-text); }
/* Week ahead: the reading rows read left to right, the As of day's column marked like #14's. */
.is-dash .d-week td { min-width: 72px; }
.is-dash .d-week th.is-now { font-weight: 700; }
.is-dash .d-weekcard .d-table-wrap { max-height: none; }
.is-dash .d-perf td[data-tip]:hover { box-shadow: inset 0 0 0 2px var(--d-text); }
.is-dash .d-perf-tip {
  position: absolute; z-index: 2; max-width: 260px; padding: 6px 8px; border: 1px solid var(--d-border-strong); border-radius: 6px;
  background: var(--d-raised); color: var(--d-text); font-size: 12px; line-height: 1.4; pointer-events: none;
}
.is-dash .d-perf-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 10px 0 8px; padding: 0; list-style: none; color: var(--d-muted); font-size: 12px; }
.is-dash .d-perf-legend i { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border-radius: 3px; vertical-align: -2px; }
.is-dash .d-perf-legend .is-now-key { box-shadow: inset 0 0 0 1px var(--d-text-2); }
/* Month (owner): the season's twelve months, Sep–Aug. Only this view scrolls sideways, with
   Blind and Avg held in place and the scrollbar always shown. */
.is-dash .d-perf-scroll.is-months { padding-bottom: 8px; scrollbar-width: thin; scrollbar-color: var(--d-border-strong) var(--d-raised); }
.is-dash .d-perf-scroll.is-months::-webkit-scrollbar { height: 8px; }
.is-dash .d-perf-scroll.is-months::-webkit-scrollbar-track { border-radius: 4px; background: var(--d-raised); }
.is-dash .d-perf-scroll.is-months::-webkit-scrollbar-thumb { border-radius: 4px; background: var(--d-border-strong); }
.is-dash .d-perf.is-months td, .is-dash .d-perf.is-months thead th { min-width: 80px; }
.is-dash .d-perf.is-months .d-perf-blind { box-sizing: border-box; width: 132px; min-width: 132px; max-width: 132px; }
.is-dash .d-perf.is-months tr > :nth-child(2) { position: sticky; left: 134px; z-index: 1; background: var(--d-panel); }

