:root{--cd-font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;--cd-mono:ui-monospace,SFMono-Regular,Consolas,monospace;--cd-canvas:#f5f7f5;--cd-surface:#fff;--cd-surface-raised:#fff;--cd-inset:#f1f4f2;--cd-ink:#18211b;--cd-muted:#5f6b63;--cd-subtle:#818c84;--cd-line:#dce4dd;--cd-line-strong:#c7d2ca;--cd-accent:#1f7a52;--cd-accent-hover:#155a3d;--cd-accent-soft:#eaf5ee;--cd-focus:rgba(31,122,82,.22);--cd-success:#16734a;--cd-success-soft:#eaf5ef;--cd-warning:#a15c00;--cd-warning-soft:#fff4e5;--cd-danger:#b42318;--cd-danger-soft:#fdedec;--cd-info:#2457a7;--cd-info-soft:#ebf2fa;--cd-radius-sm:6px;--cd-radius:8px;--cd-radius-lg:12px;--cd-control:40px;--cd-shadow:0 1px 3px rgba(18,32,23,.06);--cd-shadow-pop:0 12px 32px rgba(18,32,23,.12);--cd-width:1020px;--cd-serif:var(--cd-font);--cd-soft:var(--cd-canvas);--cd-green:var(--cd-accent)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.cd-home,body.cd-directory{margin:0;background:#fff;color:var(--cd-ink);font:15px/1.5 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}body.cd-home a,body.cd-directory a{color:inherit}.cd-wrap{width:min(var(--cd-width),calc(100% - 48px));margin:0 auto}
.cd-header{height:58px;border-bottom:1px solid var(--cd-line);background:#fff}.cd-header-inner{height:100%;display:flex;align-items:center;gap:28px}.cd-brand{margin-right:auto;text-decoration:none;font-size:18px;font-weight:760;letter-spacing:-.055em}.cd-nav{display:flex;align-items:center;gap:23px}.cd-nav a{color:#4e5751;text-decoration:none;font-size:13px;font-weight:560}.cd-nav a:hover,.cd-footer a:hover{color:var(--cd-green)}.cd-search-open{height:34px;border:1px solid var(--cd-line);border-radius:6px;background:white;color:#4d5751;padding:0 10px;font:inherit;font-size:12px;cursor:pointer}.cd-search-open kbd{margin-left:12px;color:#89908a;font:inherit;font-size:10px}.cd-menu-button{display:none;border:0;background:none;font:inherit;color:var(--cd-ink);cursor:pointer}
.cd-main{padding-bottom:70px}.cd-intro{padding:78px 0 34px}.cd-intro h1{margin:0;font-family:var(--cd-serif);font-size:clamp(42px,6vw,66px);font-weight:400;line-height:1.02;letter-spacing:-.045em}.cd-intro p{margin:15px 0 25px;color:var(--cd-muted);font-size:16px}.cd-home-search{position:relative;width:min(630px,100%)}.cd-searchbox{height:51px;display:flex;align-items:center;gap:12px;border:1px solid #bfc8c1;border-radius:7px;padding:0 15px;background:#fff}.cd-searchbox:focus-within{border-color:var(--cd-green);box-shadow:0 0 0 3px #28734e14}.cd-searchbox span{font-size:18px;color:#727c75}.cd-searchbox input{width:100%;border:0;outline:0;background:transparent;color:var(--cd-ink);font:inherit;font-size:14px}.cd-searchbox input::placeholder{color:#747e77}.cd-results{display:grid}.cd-home-results{position:absolute;top:57px;left:0;right:0;z-index:8;background:#fff;border:1px solid var(--cd-line);border-radius:7px;box-shadow:0 14px 35px #10181017;overflow:hidden}.cd-result{display:flex;gap:14px;align-items:flex-start;padding:12px 14px;text-decoration:none;border-bottom:1px solid #edf0ed}.cd-result:last-child{border-bottom:0}.cd-result:hover,.cd-result[aria-selected="true"]{background:#f5f8f5}.cd-result strong{display:block;font-size:13px;font-weight:650}.cd-result small{display:block;margin-top:2px;color:var(--cd-muted);font-size:12px;line-height:1.4}.cd-result-category{flex:none;margin-left:auto;color:#828b85;font-size:10px;white-space:nowrap}.cd-results-empty{padding:15px;color:var(--cd-muted);font-size:13px}.cd-browse{display:inline-flex;margin-top:13px;color:var(--cd-green)!important;font-size:13px;font-weight:620;text-decoration:none}.cd-section{margin-top:40px}.cd-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:12px;border-bottom:1px solid var(--cd-line)}.cd-section-heading h2{margin:0;font-size:16px;font-weight:680;letter-spacing:-.015em}.cd-section-heading a{color:var(--cd-green)!important;font-size:12px;text-decoration:none}.cd-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:50px}.cd-tool{display:block;min-width:0;padding:16px 0 17px;border-bottom:1px solid var(--cd-line);text-decoration:none}.cd-tool:hover .cd-tool-name{color:var(--cd-green)}.cd-tool-name{font-size:14px;font-weight:650;transition:color .12s}.cd-tool-desc{display:block;margin-top:4px;color:var(--cd-muted);font-size:12px;line-height:1.5}.cd-recent[hidden],.cd-menu[hidden],.cd-home-results[hidden]{display:none}.cd-pbj-note{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:44px;padding:17px 0;border-top:1px solid var(--cd-line);border-bottom:1px solid var(--cd-line)}.cd-pbj-note strong{display:block;font-size:13px;font-weight:650}.cd-pbj-note span{display:block;margin-top:2px;color:var(--cd-muted);font-size:12px}.cd-pbj-note a{flex:none;color:var(--cd-green)!important;font-size:12px;font-weight:620;text-decoration:none}
.cd-directory-main{padding:48px 0 76px}.cd-directory-title h1{margin:0;font-family:var(--cd-serif);font-size:46px;font-weight:400;letter-spacing:-.04em}.cd-directory-title p{margin:8px 0 24px;color:var(--cd-muted);font-size:14px}.cd-directory-tools{display:flex;gap:24px;align-items:center;margin:22px 0 20px}.cd-directory-tools .cd-searchbox{flex:1}.cd-filters{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 25px}.cd-filter{border:1px solid var(--cd-line);border-radius:999px;background:#fff;color:#5b655e;padding:6px 11px;font:inherit;font-size:11px;cursor:pointer}.cd-filter:hover,.cd-filter[aria-pressed="true"]{border-color:#557e62;background:#f4f8f4;color:#255e3e}.cd-directory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}.cd-directory-list .cd-tool{padding:15px 0}.cd-directory-list .cd-tool-category{display:block;margin-top:4px;color:#818a83;font-size:10px}.cd-footer{border-top:1px solid var(--cd-line);padding:19px 0 25px;color:var(--cd-muted);font-size:11px}.cd-footer-inner{display:flex;justify-content:space-between;gap:24px}.cd-footer nav{display:flex;gap:18px}.cd-footer a{text-decoration:none}
#cd-search-dialog{width:min(620px,calc(100vw - 28px));max-height:min(700px,calc(100vh - 48px));border:1px solid var(--cd-line);border-radius:9px;padding:0;box-shadow:0 22px 70px #0c160c33}#cd-search-dialog::backdrop{background:#1118146b}#cd-search-dialog .cd-dialog-top{padding:15px;border-bottom:1px solid var(--cd-line)}#cd-search-dialog .cd-dialog-top .cd-searchbox{height:47px;border:0;padding:0 4px}#cd-search-dialog .cd-dialog-top .cd-searchbox:focus-within{box-shadow:none}#cd-search-dialog .cd-dialog-content{max-height:60vh;overflow:auto}.cd-dialog-hint{padding:11px 15px;color:#808981;font-size:10px;border-top:1px solid #edf0ed}.cd-dialog-hint kbd{font:inherit;border:1px solid var(--cd-line);border-radius:3px;padding:1px 4px;margin:0 2px}
@media(max-width:680px){.cd-wrap{width:calc(100% - 32px)}.cd-header-inner{gap:14px}.cd-menu-button{display:block;font-size:12px}.cd-nav{display:none;position:absolute;top:57px;left:0;right:0;z-index:10;padding:12px 16px;background:#fff;border-bottom:1px solid var(--cd-line)}.cd-nav.is-open{display:flex;justify-content:flex-end}.cd-search-open{width:34px;padding:0;font-size:0}.cd-search-open:before{content:"⌕";font-size:21px}.cd-search-open kbd{display:none}.cd-intro{padding:58px 0 23px}.cd-intro h1{font-size:46px}.cd-intro p{max-width:410px;font-size:14px}.cd-section{margin-top:34px}.cd-tool-grid,.cd-directory-list{grid-template-columns:1fr}.cd-tool-grid{column-gap:0}.cd-directory-main{padding-top:35px}.cd-directory-title h1{font-size:40px}.cd-directory-tools{display:block}.cd-directory-tools .cd-search-open{display:none}.cd-directory-tools .cd-searchbox{width:100%}.cd-filters{gap:6px}.cd-pbj-note{align-items:flex-start;flex-direction:column;gap:9px}.cd-footer-inner{flex-direction:column}.cd-footer nav{gap:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* ChaseDesk Design System: shared interface tokens and primitives. */
:root {
  --ink: var(--cd-ink);
  --muted: var(--cd-muted);
  --line: var(--cd-line);
  --paper: var(--cd-surface);
  --soft: var(--cd-canvas);
  --green: var(--cd-accent);
  --green-dark: var(--cd-accent-hover);
  --green-light: var(--cd-accent-soft);
  --accent: var(--cd-accent);
  --dark: var(--cd-accent-hover);
  --primary: var(--cd-accent);
  --primary-hover: var(--cd-accent-hover);
  --background: var(--cd-canvas);
  --surface: var(--cd-surface);
  --surface-2: var(--cd-inset);
  --text: var(--cd-ink);
  --border: var(--cd-line);
  --control: var(--cd-line-strong);
  --success: var(--cd-success);
  --success-bg: var(--cd-success-soft);
  --warning: var(--cd-warning);
  --warning-bg: var(--cd-warning-soft);
  --danger: var(--cd-danger);
  --danger-bg: var(--cd-danger-soft);
  --info: var(--cd-info);
  --info-bg: var(--cd-info-soft);
  --shadow: var(--cd-shadow);
}
body.cd-home, body.cd-directory {
  font-family: var(--cd-font);
  background: var(--cd-canvas);
  color: var(--cd-ink);
}
.cd-header, .cd-footer { background: var(--cd-surface); border-color: var(--cd-line); }
.cd-brand, .cd-directory-title h1, .cd-intro h1,
.cd-home h2, .cd-directory h2 { font-family: var(--cd-font); }
.cd-intro h1, .cd-directory-title h1 { font-weight: 650; letter-spacing: -.045em; }
.cd-searchbox, .cd-search-open, .cd-filter, .cd-tool,
.cd-result, .cd-home-results, .cd-dialog-content, .cd-header, .cd-footer {
  border-color: var(--cd-line);
}
.cd-searchbox:focus-within { border-color: var(--cd-accent); box-shadow: 0 0 0 3px var(--cd-focus); }
.cd-search-open:hover, .cd-filter:hover, .cd-result:hover,
.cd-result[aria-selected="true"], .cd-tool:hover { background-color: var(--cd-inset); }
.cd-search-open, .cd-menu-button, .cd-filter { border-radius: var(--cd-radius-sm); }
.cd-search-open:focus-visible, .cd-menu-button:focus-visible,
.cd-filter:focus-visible, .cd-result:focus-visible, .cd-tool:focus-visible {
  outline: 3px solid var(--cd-focus); outline-offset: 2px;
}
.cd-browse, .cd-section-heading a,
.cd-tool:hover .cd-tool-name, .cd-pbj-note a, .cd-nav a:hover, .cd-footer a:hover {
  color: var(--cd-accent);
}
.cd-home-results, .cd-search-dialog, dialog {
  border-radius: var(--cd-radius-lg);
  box-shadow: var(--cd-shadow-pop);
}
.cd-tool { transition: background-color .15s ease, color .15s ease; }
.cd-tool:hover { background: var(--cd-inset); }
.cd-footer, .cd-section-heading { border-color: var(--cd-line); }

/* Shared tool shell, typography, controls, and semantic states. */
body.concrete-page, body.fishing-page, body.world-map-page,
body.pool-page, body.preflight-page, body.township-page {
  font-family: var(--cd-font);
  color: var(--cd-ink);
  background: var(--cd-canvas);
  line-height: 1.5;
}
body.concrete-page *, body.fishing-page *, body.world-map-page *,
body.pool-page *, body.preflight-page *, body.township-page * {
  font-family: var(--cd-font);
}
body.concrete-page :is(h1,h2,h3,h4),
body.fishing-page :is(h1,h2,h3,h4),
body.world-map-page :is(h1,h2,h3,h4),
body.pool-page :is(h1,h2,h3,h4),
body.preflight-page :is(h1,h2,h3,h4),
body.township-page :is(h1,h2,h3,h4) {
  font-family: var(--cd-font);
}
body.concrete-page :is(button,input,select,textarea),
body.fishing-page :is(button,input,select,textarea),
body.world-map-page :is(button,input,select,textarea),
body.pool-page :is(button,input,select,textarea),
body.preflight-page :is(button,input,select,textarea),
body.township-page :is(button,input,select,textarea) {
  font-family: var(--cd-font);
  transition: border-color .15s ease, background-color .15s ease, color .15s ease, box-shadow .15s ease;
}
body.concrete-page :is(button,input,select,textarea):focus-visible,
body.fishing-page :is(button,input,select,textarea):focus-visible,
body.world-map-page :is(button,input,select,textarea):focus-visible,
body.pool-page :is(button,input,select,textarea):focus-visible,
body.preflight-page :is(button,input,select,textarea):focus-visible,
body.township-page :is(button,input,select,textarea):focus-visible {
  outline: 3px solid var(--cd-focus);
  outline-offset: 2px;
}
body.concrete-page :is(button,input,select,textarea):disabled,
body.fishing-page :is(button,input,select,textarea):disabled,
body.world-map-page :is(button,input,select,textarea):disabled,
body.pool-page :is(button,input,select,textarea):disabled,
body.preflight-page :is(button,input,select,textarea):disabled,
body.township-page :is(button,input,select,textarea):disabled {
  cursor: not-allowed; opacity: .55;
}
body.concrete-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea),
body.fishing-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea),
body.world-map-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea),
body.pool-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea),
body.preflight-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea),
body.township-page :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea) {
  border-color: var(--cd-line-strong);
  border-radius: var(--cd-radius-sm);
}
body.concrete-page input[type=checkbox], body.fishing-page input[type=checkbox],
body.world-map-page input[type=checkbox], body.pool-page input[type=checkbox],
body.preflight-page input[type=checkbox], body.township-page input[type=checkbox],
body.concrete-page input[type=radio], body.fishing-page input[type=radio],
body.world-map-page input[type=radio], body.pool-page input[type=radio],
body.preflight-page input[type=radio], body.township-page input[type=radio],
body.concrete-page input[type=range], body.fishing-page input[type=range],
body.world-map-page input[type=range], body.pool-page input[type=range],
body.preflight-page input[type=range], body.township-page input[type=range] {
  accent-color: var(--cd-accent);
}
body.concrete-page :is(.topbar,.app-header),
body.fishing-page :is(.topbar,.app-header),
body.world-map-page :is(.topbar,.app-header),
body.pool-page :is(.topbar,.app-header),
body.preflight-page :is(.topbar,.app-header),
body.township-page :is(.topbar,.app-header) {
  background: var(--cd-surface);
  border-color: var(--cd-line);
  box-shadow: none;
}
body.concrete-page .brand, body.fishing-page .brand,
body.world-map-page .brand, body.pool-page .brand,
body.preflight-page .brand, body.township-page .brand {
  color: var(--cd-ink);
  font-family: var(--cd-font);
}
body.concrete-page .brand span, body.fishing-page .brand span,
body.world-map-page .brand span, body.pool-page .brand span,
body.preflight-page .brand span, body.township-page .brand span {
  color: var(--cd-accent);
}
body.concrete-page .tools-menu-button, body.fishing-page .tools-menu-button,
body.world-map-page .tools-menu-button {
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid var(--cd-line);
  border-radius: var(--cd-radius-sm);
  background: var(--cd-surface);
  color: var(--cd-ink);
  font-size: 12px;
  font-weight: 600;
}
body.concrete-page .tools-menu-button:hover, body.fishing-page .tools-menu-button:hover,
body.world-map-page .tools-menu-button:hover,
body.concrete-page .tools-menu-button[aria-expanded=true],
body.fishing-page .tools-menu-button[aria-expanded=true],
body.world-map-page .tools-menu-button[aria-expanded=true] {
  border-color: var(--cd-line-strong);
  background: var(--cd-inset);
}
body.concrete-page .tools-menu-panel, body.fishing-page .tools-menu-panel,
body.world-map-page .tools-menu-panel {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius);
  background: var(--cd-surface);
  box-shadow: var(--cd-shadow-pop);
}
body.concrete-page .tools-menu-panel a:hover, body.fishing-page .tools-menu-panel a:hover,
body.world-map-page .tools-menu-panel a:hover {
  background: var(--cd-inset);
}
body.concrete-page .hero h1, body.fishing-page .fishing-hero h1,
body.pool-page .hero h1, body.township-page .hero h1 {
  font-family: var(--cd-font);
  font-size: clamp(2rem, 4vw, 3.25rem);
  font-weight: 650;
  line-height: 1.06;
  letter-spacing: -.045em;
}
body.concrete-page .calculator-card, body.concrete-page .result-card,
body.fishing-page .location-panel, body.fishing-page .primary-window-card,
body.fishing-page .alert-signup, body.fishing-page .secondary-card,
body.fishing-page .trip-checkin-card, body.fishing-page .feedback-card,
body.pool-page .surface, body.pool-page .result-panel,
body.township-page .result, body.township-page .manual,
body.preflight-page .quarter-card, body.preflight-page .issue-card,
body.preflight-page .section-block, body.preflight-page .drop {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius-lg);
  background: var(--cd-surface);
  box-shadow: var(--cd-shadow);
}
body.concrete-page .calculator-card, body.concrete-page .result-card,
body.fishing-page .location-panel, body.fishing-page .primary-window-card,
body.fishing-page .alert-signup, body.fishing-page .secondary-card,
body.fishing-page .trip-checkin-card, body.fishing-page .feedback-card,
body.pool-page .surface, body.pool-page .result-panel,
body.township-page .result, body.township-page .manual,
body.preflight-page .quarter-card, body.preflight-page .issue-card,
body.preflight-page .section-block, body.preflight-page .drop {
  box-shadow: none;
}
body.concrete-page .calculator-card, body.concrete-page .result-card,
body.fishing-page .location-panel, body.fishing-page .primary-window-card,
body.pool-page .surface, body.pool-page .result-panel {
  padding: clamp(16px, 2vw, 24px);
}
body.concrete-page :is(.primary-button,.save-button,.primary-link,.quote-button),
body.fishing-page :is(.button.primary,.alert-form button[type=submit]),
body.pool-page :is(.primary-button,.save-button),
body.world-map-page :is(.workspace-actions .button.primary,.loading button),
body.preflight-page :is(.primary,.button.primary),
body.township-page :is(.button.primary,.find) {
  min-height: var(--cd-control);
  border-color: var(--cd-accent);
  border-radius: var(--cd-radius-sm);
  background: var(--cd-accent);
  color: #fff;
  box-shadow: none;
  font-weight: 650;
}
body.concrete-page :is(.primary-button,.save-button,.primary-link,.quote-button):hover,
body.fishing-page :is(.button.primary,.alert-form button[type=submit]):hover,
body.pool-page :is(.primary-button,.save-button):hover,
body.world-map-page :is(.workspace-actions .button.primary,.loading button):hover,
body.preflight-page :is(.primary,.button.primary):hover,
body.township-page :is(.button.primary,.find):hover {
  border-color: var(--cd-accent-hover);
  background: var(--cd-accent-hover);
}
body.concrete-page .secondary-button, body.fishing-page .secondary-button,
body.fishing-page .checkin-button, body.pool-page .secondary-button,
body.world-map-page .toolbar button, body.preflight-page .secondary,
body.township-page .manual-toggle, body.township-page .action button {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius-sm);
  background: var(--cd-surface);
  color: var(--cd-ink);
  box-shadow: none;
}
body.concrete-page .secondary-button:hover, body.fishing-page .secondary-button:hover,
body.fishing-page .checkin-button:hover, body.pool-page .secondary-button:hover,
body.world-map-page .toolbar button:hover:not(:disabled), body.preflight-page .secondary:hover,
body.township-page .manual-toggle:hover, body.township-page .action button:hover {
  border-color: var(--cd-line-strong);
  background: var(--cd-inset);
  color: var(--cd-ink);
}
body.concrete-page .add-section-button {
  border-color: var(--cd-line-strong);
  border-radius: var(--cd-radius-sm);
  background: var(--cd-surface);
  color: var(--cd-accent);
}
body.concrete-page .add-section-button:hover {
  border-color: var(--cd-accent);
  background: var(--cd-accent-soft);
}
body.fishing-page .primary-window-card {
  border-color: var(--cd-line);
  background: var(--cd-accent-soft);
}
body.fishing-page .decision-badge, body.fishing-page .confidence-badge {
  border-radius: var(--cd-radius-sm);
}
body.fishing-page .empty-state, body.fishing-page .forecast-loading,
body.fishing-page .forecast-error, body.fishing-page .search-results,
body.concrete-page .quote-box, body.concrete-page .purchase-guidance,
body.pool-page .estimate-note, body.pool-page .form-error,
body.township-page .notice, body.preflight-page .notice,
body.preflight-page .banner, body.preflight-page .gate {
  border-radius: var(--cd-radius);
}
body.fishing-page .day-card, body.fishing-page .reason-card,
body.fishing-page .saved-spot-row, body.concrete-page .section-row,
body.concrete-page .quote-box, body.pool-page .details-grid,
body.pool-page .profile-form, body.preflight-page .stats,
body.preflight-page .paybox, body.township-page .result-grid,
body.township-page .details {
  border-color: var(--cd-line);
}
body.world-map-page {
  --map-ink: var(--cd-ink);
  --map-muted: var(--cd-muted);
  --map-line: var(--cd-line);
  --map-wash: var(--cd-canvas);
  --map-paper: var(--cd-surface);
  --map-accent: var(--cd-accent);
  --map-accent-dark: var(--cd-accent-hover);
  background: var(--cd-canvas);
  color: var(--cd-ink);
}
body.world-map-page .toolbar { background: var(--cd-surface); border-right-color: var(--cd-line); }
body.world-map-page .tool-group { border-color: var(--cd-line); }
body.world-map-page .toolbar :is(input[type=text],input[type=search],select,input[type=color]) {
  min-height: var(--cd-control);
  border-radius: var(--cd-radius-sm);
  border-color: var(--cd-line-strong);
  background: var(--cd-surface);
  box-shadow: none;
}
body.world-map-page :is(.segmented,.map-mode-switch) { border-color: var(--cd-line); border-radius: var(--cd-radius-sm); background: var(--cd-inset); }
body.world-map-page :is(.segmented .seg.active,.map-mode-switch button.active) { border-radius: var(--cd-radius-sm); background: var(--cd-accent); color: #fff; box-shadow: none; }
body.world-map-page .zoom-controls { border-color: var(--cd-line); border-radius: var(--cd-radius-sm); background: var(--cd-surface); }
body.world-map-page .country-selector-panel { background: var(--cd-surface); border-color: var(--cd-line); border-radius: 0 0 var(--cd-radius-lg) var(--cd-radius-lg); }
body.concrete-page {
  --concrete-ink: var(--cd-ink); --concrete-muted: var(--cd-muted);
  --concrete-line: var(--cd-line); --concrete-paper: var(--cd-surface);
  --concrete-soft: var(--cd-canvas); --concrete-accent: var(--cd-accent);
  --concrete-deep: var(--cd-accent-hover); background: var(--cd-canvas);
}
body.fishing-page {
  --fish-ink: var(--cd-ink); --fish-muted: var(--cd-muted);
  --fish-line: var(--cd-line); --fish-paper: var(--cd-surface);
  --fish-soft: var(--cd-accent-soft); --fish-accent: var(--cd-accent);
  --fish-deep: var(--cd-accent-hover); background: var(--cd-canvas);
}
body.pool-page {
  --ink: var(--cd-ink); --muted: var(--cd-muted); --line: var(--cd-line);
  --paper: var(--cd-surface); --soft: var(--cd-canvas); --green: var(--cd-accent);
  --green-dark: var(--cd-accent-hover); --green-light: var(--cd-accent-soft);
  --shadow: var(--cd-shadow);
}
body.preflight-page {
  --background: var(--cd-canvas); --surface: var(--cd-surface);
  --surface-2: var(--cd-inset); --text: var(--cd-ink);
  --muted: var(--cd-muted); --border: var(--cd-line);
  --control: var(--cd-line-strong); --primary: var(--cd-accent);
  --primary-hover: var(--cd-accent-hover); --success: var(--cd-success);
  --success-bg: var(--cd-success-soft); --warning: var(--cd-warning);
  --warning-bg: var(--cd-warning-soft); --danger: var(--cd-danger);
  --danger-bg: var(--cd-danger-soft); --info: var(--cd-info);
  --info-bg: var(--cd-info-soft);
}
body.township-page {
  --ink: var(--cd-ink); --muted: var(--cd-muted); --line: var(--cd-line);
  --paper: var(--cd-surface); --soft: var(--cd-canvas); --green: var(--cd-accent);
}
body.pool-page .result-panel, body.township-page .result {
  background: var(--cd-surface);
}
body.preflight-page .app-header { height: 62px; }
body.preflight-page .brand, body.preflight-page .app-name { color: var(--cd-ink); }
body.preflight-page .tab, body.preflight-page .header-right a { color: var(--cd-muted); }
body.preflight-page .tab.on { color: var(--cd-accent); border-color: var(--cd-accent); }
body.preflight-page .panel { padding: clamp(18px, 3vw, 30px); }
body.preflight-page .mapping-table select { min-height: 34px; }
body.township-page .result { box-shadow: none; }
body.township-page .hero h1 { font-weight: 650; }
@media (max-width: 760px) {
  .cd-wrap { width: min(var(--cd-width), calc(100% - 32px)); }
  .cd-header { height: auto; min-height: 58px; }
  .cd-header-inner { gap: 12px; }
  .cd-intro { padding: 56px 0 30px; }
  .cd-intro h1 { font-size: clamp(36px, 9vw, 48px); }
  .cd-tool-grid { grid-template-columns: 1fr; }
  .cd-dialog-hint { display: none; }
  body.world-map-page :is(.topbar,.toolbar,.country-selector-panel),
  body.concrete-page :is(.topbar,.calculator-card,.result-card),
  body.fishing-page :is(.topbar,.location-panel,.primary-window-card),
  body.pool-page :is(.topbar,.surface,.result-panel),
  body.preflight-page :is(.app-header,.panel,.issue-card),
  body.township-page :is(header,.result,.manual) {
    border-radius: var(--cd-radius);
  }
}

/* Shared icon treatment, control sizing, and state colours. */
body.concrete-page .tool-menu-icon, body.fishing-page .tool-menu-icon,
body.world-map-page .tool-menu-icon {
  width: 28px; height: 28px; border: 1px solid var(--cd-line);
  border-radius: var(--cd-radius-sm); background: var(--cd-accent-soft);
  color: var(--cd-accent); font-size: 14px; font-weight: 600;
}
body.concrete-page .tool-menu-icon.fishing-icon,
body.fishing-page .tool-menu-icon.fishing-icon,
body.world-map-page .tool-menu-icon.fishing-icon,
body.concrete-page .tool-menu-icon.concrete-icon {
  background: var(--cd-accent-soft); color: var(--cd-accent);
  font-size: 14px; font-weight: 600;
}
body.concrete-page :is(.primary-button,.save-button,.secondary-button,.danger-button),
body.pool-page :is(.primary-button,.save-button,.secondary-button,.danger-button),
body.fishing-page :is(.button,.checkin-button,.unsave-button,.secondary-button),
body.world-map-page :is(.button,.workspace-actions button,.toolbar button),
body.township-page :is(button,.find),
body.preflight-page :is(button,.primary,.secondary) {
  border-radius: var(--cd-radius-sm);
}
body.concrete-page .secondary-button, body.fishing-page .secondary-button,
body.fishing-page .checkin-button, body.pool-page .secondary-button,
body.preflight-page .secondary, body.township-page .manual-toggle,
body.township-page .action button {
  min-height: var(--cd-control); padding: 8px 12px; font-weight: 600;
}
body.concrete-page .calculator-card :is(select,input[type=number]),
body.concrete-page .quote-box input,
body.fishing-page .location-controls input,
body.fishing-page .alert-form :is(input,select),
body.pool-page .field-grid :is(input,select),
body.pool-page .profile-form :is(input,select),
body.township-page :is(.text-input,.state,.manual input,.manual select),
body.preflight-page :is(input,select) {
  min-height: var(--cd-control);
}
body.concrete-page :is(.field-label,.calculator-card label>span,.control-heading>span),
body.fishing-page :is(.section-kicker,.location-controls label,.alert-signup label),
body.world-map-page .tool-label, body.world-map-page .group-title,
body.pool-page :is(.field-grid label,.chemical-field label),
body.preflight-page :is(label,.field-label),
body.township-page :is(label,.eyebrow) {
  color: var(--cd-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
}
body.fishing-page .forecast-error, body.pool-page .form-error,
body.preflight-page .error, body.preflight-page .banner.error {
  border-color: var(--cd-danger);
  background: var(--cd-danger-soft);
  color: var(--cd-danger);
}
body.fishing-page .forecast-loading, body.fishing-page .empty-state {
  border-color: var(--cd-line);
  background: var(--cd-surface);
  color: var(--cd-muted);
}
body.fishing-page .empty-mark {
  border-radius: var(--cd-radius-lg);
  background: var(--cd-accent-soft);
  color: var(--cd-accent);
}
body.preflight-page .issue-card.blocking { border-left-color: var(--cd-danger); }
body.preflight-page .issue-card.review { border-left-color: var(--cd-warning); }
body.preflight-page .issue-card.success { border-left-color: var(--cd-success); }
body.township-page .notice { background: var(--cd-warning-soft); color: var(--cd-warning); }
body.township-page .result :is(.action,.source) { color: var(--cd-muted); }

/* Final shell refinements: keep editor geometry while removing legacy chrome. */
body.world-map-page .top-actions .button.primary {
  border-color: var(--cd-accent);
  border-radius: var(--cd-radius-sm);
  background: var(--cd-accent);
  box-shadow: none;
}
body.world-map-page .tool-frame {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius-lg);
  box-shadow: none;
}
body.world-map-page .canvas-wrap {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius);
  box-shadow: none;
}
body.world-map-page :is(.workspace-head,.canvas-badge,.zoom-controls,.canvas-status) {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius-sm);
  box-shadow: var(--cd-shadow);
  backdrop-filter: none;
}
body.world-map-page .toolbar { border-radius: 0; }
body.world-map-page .country-selector-panel { box-shadow: none; }
body.pool-page .hero, body.township-page .hero {
  background: var(--cd-canvas);
  border-color: var(--cd-line);
}
body.pool-page .hero-volume {
  border-color: var(--cd-line);
  border-radius: var(--cd-radius-lg);
  background: var(--cd-surface);
  box-shadow: none;
}
body.pool-page .result-panel { border-color: var(--cd-line); }
body.township-page .hero { border-bottom: 1px solid var(--cd-line); }

