:root{--cosd-blue:#2563eb;--cosd-ice:#eff6ff;--cosd-ink:#111827;--cosd-muted:#5b6472;--cosd-line:#dbe7f5;--cosd-card:#fff;--cosd-warn:#92400e;--cosd-warnbg:#fffbeb}
.cosd-page{max-width:980px;margin:0 auto;padding:36px 20px 64px;color:var(--cosd-ink)}
.cosd-page h1,.cosd-page h2,.cosd-page h3,.cosd-calculator h2,.cosd-calculator h3{letter-spacing:-.025em;line-height:1.15}
.cosd-hero,.cosd-page-header{text-align:center;margin:18px auto 34px}
.cosd-hero h1,.cosd-page-header h1{font-size:clamp(2rem,5vw,3.5rem);margin:.35rem 0 1rem}
.cosd-kicker{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cosd-blue)}
.cosd-lead{font-size:1.15rem;line-height:1.65;color:var(--cosd-muted);max-width:760px;margin:0 auto}
.cosd-calculator{background:linear-gradient(180deg,#eef8ff,#f8fbff);border:1px solid #d9eafb;border-radius:24px;padding:28px;margin:28px auto;box-shadow:0 16px 48px rgba(37,99,235,.08);max-width:860px}
.cosd-tool-head{text-align:center;max-width:650px;margin:0 auto 20px}.cosd-tool-head h2{font-size:clamp(1.55rem,3vw,2.15rem);margin:.4rem 0}.cosd-tool-head p{color:var(--cosd-muted);line-height:1.6}
.cosd-form{display:grid;grid-template-columns:1fr auto;gap:10px;max-width:680px;margin:0 auto}.cosd-form input{width:100%;min-height:52px;border:1px solid #cbd5e1;border-radius:12px;padding:0 16px;font-size:16px;background:#fff}.cosd-form input:focus{outline:3px solid rgba(37,99,235,.16);border-color:var(--cosd-blue)}.cosd-form button,.cosd-location-choices button,.cosd-reset{border:0;border-radius:12px;background:var(--cosd-blue);color:#fff;font-weight:750;padding:0 20px;cursor:pointer;min-height:52px}.cosd-form button:disabled{opacity:.55;cursor:wait}
.cosd-error{max-width:680px;margin:12px auto 0;background:#fef2f2;color:#991b1b;border:1px solid #fecaca;padding:12px 14px;border-radius:10px}.cosd-loading{max-width:680px;margin:18px auto;text-align:center;color:var(--cosd-muted)}.cosd-spinner{display:inline-block;width:16px;height:16px;border:2px solid #bfdbfe;border-top-color:var(--cosd-blue);border-radius:50%;margin-right:8px;vertical-align:-3px;animation:cosdspin .8s linear infinite}@keyframes cosdspin{to{transform:rotate(360deg)}}
.cosd-location-choices{max-width:680px;margin:14px auto;background:#fff;border:1px solid var(--cosd-line);border-radius:14px;padding:12px}.cosd-location-choices>strong{display:block;margin:2px 4px 10px}.cosd-location-choices button{display:block;width:100%;text-align:left;background:#f8fafc;color:var(--cosd-ink);min-height:44px;margin:6px 0;padding:10px 12px}.cosd-location-choices button:hover{background:#eff6ff}
.cosd-results{margin-top:26px}.cosd-result-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.cosd-result-location{font-size:1.12rem;font-weight:800}.cosd-updated{font-size:.78rem;color:var(--cosd-muted);margin-top:4px}.cosd-signal{font-size:.74rem;font-weight:800;background:#e0ecff;color:#1d4ed8;border-radius:999px;padding:7px 10px;white-space:nowrap}
.cosd-prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.cosd-prob{background:#fff;border:1px solid var(--cosd-line);border-radius:16px;padding:20px;text-align:center}.cosd-prob-primary{border-color:#93c5fd;box-shadow:0 8px 24px rgba(37,99,235,.08)}.cosd-prob span{display:block;font-size:clamp(2rem,7vw,3.6rem);font-weight:850;letter-spacing:-.04em;color:#0f172a}.cosd-prob-primary span{color:var(--cosd-blue)}.cosd-prob small{display:block;color:var(--cosd-muted);font-weight:650;margin-top:5px}.cosd-notice{margin:12px 0 22px;background:var(--cosd-warnbg);color:var(--cosd-warn);border:1px solid #fde68a;border-radius:10px;padding:10px 12px;font-size:.86rem}
.cosd-section{margin-top:22px}.cosd-section h3{margin:0 0 10px}.cosd-factor-list{background:#fff;border:1px solid var(--cosd-line);border-radius:14px;overflow:hidden}.cosd-factor{display:flex;justify-content:space-between;gap:15px;padding:12px 14px;border-bottom:1px solid #edf2f7}.cosd-factor:last-child{border-bottom:0}.cosd-factor strong,.cosd-factor span{display:block}.cosd-factor span{color:var(--cosd-muted);font-size:.84rem;margin-top:2px}.cosd-factor b{color:var(--cosd-blue);white-space:nowrap}
.cosd-metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.cosd-metric{background:#fff;border:1px solid var(--cosd-line);border-radius:12px;padding:14px}.cosd-metric strong,.cosd-metric span{display:block}.cosd-metric strong{font-size:1.2rem}.cosd-metric span{color:var(--cosd-muted);font-size:.78rem;margin-top:3px}.cosd-outlook{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.cosd-day{background:#fff;border:1px solid var(--cosd-line);border-radius:12px;padding:12px;text-align:center;font-size:.78rem}.cosd-day>*{display:block;margin:3px 0}.cosd-day-icon{font-size:1.45rem}.cosd-alerts{margin-top:20px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px}.cosd-alert{padding:8px 0}.cosd-alert strong,.cosd-alert span{display:block}.cosd-alert span{font-size:.82rem;color:#7c2d12}.cosd-sources{font-size:.75rem;color:var(--cosd-muted);margin:16px 0}.cosd-reset{background:#eaf2ff;color:#1d4ed8;min-height:42px;padding:8px 14px}
.cosd-content-section{margin:56px auto 0;max-width:900px;line-height:1.75}.cosd-content-section h2{font-size:clamp(1.55rem,3vw,2.1rem)}.cosd-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.cosd-info-grid>div,.cosd-callout,.cosd-method-note,.cosd-snapshot>div{background:#fff;border:1px solid var(--cosd-line);border-radius:14px;padding:18px}.cosd-info-grid strong,.cosd-info-grid span{display:block}.cosd-info-grid span{color:var(--cosd-muted);margin-top:6px;font-size:.92rem}.cosd-two-col{display:grid;grid-template-columns:1.35fr .65fr;gap:24px;align-items:start}.cosd-callout{background:#f8fbff}.cosd-location-links{display:flex;flex-wrap:wrap;gap:8px}.cosd-location-links a{background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:7px 11px;text-decoration:none}.cosd-source-note{font-size:.86rem;color:var(--cosd-muted)}.cosd-check-list li{margin:.45rem 0}.cosd-snapshot{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:18px 0 6px}.cosd-snapshot>div{text-align:center}.cosd-snapshot strong,.cosd-snapshot span{display:block}.cosd-snapshot strong{font-size:1.6rem;color:var(--cosd-blue)}.cosd-snapshot span{font-size:.78rem;color:var(--cosd-muted);margin-top:4px}
@media(max-width:700px){.cosd-page{padding:22px 14px 50px}.cosd-calculator{padding:18px 13px;border-radius:18px;margin:20px auto}.cosd-form{grid-template-columns:1fr}.cosd-form button{width:100%}.cosd-result-header{display:block}.cosd-signal{display:inline-block;margin-top:8px}.cosd-prob-grid{grid-template-columns:1fr 1fr}.cosd-prob-primary{grid-column:1/-1}.cosd-metric-grid{grid-template-columns:1fr 1fr}.cosd-outlook{grid-template-columns:repeat(2,1fr)}.cosd-info-grid,.cosd-two-col{grid-template-columns:1fr}.cosd-snapshot{grid-template-columns:1fr 1fr}.cosd-hero h1,.cosd-page-header h1{font-size:2.25rem}}

.cosd-local-verified{background:#f8fbff;border:1px solid var(--cosd-line);border-radius:16px;padding:20px}.cosd-local-verified h2{margin-top:0}.cosd-local-verified ul{margin:.75rem 0 0;padding-left:1.25rem}.cosd-local-verified li{margin:.55rem 0}.cosd-official-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.cosd-official-links a{display:inline-block;background:#fff;border:1px solid #bfdbfe;border-radius:999px;padding:8px 12px;text-decoration:none;font-weight:650}.cosd-reviewed{font-size:.78rem;color:var(--cosd-muted);margin-top:14px}
.cosd-related-tools{max-width:900px;margin:48px auto 0;background:#f8fbff;border:1px solid var(--cosd-line);border-radius:16px;padding:20px;line-height:1.65}.cosd-related-tools h2{margin-top:0;font-size:1.55rem}.cosd-related-tools p{color:var(--cosd-muted)}.cosd-related-local{border-top:1px solid var(--cosd-line);padding-top:24px}.cosd-related-local h2{font-size:1.45rem}

/* v2.6 mobile refinement: compact, balanced product UI with no horizontal overflow. */
@media (max-width:700px){
  .cosd-page{width:100%;max-width:100%;padding:14px 0 40px;overflow:hidden}
  .cosd-hero,.cosd-page-header{margin:8px auto 22px;padding:0 2px}
  .cosd-hero h1,.cosd-page-header h1{font-size:clamp(1.9rem,9vw,2.2rem)!important;line-height:1.1!important;margin:.35rem 0 .75rem!important}
  .cosd-kicker{font-size:.72rem;letter-spacing:.075em}
  .cosd-lead{font-size:1rem;line-height:1.55;max-width:100%}
  .cosd-calculator{width:100%;max-width:100%;padding:16px 12px;border-radius:16px;margin:18px auto;box-shadow:0 10px 30px rgba(37,99,235,.06)}
  .cosd-tool-head{margin:0 auto 16px;padding:0 2px}
  .cosd-tool-head h2{font-size:1.5rem!important;line-height:1.18!important;margin:.35rem 0 .45rem!important}
  .cosd-tool-head p{font-size:.95rem;line-height:1.5;margin-bottom:0}
  .cosd-form{grid-template-columns:1fr!important;gap:8px;width:100%;max-width:100%}
  .cosd-form input,.cosd-form button{width:100%;max-width:100%;min-height:50px}
  .cosd-results{margin-top:20px}
  .cosd-result-header{display:block;margin-bottom:12px}
  .cosd-result-location{font-size:1.02rem;line-height:1.35}
  .cosd-updated{font-size:.74rem;line-height:1.4}
  .cosd-signal{display:inline-block;margin-top:8px;font-size:.7rem;white-space:normal}
  .cosd-prob-grid{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-prob{padding:15px 8px;border-radius:13px}
  .cosd-prob-primary{grid-column:1/-1}
  .cosd-prob span{font-size:2.55rem}
  .cosd-prob small{font-size:.78rem;line-height:1.3}
  .cosd-notice{font-size:.8rem;line-height:1.45;margin:10px 0 18px}
  .cosd-section{margin-top:18px}
  .cosd-section h3{font-size:1.2rem!important}
  .cosd-factor{gap:8px;padding:11px 12px}
  .cosd-factor span{font-size:.8rem}
  .cosd-metric-grid{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-metric{padding:12px 10px}
  .cosd-metric strong{font-size:1.05rem}
  .cosd-outlook{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-day{padding:10px 8px}
  .cosd-content-section{margin:34px auto 0;max-width:100%;line-height:1.7}
  .cosd-content-section h2{font-size:1.5rem!important;line-height:1.2!important}
  .cosd-content-section h3{font-size:1.2rem!important}
  .cosd-info-grid,.cosd-two-col{grid-template-columns:1fr!important;gap:12px}
  .cosd-info-grid>div,.cosd-callout,.cosd-method-note,.cosd-snapshot>div,.cosd-local-verified,.cosd-related-tools{padding:15px;border-radius:13px}
  .cosd-snapshot{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-location-links{display:grid;grid-template-columns:1fr;gap:8px}
  .cosd-location-links a,.cosd-official-links a{display:block;width:100%;text-align:center;padding:9px 10px}
  .cosd-official-links{display:grid;grid-template-columns:1fr;gap:8px}
  .cosd-related-tools{margin:34px 0 0;max-width:100%}
  .cosd-related-tools h2{font-size:1.35rem!important}
  .cosd-local-verified ul,.cosd-check-list{padding-left:1.15rem}
  .cosd-local-verified li,.cosd-check-list li{margin:.45rem 0}
}

/* v2.7: make the five-day weather strip a genuine school-disruption outlook. */
.cosd-outlook-note{margin:-4px 0 12px;color:var(--cosd-muted);font-size:.8rem;line-height:1.45}
.cosd-day-risk{position:relative;overflow:hidden;text-align:left;min-height:158px}
.cosd-day-risk::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#cbd5e1}
.cosd-day-risk.cosd-risk-moderate::before{background:#60a5fa}
.cosd-day-risk.cosd-risk-high::before{background:#f59e0b}
.cosd-day-risk.cosd-risk-severe::before{background:#ef4444}
.cosd-day-risk .cosd-day-icon{margin-top:8px}
.cosd-day-risk .cosd-day-prob{margin-top:7px;color:#334155}
.cosd-day-risk .cosd-day-prob b{font-size:1.2rem;color:var(--cosd-blue)}

@media(max-width:700px){
  .cosd-hero h1,.cosd-page-header h1{font-size:clamp(1.72rem,7.8vw,2rem)!important;line-height:1.08!important}
  .cosd-lead{font-size:.96rem;line-height:1.55}
  .cosd-tool-head h2{font-size:1.4rem!important}
  .cosd-outlook{grid-template-columns:1fr 1fr!important}
  .cosd-day-risk{min-height:145px;padding:11px 10px}
  .cosd-day-risk .cosd-day-prob b{font-size:1.08rem}
}

/* v2.8 homepage: tool-first, fast-scanning product layout. Long-form support
   content remains crawlable below the tool but no longer dominates the first
   mobile screens. */
.cosd-home-jumpbar{position:sticky;top:8px;z-index:35;display:flex;gap:7px;width:max-content;max-width:100%;margin:0 auto 22px;padding:6px;background:rgba(255,255,255,.94);border:1px solid var(--cosd-line);border-radius:999px;box-shadow:0 8px 24px rgba(15,23,42,.08);backdrop-filter:blur(10px)}
.cosd-home-jumpbar a{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 13px;border-radius:999px;text-decoration:none;color:#475569;font-size:.82rem;font-weight:750;white-space:nowrap}
.cosd-home-jumpbar a:hover,.cosd-home-jumpbar a:focus{background:#f1f5f9;color:#0f172a}
.cosd-home-jumpbar a.is-primary{background:var(--cosd-blue);color:#fff}
.cosd-home-hero{margin-top:0}
.cosd-home-hero h1{font-size:clamp(2rem,5vw,3.25rem);margin:.35rem 0 .65rem}
.cosd-home-hero .cosd-lead{max-width:700px}
.cosd-home-hero .cosd-calculator{margin-top:22px}
.cosd-risk-board-section{margin:42px auto 0;max-width:900px;padding:26px;background:#f8fbff;border:1px solid var(--cosd-line);border-radius:22px}
.cosd-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px}
.cosd-section-heading.compact{align-items:flex-start}
.cosd-section-heading h2{margin:.25rem 0 .35rem;font-size:clamp(1.55rem,3vw,2rem)}
.cosd-section-heading p{margin:0;color:var(--cosd-muted);max-width:670px;line-height:1.6}
.cosd-live-pill{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;border-radius:999px;padding:7px 10px;font-size:.72rem;font-weight:750;white-space:nowrap}
.cosd-live-pill i{display:block;width:7px;height:7px;background:#10b981;border-radius:50%;box-shadow:0 0 0 4px rgba(16,185,129,.12)}
.cosd-risk-board{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cosd-risk-card{display:flex;flex-direction:column;gap:8px;min-width:0;padding:16px;background:#fff;border:1px solid var(--cosd-line);border-radius:15px;text-decoration:none;color:var(--cosd-ink);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.cosd-risk-card:hover,.cosd-risk-card:focus{transform:translateY(-1px);border-color:#bfdbfe;box-shadow:0 8px 22px rgba(37,99,235,.08)}
.cosd-risk-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.cosd-risk-card-head strong{font-size:.98rem}.cosd-risk-badge{border-radius:999px;padding:4px 7px;background:#eef2ff;color:#4338ca;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.cosd-risk-main{display:flex;align-items:baseline;gap:7px}.cosd-risk-main b{font-size:2rem;line-height:1;color:var(--cosd-blue);letter-spacing:-.04em}.cosd-risk-main span{font-size:.78rem;color:var(--cosd-muted);font-weight:650}
.cosd-risk-meta{font-size:.76rem;color:var(--cosd-muted);line-height:1.45}
.cosd-risk-board-note{margin:12px 0 0;color:var(--cosd-muted);font-size:.76rem;line-height:1.5}
.cosd-risk-skeleton{height:126px;border-radius:15px;background:linear-gradient(90deg,#eef2f7 20%,#f8fafc 40%,#eef2f7 60%);background-size:220% 100%;animation:cosd-shimmer 1.4s infinite linear}@keyframes cosd-shimmer{to{background-position:-220% 0}}
.cosd-risk-empty{grid-column:1/-1;padding:18px;text-align:center;color:var(--cosd-muted);background:#fff;border:1px dashed var(--cosd-line);border-radius:14px}
.cosd-location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.cosd-location-grid a{display:block;border-radius:14px!important;padding:13px 14px!important;background:#fff!important;border-color:var(--cosd-line)!important;color:var(--cosd-ink);text-align:left;text-decoration:none}
.cosd-location-grid a:hover{border-color:#93c5fd!important;box-shadow:0 6px 18px rgba(37,99,235,.06)}
.cosd-location-grid strong,.cosd-location-grid span{display:block}.cosd-location-grid span{margin-top:3px;color:var(--cosd-muted);font-size:.75rem}
.cosd-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cosd-guide-card{display:flex;flex-direction:column;gap:7px;padding:18px;background:#fff;border:1px solid var(--cosd-line);border-radius:16px;text-decoration:none;color:var(--cosd-ink)}
.cosd-guide-card:hover,.cosd-guide-card:focus{border-color:#93c5fd;box-shadow:0 8px 22px rgba(37,99,235,.07)}
.cosd-guide-card>span{color:var(--cosd-blue);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.cosd-guide-card strong{font-size:1rem;line-height:1.35}.cosd-guide-card em{color:var(--cosd-muted);font-size:.8rem;line-height:1.5;font-style:normal}
.cosd-home-learn{display:grid;gap:10px}.cosd-home-learn>.cosd-section-heading{margin-bottom:2px}
.cosd-learn-item{background:#fff;border:1px solid var(--cosd-line);border-radius:14px;overflow:hidden}.cosd-learn-item summary{list-style:none;cursor:pointer;padding:16px 48px 16px 17px;font-weight:800;position:relative}.cosd-learn-item summary::-webkit-details-marker{display:none}.cosd-learn-item summary::after{content:'+';position:absolute;right:17px;top:50%;transform:translateY(-50%);color:#64748b;font-size:1.25rem}.cosd-learn-item[open] summary::after{content:'−'}.cosd-learn-item[open] summary{border-bottom:1px solid #edf2f7}.cosd-learn-body{padding:16px 17px 18px;color:#334155}.cosd-learn-body>p:first-child{margin-top:0}.cosd-learn-body>p:last-child{margin-bottom:0}

@media(max-width:700px){
  .cosd-home{padding-top:6px}
  .cosd-home-jumpbar{position:relative;top:auto;width:100%;display:grid;grid-template-columns:1fr 1fr;margin:0 0 18px;padding:5px;border-radius:14px;box-shadow:none;background:#f8fbff}
  .cosd-home-jumpbar a{min-height:38px;font-size:.78rem;padding:0 8px}
  .cosd-home-hero{padding:0 1px;margin-bottom:0}
  .cosd-home-hero .cosd-kicker{font-size:.68rem}
  .cosd-home-hero h1{font-size:clamp(1.9rem,8.2vw,2.16rem)!important;line-height:1.06!important;margin:.3rem auto .55rem!important;max-width:340px}
  .cosd-home-hero .cosd-lead{font-size:.93rem;line-height:1.48;padding:0 5px}
  .cosd-home-hero .cosd-calculator{margin:15px 0 0}
  .cosd-home-hero .cosd-tool-head{margin-bottom:12px}
  .cosd-home-hero .cosd-tool-head h2{font-size:1.28rem!important}
  .cosd-home-hero .cosd-tool-head p{font-size:.88rem;line-height:1.45}
  .cosd-risk-board-section{margin:28px 0 0;padding:17px 13px;border-radius:16px}
  .cosd-section-heading{display:block;margin-bottom:14px}.cosd-section-heading h2{font-size:1.4rem!important}.cosd-section-heading p{font-size:.9rem;line-height:1.55}
  .cosd-live-pill{margin-top:10px;font-size:.68rem}
  .cosd-risk-board{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-risk-card{padding:12px 10px;border-radius:12px;gap:6px}.cosd-risk-card-head{display:block}.cosd-risk-card-head strong{display:block;font-size:.86rem;line-height:1.3}.cosd-risk-badge{display:inline-block;margin-top:5px;font-size:.58rem}.cosd-risk-main b{font-size:1.6rem}.cosd-risk-main span{font-size:.68rem}.cosd-risk-meta{font-size:.68rem}
  .cosd-risk-skeleton{height:116px}
  .cosd-home-locations,.cosd-home-guides,.cosd-home-learn{margin-top:30px}
  .cosd-location-grid,.cosd-guide-grid{grid-template-columns:1fr 1fr;gap:8px}
  .cosd-location-grid a{padding:11px!important}.cosd-location-grid strong{font-size:.87rem}.cosd-location-grid span{font-size:.68rem}
  .cosd-guide-card{padding:13px 12px;gap:5px}.cosd-guide-card>span{font-size:.63rem}.cosd-guide-card strong{font-size:.86rem;line-height:1.3}.cosd-guide-card em{display:none}
  .cosd-home-learn{gap:8px}.cosd-learn-item summary{padding:13px 42px 13px 14px;font-size:.9rem;line-height:1.4}.cosd-learn-body{padding:14px}.cosd-learn-body p{font-size:.9rem;line-height:1.6}
  .cosd-home-learn .cosd-info-grid{display:grid;grid-template-columns:1fr!important}.cosd-home-learn .cosd-snapshot{grid-template-columns:1fr 1fr}
  .cosd-method-note{margin-top:30px!important}
}

/* v2.9: Live Snow Day Risk Map + ranked regional watch. The map is a
   lightweight enhancement built from the same cached board data; it does not
   add a mapping SDK or create crawlable city pages. */
.cosd-secondary-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 14px;border:1px solid #bfdbfe;border-radius:11px;background:#fff;color:#1d4ed8;text-decoration:none;font-weight:750;line-height:1.25}
.cosd-secondary-button:hover,.cosd-secondary-button:focus{background:#eff6ff;border-color:#93c5fd;color:#1e40af}
.cosd-risk-board-actions{display:flex;justify-content:flex-end;margin-top:14px}
.cosd-map-shell{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:stretch;margin-top:18px}
.cosd-map-stage{position:relative;min-height:430px;overflow:hidden;border:1px solid #cbdff5;border-radius:20px;background:linear-gradient(180deg,#edf7ff 0%,#f8fbff 48%,#eef4f8 49%,#f8fafc 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.cosd-map-stage::before{content:'';position:absolute;inset:0;opacity:.55;background-image:linear-gradient(rgba(148,163,184,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.13) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.cosd-map-region{position:absolute;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(15,23,42,.03))}
.cosd-map-canada{left:4%;right:3%;top:9%;height:39%;background:#dbeafe;clip-path:polygon(0 24%,8% 8%,20% 13%,27% 1%,41% 13%,52% 6%,66% 20%,78% 9%,100% 27%,96% 68%,78% 72%,67% 58%,49% 70%,31% 54%,11% 72%,2% 55%)}
.cosd-map-us{left:7%;right:5%;top:45%;height:42%;background:#e2e8f0;clip-path:polygon(2% 13%,21% 4%,36% 12%,50% 5%,67% 13%,82% 5%,100% 15%,93% 54%,78% 70%,69% 92%,49% 77%,35% 89%,21% 69%,6% 63%)}
.cosd-map-caption{position:absolute;left:14px;bottom:12px;z-index:3;margin:0;padding:5px 8px;border-radius:8px;background:rgba(255,255,255,.88);color:#64748b;font-size:.68rem;line-height:1.35;backdrop-filter:blur(4px)}
.cosd-map-markers{position:absolute;inset:0;z-index:5}
.cosd-map-marker{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:3px solid #fff;border-radius:999px;box-shadow:0 3px 10px rgba(15,23,42,.22);background:#64748b;color:#fff;font:800 .68rem/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,outline-color .15s ease}
.cosd-map-marker:hover,.cosd-map-marker:focus,.cosd-map-marker.is-selected{z-index:10;transform:translate(-50%,-50%) scale(1.16);box-shadow:0 6px 16px rgba(15,23,42,.26);outline:3px solid rgba(37,99,235,.22);outline-offset:2px}
.cosd-map-marker.risk-low{background:#64748b}.cosd-map-marker.risk-watch{background:#2563eb}.cosd-map-marker.risk-elevated{background:#d97706}.cosd-map-marker.risk-high{background:#dc2626}
.cosd-map-loading{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;padding:30px;text-align:center;background:rgba(248,251,255,.9);color:var(--cosd-muted);font-weight:650}
.cosd-map-detail{display:flex;flex-direction:column;min-height:100%;padding:20px;background:#fff;border:1px solid var(--cosd-line);border-radius:20px}
.cosd-map-detail h3{margin:.35rem 0 .75rem;font-size:1.35rem}.cosd-map-detail .cosd-kicker{text-align:left}
.cosd-map-prob-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:4px 0 12px}.cosd-map-prob-grid>div{padding:10px 6px;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.cosd-map-prob-grid b,.cosd-map-prob-grid span{display:block}.cosd-map-prob-grid b{font-size:1.25rem;color:#0f172a}.cosd-map-prob-grid span{margin-top:2px;color:var(--cosd-muted);font-size:.66rem}
.cosd-map-summary{color:#475569;font-size:.88rem;line-height:1.55}.cosd-map-alert{padding:9px 10px;background:#fff7ed;border:1px solid #fed7aa;border-radius:9px;color:#9a3412;font-size:.8rem;line-height:1.45}.cosd-map-detail .cosd-secondary-button{margin-top:auto}
.cosd-risk-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.cosd-risk-legend span{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:.74rem}.cosd-risk-legend i{width:10px;height:10px;border-radius:50%}.cosd-risk-legend .low{background:#64748b}.cosd-risk-legend .watch{background:#2563eb}.cosd-risk-legend .elevated{background:#d97706}.cosd-risk-legend .high{background:#dc2626}
.cosd-risk-ranking{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.cosd-risk-rank-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;padding:11px 12px;background:#fff;border:1px solid var(--cosd-line);border-radius:12px;text-align:left;color:var(--cosd-ink);cursor:pointer}.cosd-risk-rank-card:hover,.cosd-risk-rank-card:focus{background:#f8fbff;border-color:#93c5fd}.cosd-risk-rank-number{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem;font-weight:800}.cosd-risk-rank-info,.cosd-risk-rank-info strong,.cosd-risk-rank-info small{display:block;min-width:0}.cosd-risk-rank-info strong{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cosd-risk-rank-info small{margin-top:2px;color:var(--cosd-muted);font-size:.69rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cosd-risk-rank-score{min-width:46px;padding:6px 7px;border-radius:9px;text-align:center;color:#fff;font-size:.76rem}.cosd-risk-rank-score.risk-low{background:#64748b}.cosd-risk-rank-score.risk-watch{background:#2563eb}.cosd-risk-rank-score.risk-elevated{background:#d97706}.cosd-risk-rank-score.risk-high{background:#dc2626}
.cosd-map-trust-note{margin-top:18px;padding:15px 16px;background:#f8fbff;border:1px solid var(--cosd-line);border-radius:13px;color:#475569;font-size:.86rem;line-height:1.6}.cosd-map-trust-note strong{color:#0f172a}

@media(max-width:760px){
  .cosd-risk-board-actions{justify-content:stretch}.cosd-risk-board-actions .cosd-secondary-button{width:100%}
  .cosd-map-shell{grid-template-columns:1fr;gap:10px}
  .cosd-map-stage{min-height:390px;border-radius:16px}
  .cosd-map-detail{min-height:0;padding:15px;border-radius:15px}
  .cosd-map-detail h3{font-size:1.18rem!important}.cosd-map-detail .cosd-secondary-button{margin-top:8px;width:100%}
  .cosd-map-marker{width:34px;height:34px;border-width:2px;font-size:.62rem}
  .cosd-map-caption{left:9px;right:9px;bottom:8px;text-align:center;font-size:.62rem}
  .cosd-risk-ranking{grid-template-columns:1fr;gap:7px}
  .cosd-risk-rank-card{grid-template-columns:34px minmax(0,1fr) 44px;padding:10px 9px;gap:7px}
  .cosd-risk-rank-info strong{font-size:.84rem}.cosd-risk-rank-info small{font-size:.66rem}
  .cosd-risk-legend{gap:7px}.cosd-risk-legend span{font-size:.68rem}
}

@media(max-width:420px){
  .cosd-map-stage{min-height:355px}
  .cosd-map-marker{width:31px;height:31px;font-size:.56rem}
  .cosd-map-prob-grid b{font-size:1.08rem}.cosd-map-prob-grid span{font-size:.61rem}
}
/* v2.9 template aliases/layout: keep the page markup semantic while sharing
   the visual system above. */
.cosd-risk-map-page>.cosd-map-shell{display:block;margin-top:28px;padding:24px;background:#f8fbff;border:1px solid var(--cosd-line);border-radius:22px}
.cosd-risk-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px;align-items:stretch}
.cosd-risk-map-canvas{position:relative;min-height:430px;overflow:hidden;border:1px solid #cbdff5;border-radius:20px;background:linear-gradient(180deg,#edf7ff 0%,#f8fbff 48%,#eef4f8 49%,#f8fafc 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.cosd-risk-map-canvas::before{content:'';position:absolute;inset:0;opacity:.55;background-image:linear-gradient(rgba(148,163,184,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.13) 1px,transparent 1px);background-size:44px 44px;pointer-events:none}
.cosd-map-region span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#64748b;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;opacity:.7}
.cosd-map-grid{position:absolute;inset:0;pointer-events:none}
.cosd-map-legend{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.cosd-map-legend span{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:.74rem}.cosd-map-legend i{width:10px;height:10px;border-radius:50%}.cosd-map-legend i.risk-low{background:#64748b}.cosd-map-legend i.risk-watch{background:#2563eb}.cosd-map-legend i.risk-elevated{background:#d97706}.cosd-map-legend i.risk-high{background:#dc2626}
.cosd-risk-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.cosd-risk-map-header{max-width:800px}
.cosd-risk-map-page .cosd-map-calculator>.cosd-calculator{margin-left:0;margin-right:0}
@media(max-width:760px){
  .cosd-risk-map-page>.cosd-map-shell{margin-top:20px;padding:15px 11px;border-radius:16px}
  .cosd-risk-map-layout{grid-template-columns:1fr;gap:10px}
  .cosd-risk-map-canvas{min-height:390px;border-radius:16px}
  .cosd-risk-list{grid-template-columns:1fr;gap:7px}
  .cosd-risk-map-page .cosd-section-heading{margin-bottom:13px}
  .cosd-map-legend{gap:7px}.cosd-map-legend span{font-size:.68rem}
}
@media(max-width:420px){.cosd-risk-map-canvas{min-height:355px}}


/* v3.0 risk-map reliability and final mobile polish. The explicit [hidden]
   rule fixes a real browser/CSS cascade bug where .cosd-map-loading's
   author-level display:flex overrode the native hidden attribute. */
.cosd-map-loading[hidden]{display:none!important}
.cosd-risk-zero-note{grid-column:1/-1;margin:0 0 4px;padding:12px 14px;border:1px solid #bbf7d0;border-radius:12px;background:#f0fdf4;color:#166534;font-size:.88rem;line-height:1.5}
.cosd-risk-zero-note strong{color:#14532d}
@media(max-width:760px){
  .cosd-risk-map-page .cosd-page-header{padding-bottom:4px}
  .cosd-risk-map-page>.cosd-map-shell{padding:14px 10px}
  .cosd-risk-map-page .cosd-map-shell .cosd-section-heading h2{font-size:1.34rem!important;line-height:1.2}
  .cosd-risk-map-page .cosd-map-shell .cosd-section-heading p{font-size:.88rem;line-height:1.5}
}
