/* PARTNERS / Nordic utility. Local fonts and deliberate contrast. */
:root {
  --paper:#efeee8;
  --surface:#faf9f5;
  --ink:#202720;
  --muted:#5d665e;
  --line:#b9bdb2;
  --rule:#202720;
  --accent:#d9f568;
  --forest:#294b35;
  --green:#24543a;
  --red:#983c32;
  --amber:#715319;
  --good-bg:#e4ebdf;
  --warn-bg:#f2e9d2;
  --bad-bg:#f4e2dc;
  --mono:Consolas,'Liberation Mono',monospace;
  --sans:'Segoe UI',Arial,sans-serif;
  --display:Arial,'Helvetica Neue',sans-serif;
  font-family:var(--sans);
  font-size:14px;
  color:var(--ink);
  line-height:1.5;
  color-scheme:light;
  font-synthesis:none;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--paper);
}
[hidden] {
  display:none!important;
}
a {
  color:var(--forest);
  text-underline-offset:4px;
  text-decoration-thickness:1px;
}
a:hover {
  color:var(--ink);
}
button,input,select,textarea {
  font:inherit;
  color:inherit;
}
button,a,input,select,textarea,summary {
  -webkit-tap-highlight-color:transparent;
}
:focus-visible {
  outline:3px solid var(--forest);
  outline-offset:3px;
}
::selection {
  background:var(--accent);
  color:var(--ink);
}
button {
  cursor:pointer;
}
button:disabled {
  opacity:.65;
  cursor:wait;
}
svg {
  max-width:100%;
}
.icon {
  width:20px;
  height:20px;
  flex-shrink:0;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:16px;
  z-index:100;
  padding:14px 20px;
  background:var(--accent);
  color:var(--ink);
  border:2px solid var(--ink);
}
.skip-link:focus {
  top:12px;
}
/* Shell */
.sidebar {
  position:fixed;
  inset:0 auto 0 0;
  width:232px;
  border-right:1px solid var(--rule);
  background:var(--paper);
  padding:30px 16px 0;
  display:flex;
  flex-direction:column;
  z-index:10;
}
.brand {
  display:flex;
  gap:12px;
  align-items:center;
  color:var(--ink);
  text-decoration:none;
  font-family:var(--display);
  font-weight:800;
  font-size:25px;
  letter-spacing:-1.2px;
}
.brand small {
  display:block;
  font:9px/1.5 var(--mono);
  letter-spacing:.7px;
  margin-top:6px;
}
.brand-mark {
  display:flex;
  align-items:flex-end;
  gap:3px;
  height:31px;
  width:29px;
  flex-shrink:0;
}
.brand-mark i {
  width:7px;
  background:currentColor;
  height:45%;
}
.brand-mark i:nth-child(2) {
  height:72%;
}
.brand-mark i:nth-child(3) {
  height:100%;
}
.sidebar>.brand {
  margin:4px 7px 30px;
}
.sidebar nav {
  display:flex;
  flex-direction:column;
  flex:1;
  overflow-y:auto;
  min-height:0;
  padding:0 0 20px;
}
.nav-group {
  margin-bottom:24px;
}
.nav-label {
  font:10px/1.5 var(--mono);
  text-transform:uppercase;
  color:var(--muted);
  letter-spacing:.9px;
  padding:0 12px;
  margin:0 0 10px;
}
.nav-link {
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 10px;
  min-height:44px;
  font-size:13px;
  line-height:1.4;
  color:var(--ink);
  border:1px solid transparent;
  text-decoration:none;
  margin-top:2px;
}
.nav-link:hover {
  background:#e2e4d9;
  border-color:var(--line);
}
.nav-link.active {
  background:var(--ink);
  color:var(--surface);
  border-color:var(--ink);
}
.nav-link.active .icon {
  color:var(--accent);
}
.nav-count {
  margin-left:auto;
  background:var(--accent);
  color:var(--ink);
  padding:1px 5px;
  font:11px/1.5 var(--mono);
}
.sidebar-foot {
  margin-top:auto;
  border-top:1px solid var(--rule);
  padding:20px 8px 0;
}
.account-link {
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--ink);
  min-width:0;
  padding:4px 0;
}
.account-link>span:last-child {
  min-width:0;
}
.account-link strong {
  display:block;
  font-size:13px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.account-link small {
  display:block;
  color:var(--muted);
  font-size:11px;
}
.account-label {
  display:block;
  font-size:10px;
  margin-top:5px;
  text-decoration:underline;
}
.avatar {
  display:grid;
  place-items:center;
  background:#dde2d3;
  width:36px;
  height:36px;
  border:1px solid var(--rule);
  font:bold 18px var(--display);
  flex-shrink:0;
}
.logout-button {
  display:flex;
  gap:10px;
  align-items:center;
  padding:12px 0 0;
  min-height:44px;
  font-size:12px;
  background:none;
  border:0;
  color:var(--muted);
}
.logout-button:hover {
  color:var(--ink);
  text-decoration:underline;
}
.sidebar .mobile-menu-toggle {
  display:none;
}
main {
  margin-left:232px;
  min-width:0;
}
main:focus {
  outline:none;
}
.topbar {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  min-height:65px;
  border-bottom:1px solid var(--line);
  padding:16px 36px;
  font-size:11px;
}
.breadcrumb {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  color:var(--muted);
}
.breadcrumb strong {
  color:var(--ink);
  font-weight:500;
}
.topbar-date {
  font:11px/1.5 var(--mono);
  white-space:nowrap;
}
.topbar-date span {
  color:var(--muted);
}
.content {
  padding:36px;
  max-width:1840px;
  margin:0 auto;
  min-height:calc(100vh - 175px);
}
footer {
  padding:4px 36px 26px;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:32px;
  font-size:10px;
}
footer>span {
  font:9px/1.7 var(--mono);
  letter-spacing:.5px;
  flex-shrink:0;
}
footer p {
  margin:0;
  max-width:610px;
  text-align:right;
}
/* Typography and hierarchy */
h1,h2,h3 {
  font-family:var(--display);
  color:var(--ink);
}
h1 {
  font-size:clamp(34px,3.5vw,56px);
  line-height:1.04;
  font-weight:700;
  letter-spacing:-2px;
  margin:10px 0 16px;
  overflow-wrap:anywhere;
}
h2 {
  font-size:22px;
  font-weight:700;
  letter-spacing:-.65px;
  line-height:1.2;
  margin:0 0 14px;
}
h3 {
  font-size:18px;
  line-height:1.25;
  letter-spacing:-.35px;
  margin:0 0 10px;
}
p {
  margin:0 0 16px;
}
p:last-child {
  margin-bottom:0;
}
.eyebrow {
  color:var(--muted);
  font:10px/1.6 var(--mono);
  letter-spacing:1px;
  text-transform:uppercase;
  display:block;
}
.heading-dot {
  color:var(--forest);
}
.subtle,.quiet,.form-hint {
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
}
.lead {
  color:var(--muted);
  font-size:18px;
  max-width:620px;
  line-height:1.6;
}
.page-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:24px;
  margin-bottom:30px;
}
.page-heading>div:first-child {
  min-width:0;
}
.page-heading p {
  color:var(--muted);
  max-width:740px;
  margin-bottom:0;
  font-size:13px;
}
.page-heading .actions {
  flex-shrink:0;
}
.panel {
  background:var(--surface);
  padding:26px;
  border:1px solid var(--rule);
  margin:0 0 24px;
  min-width:0;
  overflow-wrap:anywhere;
}
.panel-heading {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:20px;
}
.panel-heading h2 {
  margin:4px 0 6px;
}
.panel-heading p {
  color:var(--muted);
  font-size:12px;
  margin:0;
}
.panel-heading .eyebrow {
  margin-bottom:8px;
}
.text-link {
  font-size:12px;
  font-weight:600;
  white-space:nowrap;
}
.actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.section-nav {
  display:flex;
  gap:24px;
  flex-wrap:wrap;
  padding:0 0 18px;
  margin:24px 0;
  border-bottom:1px solid var(--rule);
  font:11px/1.5 var(--mono);
}
.section-nav a {
  padding:8px 0;
  color:var(--ink);
}
section[id] {
  scroll-margin-top:20px;
}
/* Controls */
.button {
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:16px;
  padding:10px 16px;
  border:1px solid var(--rule);
  background:transparent;
  color:var(--ink);
  text-decoration:none;
  font-size:12px;
  line-height:1.5;
  font-weight:600;
  text-align:center;
}
.button:hover {
  color:var(--ink);
  background:#e5e7dc;
  text-decoration:none;
}
.button.primary {
  background:var(--accent);
  border-color:var(--ink);
  color:var(--ink);
}
.button.primary:hover {
  background:#c9e653;
}
.button.danger {
  color:var(--red);
  border-color:var(--red);
}
.button.danger:hover {
  background:var(--bad-bg);
}
.button>span[aria-hidden] {
  font-size:18px;
  font-weight:400;
  line-height:1;
}
.subtle-button {
  border-color:var(--line);
}
label {
  font-size:12px;
  line-height:1.45;
  display:flex;
  flex-direction:column;
  gap:7px;
  min-width:0;
}
input:not([type='checkbox']),select,textarea {
  border:1px solid var(--line);
  border-radius:0;
  background:var(--surface);
  color:var(--ink);
  width:100%;
  min-width:0;
  padding:10px 11px;
  font-size:13px;
  min-height:44px;
  box-shadow:none;
}
input:hover,select:hover,textarea:hover {
  border-color:var(--muted);
}
input:focus,select:focus,textarea:focus {
  border-color:var(--ink);
}
input::placeholder,textarea::placeholder {
  color:#73796e;
  opacity:1;
}
input[type='date'],input[type='month'],input[type='number'] {
  font-family:var(--mono);
}
textarea {
  resize:vertical;
  min-height:108px;
  line-height:1.6;
}
input[type='checkbox'] {
  accent-color:var(--forest);
  width:18px;
  height:18px;
  flex-shrink:0;
  margin:0;
}
label.checkbox {
  flex-direction:row;
  align-items:center;
  gap:10px;
  min-height:44px;
}
form>label {
  margin:0 0 18px;
}
.form-row {
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:16px;
  margin-bottom:18px;
}
.form-row>label {
  flex:1 1 150px;
  margin:0;
}
.form-row>.button {
  flex-shrink:0;
}
.form-row.compact {
  padding:18px 0;
  border-top:1px solid var(--line);
}
.form-hint {
  margin-top:18px;
  font-size:11px;
}
.permission-form,.stack-form {
  margin-top:18px;
}
.permission-form>label {
  margin-bottom:14px;
}
/* Status does not rely on colour alone. */
.notice {
  padding:14px 18px;
  border:1px solid var(--line);
  border-left:3px solid var(--forest);
  background:#e8ecdf;
  font-size:12px;
  line-height:1.65;
  margin:0 0 22px;
  overflow-wrap:anywhere;
}
.notice.warning {
  background:var(--warn-bg);
  border-left-color:var(--amber);
}
.notice[role='alert'] {
  border:2px solid var(--amber);
}
.notice strong {
  color:var(--ink);
}
.quality-band {
  display:flex;
  gap:18px;
  justify-content:space-between;
  align-items:baseline;
}
.quality-band>span:last-child {
  color:var(--muted);
  font:10px/1.6 var(--mono);
  white-space:nowrap;
}
.badge {
  display:inline-flex;
  align-items:center;
  padding:4px 7px;
  border:1px solid var(--line);
  color:var(--muted);
  background:var(--paper);
  font-size:10px;
  line-height:1.4;
  font-weight:600;
  max-width:100%;
}
.badge.good {
  color:var(--green);
  background:var(--good-bg);
  border-color:#a8b8a1;
}
.badge.bad {
  color:var(--red);
  background:var(--bad-bg);
  border-color:#ccaaa1;
}
.badge.warn {
  color:var(--amber);
  background:var(--warn-bg);
  border-color:#c9b996;
}
.positive {
  color:var(--green);
}
.negative {
  color:var(--red);
}
/* Contiguous numeric blocks */
.metric-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1px;
  padding:1px;
  background:var(--rule);
  margin:0 0 26px;
}
.metric-card {
  display:flex;
  flex-direction:column;
  min-width:0;
  gap:12px;
  background:var(--surface);
  padding:22px;
  color:var(--ink);
  text-decoration:none;
}
.metric-card>span {
  font-size:11px;
  line-height:1.55;
}
.metric-card strong {
  display:block;
  font-family:var(--display);
  font-size:clamp(26px,2.5vw,40px);
  line-height:1.15;
  letter-spacing:-1.3px;
  font-weight:600;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.metric-card>span:last-child {
  margin-top:auto;
}
.metric-card.featured {
  background:var(--accent);
}
a.metric-card:hover {
  background:#e4e9d7;
  color:var(--ink);
}
a.metric-card.featured:hover {
  background:#cde966;
}
.monthly-metrics {
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.monthly-metrics .metric-card {
  padding:20px 18px;
}
.work-metrics {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.work-metrics .metric-card {
  padding:24px;
  gap:18px;
}
.work-metrics strong {
  font-size:68px;
  letter-spacing:-3px;
}
.metric-bottom {
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border-top:1px solid #20272040;
  padding-top:14px;
}
.metric-bottom>span {
  font-size:24px;
  line-height:1;
}
/* Report filters and views */
.report-filters .filter-primary {
  grid-template-columns:repeat(4,minmax(0,1fr)) auto;
  align-items:end;
}
.report-filters .filter-primary>.filter-actions {
  margin:0;
  align-self:end;
}
.report-filters .filter-more {
  margin-top:14px;
}
.report-filters .filter-more>summary {
  padding-bottom:0;
}
.report-filters .filter-more[open]>summary {
  padding-bottom:10px;
}
.report-navigation {
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  margin-bottom:20px;
}
.period-tabs,.view-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:0;
  align-items:stretch;
}
.period-tabs a,.view-tabs a {
  color:var(--muted);
  font-size:12px;
  text-decoration:none;
  padding:11px 16px;
  min-height:44px;
  border:1px solid transparent;
  display:inline-flex;
  align-items:center;
}
.period-tabs a {
  border-bottom:1px solid var(--line);
}
.period-tabs a.active {
  color:var(--ink);
  border:1px solid var(--rule);
  background:var(--surface);
  font-weight:600;
}
.period-tabs a:hover,.view-tabs a:hover {
  color:var(--ink);
  background:#e2e5d9;
}
.view-tabs {
  margin:0 0 18px;
  border-bottom:1px solid var(--rule);
}
.view-tabs a {
  font-size:11px;
  padding:11px 13px;
}
.view-tabs a.active {
  background:var(--ink);
  color:var(--surface);
  border-color:var(--ink);
}
.filters.report-filters {
  display:block;
  padding:22px;
  margin:0 0 18px;
}
.filter-primary,.filter-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.filter-more {
  border-top:1px solid var(--line);
  margin-top:20px;
}
.filter-more>summary {
  font-size:11px;
  color:var(--muted);
}
.filter-grid {
  padding:14px 0;
}
.filter-footer {
  display:flex;
  gap:16px;
  align-items:flex-end;
  margin-top:12px;
}
.filter-footer>label {
  flex:1;
  max-width:280px;
}
.filter-actions {
  margin-left:auto;
  display:flex;
  gap:8px;
}
.scope-chips {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 18px;
}
.scope-chip {
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  background:#e3ead7;
  border:1px solid #a6b395;
  color:var(--ink);
  font-size:11px;
  text-decoration:none;
  min-height:36px;
}
.scope-chip>span {
  font-size:18px;
  margin-left:4px;
}
.scope-chip:hover {
  background:#d5dfc5;
}
.signal-filters .filter-actions {
  margin-top:18px;
}
/* Tables: bounded scrolling and fixed identity column */
.table-panel {
  padding:0;
}
.table-panel>.panel-heading {
  padding:24px 24px 20px;
  margin:0;
}
.table-scroll {
  overflow:auto;
  overscroll-behavior-inline:contain;
  scrollbar-color:#8d9883 var(--paper);
  scrollbar-width:thin;
}
.table-scroll:focus-visible {
  outline-offset:-3px;
}
.table-panel>.table-scroll {
  max-height:72vh;
}
.panel-heading .table-hint {
  max-width:260px;
  padding:0;
  margin-left:auto;
  text-align:right;
}
.table-hint {
  display:flex;
  justify-content:space-between;
  gap:16px;
  font:10px/1.5 var(--mono);
  color:var(--muted);
  margin:0;
  padding:10px 0;
}
.table-panel>.table-hint {
  padding:10px 24px;
  border-top:1px solid var(--line);
}
table {
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  text-align:left;
  font-size:12px;
  line-height:1.5;
}
th {
  font-weight:600;
  font-size:10px;
  color:var(--muted);
  background:#e8eae1;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--rule);
  padding:12px 14px;
  vertical-align:bottom;
  white-space:normal;
}
td {
  border-bottom:1px solid #d9dcd1;
  padding:14px;
  vertical-align:top;
}
tbody tr:last-child td {
  border-bottom:0;
}
tbody tr:hover td {
  background-color:#eef0e5;
}
td a {
  font-weight:500;
}
td small {
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:4px;
  line-height:1.5;
}
.number {
  text-align:right;
  font-family:var(--mono);
  font-variant-numeric:tabular-nums;
  font-size:12px;
  white-space:nowrap;
}
th.number {
  font-family:var(--sans);
  font-size:10px;
  white-space:normal;
}
.partner-table {
  min-width:1050px;
}
.partner-table.monthly-table {
  min-width:1360px;
}
.partner-table th {
  position:sticky;
  top:0;
  z-index:2;
}
.partner-table th:first-child,.partner-table td:first-child {
  position:sticky;
  left:0;
  z-index:1;
  background:var(--surface);
  min-width:170px;
  width:170px;
  border-right:1px solid var(--line);
}
.partner-table th:first-child {
  background:#e8eae1;
  z-index:3;
}
.partner-table tbody tr:hover td:first-child {
  background:#eef0e5;
}
.partner-id {
  font-family:var(--mono);
  font-size:13px;
  font-weight:700;
  color:var(--ink);
  text-decoration-thickness:1px;
}
.partner-name {
  max-width:170px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.selected-comparison {
  background:#dfe7ce;
  color:var(--ink);
}
th.selected-comparison {
  box-shadow:inset 0 3px var(--forest);
}
.inline-details {
  margin:4px 0 0;
  max-width:240px;
}
.inline-details summary {
  padding:0;
  font-size:10px;
  font-weight:400;
}
.inline-details small {
  white-space:normal;
  overflow-wrap:anywhere;
}
.pagination {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 0;
  color:var(--muted);
  font:11px/1.5 var(--mono);
}
.table-panel>.pagination {
  border-top:1px solid var(--line);
  padding:16px 24px;
}
.pagination>div {
  display:flex;
  gap:8px;
}
.empty-cell {
  text-align:center;
  padding:48px 24px;
  color:var(--muted);
}
/* Supporting detail and readable histories */
details {
  margin-top:16px;
}
summary {
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  padding:14px 0;
}
summary:hover {
  color:var(--forest);
}
summary .quiet {
  margin-left:8px;
}
details[open]>summary {
  margin-bottom:8px;
}
details.panel {
  margin:0 0 24px;
}
details.panel>summary {
  padding:0;
}
details.panel[open]>summary {
  padding-bottom:16px;
  border-bottom:1px solid var(--line);
}
.period-list {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 20px;
}
.period-list span {
  font-size:11px;
  padding:8px 10px;
  background:var(--paper);
  border:1px solid var(--line);
}
.event {
  padding:18px 0;
  border-bottom:1px solid var(--line);
}
.event:last-child {
  border-bottom:0;
  padding-bottom:0;
}
.event p {
  margin:8px 0;
}
.event small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin:0 0 8px;
}
.event a {
  text-decoration:none;
}
.event a:hover {
  text-decoration:underline;
}
.audit-detail {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:11px;
  padding:12px;
  border:1px solid var(--line);
  background:var(--paper);
}
.work-columns {
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.work-columns>.panel {
  height:100%;
}
.work-columns+.panel {
  margin-top:24px;
}
.work-queue,.activity-panel {
  margin-bottom:0;
}
.empty-state {
  padding:36px 0;
  max-width:520px;
  margin:0 auto;
}
.empty-state p {
  color:var(--muted);
  font-size:13px;
  max-width:450px;
  line-height:1.7;
}
.empty-mark {
  display:inline-block;
  font:40px/1 var(--display);
  margin-bottom:24px;
}
.compact-empty {
  padding:32px 0;
}
.queue-item {
  border-top:1px solid var(--line);
  padding:18px 0;
}
.queue-item:last-child {
  padding-bottom:0;
}
.queue-link {
  display:flex;
  gap:16px;
  align-items:center;
  color:var(--ink);
  text-decoration:none;
}
.queue-link:hover strong {
  text-decoration:underline;
}
.queue-link>span:nth-child(2) {
  flex:1;
  min-width:0;
}
.queue-link strong {
  display:block;
  font-size:13px;
}
.queue-link small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:5px;
}
.queue-link>span:last-child {
  font-size:22px;
}
.queue-id {
  font:11px var(--mono);
  border:1px solid var(--line);
  padding:12px 8px;
  background:var(--paper);
}
.queue-meta {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:10px 0 0;
}
.activity-panel {
  background:#e6e9de;
}
.report-row {
  display:grid;
  grid-template-columns:130px minmax(200px,1fr) 90px 185px 22px;
  align-items:center;
  gap:16px;
  padding:18px 0;
  border-top:1px solid var(--line);
  color:var(--ink);
  text-decoration:none;
}
.report-row:hover strong {
  text-decoration:underline;
}
.report-row strong {
  font:12px/1.6 var(--mono);
}
.report-row small {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-top:4px;
}
.report-kind {
  font-size:12px;
}
.report-count {
  font:18px/1.4 var(--mono);
  text-align:right;
}
.report-count small {
  display:inline;
}
.row-arrow {
  font-size:24px;
}
/* A task starts with its next action, then evidence and history. */
.task-layout {
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);
  gap:24px;
  align-items:start;
  margin-bottom:24px;
}
.task-layout>.panel {
  margin-bottom:0;
}
.action-panel {
  border-top:4px solid var(--ink);
}
.action-panel .form-row {
  display:grid;
  grid-template-columns:1.5fr 1fr;
}
.action-panel .form-row>label:first-child {
  grid-column:1 / -1;
}
.task-evidence {
  background:#e6e9de;
}
.task-heading-status {
  margin-top:14px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.task-detail-title {
  font-size:clamp(32px,3vw,48px);
}
.event-timeline {
  border-left:1px solid var(--line);
  margin-left:5px;
  padding-left:24px;
}
.event-timeline .event {
  position:relative;
}
.event-timeline .event::before {
  content:'';
  position:absolute;
  left:-29px;
  top:22px;
  width:9px;
  height:9px;
  background:var(--ink);
  border:2px solid var(--surface);
}
.daily-chart {
  display:block;
  width:100%;
  height:auto;
  min-height:160px;
  margin:20px 0 0;
}
.chart-line {
  fill:none;
  stroke:var(--forest);
  stroke-width:2.5;
}
.chart-point {
  fill:var(--forest);
  stroke:var(--surface);
  stroke-width:1;
  cursor:crosshair;
}
.chart-point:hover {
  r:6;
  fill:var(--ink);
}
.chart-axis {
  stroke:var(--line);
  stroke-width:1;
}
.daily-chart text {
  fill:var(--muted);
  font:11px var(--mono);
}
.chart-table {
  max-height:320px;
}
.partner-detail-table {
  min-width:940px;
}
.partner-detail-table td:not(:first-child):not(:last-child) {
  font-family:var(--mono);
  text-align:right;
  white-space:nowrap;
}
.partner-detail-table th:not(:first-child):not(:last-child) {
  text-align:right;
}
.partner-detail-table td:first-child {
  font-weight:500;
  min-width:180px;
}
.partner-signal {
  border-left:4px solid var(--forest);
  background:#e6e9de;
}
/* Entry and empty screens */
.auth-shell main {
  margin-left:0;
}
.auth-shell .topbar {
  max-width:1520px;
  margin:0 auto;
  padding:28px 48px;
  min-height:92px;
  border-bottom-color:var(--rule);
}
.auth-shell .content {
  max-width:1380px;
  padding:64px 48px;
}
.auth-shell footer {
  padding:24px 48px;
  max-width:1520px;
  margin:0 auto;
}
.login-layout {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:clamp(48px,7vw,120px);
  align-items:start;
}
.login-story h1 {
  font-size:clamp(50px,5.9vw,82px);
  letter-spacing:-4px;
  line-height:1.02;
  margin:24px 0;
}
.login-story h1 span {
  color:var(--forest);
}
.login-story .lead {
  font-size:17px;
}
.login-art {
  height:148px;
  margin:34px 0 18px;
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  display:flex;
  align-items:flex-end;
  gap:14px;
  padding-top:16px;
  overflow:hidden;
}
.login-art i {
  display:block;
  background:var(--forest);
  width:46px;
  height:45%;
}
.login-art i:nth-child(2) {
  height:72%;
  background:var(--ink);
}
.login-art i:nth-child(3) {
  height:100%;
  background:var(--accent);
  border:1px solid var(--ink);
  border-bottom:0;
}
.login-art>span {
  margin-left:auto;
  font:bold 140px/.85 var(--display);
  letter-spacing:-10px;
}
.login-caption {
  font:11px/1.8 var(--mono);
  color:var(--muted);
}
.login-panel {
  margin:44px 0 0;
  padding:36px;
  border-top:5px solid var(--ink);
}
.login-panel h2 {
  font-size:32px;
  letter-spacing:-1px;
  margin:18px 0 12px;
}
.login-panel form {
  margin-top:30px;
}
.login-panel .button {
  width:100%;
  justify-content:space-between;
  margin-top:8px;
  min-height:48px;
}
.error-panel {
  display:flex;
  gap:48px;
  align-items:flex-start;
  padding:48px;
  margin-top:32px;
}
.error-code {
  font:bold 100px/1 var(--display);
  letter-spacing:-7px;
  color:var(--forest);
}
.empty-start {
  margin-top:36px;
  padding:40px;
}
.empty-symbol {
  font-size:48px;
  margin-bottom:24px;
}
.feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.feature-grid .eyebrow {
  margin-bottom:22px;
}
.feature-grid p {
  color:var(--muted);
  font-size:13px;
}
/* Administration uses the same interface vocabulary. */
body[data-page='admin_page'] .content>.notice {
  margin-top:24px;
}
body[data-page='admin_page'] table {
  min-width:760px;
}
body[data-page='admin_page'] td:last-child {
  min-width:260px;
}
body[data-page='admin_page'] td form {
  max-width:480px;
}
body[data-page='admin_page'] .content>.panel>form {
  max-width:980px;
}
body[data-page='settings_page'] .content>.panel {
  max-width:900px;
}
body[data-page='reports_page'] table,body[data-page='tasks_page'] table,body[data-page='runs_page'] table {
  min-width:800px;
}
body[data-page='notifications_page'] .event {
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px 24px;
}
body[data-page='notifications_page'] .event>p {
  grid-column:1;
  margin:0;
}
body[data-page='notifications_page'] .event>small {
  grid-column:1;
  margin:0;
}
body[data-page='notifications_page'] .event>form {
  grid-column:2;
  grid-row:1 / 3;
  align-self:center;
}
body[data-page='task_confirm'] .content>.panel {
  max-width:1000px;
}
body[data-page='task_confirm'] h1 {
  font-size:clamp(32px,3.2vw,48px);
}
body[data-page='signals_page'] .table-scroll table {
  min-width:1100px;
}
/* Responsive: retain dense data inside its own scroll region. */
@media(min-width:1700px) {
  .content {
    padding:44px 48px;
  }
  .metric-card strong {
    font-size:40px;
  }
  .work-metrics strong {
    font-size:76px;
  }
}
@media(max-width:1250px) {
  .content {
    padding:28px;
  }
  .topbar {
    padding-inline:28px;
  }
  footer {
    padding-inline:28px;
  }
  h1 {
    font-size:42px;
  }
  .page-heading {
    align-items:flex-start;
  }
  .page-heading .actions {
    max-width:280px;
    justify-content:flex-end;
  }
  .monthly-metrics {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .monthly-metrics .metric-card:first-child {
    grid-column:span 2;
  }
  .filter-primary,.filter-grid,.report-filters .filter-primary {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .report-filters .filter-primary>.filter-actions {
    grid-column:1 / -1;
  }
  .report-navigation {
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  .report-row {
    grid-template-columns:100px minmax(180px,1fr) 75px 22px;
  }
  .report-row>.badge {
    grid-column:2;
    grid-row:2;
    justify-self:start;
  }
  .report-row .row-arrow {
    grid-column:4;
    grid-row:1;
  }
  .work-columns {
    grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);
    gap:20px;
  }
  .panel-heading {
    align-items:flex-start;
    flex-wrap:wrap;
    gap:12px;
  }
  .task-layout {
    grid-template-columns:1fr;
  }
  .task-evidence {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
}
@media(max-width:1000px) {
  .sidebar {
    width:216px;
    padding-inline:12px;
  }
  main {
    margin-left:216px;
  }
  .brand {
    font-size:23px;
  }
  .content {
    padding:24px;
  }
  .panel {
    padding:22px;
  }
  .table-panel {
    padding:0;
  }
  .page-heading {
    flex-direction:column;
    align-items:stretch;
    gap:18px;
  }
  .page-heading>.button {
    align-self:flex-start;
  }
  .page-heading .actions {
    max-width:none;
    justify-content:flex-start;
  }
  .metric-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .work-metrics {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .monthly-metrics .metric-card:first-child {
    grid-column:auto;
  }
  .work-metrics .metric-card {
    padding:18px;
  }
  .work-metrics strong {
    font-size:52px;
  }
  .filter-footer {
    flex-wrap:wrap;
  }
  .filter-footer>label {
    max-width:none;
    flex:1 1 180px;
  }
  .filter-actions {
    width:100%;
    margin-left:0;
  }
  .work-columns {
    grid-template-columns:1fr;
  }
  .work-columns>.panel {
    height:auto;
  }
  .quality-band {
    flex-direction:column;
    gap:8px;
  }
  .quality-band>span:last-child {
    white-space:normal;
  }
  .report-row {
    grid-template-columns:90px minmax(170px,1fr) 60px 20px;
    gap:10px;
  }
  footer {
    flex-direction:column;
    gap:10px;
  }
  footer p {
    text-align:left;
  }
  .login-layout {
    gap:40px;
  }
  .auth-shell .content {
    padding:40px;
  }
  .login-panel {
    padding:26px;
  }
  .login-story h1 {
    font-size:60px;
  }
  .feature-grid {
    grid-template-columns:1fr;
    gap:0;
  }
}
@media(max-width:760px) {
  .sidebar {
    position:relative;
    width:100%;
    padding:16px;
    border-right:0;
    border-bottom:1px solid var(--rule);
    display:grid;
    grid-template-columns:1fr auto;
    gap:12px;
    align-items:center;
  }
  .sidebar>.brand {
    margin:0;
    font-size:23px;
  }
  .brand small {
    font-size:8px;
  }
  .brand-mark {
    height:27px;
    width:25px;
    gap:2px;
  }
  .mobile-menu-toggle {
    display:none;
    padding:9px 10px;
    font-size:11px;
    gap:12px;
  }
  .has-js .sidebar .mobile-menu-toggle {
    display:inline-flex;
  }
  .sidebar nav {
    grid-column:1 / -1;
    padding:16px 0 0;
    overflow:visible;
  }
  .has-js .sidebar nav {
    display:none;
  }
  .has-js .sidebar nav[data-open='true'] {
    display:flex;
  }
  .nav-link {
    font-size:13px;
  }
  .nav-group {
    margin-bottom:18px;
  }
  .nav-label {
    font-size:10px;
  }
  .sidebar-foot {
    padding:16px 10px 0;
  }
  main {
    margin-left:0;
  }
  .topbar {
    min-height:48px;
    padding:12px 18px;
    gap:12px;
    font-size:10px;
  }
  .topbar-date {
    font-size:10px;
  }
  .topbar-date span {
    display:none;
  }
  .breadcrumb {
    gap:7px;
  }
  .panel-heading .table-hint {
    margin-left:0;
    text-align:left;
  }
  .content {
    padding:28px 18px;
  }
  h1 {
    font-size:38px;
    letter-spacing:-1.6px;
  }
  h2 {
    font-size:21px;
  }
  .page-heading {
    margin-bottom:24px;
  }
  .page-heading p {
    font-size:12px;
  }
  .panel {
    padding:20px;
    margin-bottom:20px;
  }
  .panel-heading {
    margin-bottom:16px;
  }
  .table-panel {
    padding:0;
  }
  .table-panel>.panel-heading {
    padding:20px;
  }
  .table-panel>.pagination {
    padding:14px 16px;
  }
  .metric-card,.monthly-metrics .metric-card {
    padding:18px 15px;
    gap:12px;
  }
  .metric-card strong {
    font-size:30px;
  }
  .work-metrics {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .work-metrics strong {
    font-size:46px;
    letter-spacing:-2px;
  }
  .work-metrics .metric-card {
    padding:16px 12px;
  }
  .metric-bottom {
    gap:6px;
    font-size:10px!important;
  }
  .metric-bottom>span {
    font-size:20px;
  }
  .metric-card>span {
    font-size:10px;
  }
  .filters.report-filters {
    padding:18px;
  }
  .filter-primary,.filter-grid {
    gap:14px;
  }
  .report-navigation {
    margin-bottom:18px;
  }
  .period-tabs a {
    padding:10px 12px;
    font-size:11px;
  }
  .view-tabs {
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:thin;
  }
  .view-tabs a {
    white-space:nowrap;
    flex-shrink:0;
  }
  .scope-chip {
    min-height:44px;
  }
  .work-columns,.task-layout {
    gap:20px;
  }
  .work-columns+.panel {
    margin-top:20px;
  }
  .work-queue,.activity-panel {
    margin-bottom:0;
  }
  .report-row {
    grid-template-columns:1fr auto;
    gap:8px 12px;
    padding:18px 0;
  }
  .report-row>span:nth-child(2) {
    grid-column:1;
    grid-row:2;
  }
  .report-row .report-kind {
    font-size:11px;
  }
  .report-row .report-count {
    grid-column:2;
    grid-row:2;
    font-size:16px;
  }
  .report-row>.badge {
    grid-column:1 / -1;
    grid-row:3;
  }
  .report-row .row-arrow {
    grid-column:2;
    grid-row:1;
    text-align:right;
  }
  .task-evidence {
    display:block;
  }
  .task-detail-title {
    font-size:36px;
  }
  .section-nav {
    gap:18px;
    font-size:10px;
    margin:20px 0;
  }
  .empty-state {
    padding:24px 0;
  }
  .empty-mark {
    margin-bottom:20px;
  }
  .table-panel>.table-scroll {
    max-height:70vh;
  }
  .partner-table th:first-child,.partner-table td:first-child {
    width:140px;
    min-width:140px;
    max-width:140px;
  }
  .partner-name {
    max-width:110px;
  }
  td {
    padding:12px;
  }
  .table-hint {
    font-size:9px;
  }
  .auth-shell .topbar {
    padding:22px;
  }
  .auth-shell .topbar>.eyebrow {
    display:none;
  }
  .auth-shell .content {
    padding:32px 22px;
  }
  .login-layout {
    grid-template-columns:1fr;
    gap:0;
  }
  .login-story h1 {
    font-size:48px;
    letter-spacing:-2.5px;
    margin:18px 0;
  }
  .login-story .lead {
    font-size:15px;
  }
  .login-art,.login-caption {
    display:none;
  }
  .login-panel {
    margin:28px 0 0;
    padding:26px;
  }
  .login-panel h2 {
    font-size:28px;
  }
  .error-panel {
    flex-direction:column;
    padding:28px;
    gap:20px;
  }
  .error-code {
    font-size:80px;
  }
  footer,.auth-shell footer {
    padding:4px 18px 24px;
  }
  .empty-start {
    padding:24px;
  }
}
@media(max-width:460px) {
  .brand small {
    display:none;
  }
  .sidebar {
    gap:8px;
  }
  .mobile-menu-toggle {
    font-size:10px;
  }
  .content {
    padding:24px 16px;
  }
  .panel {
    padding:18px;
  }
  .table-panel {
    padding:0;
  }
  h1 {
    font-size:34px;
  }
  .eyebrow {
    font-size:9px;
  }
  .work-metrics {
    grid-template-columns:1fr;
  }
  .work-metrics .metric-card {
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px 16px;
    padding:18px;
  }
  .work-metrics .metric-card>.metric-label {
    grid-column:1;
    font-size:12px;
  }
  .work-metrics .metric-card>strong {
    grid-column:2;
    grid-row:1 / 3;
    font-size:48px;
    align-self:center;
  }
  .work-metrics .metric-card>.metric-bottom {
    grid-column:1;
    font-size:10px;
    border:0;
    padding:0;
  }
  .metric-bottom>span {
    display:none;
  }
  .filter-primary,.filter-grid,.report-filters .filter-primary {
    grid-template-columns:1fr;
  }
  .filter-footer>label {
    flex-basis:100%;
  }
  .filter-actions .button {
    flex:1;
  }
  .pagination {
    flex-wrap:wrap;
  }
  .pagination .button {
    padding:9px 12px;
  }
  .period-tabs {
    width:100%;
  }
  .period-tabs a {
    padding:10px;
  }
  .report-navigation>.subtle {
    font-size:11px;
  }
  .form-row>label {
    flex-basis:100%;
  }
  .form-row>.button {
    width:100%;
  }
  .action-panel .form-row {
    display:block;
  }
  .action-panel .form-row>label {
    margin-bottom:16px;
  }
  .queue-id {
    display:none;
  }
  .queue-link strong {
    font-size:13px;
  }
  body[data-page='notifications_page'] .event {
    display:block;
  }
  body[data-page='notifications_page'] .event>small {
    margin:10px 0;
  }
  .auth-shell .content {
    padding:28px 18px;
  }
  .login-panel {
    padding:22px;
  }
  .login-story h1 {
    font-size:44px;
  }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important;
  }
}
/* Standalone exports embed this stylesheet. */
.standalone main {
  margin-left:0;
}
.standalone .content {
  max-width:1600px;
}
@media print {
  @page {
    size:A4 landscape;
    margin:12mm;
  }
  :root {
    font-size:10px;
  }
  body {
    background:white;
    color:black;
  }
  .sidebar,.topbar,form,.actions,.pagination,footer,.skip-link,.section-nav,.report-navigation,.view-tabs,.scope-chips,.table-hint {
    display:none!important;
  }
  main {
    margin-left:0;
  }
  .content {
    padding:0;
  }
  h1 {
    font-size:28px;
  }
  h2 {
    font-size:17px;
  }
  .panel {
    border-color:#aaa;
    padding:12px;
    margin-bottom:12px;
  }
  .table-panel {
    padding:0;
  }
  .table-scroll,.table-panel>.table-scroll {
    overflow:visible;
    max-height:none;
  }
  table,.partner-table,.partner-table.monthly-table,body[data-page] table {
    min-width:0;
    width:100%;
    font-size:8px;
    table-layout:auto;
  }
  th,td {
    padding:5px;
    font-size:8px;
    overflow-wrap:anywhere;
  }
  .number,th.number {
    font-size:8px;
    white-space:normal;
  }
  .partner-table th,.partner-table td:first-child {
    position:static;
    min-width:0;
    width:auto;
  }
  .partner-table th:first-child {
    min-width:0;
    width:auto;
  }
  .partner-name {
    max-width:95px;
  }
  .metric-grid {
    grid-template-columns:repeat(5,minmax(0,1fr));
    break-inside:avoid;
  }
  .metric-card {
    padding:12px;
  }
  .metric-card strong {
    font-size:24px;
  }
  .work-columns,.task-layout {
    display:block;
  }
  a {
    color:black;
  }
  .event,.notice {
    break-inside:avoid;
  }
}
.report-actions {
  display:grid;
  grid-template-columns:auto auto;
}
.report-actions>.primary {
  grid-column:1 / -1;
}
.partner-metrics {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.create-report[open] .new-report {
  margin-top:20px;
}
@media(max-width:760px) {
  .partner-metrics {
    grid-template-columns:1fr;
  }
  .report-actions {
    align-self:flex-start;
  }
}