/* Tools + Intelligence architecture */
.cd-platform-intro { padding-top: clamp(56px, 8vw, 94px); padding-bottom: 26px; }
.cd-overline,.cd-area-label { display:block; color:var(--cd-accent); font-size:12px; font-weight:700; letter-spacing:.12em; }
.cd-platform-intro .cd-overline { margin:0 0 18px; }
.cd-platform-intro h1 { max-width:900px; font-size:clamp(38px,6vw,68px); font-weight:620; line-height:1.06; letter-spacing:-.055em; }
.cd-platform-intro h1 span { color:#6f7c73; }
.cd-platform-intro > p:not(.cd-overline) { max-width:650px; margin:20px 0 0; font-size:18px; color:var(--cd-muted); line-height:1.55; }
.cd-home-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:25px; }
.cd-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 16px; border:1px solid var(--cd-line-strong); border-radius:6px; color:var(--cd-ink)!important; background:#fff; font-size:14px; font-weight:650; text-decoration:none; }
.cd-button:hover { background:var(--cd-inset); }
.cd-button-primary { border-color:var(--cd-accent); background:var(--cd-accent); color:#fff!important; }
.cd-button-primary:hover { background:var(--cd-accent-hover); }
.cd-button:focus-visible,.cd-area-card:focus-visible { outline:3px solid var(--cd-focus); outline-offset:3px; }
.cd-areas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:20px; }
.cd-area-card { display:flex; flex-direction:column; min-height:230px; padding:24px; border:1px solid var(--cd-line); border-radius:var(--cd-radius-lg); color:var(--cd-ink)!important; text-decoration:none; transition:border-color .15s ease,background-color .15s ease; }
.cd-area-card:hover { border-color:var(--cd-line-strong); background:#fbfcfb; }
.cd-area-card h2 { margin:32px 0 7px; font-size:22px; line-height:1.2; letter-spacing:-.035em; }
.cd-area-card p { max-width:430px; margin:0 0 20px; color:var(--cd-muted); font-size:15px; }
.cd-area-link { margin-top:auto; color:var(--cd-accent); font-size:14px; font-weight:650; }
.cd-area-intelligence { background:#f7faf8; }
.cd-section-heading { margin-bottom:3px; }
.cd-editorial { padding-top:48px; padding-bottom:80px; }
.cd-editorial > .cd-overline { margin:0 0 20px; }
.cd-editorial-hero { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(220px,.75fr); align-items:end; gap:40px; padding:12px 0 50px; border-bottom:1px solid var(--cd-line); }
.cd-editorial-hero h1 { max-width:780px; margin:0; font-size:clamp(38px,6vw,64px); font-weight:620; line-height:1.05; letter-spacing:-.055em; }
.cd-editorial-hero h1 span { color:#6f7c73; }
.cd-editorial-hero > div > p:not(.cd-status) { max-width:700px; margin:18px 0 24px; color:var(--cd-muted); font-size:18px; line-height:1.6; }
.cd-editorial-note { padding:20px; border-left:2px solid var(--cd-accent); background:#f7faf8; }
.cd-editorial-note span { color:var(--cd-accent); font-size:11px; font-weight:700; letter-spacing:.12em; }
.cd-editorial-note p { margin:12px 0 0; font-size:16px; line-height:1.55; }
.cd-timeline { margin-top:40px; }
.cd-timeline-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 28px; }
.cd-timeline-grid article { display:flex; flex-direction:column; min-height:195px; padding:22px 0; border-bottom:1px solid var(--cd-line); }
.cd-step { color:var(--cd-accent); font:600 12px/1 var(--cd-mono); }
.cd-timeline-grid h3,.cd-pricing-grid h2 { margin:22px 0 8px; font-size:18px; font-weight:650; letter-spacing:-.025em; }
.cd-timeline-grid article p { margin:0; color:var(--cd-muted); font-size:15px; line-height:1.6; }
.cd-status { display:inline-block; width:fit-content; margin-top:auto; padding-top:15px; color:var(--cd-subtle); font-size:12px; font-weight:600; }
.cd-status-outline { margin:0 0 18px; padding:7px 10px; border:1px solid var(--cd-line-strong); border-radius:4px; color:var(--cd-muted); }
.cd-disclosure { max-width:820px; margin-top:38px; padding:20px 22px; border:1px solid var(--cd-line); border-radius:var(--cd-radius); background:#fafbfa; }
.cd-disclosure strong { font-size:14px; }
.cd-disclosure p { margin:6px 0 0; color:var(--cd-muted); font-size:14px; line-height:1.6; }
.cd-backlink { margin-top:26px; }
.cd-backlink a { color:var(--cd-accent); font-size:14px; font-weight:600; text-decoration:none; }
.cd-pricing-hero { grid-template-columns:1fr; padding-bottom:34px; }
.cd-pricing-hero h1 { max-width:720px; }
.cd-pricing-hero > div > p { margin:16px 0 0; color:var(--cd-muted); font-size:18px; }
.cd-pricing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.cd-pricing-grid article { min-height:220px; padding:24px; border:1px solid var(--cd-line); border-radius:var(--cd-radius-lg); }
.cd-pricing-grid .cd-area-label { font-size:11px; }
.cd-pricing-grid h2 { margin:26px 0 8px; font-size:21px; }
.cd-pricing-grid .cd-area-link { display:inline-block; margin-top:22px; text-decoration:none; }
@media(max-width:720px) {
 .cd-platform-intro { padding-top:50px; }
 .cd-platform-intro > p:not(.cd-overline) { font-size:16px; }
 .cd-areas { grid-template-columns:1fr; gap:12px; }
 .cd-area-card { min-height:200px; padding:20px; }
 .cd-area-card h2 { margin-top:25px; }
 .cd-editorial { padding-top:34px; }
 .cd-editorial-hero { grid-template-columns:1fr; gap:22px; padding-bottom:34px; }
 .cd-editorial-hero > div > p:not(.cd-status) { font-size:16px; }
 .cd-timeline-grid,.cd-pricing-grid { grid-template-columns:1fr; gap:0; }
 .cd-timeline-grid article { min-height:unset; padding:20px 0; }
 .cd-timeline-grid h3 { margin-top:14px; }
 .cd-status { padding-top:10px; }
 .cd-pricing-grid article { min-height:unset; }
 .cd-footer-inner { align-items:flex-start; }
}

@media(max-width:680px){.cd-footer nav{flex-wrap:wrap}}


/* ChaseDesk clarity rebuild 2026-10-01 */
.cd-home-routing{max-width:900px}
.cd-home-routing .cd-platform-intro{padding-top:64px;padding-bottom:8px}
.cd-home-routing .cd-platform-intro h1{max-width:780px;font-size:clamp(40px,6vw,62px)}
.cd-home-routing .cd-platform-intro>p:not(.cd-overline){margin-top:14px;font-size:16px}
.cd-home-routing .cd-areas{margin-top:24px;margin-bottom:68px}
.cd-home-routing .cd-area-card{min-height:220px}
.cd-directory-list .cd-tool::after{content:"Open tool →";display:block;margin-top:10px;color:var(--cd-accent);font-size:11px;font-weight:700}
.cd-pricing-price{margin-top:18px;font-size:25px;font-weight:700;letter-spacing:-.035em}
.cd-pricing-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px}
.cd-pricing-actions .cd-area-link{margin-top:0}
@media(max-width:720px){.cd-home-routing .cd-platform-intro{padding-top:44px}.cd-home-routing .cd-areas{margin-top:18px;margin-bottom:48px}.cd-home-routing .cd-area-card{min-height:180px}.cd-pricing-actions{align-items:flex-start}}

/* ChaseDesk energy surplus rebuild 2026-10-01 */
:root{--cd-width:1180px}
.cd-global-header{position:sticky;top:0;z-index:30;height:64px;background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
.cd-global-header .cd-header-inner{gap:22px}
.cd-global-header .cd-nav{gap:8px}
.cd-global-header .cd-nav a{padding:8px 10px;border-radius:6px;font-size:12px;font-weight:620}
.cd-global-header .cd-nav a:hover{background:var(--cd-inset);color:var(--cd-ink)}
.cd-global-header .cd-nav a[aria-current=page]{color:var(--cd-accent)}
.cd-global-header .cd-nav .cd-nav-subscribe{padding:9px 13px;background:var(--cd-accent);color:#fff!important}
.cd-global-header .cd-nav .cd-nav-subscribe:hover{background:var(--cd-accent-hover);color:#fff!important}
.cd-energy-home{padding-bottom:46px}
.cd-home-hero-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(460px,1.08fr);gap:48px;align-items:start;padding:48px 0 28px}
.cd-context-line,.cd-section-label{color:var(--cd-accent);font-size:11px;font-weight:720;letter-spacing:.04em}
.cd-home-product h1{max-width:610px;margin:10px 0 12px;font-size:clamp(42px,5.3vw,62px);font-weight:680;line-height:1.01;letter-spacing:-.055em}
.cd-home-lede,.cd-product-audience{max-width:620px;margin:0;color:var(--cd-muted);font-size:18px;line-height:1.5}
.cd-home-price{display:flex;align-items:center;gap:14px;margin-top:20px}
.cd-home-price span{padding-right:14px;border-right:1px solid var(--cd-line-strong);color:var(--cd-muted);font-size:13px}
.cd-home-price strong{font-size:25px;letter-spacing:-.035em}
.cd-inline-signin{display:inline-block;margin-top:13px;color:var(--cd-accent)!important;font-size:12px;font-weight:650;text-decoration:none}
.cd-monitor-line{max-width:630px;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--cd-line);color:var(--cd-muted);font-size:13px;line-height:1.55}
.cd-home-evidence{padding:20px;border:1px solid var(--cd-line);border-radius:12px;background:var(--cd-surface)}
.cd-evidence-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:8px}
.cd-evidence-heading span{color:var(--cd-muted);font-size:11px}
.cd-evidence-heading h2{margin:2px 0 0;font-size:20px;letter-spacing:-.025em}
.cd-evidence-heading>a{flex:none;color:var(--cd-accent)!important;font-size:11px;font-weight:650;text-decoration:none}
.cd-home-example-list{display:grid}
.cd-opportunity-card{display:block;padding:17px;border:1px solid var(--cd-line);border-radius:10px;background:#fff;color:var(--cd-ink)!important;text-decoration:none;transition:border-color .15s ease,transform .15s ease,background .15s ease}
.cd-opportunity-card:hover{border-color:var(--cd-line-strong);background:#fbfcfb;transform:translateY(-1px)}
.cd-home-example-list .cd-opportunity-card{border:0;border-top:1px solid var(--cd-line);border-radius:0;padding:13px 0}
.cd-home-example-list .cd-opportunity-card:first-child{border-top:0}
.cd-opportunity-top,.cd-opportunity-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cd-opportunity-top>span:first-child{color:var(--cd-subtle);font-size:9px;font-weight:700;letter-spacing:.055em}
.cd-sitework{flex:none;font-size:9px;font-weight:760;letter-spacing:.04em}
.cd-sitework.high{color:#16633f}.cd-sitework.medium{color:#865500}
.cd-opportunity-card h3{margin:7px 0 5px;font-size:16px;line-height:1.22;letter-spacing:-.025em}
.cd-opportunity-card p{margin:0;color:var(--cd-muted);font-size:12px;line-height:1.48}
.cd-opportunity-bottom{margin-top:9px;color:var(--cd-subtle);font-size:10px;font-weight:620}
.cd-opportunity-bottom span:last-child{color:var(--cd-accent)}
.cd-home-example-list .cd-opportunity-card p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cd-trust-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:4px;border-top:1px solid var(--cd-line);border-bottom:1px solid var(--cd-line)}
.cd-trust-strip>div{padding:16px 18px;border-left:1px solid var(--cd-line)}
.cd-trust-strip>div:first-child{border-left:0;padding-left:0}
.cd-trust-strip strong{display:block;font-size:17px;letter-spacing:-.02em}
.cd-trust-strip span{display:block;margin-top:2px;color:var(--cd-muted);font-size:10px}
.cd-directory-main{padding-top:38px}
.cd-directory-title h1{font-size:42px}
.cd-directory-title p{margin-top:5px}
@media(max-width:760px){
  :root{--cd-width:100%}
  .cd-wrap{width:calc(100% - 30px)}
  .cd-global-header{height:58px}
  .cd-global-header .cd-menu-button{display:block;margin-left:auto;font-size:12px;font-weight:650}
  .cd-global-header .cd-nav{display:none;position:absolute;top:57px;left:0;right:0;z-index:40;padding:10px 15px 14px;background:#fff;border-bottom:1px solid var(--cd-line)}
  .cd-global-header .cd-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:2px}
  .cd-global-header .cd-nav a{padding:11px 12px;font-size:13px}
  .cd-global-header .cd-nav .cd-nav-subscribe{text-align:center;margin-top:4px}
  .cd-home-hero-grid{grid-template-columns:1fr;gap:24px;padding:32px 0 22px}
  .cd-home-product h1{font-size:42px}
  .cd-home-lede,.cd-product-audience{font-size:16px}
  .cd-home-price{margin-top:16px}
  .cd-product-actions{display:grid;grid-template-columns:1fr;gap:8px}
  .cd-product-actions .cd-button{width:100%}
  .cd-monitor-line{margin-top:18px;padding-top:15px}
  .cd-home-evidence{padding:15px}
  .cd-evidence-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .cd-home-example-list .cd-opportunity-card:nth-child(n+3){display:none}
  .cd-trust-strip{grid-template-columns:repeat(2,1fr)}
  .cd-trust-strip>div{padding:13px 12px;border-top:1px solid var(--cd-line)}
  .cd-trust-strip>div:nth-child(odd){border-left:0;padding-left:0}
  .cd-trust-strip>div:nth-child(-n+2){border-top:0}
}
