.top-actions{display:flex;align-items:center;gap:20px}.market-switch{display:flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:5px;background:#fff;padding:3px}.market-switch a{display:block;padding:5px 7px;border-radius:3px;font-size:10px;letter-spacing:.8px;color:var(--muted);text-decoration:none}.market-switch a:hover{background:#edf6f4;color:var(--ink)}.market-switch a.active{background:var(--ink);color:#fff}.metric-source{font-size:11px;color:var(--muted)}.status-live,.status-current{background:#e4f1ed;color:#277767}.status-periodic,.status-historical{background:#edf1f3;color:#526870}.status-derived,.status-provisional{background:#f6eddb;color:#8b6927}.status-unavailable,.status-stale{background:#f3e7e4;color:#8c4c3f}.source-link{color:var(--teal);text-decoration:none}.source-link:hover{text-decoration:underline}.history-meta{display:flex;gap:18px;flex-wrap:wrap;padding:0 24px 20px;color:var(--muted);font-size:11px}.history-meta span{border-left:2px solid var(--line);padding-left:9px}.coverage-table td:nth-child(2),.coverage-table td:nth-child(3){white-space:normal;min-width:180px}.method-list{margin:0;padding-left:18px}.method-list li{margin:9px 0;color:var(--muted);font-size:14px}.data-state{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}@media(max-width:850px){.top-actions{gap:8px}.market-switch{overflow:auto;max-width:58vw}.market-switch a{padding:5px 6px}.top .edition{display:none}}@media(max-width:520px){.top{gap:8px}.breadcrumb b{display:none}.market-switch{max-width:72vw}.market-switch a{font-size:9px}}


/* =====================================================
   SAID V3 — subtle analytical visual system
===================================================== */
body[data-market="montreal"]{--market-code:"MTL"}
body[data-market="toronto"]{--market-code:"TOR"}
body[data-market="vancouver"]{--market-code:"VAN"}

.metric-value,.coverage-number,.evidence-value,.source-check,.history-summary strong,
table td,.data-state{font-variant-numeric:tabular-nums lining-nums}

.page-head{position:relative;isolation:isolate;overflow:hidden;padding-right:96px}
.page-head:after{
  content:var(--market-code,"");
  position:absolute;right:4px;bottom:-11px;z-index:-1;
  color:rgba(16,42,49,.035);font-size:clamp(68px,8vw,118px);font-weight:700;
  letter-spacing:-.07em;line-height:.82;pointer-events:none;user-select:none
}

.metric{
  overflow:hidden;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
  box-shadow:0 1px 0 rgba(14,31,38,.015)
}
.metric:before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:#9fb6b8;opacity:.45
}
.metric.state-current:before,.metric.state-live:before{background:var(--teal);opacity:.78}
.metric.state-provisional:before,.metric.state-derived:before{background:#b8893c;opacity:.72}
.metric.state-stale:before,.metric.state-unavailable:before{background:#a45d4c;opacity:.66}
.metric:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(14,31,38,.075);border-color:#cbd9d8}
.metric-arrow{float:right;display:inline-block;transition:transform .16s ease,color .16s ease}
.metric:hover .metric-arrow{transform:translate(3px,-1px);color:var(--teal)}
.metric-spark{display:block;width:58px;height:18px;margin-top:auto;padding-top:5px;opacity:.72}
.metric-spark polyline{vector-effect:non-scaling-stroke}

.demo>div:first-child>span:first-child:before,.source-check:before,.pill.status-current:before,
.pill.status-live:before,.pill.status-provisional:before,.pill.status-stale:before,
.pill.status-unavailable:before,.pill.status-historical:before,.pill.status-periodic:before{
  content:"";display:inline-block;width:5px;height:5px;border-radius:50%;
  margin-right:7px;vertical-align:1px;background:#839a9d
}
.demo>div:first-child>span:first-child:before,.source-check[data-state="success"]:before,
.source-check[data-state="current"]:before,.pill.status-current:before,.pill.status-live:before{background:#2b9484}
.source-check[data-state="degraded"]:before,.source-check[data-state="provisional"]:before,
.pill.status-provisional:before{background:#ae7b2c}
.source-check[data-state="failed"]:before,.source-check[data-state="stale"]:before,
.source-check[data-state="unavailable"]:before,.pill.status-stale:before,.pill.status-unavailable:before{background:#9b5548}
.source-check:before{margin-right:8px}

.panel{box-shadow:0 1px 0 rgba(14,31,38,.012)}
.fundamental-panel{position:relative;margin-bottom:22px!important}
.fundamental-panel>.panel-head{
  background:linear-gradient(180deg,rgba(20,126,123,.035),rgba(20,126,123,0));
  border-bottom:1px solid rgba(223,229,228,.62);padding-bottom:18px
}
.fundamental-panel .group-index{margin-bottom:7px}

.condition{position:relative;transition:background .14s ease,padding-left .14s ease}
.condition:before{
  content:"";position:absolute;left:0;top:17px;bottom:17px;width:2px;
  background:#b5c5c6;opacity:.45;transition:background .14s ease,opacity .14s ease
}
.condition:hover{background:#f9fbfb!important;padding-left:27px}
.condition:hover:before{background:var(--teal);opacity:.75}

.chart-wrap{position:relative}
.chart-wrap svg{overflow:visible}
.chart-area{opacity:.78}
.chart-latest-halo{fill:rgba(20,126,123,.10);stroke:rgba(20,126,123,.30);stroke-width:1}
.chart-crosshair{opacity:0;stroke:#7ea7a3;stroke-width:1;stroke-dasharray:2 4;transition:opacity .12s ease}
.chart-probe:hover .chart-crosshair{opacity:.55}
.chart-probe .chart-hit{fill:transparent;cursor:crosshair}
.chart-probe:hover .chart-point{r:4.8}

.history-summary{
  display:flex;gap:18px;align-items:stretch;flex-wrap:wrap;padding:0 24px 18px
}
.history-summary span{
  min-width:108px;padding-left:10px;border-left:2px solid #d9e4e3;
  color:var(--muted);font-size:9px;letter-spacing:1px;text-transform:uppercase
}
.history-summary strong{
  display:block;margin-top:4px;color:var(--ink);font-size:13px;
  font-weight:600;letter-spacing:0;text-transform:none
}

.tabs{position:relative}
.tabs button{position:relative;transition:background .15s ease,color .15s ease,border-color .15s ease}
.tabs button.selected:after{
  content:"";position:absolute;left:11px;right:11px;bottom:-5px;height:1px;
  background:var(--teal)
}

.coverage-table tbody tr,.table-wrap tbody tr{transition:background .12s ease}
.coverage-table tbody tr:hover,.table-wrap tbody tr:hover{background:#fafcfc}
.coverage-table td:first-child{font-weight:600;color:var(--ink)}
.coverage-table td:nth-child(2){background:rgba(20,126,123,.018)}
.coverage-table tr:hover td:nth-child(2){background:rgba(20,126,123,.04)}

.definition-grid{counter-reset:said-method}
.definition-grid>.definition{position:relative;counter-increment:said-method;overflow:hidden}
.definition-grid>.definition:before{
  content:counter(said-method,decimal-leading-zero);
  position:absolute;right:18px;top:10px;color:rgba(16,42,49,.055);
  font-size:44px;font-weight:700;letter-spacing:-2px;line-height:1
}
.definition-grid>.definition h2{position:relative;padding-bottom:11px;margin-bottom:13px}
.definition-grid>.definition h2:after{
  content:"";position:absolute;left:0;bottom:0;width:34px;height:1px;background:rgba(20,126,123,.42)
}
.notice{
  position:relative;overflow:hidden;
  background:
    linear-gradient(135deg,rgba(20,126,123,.025) 25%,transparent 25%,transparent 50%,rgba(20,126,123,.025) 50%,rgba(20,126,123,.025) 75%,transparent 75%) 0 0/18px 18px,
    #e9f0ef
}

dialog[open]{animation:saidDrawerIn .22s cubic-bezier(.2,.72,.25,1)}
dialog[open]::backdrop{animation:saidBackdropIn .18s ease}
@keyframes saidDrawerIn{from{transform:translateX(16px);opacity:.72}to{transform:none;opacity:1}}
@keyframes saidBackdropIn{from{opacity:0}to{opacity:1}}

.evidence-status{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-4px 0 22px}
.evidence-groups{margin-top:25px}
.evidence-group{padding:0 0 10px;margin-bottom:16px}
.evidence-group-title{
  margin:0 0 4px;color:var(--teal);font-size:9px;font-weight:700;
  letter-spacing:1.7px;text-transform:uppercase
}
.evidence-group dl{margin:0}
.evidence-row{padding:12px 0;border-bottom:1px solid var(--line)}
.evidence-group.provenance{position:relative;padding-left:18px}
.evidence-group.provenance:before{
  content:"";position:absolute;left:3px;top:26px;bottom:20px;width:1px;background:#d7e3e2
}
.evidence-group.provenance .evidence-row{position:relative}
.evidence-group.provenance .evidence-row:before{
  content:"";position:absolute;left:-18px;top:19px;width:7px;height:7px;border-radius:50%;
  background:#fff;border:1px solid #82aaa6
}

@media(prefers-reduced-motion:reduce){
  .metric,.metric-arrow,.condition,.chart-crosshair,.tabs button{transition:none!important}
  dialog[open],dialog[open]::backdrop{animation:none!important}
}

/* Three-city coverage states */
.metric.state-unavailable .metric-value{color:#7e9296}.metric.state-unavailable{cursor:pointer}.metric.state-unavailable .metric-foot .change{color:#8c4c3f}.market-switch a{white-space:nowrap}

/* Montréal submarket intelligence */
.submarket-table td:first-child{min-width:190px}.submarket-table td{font-variant-numeric:tabular-nums lining-nums}
.zone-count{display:block;margin-top:4px;color:var(--muted);font-size:10px;font-weight:400;letter-spacing:.3px}
.submarket-bedroom-tabs{margin-bottom:22px}
@media(max-width:700px){
  .submarket-bedroom-tabs{display:flex;overflow-x:auto;scrollbar-width:none}
  .submarket-bedroom-tabs::-webkit-scrollbar{display:none}
  .submarket-bedroom-tabs button{white-space:nowrap}
  .submarket-table td:first-child{min-width:150px}
}


.evidence-topics{flex-wrap:wrap}.evidence-controls{display:grid;gap:12px;margin-bottom:20px}.evidence-controls select{max-width:100%;width:100%;padding:12px;background:var(--surface,#132932);color:inherit;border:1px solid #3a5059;font:inherit}.evidence-grid{max-height:65vh;overflow:auto}.evidence-grid td{min-width:85px;max-width:280px;white-space:normal;font-size:12px}.evidence-grid td:first-of-type{min-width:260px}.evidence-grid th{position:sticky;top:0;background:#132932}.evidence-grid tbody th{left:0}

.borough-stock-table,.neighbourhood-stock-table{max-height:480px;overflow:auto}#stock-neighbourhood-borough{max-width:100%;padding:12px;background:#132932;color:inherit;font:inherit;margin:12px 0} .panel .definition-grid{margin-top:16px}
