/* SPT frontend — Blocksy-first with fallbacks, logical props, mobile-first.
   Compact rem-based UI typography stays independent of article font sizes.
   Colors, family, geometry and container width retain the Blocksy variables. */
.spt{
  --spt-bg:var(--theme-background-color,#fff);
  --spt-text:var(--theme-text-color,#1f2937);
  --spt-link:var(--spt-accent-color,currentColor);
  --spt-link-hover:var(--spt-link);
  --spt-border:var(--theme-border-color,#e5e7eb);
  --spt-muted:var(--theme-palette-color-2,#6b7280);
  --spt-font:var(--theme-font-family,system-ui,"Segoe UI",Tahoma,Arial,sans-serif);
  --spt-radius:var(--theme-border-radius,8px);
  --spt-empty:#ebedf0;
  --spt-holiday:#f3f4f6;
  --spt-term-color:var(--spt-accent-color,currentColor);
  /* Dashboard UI scale; do not magnify headings with article typography.
     rem units continue to respect browser text-size preferences. */
  --spt-fs:1rem;
  --spt-fs-xs:.875rem;
  --spt-fs-sm:.875rem;
  --spt-fs-lg:1.125rem;
  --spt-fs-xl:1.5rem;
  --spt-fs-2xl:2rem;
  --spt-table-fs:var(--theme-table-font-size,var(--spt-fs));
  /* Filters use a compact UI scale, independent of the theme's article size. */
  --spt-form-fs:1rem;
  position:relative;
  width:100%;
  max-width:var(--theme-normal-container-max-width,1200px);
  margin-inline:auto;
  font-family:var(--spt-font);
  font-size:var(--spt-fs);
  line-height:1.6;
  color:var(--spt-text);
  background:var(--spt-bg)
}
.spt-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;margin-block:16px}
.spt-years{display:flex;flex-wrap:wrap;gap:8px}
.spt-pill{padding:6px 14px;border:1px solid var(--spt-border);border-radius:999px;text-decoration:none;color:var(--spt-text);font-size:var(--spt-fs-sm)}
.spt-pill.is-active{background:var(--spt-accent-color);border-color:var(--spt-accent-color);color:#fff}
.spt-termform{display:flex;flex-direction:column;gap:10px;max-width:100%}
.spt-termform__label{display:flex;flex-direction:column;gap:4px}
.spt-termform__caption{font-size:var(--spt-fs-xs);color:var(--spt-muted)}
.spt-select{position:relative;display:inline-flex;align-items:center}
.spt-select select{appearance:none;-webkit-appearance:none;padding-block:8px;padding-inline:16px 38px;border:1px solid var(--spt-border);border-radius:999px;background:var(--spt-bg);color:var(--spt-text);font-family:inherit;font-size:var(--spt-form-fs);line-height:1.4;cursor:pointer;width:100%;max-width:360px;transition:border-color .2s ease,box-shadow .2s ease}
.spt-select select:hover{border-color:var(--spt-accent-color)}
.spt-select select:focus{outline:none;border-color:var(--spt-accent-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--spt-accent-color) 25%,transparent)}
.spt-select::after{content:"";position:absolute;inset-inline-end:16px;width:7px;height:7px;border-inline-end:2px solid var(--spt-muted);border-block-end:2px solid var(--spt-muted);transform:rotate(45deg) translate(-2px,-2px);pointer-events:none}
.spt-select:hover::after,.spt-select:focus-within::after{border-color:var(--spt-accent-color)}
.spt-hm__body{display:flex;gap:8px;align-items:stretch}
.spt-hm__days{display:flex;flex-direction:column;gap:3px;flex:0 0 auto;padding-block-start:24px}
.spt-hm__days span{height:14px;line-height:14px;font-size:var(--spt-fs-xs);color:var(--spt-muted);white-space:nowrap}
/* Container-relative spacing preserves all 14px day targets. A Gregorian year
   has 61–64 week columns: at 0px week gaps / 4px month gaps it needs at most
   940px. Above that, spacing grows slightly slower than the available width;
   both original gaps are restored by 1210px. Browsers without container units
   retain the original scrollable layout. */
.spt-hm__scroll{flex:1;min-width:0;max-width:100%;overflow-x:auto;padding-block-end:4px;container-type:inline-size}
.spt-hm__grid{display:flex;gap:14px}
.spt-hm-month{display:flex;flex-direction:column;gap:6px}
.spt-hm-mlabel{font-size:var(--spt-fs-xs);color:var(--spt-text);font-weight:600;text-align:center;white-space:nowrap;line-height:1.4}
.spt-hm-mweeks{display:flex;gap:3px}
.spt-week{display:flex;flex-direction:column;gap:3px}
@supports (width:1cqi){
  .spt-hm__grid{column-gap:clamp(4px,calc(4px + (100cqi - 940px)/27),14px)}
  .spt-hm-mweeks{column-gap:clamp(0px,calc((100cqi - 940px)/89),3px)}
}
.spt-cell{width:14px;height:14px;border-radius:3px;border:1px solid var(--spt-border);background:var(--spt-empty);padding:0;cursor:pointer;font-size:0;line-height:1;flex:0 0 14px}
.spt-cell__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.spt-cell.is-blank{background:transparent;border-color:transparent;cursor:default}
.spt-cell.is-holiday{background:var(--spt-holiday);border-style:dashed}
.spt-cell.is-l1,.spt-cell.is-l2,.spt-cell.is-l3,.spt-cell.is-l4{border-color:transparent;color:transparent}
.spt-cell.is-legend{cursor:default;width:14px;height:14px}
.spt-legend{display:flex;align-items:center;gap:6px;margin-block:12px;font-size:var(--spt-fs-xs);color:var(--spt-muted)}
.spt-legend--terms{flex-wrap:wrap;gap:10px}
.spt-tchip{display:inline-flex;align-items:center;gap:6px;font-size:var(--spt-fs-xs);color:var(--spt-text)}
.spt-tdot{width:12px;height:12px;border-radius:3px;display:inline-block;flex:0 0 12px}
.spt-termchip{display:inline-flex;align-items:center;gap:6px;font-size:var(--spt-fs-xs);color:var(--spt-muted);border:1px solid var(--spt-border);border-radius:999px;padding:1px 10px;white-space:nowrap}
.spt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-block:20px}
.spt-stats>div{border:1px solid var(--spt-border);border-radius:var(--spt-radius);padding:16px;text-align:center}
.spt-stats dt{font-size:var(--spt-fs-sm);color:var(--spt-muted)}
.spt-stats dd{color:var(--spt-accent-color);font-size:var(--spt-fs-2xl);font-weight:700;margin:4px 0 0;line-height:1.2}
.spt-charts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-block:20px}
.spt-chart[data-chart="sectors"]{grid-column:1/-1}
.spt-chart{border:1px solid var(--spt-border);border-radius:var(--spt-radius);padding:16px;margin:0}
.spt-chart figcaption{font-size:var(--spt-fs-lg);font-weight:700;line-height:1.5;margin-block-end:12px}
.spt-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.spt-bar{display:grid;grid-template-columns:minmax(100px,1fr) 2fr auto;gap:8px;align-items:center;font-size:var(--spt-fs-sm)}
.spt-bar__track{background:var(--spt-empty);border-radius:4px;height:12px;overflow:hidden}
.spt-bar__fill{display:block;height:100%;border-radius:4px}
.spt-chart[data-chart="productivity"]{container-name:spt-productivity;container-type:inline-size}
.spt-grouped{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px;min-width:0}
.spt-gcol{box-sizing:border-box;min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px;border:1px solid transparent;border-radius:6px;cursor:default;outline:none}
.spt-gcol:focus-visible{outline:2px solid var(--spt-term-color);outline-offset:2px}
.spt-gcol:focus-visible .spt-glabel{color:var(--spt-term-color)}
.spt-gcol.is-current-month{border-color:var(--spt-term-color);background:color-mix(in srgb,var(--spt-term-color) 7%,var(--spt-bg))}
.spt-gcol.is-current-month .spt-glabel{color:var(--spt-text);font-weight:700}
.spt-gbars{display:flex;gap:2px;align-items:flex-end;justify-content:center;height:120px;width:100%;min-width:0}
.spt-gbar{flex:1;min-width:0;max-width:12px;min-height:0;background:var(--spt-border);border-radius:3px 3px 0 0}
.spt-glabel{min-height:2.8em;text-align:center;line-height:1.4;white-space:normal;max-width:100%;overflow-wrap:anywhere;font-size:var(--spt-fs-xs);color:var(--spt-muted)}
.spt-legend-inline{font-size:var(--spt-fs-xs);color:var(--spt-muted)}
.spt-key{display:inline-block;width:12px;height:12px;border-radius:3px;background:var(--spt-border);vertical-align:middle}
.spt-sessions{display:flex;flex-direction:column;gap:10px;margin-block:20px;container-type:inline-size}
.spt-session{border:1px solid var(--spt-border);border-inline-start:3px solid var(--spt-session-color,var(--spt-term-color));border-radius:var(--spt-radius);overflow:hidden}
.spt-session>summary{cursor:pointer;padding:12px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"kind count" "name name" "badges badges" "parent parent" "date date";gap:8px 12px;align-items:center;list-style:none;font-size:var(--spt-fs)}
.spt-session>summary::-webkit-details-marker{display:none}
.spt-session__name{grid-area:name;font-weight:700}
.spt-session__date{grid-area:date;color:var(--spt-muted);font-size:var(--spt-fs-sm)}
.spt-badge{background:var(--spt-session-color,var(--spt-term-color));color:var(--spt-on-color,#fff);border-radius:999px;padding:2px 10px;font-size:var(--spt-fs-xs)}
.spt-tablewrap{overflow-x:auto;border-top:1px solid var(--spt-border)}
.spt-table{width:100%;border-collapse:collapse;font-size:var(--spt-table-fs)}
.spt-table th,.spt-table td{padding:var(--theme-table-padding,10px 12px);border-block-end:var(--theme-table-border-width,1px) solid var(--spt-border);text-align:start}
.spt-table th{background:color-mix(in srgb,var(--spt-text) 4%,var(--spt-bg));font-size:var(--spt-fs-xs)}
.spt-link{background:none;border:0;color:var(--spt-link);cursor:pointer;text-decoration:none;padding:0;font:inherit;text-align:start}
.spt-link:hover{color:var(--spt-link-hover)}
.spt-chip{display:inline-block;border:1px solid var(--spt-border);border-radius:999px;padding:1px 10px;font-size:var(--spt-fs-xs);margin:1px}
.spt-empty{padding:12px;color:var(--spt-muted)}
.spt-tooltip{position:absolute;z-index:50;background:var(--spt-text);color:var(--spt-bg);border-radius:6px;padding:10px 12px;font-size:var(--spt-fs-sm);max-width:260px;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.spt-tooltip ul{margin:6px 0 0;padding-inline-start:16px}
.spt-tooltip .spt-tip-row{display:flex;justify-content:space-between;gap:12px;margin-block-start:4px;opacity:.9}
.spt-modal{position:fixed;inset:0;z-index:100}
.spt-modal[hidden]{display:none}
.spt-modal__backdrop{position:absolute;inset:0;background:rgba(0,0,0,.5)}
.spt-modal__box{position:relative;background:var(--spt-bg);color:var(--spt-text);max-width:720px;margin:5vh auto;padding:24px;border-radius:var(--spt-radius);max-height:90vh;overflow:auto}
.spt-modal__close{position:absolute;inset-inline-end:12px;top:8px;font-size:var(--spt-fs-xl);line-height:1;background:none;border:0;cursor:pointer;color:var(--spt-text)}
.spt-modal__meta{color:var(--spt-muted);font-size:var(--spt-fs-sm);margin-block-end:12px}
@media (max-width:640px){.spt-charts{grid-template-columns:1fr}.spt-bar{grid-template-columns:1fr;gap:4px}.spt-table thead{display:none}.spt-table tr{display:block;border-block-end:1px solid var(--spt-border);padding:8px}.spt-table td{display:flex;justify-content:space-between;gap:12px;border:0;padding:4px 12px}.spt-table td::before{content:attr(data-label);font-weight:700;color:var(--spt-muted)}.spt-modal__box{margin:2vh 12px;max-height:96vh}}
@media (prefers-reduced-motion:reduce){.spt *{animation:none!important;transition:none!important}}

/* The parent is neutral; only legislative cycles own dashboard colors. */
.spt-hierarchy{display:flex;flex-wrap:wrap;gap:6px 16px;list-style:none;margin:0 0 18px;padding:0;font-size:var(--spt-fs-sm);color:var(--spt-text)}
.spt-hierarchy li{display:flex;flex-wrap:wrap;gap:4px;align-items:baseline}
.spt-hierarchy li+li::before{content:"/";color:var(--spt-muted);margin-inline-end:8px}
.spt-hierarchy li>span,.spt-parentchip{color:var(--spt-muted);font-size:var(--spt-fs-xs)}
.spt-parentchip{max-width:100%;overflow-wrap:anywhere}
.spt-select{max-width:100%}

.spt-session__name{min-width:0;overflow-wrap:anywhere}
.spt-termchip{white-space:normal;max-width:100%}
.spt-termform,.spt-select select{min-width:0}

/* Four independent filters stay in one row when space permits. */
.spt-controls{align-items:flex-start}
.spt-termform{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;gap:12px}
.spt-termform__label{min-width:0}
.spt-termform__caption{line-height:1.5}
.spt-select{display:flex;min-width:0}
.spt-select select{max-width:none;text-overflow:ellipsis}
.spt-termform noscript{grid-column:1/-1}
.spt-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
.spt-stats.has-coordination{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:640px){.spt-stats.has-coordination{grid-template-columns:repeat(2,minmax(0,1fr))}}
.spt-stats>div{min-width:0;overflow-wrap:anywhere}
.spt-chart{min-width:0}
.spt-key.is-m{border:1px solid color-mix(in srgb,var(--spt-term-color) 35%,transparent)}
.spt-legend-inline{line-height:2}
.spt-cell:focus-visible{outline:2px solid var(--spt-term-color);outline-offset:2px}
.spt-cell.has-activity,.spt-cell.is-activity{box-shadow:inset 0 0 0 1px var(--spt-term-color)}
.spt-activities,.spt-meetings{display:flex;flex-direction:column;gap:10px;margin-block:20px}
.spt-session,.spt-meeting{scroll-margin-block-start:24px}
.spt-meeting{border:1px solid var(--spt-border);border-inline-start:3px solid var(--spt-session-color,var(--spt-term-color));border-radius:var(--spt-radius);overflow:hidden}
.spt-meeting>summary::-webkit-details-marker{display:none}
.spt-meeting__name{font-weight:700;flex:1;min-width:0;overflow-wrap:anywhere}
.spt-meeting__date{color:var(--spt-muted);font-size:var(--spt-fs-sm)}
.spt-meeting__meta,.spt-activity__meta{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px}
.spt-activity-type,.spt-committeechip,.spt-councilchip{display:inline-flex;align-items:center;max-width:100%;border:1px solid var(--spt-border);border-radius:999px;padding:2px 10px;font-size:var(--spt-fs-xs);line-height:1.5;overflow-wrap:anywhere}
.spt-activity-type{color:var(--spt-session-color,var(--spt-term-color));background:color-mix(in srgb,var(--spt-session-color,var(--spt-term-color)) 8%,var(--spt-bg));font-weight:600}
.spt-committeechip,.spt-councilchip{color:var(--spt-muted)}
/* Match the existing cycle pill, with an independent decorative committee swatch. */
.spt-committeechip{box-sizing:border-box;gap:6px;padding:1px 10px;line-height:inherit;white-space:normal}
.spt-committeechip__name{min-width:0;overflow-wrap:anywhere}
.spt-link:focus-visible,.spt-modal__close:focus-visible,.spt-session>summary:focus-visible,.spt-meeting>summary:focus-visible{outline:2px solid var(--spt-term-color);outline-offset:3px}
.spt-modal__box{box-sizing:border-box;overscroll-behavior:contain}
.spt-modal__box h2{padding-inline-end:24px;overflow-wrap:anywhere}
.spt-modal__hierarchy{color:var(--spt-muted);font-size:var(--spt-fs-sm);overflow-wrap:anywhere}
.spt-modal__details{margin-block:16px;font-size:var(--spt-fs-sm)}
.spt-modal__details>div{display:grid;grid-template-columns:minmax(90px,1fr) 3fr;gap:12px;padding-block:8px;border-block-end:1px solid var(--spt-border)}
.spt-modal__details dt{color:var(--spt-muted);font-weight:600}
.spt-modal__details dd{margin:0;min-width:0;overflow-wrap:anywhere}
.spt-modal__section{margin-block-start:20px}
.spt-modal__section h3{font-size:var(--spt-fs-lg);margin-block:0 10px}
.spt-modal__agenda{white-space:pre-wrap;overflow-wrap:anywhere}
.spt-modal__content{overflow-wrap:anywhere}
.spt-modal__content img,.spt-modal__content video,.spt-modal__content iframe{max-width:100%}
.spt-modal__sources{margin:0;padding-inline-start:20px;overflow-wrap:anywhere}
.spt-modal__sources li+li{margin-block-start:8px}
.spt-source-unavailable{border:1px dashed var(--spt-border);border-radius:var(--spt-radius)}
@media (max-width:900px){.spt-termform{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.spt-stats>div{padding:12px 8px}.spt-stats dd{font-size:1.75rem}.spt-modal__details>div{grid-template-columns:1fr;gap:4px}.spt-modal__box{padding:20px 16px}}
@media (max-width:440px){.spt-termform{grid-template-columns:1fr}.spt-stats{gap:6px}.spt-stats dt{font-size:var(--spt-fs-xs)}}
/* Meeting-specific context keeps the original committee provenance visible. */
/* Both activity types use identical explicit grid slots. Fixed context tracks
   cannot move with title/date length or the number of participating committees. */
.spt-session>summary>*{min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere}
.spt-session>summary>.spt-activity-kind{grid-area:kind;justify-self:start}
.spt-activity__badges{grid-area:badges;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.spt-activity__parent{grid-area:parent}
.spt-session>summary>.spt-badge{grid-area:count;justify-self:end;max-width:100%;text-align:center}
.spt-meeting__committees{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:100%;font-weight:400}
.spt-activity__badges .spt-termchip,.spt-meeting__committees .spt-committeechip{box-sizing:border-box;min-width:0;max-width:100%;white-space:normal}
@container (min-width:56rem){
  .spt-session>summary{grid-template-columns:13rem minmax(0,1fr) 12rem 8rem 8rem 2.5rem;grid-template-areas:"kind name badges parent date count";gap:12px}
  .spt-session>summary>.spt-activity-kind{white-space:nowrap}
}
.spt-activity-kind{display:inline-flex;align-items:center;max-width:100%;border:1px solid var(--spt-kind-color,var(--spt-session-color,var(--spt-term-color)));border-radius:999px;padding:2px 10px;font-size:var(--spt-fs-xs);line-height:1.5;font-weight:600;overflow-wrap:anywhere;color:var(--spt-text);background:color-mix(in srgb,var(--spt-kind-color,var(--spt-session-color,var(--spt-term-color))) 8%,var(--spt-bg))}
.spt-meeting-context{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;padding:12px 16px;border-block-start:1px solid var(--spt-border);font-size:var(--spt-fs-sm)}
.spt-council-label{color:var(--spt-muted);font-weight:600;overflow-wrap:anywhere}
.spt-committee-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.spt-committee-chips .spt-chip{max-width:100%;overflow-wrap:anywhere}
.spt-source-note{margin:0;padding:10px 16px;color:var(--spt-muted);font-size:var(--spt-fs-sm)}
.spt-committee-chart{grid-column:1/-1}
.spt-chart-note{font-size:var(--spt-fs-xs);color:var(--spt-muted);margin-block:12px 0}
.spt-cell.is-meeting-day{position:relative}
.spt-cell.is-meeting-day::after{content:"";position:absolute;inset-block-end:0;inset-inline-end:0;box-sizing:border-box;width:5px;height:5px;border-radius:50%;background:var(--spt-text);border:1px solid var(--spt-bg);pointer-events:none}

/* Compact, touch-friendly filter toolbar. Reset theme form/label spacing only here. */
.spt .spt-controls{gap:10px;margin-block:0 14px}
.spt .spt-years{gap:6px}
.spt .spt-pill{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:6px 14px;font-size:var(--spt-form-fs);line-height:1.5}
.spt .spt-termform{gap:12px;margin:0}
.spt .spt-termform__label{gap:4px;margin:0}
.spt .spt-termform__caption{font-size:.875rem;line-height:1.5;font-weight:500}
.spt .spt-select select{box-sizing:border-box;height:auto;min-height:44px;margin:0;padding-block:8px;padding-inline:14px 36px;font-size:var(--spt-form-fs);font-weight:400;line-height:1.5;letter-spacing:normal}
.spt .spt-hierarchy{margin-block:0 14px}
@media (min-width:1100px){
  .spt .spt-controls{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:end;gap:16px}
  .spt .spt-years{max-width:10rem}
}
@media (max-width:640px){
  .spt .spt-termform{gap:10px}
}

/* Blocksy adapter: only a page led by this dashboard gets compact top spacing.
   Header, unrelated pages and theme settings are untouched. Older browsers
   without :has() safely keep their original page spacing. */
@supports selector(:has(*)){
  body.wp-theme-blocksy #main > .ct-container-full:has(> article.page > .entry-content > .spt:first-child){padding-block-start:24px}
  body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child){padding-block-start:28px}
  body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child) > .hero-section{margin-block-end:20px}
  body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child) > .hero-section .page-title{font-size:1.5rem;line-height:1.5}
  @media (max-width:640px){
    body.wp-theme-blocksy #main > .ct-container-full:has(> article.page > .entry-content > .spt:first-child){padding-block-start:16px}
    body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child){padding-block-start:20px}
    body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child) > .hero-section{margin-block-end:16px}
    body.wp-theme-blocksy #main > .ct-container-full > article.page:has(> .entry-content > .spt:first-child) > .hero-section .page-title{font-size:1.25rem}
  }
}


/* Per-activity calendar markers. Keep the original 14px calendar geometry. */
.spt .spt-cell.has-activity-markers{position:relative;border:1px solid var(--spt-border);background:var(--spt-bg);box-shadow:none;overflow:hidden}
.spt .spt-cell.has-activity-markers::after{content:none}
.spt .spt-cell__markers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:1px;width:100%;height:100%;pointer-events:none}
.spt .spt-cell__markers--1{grid-template-columns:1fr;grid-template-rows:1fr}
.spt .spt-cell__markers--2{grid-template-rows:1fr}
.spt .spt-cell__markers--3:not(.has-overflow) .spt-cell__marker:first-child{grid-row:span 2}
.spt .spt-cell__marker{display:block;min-width:0;min-height:0;background:var(--spt-activity-color);border-radius:1px}
.spt .spt-cell__markers.has-overflow{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:4px minmax(0,1fr);gap:0 1px}
.spt .spt-cell__more{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;color:var(--spt-text);font:700 7px/1 Arial,sans-serif;letter-spacing:-.3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.spt .spt-legend--activities{display:block;line-height:1.6;overflow-wrap:anywhere}
.spt .spt-tooltip{box-sizing:border-box;max-width:min(340px,100%);max-height:min(28rem,60vh);overflow-y:auto;overscroll-behavior:contain;overflow-wrap:anywhere}
.spt .spt-tooltip .spt-tip-activities{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.spt .spt-tip-activities li{display:flex;align-items:baseline;gap:7px;margin:0;padding:0;line-height:1.5}
.spt .spt-tip-activity-color{display:inline-block;flex:0 0 10px;width:10px;height:10px;border:1px solid rgba(255,255,255,.55);border-radius:2px}
.spt .spt-tip-activity-kind{font-weight:600}

/* Outcome UI type scale: do not inherit the theme's larger article typography.
   Keep rem units for browser text scaling, and scope every rule to this dashboard. */
.spt .spt-table{font-size:1rem;line-height:1.7}
.spt .spt-table td{font-size:inherit;line-height:inherit}
.spt .spt-table th,.spt .spt-table td::before{font-size:.875rem;line-height:1.6}
.spt .spt-table .spt-link{font-size:.9375rem;font-weight:500;line-height:inherit;white-space:normal;overflow-wrap:anywhere}
.spt .spt-table .spt-chip{font-size:.875rem;line-height:1.6}
.spt .spt-modal__box{font-size:1rem;line-height:1.7}
.spt .spt-modal__body>h2{font-family:inherit;font-size:1.125rem;font-weight:700;line-height:1.5;margin-block:0 .75rem}
.spt .spt-modal__meta,.spt .spt-modal__hierarchy{font-size:.875rem;line-height:1.6;margin-block:0 .5rem}
.spt .spt-modal__details{font-size:.875rem;line-height:1.6;margin-block:12px}
.spt .spt-modal__content,.spt .spt-modal__agenda{font-size:1rem;line-height:1.7}
.spt .spt-modal__content :is(p,ul,ol,li,dl,dt,dd,blockquote,table){font-size:inherit;line-height:inherit}
.spt .spt-modal__content p{margin-block:0 .75rem}
.spt .spt-modal__content :is(h1,h2,h3,h4,h5,h6),.spt .spt-modal__section>h3{font-family:inherit;font-weight:700;line-height:1.5;margin-block:1rem .5rem;overflow-wrap:anywhere}
.spt .spt-modal__content :is(h1,h2){font-size:1.125rem}
.spt .spt-modal__content :is(h3,h4),.spt .spt-modal__section>h3{font-size:1rem}
.spt .spt-modal__content :is(h5,h6){font-size:1rem}
.spt .spt-modal__content>:last-child{margin-block-end:0}
.spt .spt-modal__sources{font-size:.875rem;line-height:1.7}

/* Keep the last calendar row above native/overlay scrollbar hit areas.
   Preserve horizontal scrolling and the original 14px day-cell geometry. */
.spt .spt-hm__scroll{padding-block-end:24px}

/* Full Arabic month names have a uniform two-line header area, keeping weekday rows aligned. */
.spt[dir="rtl"] .spt-hm-mlabel{white-space:normal;min-block-size:calc(var(--spt-fs-xs) * 2.8);display:flex;align-items:center;justify-content:center}
.spt[dir="rtl"] .spt-hm__days{padding-block-start:calc(var(--spt-fs-xs) * 2.8 + 6px)}

/* Committee identities stay inside their meeting entry; long tooltips retain existing scrolling. */
.spt .spt-tip-activity-detail{min-width:0}
.spt .spt-tip-committees{display:flex;flex-direction:column;gap:3px}
.spt .spt-tip-committee{display:flex;align-items:baseline;gap:6px;min-width:0}
.spt .spt-tip-committee-color{display:inline-block;flex:0 0 8px;width:8px;height:8px;border:1px solid rgba(255,255,255,.55);border-radius:2px}
.spt .spt-tip-committee-name{min-width:0;overflow-wrap:anywhere}

/* A meeting title is a branch of its official participating committee names. */
.spt .spt-tip-meeting-title{display:block;margin-block-start:4px;margin-inline-start:14px;padding-inline-start:8px;border-inline-start:1px solid rgba(255,255,255,.35)}
.spt .spt-tip-meeting-title:first-child{margin:0;padding:0;border:0}

/* Multi-day official sessions keep one general title and explicit day groups. */
.spt .spt-termform{grid-template-columns:repeat(5,minmax(0,1fr))}
.spt .spt-stats,.spt .spt-stats.has-coordination{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* Let wrapped labels share each row's title space without moving the values. */
.spt .spt-stats>div{display:grid;grid-template-rows:1fr auto}
.spt .spt-session-day{border-block-start:1px solid var(--spt-border);padding-block:12px 4px;scroll-margin-block-start:24px}
.spt .spt-day-title{font-size:1rem;line-height:1.5;margin:0;padding:0 16px 8px;font-weight:650;color:var(--spt-text)}
.spt .spt-day-meta{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0 16px 8px;font-size:.8125rem;color:var(--spt-muted)}
.spt .spt-order-note{font-size:.8125rem;color:var(--spt-muted);padding:0 16px;margin:6px 0}
.spt .spt-date-note{font-size:.875rem;line-height:1.5;color:var(--spt-muted);margin:8px 0}
.spt .spt-provenance,.spt .spt-categorychip{display:inline-flex;align-items:center;border:1px solid var(--spt-border);border-radius:999px;padding:1px 9px;font-size:.8125rem;line-height:1.5;max-width:100%;overflow-wrap:anywhere}
.spt .spt-session-day.is-undated{background:color-mix(in srgb,var(--spt-muted) 4%,var(--spt-bg))}
.spt .spt-series-key{display:inline-block;margin-inline-end:10px}
.spt .spt-tip-categories{display:block;font-size:.75rem;opacity:.85;margin-block-start:3px}
.spt .spt-day-activity{border-block-start:1px solid var(--spt-border);padding-block:12px;margin-block-start:12px}
.spt .spt-day-activity h3{font-size:1rem;line-height:1.5;margin:4px 0 8px;overflow-wrap:anywhere}
.spt .spt-day-activity .spt-order-note{padding:0}
.spt ul.spt-day-events{list-style:none;margin:6px 0 12px;padding:0;display:grid;gap:8px}
.spt ul.spt-day-events li{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;font-size:.9375rem}
.spt ul.spt-day-events .spt-event-provenance{flex-basis:100%;border-radius:8px}
.spt .spt-tip-activity-detail .spt-provenance{margin-block-start:4px;line-height:1.5;border-radius:8px}
.spt .spt-event-time,.spt .spt-event-order{flex:0 0 auto;font-size:.8125rem;color:var(--spt-muted)}
.spt .spt-back-day{font-size:.8125rem;margin-block-end:12px}
@media(max-width:1100px){.spt .spt-termform{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.spt .spt-termform{grid-template-columns:repeat(2,minmax(0,1fr))}.spt .spt-stats,.spt .spt-stats.has-coordination{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:440px){.spt .spt-termform{grid-template-columns:1fr}.spt ul.spt-day-events li{flex-wrap:wrap;gap:3px 8px}}

/* Unresolved subsets are separate groups, never the next chronological step. */
.spt .spt-order-group--unknown,.spt .spt-peer-group--unknown{border-block-start:1px dashed var(--spt-border);margin-block-start:12px;padding-block-start:6px}
.spt .spt-order-group h4.spt-order-note,.spt .spt-peer-group>h3.spt-order-note{font-weight:650}
.spt .spt-day-activity h4,.spt .spt-day-group-title{font-size:1rem;line-height:1.5;margin:4px 0 8px;overflow-wrap:anywhere}
.spt .spt-day-group-title{font-size:.875rem;margin-block-start:12px}
.spt .spt-tip-order-group,.spt .spt-tip-outcomes{border-block-start:1px solid rgba(255,255,255,.25);margin-block-start:8px;padding-block-start:6px}
.spt .spt-tooltip .spt-order-note,.spt .spt-tooltip .spt-event-order{display:block;color:inherit;padding:0;font-size:.75rem;line-height:1.5;margin:4px 0}
.spt .spt-tip-more{font-size:.75rem}

/* All twelve months fit their own card in complete row groups. Each row keeps
   the same bar height and year-wide scale; full labels can grow without clipping.
   The safe three-column fallback also works without container-query support. */
@container spt-productivity (min-width:24rem){.spt-grouped{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container spt-productivity (min-width:32rem){.spt-grouped{grid-template-columns:repeat(6,minmax(0,1fr))}}
@container spt-productivity (min-width:64rem){.spt-grouped{grid-template-columns:repeat(12,minmax(0,1fr))}}
.spt-event-date{display:block;color:var(--spt-muted)}

/* Every activity kind shares the same outcome columns; content length cannot
   independently reorder or resize the # / type / title / sectors tracks. */
.spt .spt-activity-order{display:inline-block;margin-inline-end:.35rem;font-weight:500;font-size:.8125rem;color:var(--spt-muted);white-space:nowrap}
.spt .spt-table th,.spt .spt-table td{overflow-wrap:anywhere}
.spt .spt-table .spt-chip{box-sizing:border-box;max-width:100%;white-space:normal}
@media(min-width:641px){
  .spt .spt-table{table-layout:fixed}
  .spt .spt-table th:nth-child(1){width:3.25rem}
  .spt .spt-table th:nth-child(2){width:17%}
  .spt .spt-table th:nth-child(4){width:26%}
}

/* Explicit isolation avoids browser-dependent RTL reversal of narrative dates. */
.spt bdi[dir="ltr"]{direction:ltr;unicode-bidi:isolate}
.spt .spt-body-date{display:inline-block;white-space:nowrap}

/* Persistently distinguish hyperlinks and the existing text-link controls.
   !important defeats theme resets; ordinary buttons and pills keep their style. */
.spt a[href]:not(.spt-pill),.spt .spt-link{text-decoration-line:underline!important;text-decoration-style:solid;text-decoration-thickness:from-font;text-underline-offset:.15em;text-decoration-skip-ink:auto}

/* Unified public activity details. Sources are one numbered, visibly linked list. */
.spt .spt-activity-description,.spt .spt-session>.spt-activity-sources{padding:12px 16px}
.spt .spt-activity-description>.spt-modal__section:first-child{margin-block-start:0}
.spt .spt-activity-detail-link{margin-block-start:10px}
.spt .spt-outcomes-heading{font-size:1rem;line-height:1.5;margin:12px 16px 8px;font-weight:650}
.spt .spt-outcome-count{font-weight:400;color:var(--spt-muted)}
.spt .spt-output-description{font-size:.875rem;font-weight:400;margin-block-start:8px;line-height:1.7}
.spt .spt-output-description>:first-child{margin-block-start:0}
.spt .spt-output-description>:last-child{margin-block-end:0}
.spt .spt-modal__sources{list-style-type:decimal}
.spt .spt-modal__sources a{text-decoration:underline;text-underline-offset:3px}

/* Output tables are table row groups, never legacy day-list grids. On small
   screens the new title/body cells stack instead of competing as flex items. */
@media(max-width:640px){
  .spt .spt-output-table,.spt .spt-output-table>tbody{display:block;width:100%}
  .spt .spt-output-table td{display:block}
  .spt .spt-output-table td::before{display:block;margin-block-end:4px}
}

/* A secondary native disclosure retains every agenda fact without repeating
   it in the default overview. Its summary is not the parent six-track grid. */
.spt .spt-agenda-disclosure{margin-block:12px 0;border:1px solid var(--spt-border);border-radius:8px;padding:8px 12px}
.spt .spt-agenda-disclosure>summary{cursor:pointer;display:list-item;font-size:.875rem;font-weight:600;line-height:1.6}
.spt .spt-agenda-disclosure>summary:focus-visible{outline:2px solid var(--spt-term-color);outline-offset:3px}
.spt .spt-agenda-disclosure>.spt-modal__agenda{margin-block-start:10px;font-size:.875rem;line-height:1.7}
