:root{
  --focus-ring:#d69b12;
  --official-final-bg:#dff3e9;
  --official-final-fg:#176b4e;
  --official-provisional-bg:#e5f0fa;
  --official-provisional-fg:#1f5f99;
  --calculated-bg:#eee8f7;
  --calculated-fg:#654493;
  --estimate-bg:#fff0d8;
  --estimate-fg:#855707;
  --evidence-problem:#a33b32;
}

.sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.skip-link{
  position:fixed;
  z-index:1000;
  top:10px;
  left:10px;
  padding:11px 15px;
  border-radius:9px;
  background:#fff;
  color:#102d27;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,.2);
  transform:translateY(-180%);
}
.skip-link:focus{transform:none}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--focus-ring)!important;
  outline-offset:3px!important;
}
.search:focus-within{outline:3px solid var(--focus-ring);outline-offset:2px}
.search input:focus{outline:0!important}
summary{border-radius:6px}

.figure-status-key{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:7px;
  margin:0 40px 22px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.figure-status-key>strong{margin-right:3px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.figure-badge,.data-status,.source-badge{
  display:inline-flex;
  align-items:center;
  gap:5px;
  width:max-content;
  max-width:100%;
  padding:4px 7px;
  border:1px solid transparent;
  border-radius:999px;
  font-size:9px;
  font-weight:800;
  line-height:1.25;
}
.figure-badge::before,.data-status::before,.source-badge::before{font-weight:900}
.figure-badge.official-final,.data-status:not(.provisional),.source-badge.verified{background:var(--official-final-bg);color:var(--official-final-fg)}
.figure-badge.official-final::before,.data-status:not(.provisional)::before,.source-badge.verified::before{content:'✓'}
.figure-badge.official-provisional,.data-status.provisional,.source-badge.limited{background:var(--official-provisional-bg);color:var(--official-provisional-fg)}
.figure-badge.official-provisional::before,.data-status.provisional::before,.source-badge.limited::before{content:'◷'}
.figure-badge.calculated{background:var(--calculated-bg);color:var(--calculated-fg)}
.figure-badge.calculated::before{content:'ƒx'}
.figure-badge.independent-estimate,.source-badge.independent-estimate{background:var(--estimate-bg);color:var(--estimate-fg)}
.figure-badge.independent-estimate::before,.source-badge.independent-estimate::before{content:'≈'}
.figure-badge.illustrative,.source-badge.missing{
  color:#525d59;
  background:repeating-linear-gradient(135deg,#f1f3f2,#f1f3f2 6px,#e5e9e7 6px,#e5e9e7 12px);
}
.figure-badge.illustrative::before,.source-badge.missing::before{content:'▧'}
.figure-badge.evidence-problem{
  border-color:var(--evidence-problem);
  background:#fff;
  color:#8f3029;
}
.figure-badge.evidence-problem::before{content:'!'}
.source-badge.evidence-problem{border-color:var(--evidence-problem);background:#fff;color:#8f3029}
.source-badge.evidence-problem::before{content:'!'}

.negative-receipt{background:#fff!important;box-shadow:inset 3px 0 0 var(--evidence-problem)}
.field-unavailable,.no-chart-data,.linked-delivery.empty{
  background:repeating-linear-gradient(135deg,#f5f6f5,#f5f6f5 7px,#ecefed 7px,#ecefed 14px);
}
.field-unavailable{display:inline-block;padding:2px 5px;border-radius:4px}
.indicative-estimate,.estimate-disclaimer{background:repeating-linear-gradient(135deg,#f4f5f4,#f4f5f4 8px,#e7eae8 8px,#e7eae8 16px)!important}
.indicative-estimate{padding:12px;border:1px solid #aab3af;border-radius:10px}

.chart-description{margin:-10px 0 13px;color:var(--muted);font-size:11px;line-height:1.5}
.chart-data-details{margin-top:16px;border-top:1px solid var(--line);padding-top:11px}
.chart-data-details>summary{width:max-content;max-width:100%;cursor:pointer;color:#087557;font-size:11px;font-weight:800}
.chart-data-details .table-region{margin-top:10px}
.chart-data-table{min-width:720px;background:#fff}
.chart-data-table caption{padding:9px;text-align:left;font-weight:800}
.chart-data-table th,.chart-data-table td{padding:9px 10px;font-size:10px}
.chart-data-table td:not(:first-child),.chart-data-table th:not(:first-child){text-align:right}

.table-region{max-width:100%;overflow:auto;scrollbar-gutter:stable}
.table-region:focus-visible{outline-offset:1px!important}
.governance-grid,.governance-grid>*{min-width:0}

button.bar-row,button.category-card,button.allocation-item.drillable,button.exceptional-bar,.event-row-button{
  width:100%;
  border:0;
  color:inherit;
  font:inherit;
  text-align:left;
}
button.bar-row{padding:3px;border-radius:8px;background:transparent}
button.bar-row:hover,button.bar-row:focus-visible{background:#f0f7f4}
button.category-card{cursor:pointer}
button.category-card:hover,button.category-card:focus-visible{border-color:#087557;background:#f7fbf9}
button.allocation-item.drillable{background:transparent}
button.exceptional-bar{appearance:none}
.event-row-button{padding:0;background:transparent;cursor:pointer}
.event-row-button strong,.event-row-button small{display:block}
.event-row-button:hover strong{text-decoration:underline;text-decoration-thickness:2px}

.stacked-bar .capital{
  background-color:#0d7755;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.26) 0 2px,transparent 2px 6px);
}
.stacked-bar .operational{
  background-color:#d7a72e;
  background-image:repeating-linear-gradient(-45deg,rgba(19,35,31,.22) 0 1px,transparent 1px 5px);
}
.current-segment,.operating-bars>div:first-child b{
  background-color:#d7a72e;
  background-image:repeating-linear-gradient(-45deg,rgba(19,35,31,.22) 0 1px,transparent 1px 5px);
}
.capital-segment{
  background-color:#0d7755;
  background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.26) 0 2px,transparent 2px 6px);
}

/* International categories retain their palette and add distinct textures. */
.segment-pit{background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.24) 0 2px,transparent 2px 6px)}
.segment-cit{background-image:repeating-linear-gradient(-45deg,rgba(15,40,32,.22) 0 1px,transparent 1px 5px)}
.segment-ssc{background-image:repeating-linear-gradient(90deg,rgba(39,45,37,.19) 0 1px,transparent 1px 5px)}
.segment-payroll{background-image:repeating-linear-gradient(0deg,rgba(39,45,37,.2) 0 1px,transparent 1px 5px)}
.segment-property{background-image:radial-gradient(rgba(255,255,255,.38) 1px,transparent 1.5px);background-size:6px 6px}
.segment-vat{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.27) 0 2px,transparent 2px 7px)}
.segment-otherGoods{background-image:repeating-linear-gradient(45deg,transparent 0 4px,rgba(21,48,60,.2) 4px 5px)}
.segment-other{background-image:radial-gradient(rgba(34,48,43,.25) 1px,transparent 1.5px);background-size:5px 5px}

.icon-button[aria-label]{line-height:1}
.more{min-width:36px;min-height:36px;border-radius:8px}
.more:hover{background:#edf4f1}

@media(max-width:1050px){
  .figure-status-key{margin-right:25px;margin-left:25px}
}

@media(max-width:900px){
  .spending-controls{grid-template-columns:1fr 1fr}
}

@media(max-width:760px){
  .sidebar{
    position:static;
    display:flex!important;
    width:100%;
    padding:12px;
    gap:10px;
  }
  .sidebar .brand{width:max-content}
  .sidebar .brand-copy{display:grid}
  .sidebar nav{
    display:flex;
    width:100%;
    gap:5px;
    margin:0;
    padding:3px 1px 7px;
    overflow-x:auto;
  }
  .sidebar .nav-link,.sidebar .nav-link:not(.active){
    min-width:max-content;
    padding:9px 10px;
    font-size:12px;
    white-space:nowrap;
  }
  .sidebar .nav-link span{width:auto;margin-right:5px;font-size:13px}
  .sidebar-note{display:none}
  main{margin-left:0}
  .topbar{padding:16px 12px;gap:13px;flex-direction:column}
  .header-actions{width:100%;justify-content:flex-start}
  .search{display:flex;width:100%;order:3}
  .search input{width:100%}
  .hero{min-height:0;margin:14px 12px;padding:25px 18px}
  .hero h2{font-size:28px}
  .figure-status-key{margin:0 12px 18px;padding:10px}
  .section-heading{align-items:flex-start;flex-direction:column}
  .section-heading .filters{width:100%;flex-wrap:wrap}
  .section-heading .filters select{max-width:100%}
  .international-revenue-section,.spending-section,.revenue-section,.evidence-library,.workspace,.detail-panel{margin-right:12px!important;margin-left:12px!important}
  .exceptional-section{margin-right:8px!important;margin-left:8px!important;padding:16px!important}
  .chart-heading{gap:9px;flex-wrap:wrap}
  .chart-heading>span{text-align:left}
  .intl-bar-row{grid-template-columns:76px minmax(72px,1fr) 80px!important;gap:6px}
  .intl-country strong{overflow-wrap:anywhere}
  .intl-bar-value{font-size:9px}
  .bar-row{grid-template-columns:74px minmax(80px,1fr) 62px}
  .category-detail{padding:14px}
  .table-region{overscroll-behavior-inline:contain}
  .figure-status-key>strong{flex-basis:100%}
}

@media(max-width:420px){
  .topbar h1{font-size:22px}
  .button{padding:10px 12px}
  .hero h2{font-size:25px}
  .metrics{margin-right:12px;margin-left:12px}
  .financial-field-grid{grid-template-columns:1fr}
  .milestone-line{grid-template-columns:1fr}
  .focus-finance,.focus-vfm-grid{grid-template-columns:1fr}
  .exceptional-bar{grid-template-columns:minmax(84px,1fr) minmax(70px,1fr) 74px}
  .evidence-metrics,.other-revenue-metrics,.revenue-metrics{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

@media(forced-colors:active){
  .figure-badge,.data-status,.source-badge{border:1px solid currentColor}
  .stacked-bar i,.exceptional-bar i,.revenue-track i,.other-revenue-track i{border:1px solid CanvasText}
}
