:root{
  --navy:#062f5d;
  --navy-2:#084b7d;
  --blue:#0b67c7;
  --blue-2:#e8f3ff;
  --green:#2f9f59;
  --red:#dc3545;
  --orange:#f08a1c;
  --purple:#8f3fd1;
  --ink:#10243a;
  --muted:#617488;
  --line:#dfe7f0;
  --bg:#f2f7fb;
  --card:#ffffff;
  --shadow:0 16px 36px rgba(7,40,75,.12);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:linear-gradient(180deg,#eef6fc 0,#f7fbff 45%,#eef6fc 100%);color:var(--ink);font:16px/1.45 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}.skip-link{position:absolute;left:-999px;top:8px;background:#fff;padding:8px 12px;border-radius:8px;z-index:999}.skip-link:focus{left:8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.site-header{background:linear-gradient(90deg,#052a55,#063b71);color:#fff;position:sticky;top:0;z-index:50;box-shadow:0 10px 24px rgba(0,20,50,.18)}
.header-inner{max-width:1280px;margin:auto;display:flex;align-items:center;gap:28px;padding:16px 22px}.brand{min-width:245px}.brand-title{font:800 34px/1.05 Georgia,serif;letter-spacing:-.5px;display:block}.brand-subtitle{display:block;font-size:13px;font-weight:700;opacity:.95}.main-nav{display:flex;gap:22px;align-items:center;flex:1}.main-nav a{font-weight:700;opacity:.92;padding:10px 0;border-bottom:3px solid transparent}.main-nav a.active,.main-nav a:hover{opacity:1;text-decoration:none;border-color:#fff}.mode-buttons{display:flex;gap:10px}.mode-button{border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;padding:10px 14px;border-radius:10px;font-weight:800;white-space:nowrap}.mode-button.local{background:linear-gradient(180deg,#338c4a,#20713c)}.mobile-menu-button{display:none;background:transparent;border:0;width:42px;height:38px;gap:6px;flex-direction:column;justify-content:center}.mobile-menu-button span:not(.sr-only){height:3px;background:#fff;border-radius:3px;display:block}
.hero-shell{max-width:1280px;margin:0 auto;padding:18px 12px 0;border-radius:0 0 24px 24px;position:relative}.hero-shell:before{content:"";position:absolute;inset:0 12px;background:linear-gradient(180deg,rgba(4,48,89,.20),rgba(3,50,95,.78)),url("../img/schuyler-now-hero.jpg") center 44%/cover no-repeat;border-radius:0 0 24px 24px;z-index:-1;overflow:hidden}.hero-shell:after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:64%;background:linear-gradient(180deg,transparent,rgba(8,31,57,.38));z-index:-1;border-radius:0 0 24px 24px}.search-wrap{max-width:650px;margin:0 auto 24px}.site-search{width:100%;height:56px;border:0;border-radius:16px;padding:0 22px 0 52px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='none' stroke='%23556778' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4-4'/%3E%3C/svg%3E") 18px center/22px no-repeat;font-weight:700;color:var(--ink);box-shadow:0 10px 24px rgba(0,26,63,.18)}.hero-content{display:grid;grid-template-columns:1fr 280px;gap:28px;padding:0 28px 28px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:#d9ebff;font-weight:900;margin:0 0 6px}.hero-main h1{color:#fff;font-size:46px;line-height:1.05;margin:0 0 22px;letter-spacing:-1px}.status-grid{display:grid;grid-template-columns:repeat(5,minmax(116px,1fr));gap:14px}.status-card{background:rgba(255,255,255,.96);border:1px solid rgba(255,255,255,.4);box-shadow:var(--shadow);border-radius:12px;padding:14px 14px 12px;display:grid;grid-template-columns:36px 1fr;grid-template-areas:"icon num" "icon label" "icon link";align-items:center;min-height:108px}.status-icon{grid-area:icon;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:#fff}.status-card strong{grid-area:num;font-size:32px;line-height:1}.status-card span:not(.status-icon){grid-area:label;font-size:13px;font-weight:900}.status-card a{grid-area:link;color:var(--blue);font-size:12px;font-weight:800;text-decoration:underline}.status-card.danger .status-icon{background:var(--red)}.status-card.warning .status-icon{background:#f4b027}.status-card.ok .status-icon{background:var(--green)}.status-card.weather .status-icon{background:var(--blue)}.status-card.events .status-icon{background:var(--purple)}.hero-actions{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:14px;margin-top:18px}.action-button{border-radius:11px;color:#fff;font-weight:900;text-align:center;padding:14px 16px;box-shadow:0 8px 18px rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.36)}.action-button:hover{text-decoration:none;filter:brightness(1.05)}.sirens{background:linear-gradient(180deg,#ef3b48,#c82335)}.near{background:linear-gradient(180deg,#1879db,#0a58b4)}.storm{background:linear-gradient(180deg,#3d4146,#22272d)}.pulse-card{align-self:end;background:rgba(4,32,66,.92);border:1px solid rgba(255,255,255,.24);box-shadow:var(--shadow);border-radius:18px;color:#fff;padding:18px}.pulse-title{display:flex;align-items:center;justify-content:space-between}.info-dot{border:2px solid rgba(255,255,255,.72);border-radius:50%;width:22px;height:22px;text-align:center;font-size:13px;font-weight:900}.sparkline{color:#64da56;width:100%;height:68px;margin:10px 0}.pulse-card p{margin:0;color:#d9ebff;font-weight:600}
.dashboard-shell{max-width:1280px;margin:14px auto 0;padding:0 12px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 28px rgba(8,46,82,.08);overflow:hidden}.primary-grid{display:grid;grid-template-columns:minmax(300px,430px) 1fr;gap:14px}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 8px}.card h2{font-size:19px;line-height:1.2;margin:0;color:#083565}.updated{font-size:12px;color:var(--muted);font-weight:700}.live-badge,.alert-pill,.live-green{font-size:11px;padding:4px 7px;border-radius:7px;color:#fff;background:var(--red);vertical-align:middle;margin-left:6px}.live-green{background:#37a653}.incident-list{padding:0 18px}.incident-item{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;border-top:1px solid var(--line);padding:14px 0}.incident-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:20px}.incident-title{font-weight:900}.incident-location{font-size:13px;color:var(--muted);font-weight:600}.incident-time{text-align:right;font-size:12px;color:var(--muted);font-weight:800}.badge{display:block;margin-top:6px;color:#fff;border-radius:12px;padding:3px 8px;font-size:11px}.badge.red{background:var(--red)}.badge.blue{background:var(--blue)}.badge.orange{background:var(--orange)}.badge.purple{background:var(--purple)}.icon-red{background:var(--red)}.icon-blue{background:var(--blue)}.icon-orange{background:var(--orange)}.icon-purple{background:var(--purple)}.card-link{display:inline-block;color:var(--blue);font-weight:900;font-size:14px;padding:12px 18px 16px}.card-link.right{float:right}.map-heading{align-items:flex-start}.map-toggles{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.chip{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 9px;font-size:12px;font-weight:800}.chip.safety{color:var(--red)}.chip.roads{color:var(--orange)}.chip.weather{color:var(--blue)}.chip.outages{color:var(--green)}.chip.events{color:var(--purple)}.fake-map{position:relative;height:320px;margin:0 18px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f3f4ed}.fake-map svg{position:absolute;inset:0;width:100%;height:100%}.map-marker{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;border:4px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.25)}.map-marker.fire{background:var(--red)}.map-marker.ems{background:var(--blue)}.map-marker.road{background:var(--orange)}.map-marker.weather{background:#1675d1}.map-marker.outage{background:var(--green)}.map-marker.event{background:var(--purple)}.map-marker.alert{background:#ffbd2e}.map-controls{position:absolute;right:10px;bottom:10px;display:grid;border:1px solid var(--line);border-radius:9px;overflow:hidden}.map-controls button{width:34px;height:32px;background:#fff;border:0;border-bottom:1px solid var(--line);font-weight:900}.map-controls button:last-child{border-bottom:0}.card-grid{display:grid;gap:14px;margin-top:14px}.card-grid.four{grid-template-columns:repeat(4,1fr)}.compact-card{padding:16px 18px}.compact-card .card-heading{padding:0 0 10px}.mini-list,.news-list,.schedule-list,.chevron-list{display:grid;gap:0;margin-top:10px}.mini-item,.news-item,.schedule-item,.chevron-item{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:2px}.mini-item:first-child,.news-item:first-child,.schedule-item:first-child,.chevron-item:first-child{border-top:0}.mini-title,.news-title,.event-title,.chevron-title{font-weight:900}.mini-sub,.news-source,.event-location,.chevron-sub{font-size:13px;color:var(--muted);font-weight:650}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}.dot.orange{background:var(--orange)}.dot.yellow{background:#f4b027}.weather-card p{font-weight:650;color:#31465b}.radar-preview{height:112px;border-radius:12px;background:radial-gradient(circle at 12% 60%,rgba(255,64,48,.85) 0 10%,transparent 17%),radial-gradient(circle at 24% 45%,rgba(255,197,41,.9) 0 18%,transparent 28%),radial-gradient(circle at 36% 55%,rgba(75,190,85,.85) 0 26%,transparent 38%),linear-gradient(135deg,#11476c,#2c7b72 45%,#1c4e67);position:relative;overflow:hidden}.radar-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px}.weather-stats{display:flex;gap:12px;flex-wrap:wrap;font-size:14px}.outage-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:14px}.outage-table th{text-align:left;color:var(--muted);font-size:12px}.outage-table td,.outage-table th{border-bottom:1px solid var(--line);padding:8px 4px}.news-item{grid-template-columns:70px 1fr;gap:10px}.news-thumb{width:70px;height:54px;border-radius:9px;background:linear-gradient(135deg,#d6e8ef,#6b94ac);overflow:hidden}.news-thumb.storm{background:radial-gradient(circle at 40% 30%,#fff 0 5%,transparent 6%),linear-gradient(135deg,#063a75,#1b85bd 48%,#0a1930)}.news-thumb.school{background:linear-gradient(135deg,#b17b4d,#eee3cd)}.subhead{color:var(--blue);font-weight:900}.check-list{padding:0;margin:12px 0;list-style:none}.check-list li{padding:5px 0;font-weight:700}.check-list li:before{content:"✓";color:var(--green);font-weight:900;margin-right:8px}.trend-list{margin:10px 0 0;padding-left:26px}.trend-list li{padding:10px 0;border-top:1px solid var(--line);font-weight:900}.trend-list li:first-child{border-top:0}.trend-list span{display:block;color:var(--muted);font-size:13px;font-weight:700}.feature-row{display:grid;grid-template-columns:1.45fr 1fr;gap:14px;margin-top:14px}.explore-card{padding:16px 18px}.section-heading h2{font-size:24px}.section-heading p{margin:0;color:var(--muted);font-weight:800}.feature-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:14px}.feature-card{display:block;background:#f6f9fc;border:1px solid var(--line);border-radius:14px;padding:12px;color:var(--ink)}.feature-card:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 12px 24px rgba(8,46,82,.10)}.feature-art{height:104px;border-radius:12px;margin-bottom:12px;overflow:hidden}.mini-map-art{background:radial-gradient(circle at 25% 40%,#2f9f59 0 5px,transparent 6px),radial-gradient(circle at 70% 35%,#1675d1 0 5px,transparent 6px),radial-gradient(circle at 58% 72%,#2f9f59 0 5px,transparent 6px),linear-gradient(135deg,#d8ecf2,#edf7e4)}.gorge-art{background:radial-gradient(circle at 66% 18%,rgba(255,255,255,.9) 0 10%,transparent 11%),linear-gradient(125deg,#123d34 0 30%,#4d7e55 30% 50%,#182d24 50% 62%,#93c8d6 62% 70%,#153925 70%)}.pass-art{background:linear-gradient(135deg,#063866,#0b4b83);color:#fff;display:flex;align-items:center;justify-content:center;position:relative;text-align:center;letter-spacing:.08em}.pass-art strong{border:2px solid rgba(255,255,255,.7);padding:12px 18px;border-radius:5px}.pass-art em{position:absolute;right:10px;bottom:10px;background:#68bd42;border-radius:50%;width:64px;height:64px;display:grid;place-items:center;font-style:normal;font-size:12px;letter-spacing:0;line-height:1.1;font-weight:900}.feature-card h3{margin:0 0 4px;color:#083565}.feature-card p{margin:0 0 8px;color:var(--muted);font-weight:650}.feature-card span{color:var(--blue);font-weight:900}.webcam-card{padding:16px 18px}.webcam-card .card-heading{padding:0 0 10px}.webcam-preview{height:274px;border-radius:14px;overflow:hidden;position:relative;background:linear-gradient(180deg,#84c4ef 0 35%,#eaf4f9 36% 42%,#2e7eaa 43% 68%,#1f6e9e 68% 100%)}.webcam-preview:before{content:"";position:absolute;left:0;right:0;top:36%;height:26%;background:linear-gradient(90deg,#335d45,#819b67,#335d45);clip-path:polygon(0 35%,30% 2%,60% 25%,100% 7%,100% 100%,0 100%)}.dock{position:absolute;bottom:30px;height:12px;background:#46382c;box-shadow:0 5px 0 rgba(255,255,255,.25)}.dock.one{left:0;width:35%;transform:skewY(-8deg)}.dock.two{right:0;width:38%;transform:skewY(8deg)}.flagpole{position:absolute;right:24%;bottom:46px;width:4px;height:115px;background:#333}.flagpole span{position:absolute;top:8px;left:4px;width:42px;height:25px;background:linear-gradient(#c7313f 0 16%,#fff 16% 32%,#c7313f 32% 48%,#fff 48% 64%,#c7313f 64% 80%,#fff 80%);box-shadow:-14px 0 0 #24477c inset}.webcam-caption{display:flex;justify-content:space-between;color:var(--muted);font-weight:800;font-size:13px;margin-top:10px}.bottom-band{background:linear-gradient(90deg,#063866,#074c75);color:#fff;margin-top:14px}.bottom-grid{max-width:1280px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:26px;padding:24px}.bottom-grid article{border-left:1px solid rgba(255,255,255,.25);padding-left:24px}.bottom-grid article:first-child{border-left:0}.bottom-grid h2{font-size:18px;margin:0 0 12px}.bottom-grid a{display:flex;justify-content:space-between;gap:12px;padding:4px 0;color:#eef7ff;font-weight:700}.bottom-grid em,.bottom-grid small{color:#8ff29e;font-style:normal;font-size:12px}.bottom-grid small{color:#ffd166}.muted-link{color:#d4eafe!important;margin-top:6px}.site-footer{background:#04294e;color:#b9d2e9;text-align:center;padding:16px}.site-footer p{margin:0 0 6px}.site-footer nav{display:flex;justify-content:center;gap:18px;font-size:13px}
@media(max-width:1100px){.header-inner{flex-wrap:wrap}.main-nav{order:3;width:100%;justify-content:center}.hero-content{grid-template-columns:1fr}.pulse-card{max-width:420px}.status-grid{grid-template-columns:repeat(3,1fr)}.primary-grid,.feature-row{grid-template-columns:1fr}.card-grid.four{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.header-inner{gap:12px}.brand{min-width:0;flex:1}.brand-title{font-size:28px}.mobile-menu-button{display:flex}.main-nav{display:none;grid-template-columns:1fr 1fr;gap:8px;background:rgba(255,255,255,.08);border-radius:12px;padding:10px}.main-nav.open{display:grid}.mode-buttons{width:100%;justify-content:space-between}.mode-button{flex:1}.hero-content{padding:0 14px 18px}.hero-main h1{font-size:36px}.status-grid{grid-template-columns:1fr 1fr}.hero-actions{grid-template-columns:1fr}.primary-grid{gap:12px}.card-grid.four,.feature-cards,.bottom-grid{grid-template-columns:1fr}.fake-map{height:280px;margin:0 12px}.map-heading{display:block}.map-toggles{justify-content:flex-start;margin-top:10px}.bottom-grid article{border-left:0;border-top:1px solid rgba(255,255,255,.25);padding:16px 0 0}.bottom-grid article:first-child{border-top:0}.webcam-caption{display:block}.site-footer nav{flex-wrap:wrap}}

.source-note{margin:8px 0 0;color:var(--muted);font-size:13px;font-weight:700}.obituary-list{display:grid;gap:0;margin-top:8px}.obituary-item{border-top:1px solid var(--line);padding:11px 0;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start}.obituary-item:first-child{border-top:0}.obituary-name{font-weight:950;color:#083565}.obituary-meta{font-size:13px;color:var(--muted);font-weight:750}.obituary-service{font-size:13px;color:#31465b;font-weight:650;margin-top:2px}.obituary-source{text-align:right;font-size:12px;color:var(--blue);font-weight:900;white-space:nowrap}.obituary-source span{display:block;color:var(--muted);font-weight:750;margin-top:2px}@media(max-width:720px){.obituary-item{grid-template-columns:1fr}.obituary-source{text-align:left;white-space:normal}}


/* Community Billboard */
.community-board-card .subhead { margin-bottom: 12px; }
.community-list { display: grid; gap: 10px; }
.community-item {
  border: 1px solid #dfe8f3;
  border-radius: 14px;
  padding: 10px 11px;
  background: linear-gradient(180deg, #ffffff, #f8fbff);
}
.community-topline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 5px;
  font-size: 11px;
  font-weight: 900;
  color: #587089;
}
.community-category {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  background: #edf5ff;
  color: #0b67c7;
}
.community-category.pet { background: #fff3df; color: #a15b00; }
.community-category.fundraiser { background: #eefcf3; color: #187342; }
.community-category.sale { background: #f2edff; color: #5b3cb5; }
.community-town { white-space: nowrap; }
.community-title { font-weight: 950; color: #12395f; line-height: 1.2; }
.community-sub { margin-top: 3px; color: #61758b; font-size: 12px; line-height: 1.35; }
.notice-form-preview {
  margin-top: 18px;
  padding: 16px;
  border: 1px dashed #9eb7d4;
  border-radius: 16px;
  background: #f6fbff;
}
.notice-form-preview ul { margin: 8px 0 0 18px; color: #425c76; }

/* v005 real webcam embed */
.webcam-embed {
  position: relative;
  height: 274px;
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(135deg, #082e52, #0b67c7);
  border: 1px solid var(--line);
}
.webcam-iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
  z-index: 2;
}
.webcam-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 7px;
  padding: 20px;
  text-align: center;
  color: #fff;
  z-index: 1;
}
.webcam-fallback span { color: rgba(255,255,255,.82); font-size: 13px; font-weight: 700; }
.webcam-fallback a { color: #fff; font-weight: 900; text-decoration: underline; }
@media(max-width:720px){.webcam-embed{height:230px}}
.webcam-page-card{padding:22px}.webcam-large{height:min(70vh,620px);min-height:360px;margin:16px 0}


/* v006 Local/Tourist mode behavior */
.hero-subline {
  max-width: 760px;
  margin: -12px 0 18px;
  color: rgba(255,255,255,.92);
  font-weight: 800;
  text-shadow: 0 1px 8px rgba(0,0,0,.28);
}
.mode-hint {
  margin: 14px 0 0;
  display: inline-flex;
  align-items: center;
  max-width: 760px;
  border: 1px solid rgba(255,255,255,.32);
  border-radius: 999px;
  padding: 8px 13px;
  color: #eff8ff;
  background: rgba(5,35,67,.48);
  font-size: 13px;
  font-weight: 850;
  backdrop-filter: blur(8px);
}
.mode-button { cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.mode-button:hover { transform: translateY(-1px); }
.mode-button.active { box-shadow: 0 0 0 3px rgba(255,255,255,.18), 0 8px 18px rgba(0,0,0,.22); border-color: rgba(255,255,255,.72); }
.mode-button.tourist.active { background: linear-gradient(180deg,#1d7bd6,#075cb0); }
.mode-button.local.active { background: linear-gradient(180deg,#338c4a,#20713c); }
.dashboard-shell { display: flex; flex-direction: column; }
.dashboard-shell [data-section="scanner"] { order: 1; }
.dashboard-shell [data-section="daily"] { order: 2; }
.dashboard-shell [data-section="community"] { order: 3; }
.dashboard-shell [data-section="explore"] { order: 4; }
.tourist-quick-panel { display: none; order: 0; padding: 20px 22px; margin-bottom: 14px; grid-template-columns: 1.3fr 1fr; gap: 18px; align-items: center; background: linear-gradient(135deg,#ffffff,#f2f8ff); }
.tourist-quick-panel h2 { font-size: 26px; margin: 0 0 8px; }
.tourist-quick-panel p { margin: 0; color: #405a73; font-weight: 700; }
.eyebrow.blue { color: var(--blue); margin: 0 0 6px; text-shadow: none; }
.tourist-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tourist-actions a { display: block; border-radius: 12px; border: 1px solid #d7e4f2; padding: 12px; background: #fff; font-weight: 950; color: #075cb0; }
.tourist-actions a:hover { text-decoration: none; box-shadow: 0 8px 18px rgba(8,46,82,.10); }
body[data-mode="tourist"] .tourist-quick-panel { display: grid; }
body[data-mode="tourist"] .dashboard-shell [data-section="tourist-quick"] { order: 1; }
body[data-mode="tourist"] .dashboard-shell [data-section="explore"] { order: 2; }
body[data-mode="tourist"] .dashboard-shell [data-section="daily"] { order: 3; }
body[data-mode="tourist"] .dashboard-shell [data-section="scanner"] { order: 4; }
body[data-mode="tourist"] .dashboard-shell [data-section="community"] { order: 5; }
body[data-mode="tourist"] .weather-card { order: 1; }
body[data-mode="tourist"] .news-card { order: 2; }
body[data-mode="tourist"] .outages-card { order: 3; }
body[data-mode="tourist"] .obituary-card { order: 4; }
body[data-mode="tourist"] .events-card { order: 1; }
body[data-mode="tourist"] .community-board-card { order: 2; }
body[data-mode="tourist"] .blotter-card { order: 3; }
body[data-mode="tourist"] .overnight-card { order: 4; }
body[data-mode="local"] .tourist-quick-panel { display: none; }
/* v088: Today’s Schuyler Plan is a Tourist Mode-only homepage card. */
body[data-mode="local"] .daily-plan-card-home { display: none; }
body[data-mode="tourist"] .daily-plan-card-home { display: grid; order: 3; }
body[data-mode="tourist"] .dashboard-shell [data-section="daily"] { order: 4; }
body[data-mode="tourist"] .dashboard-shell [data-section="scanner"] { order: 5; }
body[data-mode="tourist"] .dashboard-shell [data-section="community"] { order: 6; }

@media(max-width:720px){
  .hero-subline{font-size:14px;margin-top:-6px}.mode-hint{border-radius:14px;line-height:1.35}.tourist-quick-panel{grid-template-columns:1fr}.tourist-actions{grid-template-columns:1fr}
}

/* v007 live weather + Doppler radar */
.chip.radar{color:#0b87a8;border-color:#b8e4ef;background:#f4fcff}.chip.radar.active{background:#dbf7ff;box-shadow:inset 0 0 0 1px #8fd8ec}.radar-overlay{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .25s ease;background:radial-gradient(circle at 25% 35%,rgba(35,170,92,.34) 0 7%,rgba(35,170,92,.10) 11%,transparent 18%),radial-gradient(circle at 55% 45%,rgba(255,204,58,.42) 0 7%,rgba(255,204,58,.18) 12%,transparent 23%),radial-gradient(circle at 72% 52%,rgba(224,66,66,.35) 0 4%,rgba(255,204,58,.22) 9%,rgba(35,170,92,.15) 18%,transparent 28%),linear-gradient(135deg,rgba(31,129,209,.08),rgba(31,188,122,.08));mix-blend-mode:multiply;animation:radarDrift 7s linear infinite}body.radar-on .radar-overlay{opacity:1}@keyframes radarDrift{0%{transform:translateX(-2%)}50%{transform:translateX(2%)}100%{transform:translateX(-2%)}}.live-radar-preview{position:relative}.live-radar-preview.radar-active:after{content:"";position:absolute;inset:0;opacity:.85;background:radial-gradient(circle at 18% 58%,rgba(44,179,87,.70) 0 10%,rgba(44,179,87,.22) 16%,transparent 25%),radial-gradient(circle at 62% 45%,rgba(249,210,67,.84) 0 9%,rgba(219,74,58,.58) 12%,rgba(44,179,87,.28) 21%,transparent 31%);mix-blend-mode:screen;animation:radarDrift 5.5s linear infinite}.radar-preview-toggle{position:absolute;right:10px;bottom:10px;z-index:2;border:0;border-radius:999px;background:rgba(4,41,78,.92);color:#fff;font-weight:900;font-size:12px;padding:8px 10px;box-shadow:0 8px 18px rgba(0,0,0,.18);cursor:pointer}.alert-pill.no-alerts{background:#37a653}.weather-card p{min-height:58px}.weather-page-shell{max-width:1180px;margin:24px auto;padding:0 12px}.weather-hero-card{padding:24px;margin-bottom:14px}.weather-hero-card h1{color:#083565;margin:0 0 8px;font-size:34px}.weather-hero-card p{color:#4b647d;font-weight:700;max-width:780px}.weather-map-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px}.weather-map-card{padding:16px}.weather-map-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;margin:0 0 12px}.weather-map-toolbar button{border:0;border-radius:11px;background:#0b67c7;color:#fff;font-weight:950;padding:11px 14px;cursor:pointer}.weather-map-toolbar button:disabled{background:#8ba6bf;cursor:not-allowed}.weather-map-meta{font-size:13px;color:#5f7488;font-weight:800}.weather-map{height:520px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#eaf3f9}.weather-side-card{padding:18px}.weather-side-card h2{margin-bottom:10px}.weather-side-card ul{margin:10px 0 0;padding-left:18px;color:#425c76;font-weight:700}.source-credit{font-size:12px;color:#667b8f;margin-top:12px;font-weight:700}@media(max-width:900px){.weather-map-grid{grid-template-columns:1fr}.weather-map{height:420px}}


/* v008 radar UX fix: homepage links to real radar; full weather page uses a real map */
.map-footer-links{display:flex;justify-content:flex-end;gap:16px;flex-wrap:wrap;padding:0 18px 14px}.radar-card-link{display:block;color:inherit;text-decoration:none}.radar-card-link:hover{text-decoration:none;filter:brightness(1.03)}.radar-card-link:before{content:"";position:absolute;inset:0;opacity:.78;background:radial-gradient(circle at 18% 58%,rgba(244,76,58,.82) 0 9%,rgba(244,76,58,.18) 14%,transparent 23%),radial-gradient(circle at 42% 42%,rgba(250,218,69,.85) 0 13%,rgba(250,218,69,.25) 20%,transparent 31%),radial-gradient(circle at 70% 38%,rgba(45,181,91,.68) 0 9%,rgba(45,181,91,.18) 16%,transparent 27%);mix-blend-mode:screen}.radar-card-link:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.12) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.12) 1px,transparent 1px);background-size:28px 28px}.radar-preview-label{position:absolute;left:12px;top:12px;z-index:2;color:#fff;font-size:12px;font-weight:950;text-shadow:0 1px 8px rgba(0,0,0,.35)}.radar-card-link strong{position:absolute;right:10px;bottom:10px;z-index:2;border-radius:999px;background:rgba(4,41,78,.94);color:#fff;font-weight:950;font-size:12px;padding:8px 10px;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.weather-card p{min-height:0}.fake-map .radar-overlay{display:none!important}
/* Minimal Leaflet support rules bundled locally in case CDN CSS fails or is blocked. */
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane > svg,.leaflet-pane > canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden;touch-action:pan-x pan-y;background:#ddd;outline-offset:1px}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{user-select:none;-webkit-user-drag:none}.leaflet-tile{filter:inherit;visibility:hidden;border:0;max-width:none!important;max-height:none!important}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-animated{transform-origin:0 0}.leaflet-interactive{cursor:pointer}.leaflet-control{position:relative;z-index:800;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.35);border-radius:4px}.leaflet-bar a{background:#fff;border-bottom:1px solid #ccc;color:#000;display:block;text-align:center;text-decoration:none;width:26px;height:26px;line-height:26px;font:bold 18px Arial,sans-serif}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:0}.leaflet-control-attribution{background:rgba(255,255,255,.8);font-size:11px;padding:0 5px}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-popup-content{margin:13px 19px;line-height:1.4}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;transform:rotate(45deg);background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4)}

/* v011 obituary duplicate-control polish */
.obituary-source a{color:var(--blue);text-decoration:none}.obituary-source a:hover{text-decoration:underline}.obituary-also{font-size:12px;color:#6b7f93;font-weight:800;margin-top:4px}.obit-page-list{display:grid;gap:12px;margin:20px 0}.obit-page-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(8,46,82,.06)}.obit-page-item h2{margin:0 0 6px;color:#083565}.obit-page-meta{color:#5f7488;font-weight:800;margin-bottom:8px}.obit-policy{background:#f2f8ff;border:1px solid #cfe3f8;border-radius:16px;padding:16px;margin:18px 0}.obit-policy li{margin:7px 0}.obit-source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.obit-source-box{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.obit-source-box h3{margin:0 0 6px;color:#083565}@media(max-width:720px){.obit-source-grid{grid-template-columns:1fr}}

/* v012 official county alerts / RSS feed structure */
.county-alert-list{display:grid;gap:10px}.county-alert-list.compact{gap:7px}.county-alert-item{display:grid!important;grid-template-columns:auto 1fr;gap:9px;align-items:start;border-radius:12px;padding:10px 11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);text-decoration:none!important;color:inherit}.county-alert-item:hover{background:rgba(255,255,255,.14)}.county-alert-item strong{display:block;font-size:13px;line-height:1.25}.county-alert-item small{display:block;font-size:11px;opacity:.82;margin-top:2px}.county-alert-dot{width:10px;height:10px;border-radius:50%;margin-top:3px;background:#5fb2ff;box-shadow:0 0 0 3px rgba(95,178,255,.16)}.county-alert-item.emergency .county-alert-dot{background:#ff4d4d}.county-alert-item.health .county-alert-dot{background:#3cd080}.county-alert-item.road .county-alert-dot{background:#ffb52e}.county-alert-item.ok .county-alert-dot{background:#36c56b}.county-alert-item.info .county-alert-dot{background:#5fb2ff}.alerts-page-list{display:grid;gap:12px;margin:18px 0}.alerts-page-item{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(8,46,82,.06);display:grid;grid-template-columns:auto 1fr;gap:12px}.alerts-page-item .county-alert-dot{margin-top:6px}.alerts-page-item h2{margin:0 0 6px;color:#083565}.alerts-page-meta{color:#5f7488;font-weight:850;margin-bottom:7px}.alerts-page-summary{color:#405a73;font-weight:700}.source-table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);margin-top:14px}.source-table th,.source-table td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.source-table th{background:#f2f8ff;color:#083565}.source-table tr:last-child td{border-bottom:0}.source-table a{font-weight:900;color:var(--blue)}@media(max-width:720px){.source-table,.source-table tbody,.source-table tr,.source-table td,.source-table th{display:block}.source-table thead{display:none}.source-table tr{border-bottom:1px solid var(--line)}.source-table td{border-bottom:0;padding:8px 12px}.alerts-page-item{grid-template-columns:1fr}}


/* v013 local news feed structure */
.news-link-item{color:inherit;text-decoration:none;border-radius:12px;padding:10px 0}.news-link-item:hover{text-decoration:none;background:#f6f9fc}.news-also{font-size:12px;color:#6b7f93;font-weight:800;margin-top:3px}.news-thumb.community{background:linear-gradient(135deg,#93c58d,#eaf4dd)}.news-thumb.sports{background:linear-gradient(135deg,#1c6fb7,#dceeff)}.news-thumb.county{background:linear-gradient(135deg,#083565,#7ca6c9)}.news-thumb.tourism{background:linear-gradient(135deg,#0d6c5a,#c7eadf)}.news-policy{background:#f2f8ff;border:1px solid #cfe3f8;border-radius:16px;padding:16px;margin:18px 0}.news-policy li{margin:7px 0;color:#405a73;font-weight:700}.news-page-list{display:grid;gap:12px;margin:18px 0}.news-page-item{display:grid;grid-template-columns:90px 1fr;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(8,46,82,.06)}.news-page-item .news-thumb{width:90px;height:76px}.news-page-item h2{margin:2px 0 7px;color:#083565}.news-page-kicker{font-size:12px;color:#0b67c7;font-weight:950;text-transform:uppercase;letter-spacing:.04em}.news-page-item p{margin:0;color:#405a73;font-weight:700}.news-page-also{color:#6b7f93;font-size:13px;font-weight:850;margin-top:8px}@media(max-width:720px){.news-page-item{grid-template-columns:1fr}.news-page-item .news-thumb{width:100%;height:110px}}

/* v014 scanner bridge styles */
.incident-detail {
  margin-top: 5px;
  color: #5c6d7d;
  font-size: .88rem;
  line-height: 1.35;
}
.scanner-meta-line {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 8px;
}
.confidence-pill,
.scanner-audio-link {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: .76rem;
  font-weight: 800;
  text-decoration: none;
}
.confidence-pill {
  background: #eef6ff;
  color: #0b5aa6;
  border: 1px solid #c9def4;
}
.scanner-audio-link {
  background: #eefaf3;
  color: #12733a;
  border: 1px solid #c9ead4;
}
.scanner-audio-link.muted {
  background: #f4f6f8;
  color: #6d7a86;
  border-color: #dde4ea;
}
.overnight-headline {
  margin: 6px 0 10px;
  color: #27435f;
  font-weight: 800;
}
.page-shell {
  width: min(1180px, calc(100% - 32px));
  margin: 32px auto 70px;
}
.page-hero-card {
  background: linear-gradient(135deg, #ffffff 0%, #eef6ff 100%);
  border: 1px solid #dfe9f4;
  border-radius: 22px;
  padding: 28px;
  box-shadow: 0 14px 36px rgba(8, 46, 82, .09);
  margin-bottom: 22px;
}
.page-hero-card h1 {
  margin: 0 0 8px;
  color: #083565;
  font-size: clamp(2rem, 4vw, 3.2rem);
}
.page-hero-card p {
  color: #4b6074;
  line-height: 1.55;
  max-width: 860px;
}
.eyebrow {
  margin: 0 0 8px;
  color: #0b67c7;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .78rem;
  font-weight: 900;
}
.scanner-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 20px;
}
.scanner-full-card,
.scanner-side-card {
  padding: 22px;
}
.scanner-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 14px 0;
}
.scanner-stat-grid > div {
  background: #f4f8fc;
  border: 1px solid #dde8f4;
  border-radius: 16px;
  padding: 14px;
}
.scanner-stat-grid strong {
  display: block;
  font-size: 1.65rem;
  color: #083565;
}
.scanner-stat-grid span {
  color: #607589;
  font-size: .82rem;
  font-weight: 800;
}
.soft-rule {
  border: 0;
  border-top: 1px solid #e0e8f1;
  margin: 18px 0;
}
.check-list.large li {
  margin: 10px 0;
  font-size: 1.04rem;
}
@media (max-width: 860px) {
  .scanner-layout { grid-template-columns: 1fr; }
  .page-shell { width: min(100% - 20px, 1180px); }
}

/* v015 Community Billboard submission structure */
.card-actions { display:flex; flex-wrap:wrap; gap:4px; align-items:center; padding:0 8px 6px 0; }
.card-link.secondary { color:#0d6c5a; }
.community-category.jobs { background:#e8f3ff; color:#0b67c7; }
.community-category.youth { background:#fff0f7; color:#b02f74; }
.community-category.business { background:#edf8f4; color:#0d6c5a; }
.community-category.volunteer { background:#fff7db; color:#8a6100; }
.community-category.general { background:#eef3f8; color:#425c76; }
.community-footline { display:flex; justify-content:space-between; gap:8px; align-items:center; margin-top:8px; font-size:11px; color:#6b7f93; font-weight:850; }
.community-date { color:#0b67c7; white-space:nowrap; }
.community-contact { text-align:right; }
.page-shell { max-width:1100px; margin:24px auto; padding:0 14px; }
.page-hero { background:linear-gradient(135deg,#ffffff,#f2f8ff); border:1px solid var(--line); border-radius:22px; box-shadow:0 10px 28px rgba(8,46,82,.08); padding:28px; margin-bottom:18px; }
.page-hero.compact h1 { margin:4px 0 8px; color:#083565; font-size:42px; line-height:1.05; }
.page-hero p:not(.eyebrow) { color:#405a73; font-weight:700; max-width:850px; }
.eyebrow.blue { color:#0b67c7; }
.page-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.page-actions .action-button { display:inline-block; }
.notice-filter-row { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 18px; }
.notice-filter-row span { background:#fff; border:1px solid var(--line); border-radius:999px; padding:8px 11px; color:#405a73; font-size:13px; font-weight:900; box-shadow:0 6px 18px rgba(8,46,82,.05); }
.page-card { padding:8px 18px 18px; margin-bottom:18px; }
.community-page-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; padding:0 0 8px; }
.submit-card { padding:22px; }
.notice-submit-form { display:grid; gap:16px; }
.notice-submit-form label { display:grid; gap:7px; color:#083565; font-weight:950; }
.notice-submit-form input, .notice-submit-form select, .notice-submit-form textarea { width:100%; border:1px solid #cfddec; border-radius:12px; padding:12px 13px; font:inherit; font-weight:700; color:#10243a; background:#fff; }
.notice-submit-form textarea { resize:vertical; }
.notice-submit-form small { color:#6b7f93; font-size:12px; font-weight:750; }
.form-grid.two { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.checkbox-line { display:flex!important; grid-template-columns:auto 1fr!important; align-items:center; gap:10px!important; color:#405a73!important; }
.checkbox-line input { width:auto!important; }
.prototype-submit-note { background:#f6fbff; border:1px dashed #9eb7d4; border-radius:14px; padding:13px; color:#405a73; font-weight:750; }
.prototype-submit-note code { background:#e8f3ff; border-radius:6px; padding:2px 5px; }
.form-submit-button { border:0; cursor:pointer; justify-self:start; }
@media(max-width:720px){.community-page-list,.form-grid.two{grid-template-columns:1fr}.page-hero.compact h1{font-size:34px}.community-footline{display:block}.community-contact{text-align:left;margin-top:3px}}


/* v016 Storm Mode */
.storm-shell{max-width:1240px;margin:0 auto;padding:28px 18px 40px}.storm-hero{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px;align-items:center;padding:24px;margin-bottom:16px;background:linear-gradient(135deg,#ffffff,#eef7ff)}.storm-hero h1{font-size:42px;margin:4px 0 10px;color:#083565}.storm-hero p{color:#405a73;font-weight:750;max-width:780px}.storm-status{background:#083565;color:#fff;border-radius:18px;padding:18px;box-shadow:0 14px 34px rgba(8,53,101,.22)}.storm-status-label{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:#a9d2ff;font-weight:950}.storm-status strong{display:block;font-size:28px;margin:6px 0}.storm-status span:last-child{color:#d7ecff;font-weight:750}.storm-top-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(320px,.7fr);gap:16px;margin-bottom:16px}.storm-radar-card{min-width:0}.storm-live-cam-card{padding:16px}.storm-webcam{min-height:280px}.storm-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.storm-card{padding:18px;min-height:260px}.storm-mini-feed{display:grid;gap:8px;margin-top:10px}.storm-mini-item{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:13px;color:inherit;text-decoration:none;background:#f8fbff}.storm-mini-item strong{display:block;color:#083565}.storm-mini-item small{display:block;color:#60778c;font-weight:800;margin-top:2px}.storm-alert-list .county-alert-item{background:#f8fbff;color:#123;border-color:var(--line)}.storm-alert-list .county-alert-item:hover{background:#eef7ff}.storm-community-list .community-item:nth-child(n+3){display:none}@media(max-width:980px){.storm-hero,.storm-top-grid{grid-template-columns:1fr}.storm-grid{grid-template-columns:1fr 1fr}}@media(max-width:700px){.storm-grid{grid-template-columns:1fr}.storm-hero h1{font-size:34px}.storm-shell{padding:18px 12px 32px}}


/* v018 Events calendar */
.events-hero-panel {display:grid;grid-template-columns:1.2fr .8fr;gap:18px;align-items:stretch;margin:22px 0;}
.events-hero-card,.events-filter-card{background:#fff;border:1px solid #dfe7f0;border-radius:20px;padding:22px;box-shadow:0 12px 32px rgba(8,46,82,.08)}
.events-hero-card h1{margin:0 0 8px;color:#083565;font-size:clamp(2rem,4vw,3rem)}
.events-hero-card p{margin:0;color:#53677d;line-height:1.55}.event-filter-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.event-filter-pills span{background:#eef6ff;border:1px solid #d6e9fb;border-radius:999px;padding:8px 10px;font-weight:800;color:#0b4a7a;font-size:.85rem}.events-page-grid{display:grid;grid-template-columns:2fr .9fr;gap:18px}.events-side-card{background:#fff;border:1px solid #dfe7f0;border-radius:20px;padding:20px;box-shadow:0 12px 32px rgba(8,46,82,.08);margin-bottom:18px}.events-side-card h2{font-size:1.05rem;color:#083565;margin:0 0 12px}.source-note-list{padding-left:18px;color:#53677d;line-height:1.6}.event-card{display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:start;border-bottom:1px solid #edf2f7;padding:14px 0}.event-card:last-child{border-bottom:0}.event-time-block{background:linear-gradient(180deg,#eef7ff,#f8fbff);border:1px solid #d8e8f6;border-radius:16px;padding:12px;text-align:center;color:#083565}.event-time-block strong{display:block;font-size:1rem}.event-time-block small{display:block;color:#53677d;margin-top:4px}.event-date-label{display:inline-block;background:#0b67c7;color:#fff;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:900;margin-bottom:8px}.event-body .event-title a{color:#083565;text-decoration:none}.event-body .event-title a:hover{text-decoration:underline}.event-detail{margin-top:6px;color:#53677d;line-height:1.45}.event-meta-line{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}.event-meta-line span{background:#f0f6ed;border:1px solid #dcebd5;color:#285d2b;border-radius:999px;padding:4px 8px;font-size:.75rem;font-weight:800}.event-also{margin-top:7px;color:#6b7d90;font-size:.82rem;font-style:italic}.calendar-note{background:#fff7e6;border:1px solid #f5d798;color:#61420d;border-radius:16px;padding:14px;font-size:.92rem;line-height:1.5}
@media (max-width: 800px){.events-hero-panel,.events-page-grid{grid-template-columns:1fr}.event-card{grid-template-columns:1fr}.event-time-block{text-align:left}}


/* v019 power outage dashboard */
.outage-page-shell{max-width:1180px;margin:28px auto;padding:0 14px}.back-link{display:inline-block;margin-bottom:14px;color:var(--blue);font-weight:900}.outage-hero{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;padding:24px;margin-bottom:14px;background:linear-gradient(135deg,#fff,#f3f9ff)}.outage-hero h1{margin:0 0 8px;color:#083565;font-size:34px}.outage-hero p{color:#405a73;font-weight:750;max-width:760px}.outage-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.outage-actions a{border-radius:999px;background:#0b67c7;color:#fff;font-weight:950;padding:10px 14px;text-decoration:none}.outage-actions a:nth-child(2){background:#083565}.outage-updated{align-self:start;background:#eaf6ef;border:1px solid #c8ead5;color:#11653a;border-radius:14px;padding:12px 14px;font-weight:950;white-space:nowrap}.outage-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.outage-summary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 8px 24px rgba(8,46,82,.06)}.outage-summary-card strong{display:block;font-size:28px;color:#083565}.outage-summary-card span{color:#5f7488;font-weight:850}.outage-layout-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px}.outage-list-card{padding-bottom:8px}.outages-page-list{display:grid;gap:12px;padding:0 18px 18px}.outage-page-item{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fff;box-shadow:0 8px 24px rgba(8,46,82,.05)}.outage-page-item.affected{border-color:#ffd2a3;background:linear-gradient(135deg,#fff,#fff8f0)}.outage-page-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.outage-page-topline h2{margin:0;color:#083565}.outage-count{border-radius:999px;padding:6px 10px;font-weight:950;background:#e8f8ef;color:#11653a}.outage-count.affected{background:#fff0dc;color:#9b5a00}.outage-page-meta{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.outage-page-meta span{background:#eef5fb;border:1px solid #d7e7f4;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:850;color:#526a81}.outage-page-item p{margin:6px 0 8px;color:#405a73;font-weight:700}.outage-page-item a{color:var(--blue);font-weight:900}.outage-policy-card{padding:18px}.outage-policy-card h2{margin:0 0 10px}.outage-policy-card ul{margin:0 0 18px;padding-left:19px;color:#405a73;font-weight:750}.outage-policy-card li{margin:7px 0}.outage-source-list{display:grid;gap:9px}.outage-source-list a{border:1px solid var(--line);border-radius:12px;background:#f7fbff;padding:10px 12px;font-weight:900;color:var(--blue)}@media(max-width:900px){.outage-hero,.outage-layout-grid{grid-template-columns:1fr}.outage-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.outage-updated{white-space:normal}}@media(max-width:560px){.outage-summary-grid{grid-template-columns:1fr}.outage-page-topline{align-items:flex-start;flex-direction:column}.outage-actions a{width:100%;text-align:center}}

/* v020 Roads & Traffic */
.road-hero{background:linear-gradient(135deg,#ffffff,#fff8ed)}
.roads-page-list{display:grid;gap:12px}
.road-item{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff;box-shadow:0 8px 20px rgba(8,46,82,.05)}
.road-item.moderate{border-left:5px solid var(--orange)}
.road-item.minor{border-left:5px solid #f4b027}
.road-item.severe{border-left:5px solid var(--red)}
.road-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.road-title{font-weight:900;color:#083565;margin-top:4px}
.road-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px;color:var(--muted);font-size:12px;font-weight:800}
.road-meta span{background:#f3f7fb;border:1px solid var(--line);border-radius:999px;padding:4px 8px}
.road-source-link{white-space:nowrap;font-weight:900;color:var(--blue)}
.road-also{font-size:12px;color:var(--muted);font-weight:700;margin-top:6px}
@media (max-width: 720px){.road-topline{display:grid}.road-source-link{white-space:normal}}


/* v021 Town Pages */
.town-index-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:18px 0 40px}.town-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;box-shadow:0 12px 30px rgba(8,46,82,.07)}.town-card-topline{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}.town-card-topline span,.town-card-topline strong{background:#eef6ff;border:1px solid #d7e8f7;color:#0b4a7a;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:950}.town-card h2{margin:0 0 8px;color:#083565}.town-card p{color:#405a73;font-weight:720;line-height:1.45}.town-card-meta{display:grid;gap:6px;margin:12px 0}.town-card-meta span{background:#f7fbff;border:1px solid var(--line);border-radius:12px;padding:8px;color:#53677d;font-size:12px;font-weight:850}.town-card-link{display:inline-block;margin-top:8px;color:var(--blue);font-weight:950}.town-hero{margin-bottom:16px}.town-stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.town-stat-row div{background:#fff;border:1px solid var(--line);border-radius:15px;padding:14px;box-shadow:0 8px 20px rgba(8,46,82,.05)}.town-stat-row strong{display:block;font-size:28px;color:#083565}.town-stat-row span{color:#60778c;font-weight:900;font-size:12px}.town-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;margin-bottom:40px}.town-section{padding:18px;margin-bottom:16px}.town-section h2{margin:0 0 12px;color:#083565}.town-mini-row{display:grid;gap:3px;border:1px solid var(--line);border-radius:13px;padding:10px 12px;background:#f8fbff;text-decoration:none;color:inherit;margin-bottom:8px}.town-mini-row strong{color:#083565}.town-mini-row span{color:#667b90;font-size:12px;font-weight:850}@media(max-width:940px){.town-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.town-layout{grid-template-columns:1fr}}@media(max-width:640px){.town-index-grid,.town-stat-row{grid-template-columns:1fr}.town-card-topline{align-items:flex-start;flex-direction:column}}


/* v022 School Updates */
.school-footer-list a { display:flex; justify-content:space-between; gap:14px; }
.school-updates-list { display:grid; gap:14px; }
.school-update-item { display:flex; justify-content:space-between; gap:18px; padding:16px; border:1px solid #dfe7f0; border-radius:16px; background:#fff; box-shadow:0 6px 18px rgba(8,46,82,.05); }
.school-update-item.clear { border-left:5px solid #2fa96b; }
.school-update-item.info { border-left:5px solid #3d8bfd; }
.school-update-item.warning { border-left:5px solid #f6b23c; }
.school-update-main h2 { margin:6px 0 8px; color:#083565; font-size:1.05rem; }
.school-update-main p { margin:0 0 10px; color:#526579; line-height:1.45; }
.school-topline, .school-meta { display:flex; flex-wrap:wrap; gap:8px; color:#6b7e91; font-size:.85rem; font-weight:800; }
.school-meta span { background:#f1f6fb; border:1px solid #dde9f5; border-radius:999px; padding:4px 8px; }
.school-status { min-width:150px; display:flex; flex-direction:column; align-items:flex-end; gap:10px; }
.school-status strong { color:#0e7a45; background:#e9f8f0; border-radius:999px; padding:6px 10px; font-size:.85rem; }
.school-status a { color:#0b67c7; font-weight:900; }
@media (max-width: 760px) { .school-update-item { flex-direction:column; } .school-status { align-items:flex-start; min-width:0; } }


/* v023 Tourist Mode / Explore Schuyler dashboard */
.section-heading{position:relative}.section-cta{display:inline-flex;margin-top:8px;border-radius:999px;background:#0b67c7;color:#fff!important;text-decoration:none;font-weight:950;padding:8px 12px;font-size:13px}.visitor-page{max-width:1180px;margin:0 auto;padding:30px 18px 54px}.visitor-hero-card{background:linear-gradient(135deg,rgba(8,53,101,.94),rgba(13,108,90,.88)),url('../img/schuyler-now-hero.jpg') center/cover;border-radius:24px;color:#fff;padding:32px;box-shadow:0 18px 45px rgba(8,46,82,.16);margin-bottom:18px}.visitor-hero-card.compact{padding:28px}.visitor-hero-card h1{font-size:clamp(34px,5vw,58px);line-height:1;margin:6px 0 10px}.visitor-hero-card p{max-width:850px;color:rgba(255,255,255,.9);font-weight:800}.visitor-hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.visitor-hero-actions a{border-radius:999px;background:#fff;color:#083565;text-decoration:none;font-weight:950;padding:11px 14px;box-shadow:0 8px 20px rgba(0,0,0,.15)}.visitor-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.visitor-card-list{display:grid;gap:10px;margin-top:12px}.visitor-card-list.large{grid-template-columns:repeat(2,minmax(0,1fr))}.visitor-list-item{display:block;text-decoration:none;color:inherit;background:#f7fbff;border:1px solid #dfeaf5;border-radius:15px;padding:13px}.visitor-list-item:hover{background:#eef7ff}.visitor-list-item strong{display:block;color:#083565;font-size:16px;margin-bottom:4px}.visitor-list-item span{display:block;color:#405a73;font-weight:750;line-height:1.35}.visitor-list-item em{display:inline-flex;margin-top:8px;border-radius:999px;background:#e9f7ef;color:#12733a;font-style:normal;font-weight:950;font-size:12px;padding:4px 8px}.visitor-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}.visitor-tool{display:block;min-height:118px;text-decoration:none;color:inherit;background:linear-gradient(180deg,#fff,#f6fbff);border:1px solid #dfeaf5;border-radius:16px;padding:15px;box-shadow:0 8px 22px rgba(8,46,82,.05)}.visitor-tool:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(8,46,82,.09)}.visitor-tool b{display:block;color:#083565;font-size:18px;margin-bottom:6px}.visitor-tool span{display:block;color:#405a73;font-weight:750;line-height:1.35}.visitor-tool em{display:inline-flex;margin-top:10px;border-radius:999px;background:#eef6ff;color:#0b67c7;font-style:normal;font-weight:950;font-size:12px;padding:4px 8px}.deal-list .visitor-list-item{background:#fff8ed;border-color:#f0dfbf}.tourist-quick-panel .tourist-actions a:first-child{background:#0b67c7;color:#fff;border-color:#0b67c7}
@media(max-width:800px){.visitor-grid-2,.visitor-card-list.large,.visitor-tool-grid{grid-template-columns:1fr}.visitor-hero-card{padding:24px}.visitor-page{padding:20px 12px 44px}}

/* v025 Site Search */
.search-wrap{position:relative}.search-suggestions{display:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:50;background:#fff;border:1px solid rgba(18,68,108,.16);box-shadow:0 20px 50px rgba(8,46,82,.22);border-radius:18px;padding:12px;max-height:420px;overflow:auto}.search-suggestions.open{display:block}.suggestions-heading{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#57718a;font-weight:900;margin:2px 8px 8px}.suggestions-empty{padding:14px;color:#49647d;font-weight:800}.search-result-card{display:block;text-decoration:none;color:#18324c;border:1px solid #e2ebf3;background:#f9fcff;border-radius:14px;padding:12px 14px;margin:8px 0;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.search-result-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(8,46,82,.12);border-color:#b8d8f2}.search-result-card strong{display:block;color:#083565;font-size:1rem;line-height:1.25;margin:3px 0}.search-result-card span{display:block;color:#4f6a83;font-weight:750;line-height:1.35}.search-result-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:#0b67c7!important;font-weight:950!important}.search-all-button{width:100%;border:0;border-radius:12px;background:#0b67c7;color:#fff;font-weight:950;padding:11px 12px;margin-top:8px;cursor:pointer}.search-results{display:grid;gap:10px;margin-top:14px}.search-results .search-result-card{background:#fff;margin:0}.site-search:focus{outline:3px solid rgba(11,103,199,.25);border-color:#0b67c7}

.sponsor-package-card ul {
  margin: .75rem 0 0;
  padding-left: 1.1rem;
  color: var(--muted, #5d6975);
  font-size: .94rem;
  line-height: 1.55;
}
.sponsor-package-card strong {
  color: var(--ink, #13283c);
}


/* v028 Mobile app / PWA readiness */
.install-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1000;display:flex;align-items:center;justify-content:space-between;gap:14px;max-width:820px;margin:0 auto;background:#083565;color:#fff;border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 48px rgba(4,24,48,.32);border-radius:18px;padding:14px 16px}.install-banner strong{display:block;font-size:16px}.install-banner span{display:block;color:#cfe6ff;font-weight:750;font-size:13px;margin-top:2px}.install-banner-actions{display:flex;gap:8px;flex-shrink:0}.install-banner button{border:0;border-radius:999px;padding:9px 12px;font-weight:950;cursor:pointer}.install-banner [data-install-app]{background:#2fbf71;color:#073219}.install-banner [data-install-dismiss]{background:rgba(255,255,255,.12);color:#fff}.offline-page{min-height:100vh;display:grid;align-content:center}.simple-page-header{max-width:1100px;margin:16px auto 0;padding:0 14px}.simple-page-header a{display:inline-flex;text-decoration:none;color:#0b67c7;font-weight:950;background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 12px;box-shadow:0 8px 20px rgba(8,46,82,.06)}
@media(max-width:640px){.install-banner{display:grid;left:10px;right:10px;bottom:10px}.install-banner-actions button{flex:1}.install-banner-actions{width:100%}}


/* Keep the main navigation compact on smaller screens. */
html, body { max-width: 100%; overflow-x: clip; }
body { position: relative; }
.site-header { width: 100%; overflow-x: clip; }
.header-inner {
  max-width: 1280px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 16px;
  padding: 14px 16px;
}
.brand { min-width: 220px; flex: 0 0 220px; }
.brand-title { font-size: 32px; }
.brand-subtitle { font-size: 12px; }
.main-nav {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  justify-content: center;
  gap: clamp(10px, 1.25vw, 18px);
  flex-wrap: nowrap;
  background: transparent;
  border-radius: 0;
  padding: 0;
  order: initial;
  width: auto;
}
.main-nav a { font-size: 14px; white-space: nowrap; padding: 10px 0; }
.mode-buttons { flex: 0 0 auto; display: flex; gap: 8px; margin-left: 0; order: initial; width: auto; justify-content: flex-end; flex-wrap: nowrap; }
.mode-button { font-size: 14px; padding: 10px 12px; }
.hero-utility-links { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 0; }
.hero-utility-links a { display:inline-flex; align-items:center; gap:6px; color:#fff; background:rgba(2,31,61,.56); border:1px solid rgba(255,255,255,.36); border-radius:999px; padding:8px 12px; font-size:13px; font-weight:900; text-decoration:none; box-shadow:0 6px 18px rgba(0,0,0,.16); }
.hero-utility-links a:hover { background:rgba(11,103,199,.72); text-decoration:none; }
@media(max-width:1180px){
  .header-inner { flex-wrap: wrap; gap: 10px 14px; }
  .brand { flex: 1 1 240px; min-width: 220px; }
  .mode-buttons { margin-left: auto; }
  .main-nav { order: 3; flex: 1 0 100%; width: 100%; justify-content: center; gap: 18px; flex-wrap: wrap; background: rgba(255,255,255,.05); border-radius: 12px; padding: 6px 10px; }
  .main-nav a { padding: 8px 0; }
}
@media(max-width:720px){
  html,body{overflow-x:hidden;}
  .header-inner{padding:12px;}
  .brand{min-width:0;flex:1 1 auto;}
  .brand-title{font-size:28px;}
  .main-nav{display:none;grid-template-columns:1fr 1fr;gap:8px;background:rgba(255,255,255,.08);border-radius:12px;padding:10px;}
  .main-nav.open{display:grid;}
  .mode-buttons{width:100%;margin-left:0;justify-content:space-between;}
  .mode-button{flex:1;text-align:center;}
  .hero-utility-links a{width:100%;justify-content:center;}
}

/* v033 responsive polish and layout hardening */
*, *::before, *::after { box-sizing: border-box; }
img, iframe, svg, video { max-width: 100%; }
.site-header, .hero-shell, .dashboard-shell, .site-footer { max-width: 100%; }
.header-inner { overflow: visible; }
.brand { flex: 0 0 auto; }
.mode-buttons { flex: 0 0 auto; }
.hero-shell { overflow: hidden; }
.hero-content, .dashboard-shell, .card, .compact-card { min-width: 0; }
.status-card, .action-button, .mode-button { min-width: 0; }

@media (min-width: 1181px) {
  .header-inner { display: flex; flex-wrap: nowrap; }
  .main-nav { flex: 1 1 auto; justify-content: center; }
}

@media (max-width: 900px) {
  .hero-content { grid-template-columns: 1fr; }
  .pulse-card { width: 100%; max-width: none; }
  .search-wrap { max-width: min(650px, calc(100vw - 48px)); }
}

@media (max-width: 720px) {
  body { min-width: 0; }
  .site-header { position: sticky; }
  .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 12px;
  }
  .brand { min-width: 0; width: auto; }
  .brand-title { font-size: clamp(25px, 8vw, 32px); white-space: normal; }
  .brand-subtitle { font-size: 12px; max-width: 230px; }
  .mobile-menu-button { display: flex; justify-self: end; }
  .mode-buttons {
    grid-column: 1 / -1;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }
  .mode-button { width: 100%; padding: 10px 8px; font-size: 13px; }
  .main-nav {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    order: initial;
  }
  .main-nav.open { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .main-nav a { text-align: center; border-bottom-width: 0; border-radius: 9px; background: rgba(255,255,255,.08); padding: 10px 8px; }
  .main-nav a.active { background: rgba(255,255,255,.18); }
  .hero-shell { padding: 12px 0 0; border-radius: 0 0 18px 18px; }
  .hero-shell:before, .hero-shell:after { inset-left: 0; left: 0; right: 0; border-radius: 0 0 18px 18px; }
  .search-wrap { margin: 0 14px 18px; max-width: none; }
  .site-search { height: 52px; border-radius: 14px; }
  .hero-content { padding: 0 14px 18px; gap: 16px; }
  .hero-main h1 { font-size: clamp(34px, 11vw, 44px); }
  .hero-subline { margin-top: -8px; }
  .status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .status-card { min-height: 98px; padding: 12px 10px; grid-template-columns: 34px 1fr; }
  .status-card strong { font-size: 29px; }
  .hero-actions { grid-template-columns: 1fr; gap: 10px; }
  .action-button { padding: 13px 12px; }
  .mode-hint { border-radius: 14px; width: 100%; }
}

@media (max-width: 420px) {
  .status-grid { grid-template-columns: 1fr; }
  .mode-buttons { grid-template-columns: 1fr; }
  .main-nav.open { grid-template-columns: 1fr; }
  .brand-title { font-size: 28px; }
}


/* v033 Daily Briefing */
.daily-briefing-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.8fr) auto;gap:16px;align-items:center;padding:18px;margin-bottom:14px;background:linear-gradient(135deg,#ffffff,#f3f9ff)}
.daily-briefing-panel h2{font-size:24px;margin:0 0 6px}.daily-briefing-panel p{margin:0;color:#405a73;font-weight:750;line-height:1.45}.daily-briefing-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px}.briefing-mini-item,.briefing-summary-card{display:block;border:1px solid #dce9f5;background:#fff;border-radius:14px;padding:10px 12px;text-decoration:none;color:#083565;box-shadow:0 8px 20px rgba(8,46,82,.05)}.briefing-mini-item strong,.briefing-summary-card strong{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:#0b67c7}.briefing-mini-item span,.briefing-summary-card span{display:block;color:#405a73;font-weight:850;margin-top:3px}.briefing-mini-item.danger,.briefing-summary-card.danger{border-color:#ffd1d6}.briefing-mini-item.warning,.briefing-summary-card.warning{border-color:#ffe1ac}.briefing-mini-item.ok,.briefing-summary-card.ok{border-color:#ccebd8}.briefing-mini-item.weather,.briefing-summary-card.weather{border-color:#cfe4ff}.briefing-mini-item.events,.briefing-summary-card.events{border-color:#e1d4ff}.briefing-panel-actions{display:flex;gap:10px;flex-wrap:wrap}.briefing-panel-link{white-space:nowrap;background:#0b67c7;color:#fff;border-radius:999px;padding:11px 14px;text-decoration:none;font-weight:950}.briefing-panel-link.secondary{background:#e8f1ff;color:#0759b8}.briefing-page-shell{max-width:1180px;margin:28px auto;padding:0 14px}.briefing-hero-page{padding:26px;margin-bottom:16px;background:linear-gradient(135deg,#fff,#eef7ff)}.briefing-hero-page h1{font-size:42px;margin:4px 0 8px;color:#083565}.briefing-hero-page p{color:#405a73;font-weight:750;max-width:900px}.briefing-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.briefing-summary-card strong{font-size:14px}.briefing-layout-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.briefing-main-card{padding-bottom:10px}.briefing-headline{font-size:20px;line-height:1.45;color:#083565;font-weight:900;padding:0 18px 8px;margin:0}.briefing-section-list{display:grid;gap:12px;padding:0 18px 18px}.briefing-section-card{border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:16px}.briefing-section-card h3{margin:0 0 6px;color:#083565}.briefing-section-card p{margin:0 0 10px;color:#405a73;font-weight:750;line-height:1.5}.briefing-section-card ul{margin:0 0 10px;padding-left:20px;color:#405a73;font-weight:750}.briefing-section-card a{color:#0b67c7;font-weight:950}.briefing-watch-card{padding:18px}.briefing-watch-list{display:grid;gap:10px;margin:12px 0}.briefing-watch-item{border:1px solid var(--line);border-radius:14px;background:#f8fbff;padding:12px;color:#083565;text-decoration:none}.briefing-watch-item strong{display:block}.briefing-watch-item span{display:block;color:#405a73;font-weight:750;margin-top:4px;line-height:1.4}@media(max-width:980px){.daily-briefing-panel,.briefing-layout-grid{grid-template-columns:1fr}.briefing-panel-link{justify-self:start}.briefing-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.daily-briefing-mini,.briefing-summary-grid{grid-template-columns:1fr}.briefing-hero-page h1{font-size:34px}}

/* v034 I Heard Sirens page */
.sirens-page .page-hero-card {
  border-left: 8px solid #dc2626;
}
.sirens-grid {
  grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.8fr);
  align-items: start;
}
.sirens-context-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.incident-title-link {
  color: var(--navy, #083565);
  text-decoration: none;
}
.incident-title-link:hover {
  text-decoration: underline;
}
.inline-share-button {
  border: 0;
  border-radius: 999px;
  background: #e8f1ff;
  color: #0759b8;
  padding: .32rem .7rem;
  font-weight: 800;
  cursor: pointer;
}
.clean-list {
  display: grid;
  gap: .75rem;
  margin: 0;
  padding-left: 1.1rem;
}
.context-link-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.context-link-grid a {
  display: block;
  padding: .9rem 1rem;
  border-radius: 14px;
  background: #f1f7ff;
  color: #0759b8;
  font-weight: 900;
  text-decoration: none;
}
.context-link-grid a:hover {
  background: #e2efff;
}
@media (max-width: 850px) {
  .sirens-grid,
  .sirens-context-grid,
  .context-link-grid {
    grid-template-columns: 1fr;
  }
}


/* v042 Schuyler Scanner shareable incident links */
.scanner-meta-line {
  flex-wrap: wrap;
}
.incident-title-link {
  color: var(--navy, #083565);
  text-decoration: none;
}
.incident-title-link:hover {
  color: #0b67c7;
  text-decoration: underline;
}
.inline-share-button.copied,
.inline-share-button:focus-visible {
  outline: 3px solid rgba(11,103,199,.2);
}
.scanner-integration-note {
  margin-top: 1rem;
  padding: .9rem 1rem;
  border: 1px solid #dce9f5;
  border-radius: 16px;
  background: #f8fbff;
  color: #405a73;
  font-weight: 750;
}


/* v042 Subscribe / alerts signup prototype */
.subscribe-hero{border-left:8px solid #0b67c7;background:linear-gradient(135deg,#fff,#eef7ff)}
.subscribe-grid{grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);align-items:start}
.subscribe-form{display:grid;gap:16px;padding:0 18px 18px}.subscribe-form label,.subscribe-form legend{font-weight:950;color:#083565}.subscribe-form input[type="email"],.subscribe-form select{display:block;width:100%;margin-top:7px;border:1px solid #d6e5f2;border-radius:14px;padding:13px 14px;font:inherit;color:#083565;background:#fff}.subscribe-form fieldset{border:1px solid #dce9f5;border-radius:16px;padding:14px;background:#fbfdff}.subscribe-checks{display:grid;gap:10px;margin-top:10px}.subscribe-option{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;border:1px solid #e4eef8;background:#fff;border-radius:14px;padding:12px}.subscribe-option input{margin-top:3px}.subscribe-option strong{display:block;color:#083565}.subscribe-option span{display:block;color:#405a73;font-weight:750;line-height:1.35;margin-top:3px}.subscribe-option.disabled{opacity:.72}.consent-line{display:grid!important;grid-template-columns:auto 1fr;gap:10px;align-items:start;color:#405a73!important;font-weight:750!important}.form-help{margin:0;color:#405a73;font-weight:750}.subscribe-side-card{padding:18px}.status-pill.muted{background:#eef4fb;color:#405a73}@media(max-width:900px){.subscribe-grid{grid-template-columns:1fr}}


/* v042 County Pulse */
.pulse-card[data-pulse-level="calm"]{background:linear-gradient(180deg,#0b6d7c,#083565)}
.pulse-card[data-pulse-level="steady"]{background:linear-gradient(180deg,#0b5f8a,#083565)}
.pulse-card[data-pulse-level="busy"]{background:linear-gradient(180deg,#0b477d,#082a4a)}
.pulse-card[data-pulse-level="high-alert"]{background:linear-gradient(180deg,#8d2633,#3a1020)}
.pulse-score-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-weight:900;color:#d9f0ff;font-size:13px;flex-wrap:wrap}
.pulse-score-row a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.pulse-driver-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.pulse-driver-row span{display:inline-flex;gap:5px;align-items:center;border-radius:999px;padding:6px 8px;background:rgba(255,255,255,.13);font-size:12px;font-weight:900;color:#f4fbff}
.pulse-driver-row strong{color:#fff}
.pulse-explainer-card .policy-box{background:#f5f9fd;border:1px dashed #b8cce0;border-radius:16px;padding:16px;margin-top:18px;color:#405a73;font-weight:800}.pulse-hero-row{display:grid;grid-template-columns:180px 1fr;gap:18px;align-items:center;margin:18px 0}.pulse-big-score{border-radius:22px;background:#083565;color:#fff;padding:24px;text-align:center;box-shadow:0 14px 32px rgba(8,53,101,.18)}.pulse-big-score span{font-size:58px;font-weight:1000;line-height:1}.pulse-big-score b{font-size:18px;color:#bfe4ff}.pulse-page-sparkline{width:100%;height:130px;color:#0b67c7;background:#f3f8ff;border:1px solid #dbe9f7;border-radius:20px;padding:12px}.pulse-components-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:14px 0}.pulse-component-card{border:1px solid #dce7f3;background:#fbfdff;border-radius:16px;padding:16px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.pulse-component-card strong{display:block;color:#083565;font-size:17px}.pulse-component-card span{display:block;color:#4f657b;margin-top:5px;line-height:1.4;font-weight:750}.pulse-component-card b{border-radius:999px;background:#eaf4ff;color:#0b67c7;padding:7px 10px;font-size:12px;white-space:nowrap}.pulse-threshold-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;list-style:none;padding:0;margin:14px 0}.pulse-threshold-list li{background:#f3f8ff;border:1px solid #dbe9f7;border-radius:14px;padding:13px}.pulse-threshold-list strong{display:block;color:#083565}.pulse-threshold-list span{font-size:13px;color:#5b7188;font-weight:900}@media(max-width:760px){.pulse-hero-row{grid-template-columns:1fr}.pulse-components-grid,.pulse-threshold-list{grid-template-columns:1fr}.pulse-big-score span{font-size:48px}}

/* v046: What’s Happening Near Me */
.near-me-page .page-hero-card{background:linear-gradient(135deg,#0d3f72,#125d89);color:#fff;overflow:hidden;position:relative}.near-me-page .page-hero-card:after{content:"";position:absolute;inset:auto -10% -45% 45%;height:220px;background:radial-gradient(circle,rgba(99,197,218,.35),transparent 70%);pointer-events:none}.near-me-page .back-link{color:#dff7ff}.near-me-control-panel{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;position:relative;z-index:1}.near-me-select-label{font-weight:800;color:#e7f8ff}.near-me-select{min-width:220px;border:1px solid rgba(255,255,255,.35);border-radius:14px;padding:12px 14px;font-weight:800;color:#12344f;background:#fff}.near-me-summary-card{display:flex;justify-content:space-between;align-items:stretch;gap:20px}.near-me-score-grid{display:grid;grid-template-columns:repeat(4,minmax(92px,1fr));gap:10px;min-width:min(520px,100%)}.near-me-score-grid div{border-radius:16px;background:#eef7fb;border:1px solid #d9edf5;padding:14px;text-align:center}.near-me-score-grid strong{display:block;font-size:1.7rem;color:#0d3f72}.near-me-score-grid span{display:block;color:#547086;font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.near-me-grid{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:start}.near-me-stack{display:grid;gap:10px}.near-me-row{display:block;padding:12px 14px;border:1px solid #e0ebf1;background:#fff;border-radius:14px;text-decoration:none;color:#17324a}.near-me-row:hover{border-color:#a8c9db;box-shadow:0 8px 20px rgba(22,61,91,.08);transform:translateY(-1px)}.near-me-row strong{display:block}.near-me-row span{display:block;color:#647b8c;font-size:.9rem;margin-top:3px}.compact-context{margin-top:14px}.near-me-visitor-card{display:flex;justify-content:space-between;gap:20px;align-items:center}.near-me-visitor-card .tourist-actions{min-width:min(420px,100%)}@media (max-width:900px){.near-me-summary-card,.near-me-visitor-card{display:block}.near-me-score-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.near-me-grid{grid-template-columns:1fr}.near-me-control-panel{align-items:stretch}.near-me-select{width:100%}}@media (max-width:520px){.near-me-score-grid{grid-template-columns:1fr}.near-me-control-panel .action-button{width:100%;justify-content:center}}

/* v046: interactive Schuyler Pulse Map page */
.map-page-shell{max-width:1280px;margin:24px auto;padding:0 12px}.map-page-hero{padding:24px;margin-bottom:14px}.map-page-hero h1{color:#083565;margin:0 0 8px;font-size:34px}.map-page-hero p{color:#4b647d;font-weight:700;max-width:850px}.map-page-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.pulse-map-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px}.pulse-map-card{padding:16px}.pulse-map-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.pulse-layer-toggles{display:flex;gap:8px;flex-wrap:wrap}.pulse-layer-toggles button,.pulse-map-fit{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:950;color:#29445c;cursor:pointer}.pulse-layer-toggles button.active{background:#eaf4ff;border-color:#9ec9f1;color:#0b67c7;box-shadow:inset 0 0 0 1px #b9defb}.pulse-map-fit{background:#083565;color:#fff;border-color:#083565;white-space:nowrap}.pulse-map-live{height:610px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#e8f1f7}.pulse-map-sidebar{padding:18px}.pulse-map-sidebar h2{margin:0 0 8px;color:#083565}.pulse-map-sidebar h3{margin:18px 0 6px;color:#083565}.pulse-map-counts{display:grid;gap:8px;margin:14px 0}.pulse-map-count{display:flex;justify-content:space-between;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#f8fbfd;font-weight:850}.pulse-map-count span{font-size:12px;color:#5f7488}.pulse-map-count b{color:#083565}.pulse-map-selected{border-radius:14px;background:#eef7ff;border:1px solid #cfe7fb;padding:14px;display:grid;gap:5px}.pulse-map-selected strong{color:#083565}.pulse-map-selected span{color:#405a72;font-weight:700}.pulse-popup{min-width:210px}.pulse-popup strong{display:block;color:#083565;margin-bottom:4px}.pulse-popup span{display:block;color:#4d6378;font-weight:700;font-size:12px;margin-bottom:4px}.pulse-popup a{display:inline-block;margin-top:6px;font-weight:950;color:#0b67c7}.pulse-div-icon{border-radius:50%;width:34px!important;height:34px!important;display:grid!important;place-items:center!important;color:#fff;font-size:16px;font-weight:950;border:3px solid #fff;box-shadow:0 5px 16px rgba(0,0,0,.28)}.pulse-div-icon.public_safety{background:#db3b35}.pulse-div-icon.roads{background:#e0a238}.pulse-div-icon.weather{background:#1675d1}.pulse-div-icon.outages{background:#2f9f59}.pulse-div-icon.events{background:#7b56c7}.pulse-div-icon.community{background:#c35a9b}.pulse-div-icon.tourism{background:#0b87a8}.pulse-div-icon.deals{background:#38a653}.pulse-div-icon.schools{background:#214e86}.pulse-div-icon.towns{background:#6a7b89}@media(max-width:980px){.pulse-map-grid{grid-template-columns:1fr}.pulse-map-live{height:480px}.pulse-map-toolbar{display:block}.pulse-map-fit{margin-top:10px}}@media(max-width:620px){.map-page-hero h1{font-size:30px}.pulse-map-live{height:390px}.pulse-layer-toggles button{flex:1 1 45%;padding:9px 8px}.pulse-map-card{padding:12px}}


/* v046: real interactive homepage Pulse Map preview */
.home-pulse-map-live{height:320px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#e8f1f7;position:relative;z-index:0}
.home-pulse-map-live .map-loading{height:100%;display:grid;place-items:center;color:#4d6479;font-weight:900;background:linear-gradient(135deg,#eef7ff,#f9fcff)}
.map-card .map-toggles button{cursor:pointer}
.map-card .map-toggles button:not(.active){opacity:.55;background:#f4f7fa;color:#718091;border-color:#d9e2ea}
.home-pulse-map-live .leaflet-control-attribution{font-size:10px}
.home-pulse-map-live .leaflet-popup-content{font-size:12px;line-height:1.35}
@media(max-width:860px){.home-pulse-map-live{height:280px}}
@media(max-width:620px){.home-pulse-map-live{height:240px}.map-card .map-toggles{gap:5px}.map-card .map-toggles button{font-size:11px;padding:6px 7px}}

/* v046 Insider Pass / Local Deals directory */
.deals-page .visitor-hero-card{background:linear-gradient(135deg,rgba(8,53,101,.95),rgba(23,119,77,.86)),url('../img/schuyler-now-hero.jpg') center/cover}.deal-controls-card{margin-bottom:16px}.deal-controls-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.deal-search{min-width:280px;flex:1;max-width:520px;border:1px solid var(--line);border-radius:999px;padding:12px 16px;font-weight:850;color:var(--ink);background:#f9fcff}.deal-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.deal-filter{border:1px solid #d6e6f5;background:#fff;border-radius:999px;padding:8px 12px;font-weight:950;color:#0b4a7a;cursor:pointer}.deal-filter.active{background:#0b67c7;color:#fff;border-color:#0b67c7}.section-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.mini-status-pill{display:inline-flex;border-radius:999px;background:#eef6ff;border:1px solid #d7e9fb;color:#0b4a7a;padding:6px 10px;font-size:12px;font-weight:950}.deal-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.deal-card{background:linear-gradient(180deg,#fff,#fffaf1);border:1px solid #efdcb9;border-radius:18px;padding:16px;box-shadow:0 10px 24px rgba(8,46,82,.06);display:flex;flex-direction:column;min-height:244px}.deal-card-top{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}.deal-category,.deal-badge{display:inline-flex;border-radius:999px;font-size:11px;font-weight:950;padding:5px 8px}.deal-category{background:#eef6ff;color:#0b67c7}.deal-badge{background:#e9f7ef;color:#12733a}.deal-card h3,.pass-offer h3{margin:0 0 7px;color:#083565;font-size:20px}.deal-offer{color:#0b3f75!important;font-weight:950;font-size:16px;margin:0 0 8px!important}.deal-card p,.pass-offer p{color:#405a73;line-height:1.45;font-weight:750}.deal-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto;padding-top:12px}.deal-meta span{background:#f3f7fb;border:1px solid #e1eaf2;border-radius:999px;padding:4px 8px;color:#53677d;font-weight:900;font-size:12px}.deal-link{margin-top:12px;border-radius:999px;background:#0b67c7;color:#fff!important;text-decoration:none;font-weight:950;text-align:center;padding:10px 12px}.deal-link:hover{text-decoration:none;filter:brightness(1.05)}.pass-offer-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.pass-offer{background:#fff;border:1px solid #dfeaf5;border-left:5px solid #0b67c7;border-radius:16px;padding:16px;box-shadow:0 8px 20px rgba(8,46,82,.04)}
@media(max-width:980px){.deal-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-offer-list{grid-template-columns:1fr}}@media(max-width:640px){.deal-directory-grid{grid-template-columns:1fr}.deal-controls-top{align-items:stretch}.deal-search{min-width:0;max-width:none}.section-heading-row{align-items:flex-start;flex-direction:column}}

/* v050 blotter / public safety records */
.page-shell{max-width:1180px;margin:0 auto;padding:24px 14px 44px}.page-hero{background:linear-gradient(135deg,#083565,#0b67c7);color:#fff;border-radius:22px;padding:34px 32px;margin:18px 0;box-shadow:0 14px 32px rgba(8,46,82,.16)}.page-hero.slim{padding:28px 30px}.page-hero h1{font-size:42px;line-height:1.05;margin:0 0 10px}.page-hero p{max-width:760px;margin:0;font-weight:750;color:#e4f2ff}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:#80c9ff!important;font-size:13px;font-weight:950;margin:0 0 10px!important}.page-grid{display:grid;gap:18px}.page-grid.two-col{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr)}.page-card{padding:20px}.blotter-record-list{display:grid;gap:12px;margin-top:12px}.blotter-record{display:flex;justify-content:space-between;gap:18px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:14px;background:linear-gradient(180deg,#fff,#f8fbff)}.blotter-record h2{font-size:20px;margin:5px 0;color:#083565}.blotter-record p{margin:0;color:#465f78;font-weight:650}.blotter-kicker,.blotter-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;color:#61758b;font-weight:850;font-size:12px}.blotter-kicker span,.notice-badge{background:#edf5ff;color:#0b67c7;border-radius:999px;padding:4px 8px}.notice-badge.sample{background:#fff4df;color:#9a5b00}.blotter-meta{margin-top:9px}.small-action{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;background:#0b67c7;color:#fff!important;border-radius:10px;padding:10px 13px;font-weight:900}.chevron-title{color:#083565}.chevron-title:hover{color:#0b67c7;text-decoration:none}@media(max-width:850px){.page-grid.two-col{grid-template-columns:1fr}.blotter-record{display:block}.small-action{margin-top:12px}.page-hero h1{font-size:34px}}

/* v050 Community Photo Board */
.photo-of-day-card{display:grid;grid-template-columns:140px 1fr;gap:14px;align-items:center;min-height:210px}
.photo-thumb{height:136px;border-radius:14px;background-size:cover;background-position:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}
.photo-of-day-card h2{margin:0 0 6px}.photo-of-day-card p{margin:0 0 8px;color:var(--muted);font-weight:700}.photo-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--blue);font-weight:900}
.photo-feature{display:grid;grid-template-columns:minmax(280px,1.25fr) minmax(280px,.75fr);gap:0;padding:0;overflow:hidden}.photo-feature-image{min-height:360px;background-size:cover;background-position:center}.photo-feature-copy{padding:26px;display:flex;flex-direction:column;justify-content:center}.photo-feature-copy h2{font-size:34px;margin:4px 0 10px}.photo-feature-copy p{font-size:17px;line-height:1.5}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:0 18px 18px}.photo-tile{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.photo-tile-img{height:180px;background-size:cover;background-position:center}.photo-tile-copy{padding:14px}.photo-tile-copy strong{display:block;color:#083565;font-size:17px}.photo-tile-copy p{margin:6px 0;color:#31465b;font-weight:650}.photo-tile-copy small{color:var(--muted);font-weight:800}.form-card{padding:22px}.notice-form{display:grid;gap:14px}.notice-form label{display:grid;gap:6px;font-weight:900;color:#083565}.notice-form input,.notice-form select,.notice-form textarea{border:1px solid var(--line);border-radius:10px;padding:12px;font:inherit;background:#fff}.checkbox-line{grid-template-columns:auto 1fr!important;align-items:start;color:#31465b!important}.checkbox-line input{margin-top:4px}
@media(max-width:900px){.photo-feature{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr 1fr}.photo-of-day-card{grid-template-columns:1fr}.photo-thumb{height:180px}}
@media(max-width:640px){.photo-grid{grid-template-columns:1fr}.photo-feature-image{min-height:240px}}


/* v050 Schuyler Time Machine / Local History */
.time-machine-card{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;min-height:220px;background:linear-gradient(135deg,#fff,#f7fbff)}
.time-machine-art,.history-feature-art{min-height:150px;border-radius:18px;background:linear-gradient(135deg,rgba(8,53,101,.15),rgba(11,103,199,.12)),url('../img/schuyler-now-hero.jpg') center/cover;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)}
.history-page .history-hero{background:linear-gradient(135deg,#fff,#eef7ff)}
.history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:0 18px 18px}
.history-card{border:1px solid var(--line);border-radius:16px;background:#fbfdff;padding:16px}
.history-card span{display:inline-block;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:950;color:#0b67c7;background:#e8f1ff;border-radius:999px;padding:5px 9px;margin-bottom:8px}
.history-card h3{margin:0 0 5px;color:#083565}.history-card p{color:#405a73;font-weight:750;line-height:1.5}.history-card .tag-row{display:flex;gap:6px;flex-wrap:wrap}.history-card .tag-row em{font-style:normal;background:#eef5fb;color:#31516f;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:850}
.history-feature-card{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:center;margin-bottom:16px}.history-feature-card p{color:#405a73;font-weight:750;line-height:1.55}
@media(max-width:800px){.time-machine-card,.history-feature-card{grid-template-columns:1fr}.history-grid{grid-template-columns:1fr}.time-machine-art,.history-feature-art{height:180px}}


/* v088 Jobs & Help Wanted */
.jobs-board-card{display:grid;grid-template-columns:1.1fr 1.2fr auto;gap:1.2rem;align-items:center;margin-top:1.2rem;}
.job-mini-list{display:grid;gap:.65rem;}
.job-mini-list a{display:flex;justify-content:space-between;gap:1rem;padding:.75rem .9rem;border:1px solid rgba(7,46,84,.1);border-radius:14px;background:rgba(255,255,255,.68);text-decoration:none;color:inherit;}
.job-mini-list span{color:var(--muted);font-size:.9rem;white-space:nowrap;}
.job-listing-card .check-list{margin-top:.85rem;}
.notice-form{display:grid;gap:1rem;}
.notice-form label{display:grid;gap:.35rem;font-weight:700;color:var(--ink);}
.notice-form input,.notice-form select,.notice-form textarea{border:1px solid rgba(7,46,84,.16);border-radius:12px;padding:.85rem 1rem;font:inherit;background:#fff;}
.notice-form textarea{min-height:120px;resize:vertical;}
@media (max-width: 900px){.jobs-board-card{grid-template-columns:1fr}.job-mini-list a{display:grid}.job-mini-list span{white-space:normal}}

/* v088 Food & Drink directory */
.food-card,.food-directory-card{display:grid;grid-template-columns:130px 1fr;gap:18px;align-items:center}
.food-art{min-height:110px;border-radius:22px;background:linear-gradient(135deg,#fff4cc,#d9f6e5 55%,#c8e6ff);display:grid;place-items:center;font-size:44px;box-shadow:inset 0 0 0 1px rgba(7,50,92,.08)}
.directory-tools{display:grid;gap:14px}.inline-search{max-width:760px}.filter-row{display:flex;flex-wrap:wrap;gap:10px}.chip{border:1px solid rgba(8,53,101,.16);background:#fff;border-radius:999px;padding:8px 12px;font-weight:700;color:#0b3764;cursor:pointer}.chip.active,.chip:hover{background:#083565;color:white}.grid-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.listing-card{display:flex;flex-direction:column;gap:8px}.tag-pill{align-self:flex-start;background:#e7f1ff;color:#0b3764;border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:800}.offer-line{background:#f2fbf6;border:1px solid rgba(31,145,85,.18);border-radius:12px;padding:10px}.submit-form{display:grid;gap:14px;max-width:760px}.submit-form label{display:grid;gap:6px;font-weight:800}.submit-form input,.submit-form textarea,.submit-form select{border:1px solid rgba(8,53,101,.18);border-radius:12px;padding:11px;font:inherit}
@media(max-width:640px){.food-card,.food-directory-card{grid-template-columns:1fr}.food-art{min-height:90px}}

/* v088 Daily Plan / smart itinerary */
.daily-plan-card-home {
  display: grid;
  grid-template-columns: 86px 1fr;
  gap: 18px;
  align-items: center;
  background: linear-gradient(135deg, rgba(240, 249, 255, .96), rgba(255, 255, 255, .98));
  border: 1px solid rgba(14, 116, 144, .16);
}
.daily-plan-icon {
  width: 74px;
  height: 74px;
  border-radius: 24px;
  display: grid;
  place-items: center;
  font-size: 2rem;
  background: linear-gradient(135deg, #e0f2fe, #dcfce7);
  box-shadow: inset 0 0 0 1px rgba(8, 53, 101, .08);
}
.daily-plan-hero {
  background: linear-gradient(135deg, rgba(224, 242, 254, .9), rgba(255,255,255,.98));
}
.daily-plan-list {
  display: grid;
  gap: 18px;
}
.daily-plan-card {
  border: 1px solid rgba(8, 53, 101, .12);
  border-radius: 18px;
  padding: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(8, 53, 101, .06);
}
.daily-plan-card-head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}
.daily-plan-card h3 {
  margin: 0;
  color: #083565;
}
.daily-plan-steps {
  display: grid;
  gap: 10px;
  margin-top: 14px;
}
.daily-plan-step {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 8px 14px;
  align-items: start;
  padding: 12px 14px;
  border-radius: 14px;
  background: #f8fafc;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(8, 53, 101, .08);
}
.daily-plan-step:hover {
  background: #eef6ff;
  transform: translateY(-1px);
}
.daily-plan-step strong {
  color: #0369a1;
}
.daily-plan-step span {
  font-weight: 800;
  color: #0f172a;
}
.daily-plan-step em {
  grid-column: 2;
  font-style: normal;
  color: #475569;
  font-size: .94rem;
}
@media (max-width: 700px) {
  .daily-plan-card-home { grid-template-columns: 1fr; }
  .daily-plan-step { grid-template-columns: 1fr; }
  .daily-plan-step em { grid-column: auto; }
}

/* v088 layout polish: lower-priority community extras moved just above footer utility band */
.lower-community-extras {
  margin-top: 1.2rem;
}
.lower-extras-heading {
  margin-bottom: 12px;
}
.lower-extras-heading h2 {
  margin-bottom: 4px;
}
.lower-extras-heading p {
  color: var(--muted);
  font-weight: 750;
}
.lower-extras-stack {
  display: grid;
  gap: 14px;
}
.lower-community-extras .jobs-board-card,
.lower-community-extras .photo-of-day-card,
.lower-community-extras .time-machine-card,
.lower-community-extras .food-card {
  margin-top: 0;
}

/* v088 fix: keep lower-priority community extras at the bottom of the main dashboard, directly above the bottom utility band. */
.dashboard-shell [data-section="local-extras"] { order: 90; }
body[data-mode="tourist"] .dashboard-shell [data-section="local-extras"] { order: 90; }

.visually-hidden{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;}


/* v088 live update hardening */
.scanner-status-strip{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-radius:14px;padding:10px 12px;margin:10px 0 12px;font-weight:850;border:1px solid #dfe7f0;background:#f6fbff;color:#25465f}.scanner-status-strip.ok{background:#effaf2;border-color:#bfe8c9;color:#176b3a}.scanner-status-strip.warning{background:#fff8e8;border-color:#f0d28a;color:#805200}.scanner-status-strip.error{background:#fff1f1;border-color:#f2b6b6;color:#9c1d1d}.scanner-status-strip small{font-weight:750;color:inherit;opacity:.86}.scanner-status-large{border:1px solid #dfe7f0;border-radius:18px;padding:20px;background:#f6fbff;display:grid;gap:8px;font-weight:850}.scanner-status-large strong{font-size:24px;color:#083565}.scanner-status-large span{color:#405a73;line-height:1.45}.scanner-status-large.ok{background:#effaf2;border-color:#bfe8c9}.scanner-status-large.warning{background:#fff8e8;border-color:#f0d28a}.scanner-status-large.error{background:#fff1f1;border-color:#f2b6b6}.source-stack{display:grid;gap:10px}.source-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-top:1px solid #e4edf5;padding:10px 0}.source-row strong{color:#083565}.source-row span{text-align:right;color:#4f667d;font-weight:800}.command-box{background:#0d2438;color:#d9f0ff;border-radius:14px;padding:14px;overflow:auto;font-weight:900;line-height:1.55}.live-badge.live-ok{background:#0b7a3b}.live-badge.live-watch{background:#a86b00}.live-badge.live-error{background:#a51f1f}@media(max-width:620px){.source-row{display:block}.source-row span{text-align:left;display:block;margin-top:4px}}

/* v088 homepage scanner summary: keep Active Now compact when live feed has many rows */
.active-card #incident-list .incident-item:nth-of-type(n+5){display:none;}
.incident-more-note{margin-top:12px;border:1px solid #d9e8f5;background:#f6fbff;border-radius:16px;padding:12px 14px;color:#25465f;display:grid;gap:4px;font-weight:800;line-height:1.35;}
.incident-more-note span{font-size:13px;color:#577087;font-weight:750;}
.active-card #incident-list .incident-item{padding-top:14px;padding-bottom:14px;}
@media(max-width:760px){.incident-more-note{font-size:14px;}}

/* v088 homepage density / whitespace cleanup */
.primary-grid,
.card-grid,
.feature-row,
.lower-extras-stack,
.bottom-grid {
  align-items: start;
}

.primary-grid {
  grid-template-columns: minmax(300px, 410px) minmax(0, 1fr);
}

.primary-grid > .card,
.card-grid > .card,
.feature-row > .card,
.lower-extras-stack > .card {
  align-self: start;
}

.active-card {
  display: flex;
  flex-direction: column;
}

#incident-list {
  padding: 0 14px 2px;
}

#incident-list .compact-incident {
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  align-items: start;
}

#incident-list .compact-incident .incident-icon {
  width: 34px;
  height: 34px;
  font-size: 16px;
  margin-top: 4px;
}

#incident-list .compact-incident-body {
  min-width: 0;
}

#incident-list .incident-title {
  font-size: 14px;
  line-height: 1.18;
}

#incident-list .incident-location {
  font-size: 12px;
  line-height: 1.25;
  margin-top: 2px;
}

#incident-list .compact-incident-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  color: var(--muted);
  font-size: 11px;
  font-weight: 850;
  margin-top: 5px;
}

#incident-list .compact-incident-meta .badge {
  display: inline-flex;
  margin: 0;
  padding: 3px 7px;
  font-size: 10px;
  line-height: 1.1;
}

#incident-list .compact-actions {
  margin-top: 6px;
  gap: 6px;
}

#incident-list .compact-actions .scanner-audio-link,
#incident-list .compact-actions .inline-share-button {
  padding: 4px 8px;
  font-size: 11px;
}

.incident-more-note.compact-more-note {
  margin: 8px 0 2px;
  padding: 9px 10px;
  font-size: 12px;
  border-radius: 12px;
}
.incident-more-note.compact-more-note span { font-size: 11px; }

.map-card {
  min-height: 0;
}
.home-pulse-map-live {
  height: clamp(230px, 24vw, 300px);
}
.map-footer-links {
  padding-bottom: 8px;
}

.card-grid.four {
  align-items: start;
}
.compact-card {
  min-height: 0;
}
.weather-card,
.outages-card,
.news-card,
.events-card,
.blotter-card,
.overnight-card,
.community-board-card,
.obituary-card {
  height: auto;
}

/* Keep tall lists from forcing neighboring cards to stretch; full pages still show complete lists. */
#events-list,
#community-list,
#news-list,
#obituaries-list,
#blotter-list {
  max-height: 365px;
  overflow: auto;
  padding-right: 4px;
}

.lower-community-extras {
  margin-top: 18px;
}
.lower-extras-stack {
  display: grid;
  gap: 10px;
}
.lower-community-extras .jobs-board-card,
.lower-community-extras .photo-of-day-card,
.lower-community-extras .time-machine-card,
.lower-community-extras .food-card {
  padding-top: 14px;
  padding-bottom: 14px;
}

@media (min-width: 1180px) {
  .dashboard-shell { max-width: 1320px; }
  .card-grid.four { gap: 12px; }
}

@media (max-width: 1100px) {
  .primary-grid { grid-template-columns: 1fr; }
  #events-list,
  #community-list,
  #news-list,
  #obituaries-list,
  #blotter-list { max-height: none; overflow: visible; }
}


/* v088 obituary homepage card cosmetic fix */
.obituary-card #obituaries-list {
  max-height: 365px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 6px;
}
.obituary-card .obituary-item {
  grid-template-columns: minmax(0, 1fr);
  gap: 5px;
  padding: 12px 0;
}
.obituary-card .obituary-main {
  min-width: 0;
}
.obituary-card .obituary-name {
  font-size: 16px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.obituary-card .obituary-meta,
.obituary-card .obituary-service {
  overflow-wrap: break-word;
}
.obituary-card .obituary-source {
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  font-size: 12px;
  line-height: 1.25;
}
.obituary-card .obituary-source span {
  display: inline-flex;
  margin-top: 0;
  color: var(--muted);
}
.obituary-card .card-link {
  display: inline-block;
  margin-top: 8px;
}

/* v088 Pulse Map cleanup: cleaner markers, steadier sizing, and less visual clutter */
.pulse-map-card,
.map-card { overflow: visible; }
.pulse-map-live,
.home-pulse-map-live {
  box-shadow: inset 0 0 0 1px rgba(8,53,101,.04);
}
.pulse-div-icon {
  font-size: 11px !important;
  letter-spacing: .02em;
}
.pulse-div-icon span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  line-height: 1;
}
.pulse-div-icon.weather { background:#1675d1; }
.pulse-div-icon.community { background:#aa4f92; }
.pulse-div-icon.tourism { background:#0b87a8; }
.pulse-popup p {
  margin: 5px 0 0;
  color: #415a72;
  font-weight: 700;
  line-height: 1.35;
}
.pulse-popup span + span { margin-top: 2px; }
.pulse-layer-toggles button:disabled,
.map-card .map-toggles button:disabled {
  opacity: .45;
  cursor: not-allowed;
}
.home-map-empty {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: 400;
  border: 1px solid #cfe0ef;
  background: rgba(255,255,255,.94);
  color: #244762;
  font-weight: 900;
  border-radius: 12px;
  padding: 10px 12px;
  text-align: center;
}
.pulse-map-selected .card-link {
  padding: 6px 0 0;
}
.source-credit strong,
.pulse-map-sidebar .source-note strong { color:#083565; }

/* v088 Pulse Map purpose change: incident/outage map only, no deals/visitor/event pins */
.pulse-div-icon.fire_ems { background:#d53d37; }
.pulse-div-icon.police_activity { background:#214e86; }
.pulse-div-icon.traffic_crashes { background:#e07526; }
.pulse-div-icon.road_alerts { background:#d99b22; }
.pulse-div-icon.outages { background:#2f9f59; }
.pulse-div-icon.public_safety { background:#6c7782; }

/* v088 School links: homepage uses official district links, not repeated scraped rows */
.school-link-card .mini-link-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.school-link-card .mini-link-row a{font-weight:900;text-decoration:none;color:#0067c6;background:#eef7ff;border:1px solid #cfe5fb;border-radius:999px;padding:6px 10px;}
.school-footer-list a{white-space:normal;}


/* v089 Live Overnight in Schuyler County recap */
.overnight-list {
  display: grid;
  gap: 0;
}
.check-list .overnight-item,
.check-list .overnight-empty {
  border-top: 1px solid var(--line);
  padding: 10px 0;
}
.check-list .overnight-item:first-child,
.check-list .overnight-empty:first-child {
  border-top: 0;
}
.check-list .overnight-item::before,
.check-list .overnight-empty::before {
  content: "";
  margin: 0;
}
.overnight-item {
  display: grid;
  gap: 3px;
}
.overnight-item strong {
  color: #083565;
  line-height: 1.25;
}
.overnight-item strong a {
  color: inherit;
}
.overnight-item span {
  color: #31465b;
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.35;
}
.overnight-item small {
  color: var(--muted);
  font-size: .77rem;
  font-weight: 800;
}
.overnight-empty {
  color: #31465b;
  font-weight: 750;
  line-height: 1.4;
}
.overnight-empty.quiet {
  color: #17643a;
}
.overnight-empty.unavailable {
  color: #91591c;
}
.overnight-home-note {
  margin: 8px 0 0;
  line-height: 1.35;
}
.overnight-card[data-recap-state="live"] {
  border-top: 4px solid #0b5aa6;
}
.overnight-card[data-recap-state="quiet"] {
  border-top: 4px solid #2f9f59;
}
.overnight-card[data-recap-state="partial"],
.overnight-card[data-recap-state="unavailable"] {
  border-top: 4px solid #d69528;
}

/* v091 live Jobs, approved Photos, and sourced Time Machine */
.live-section-loading{display:block;padding:14px;border:1px dashed var(--line);border-radius:14px;color:#536b82;font-weight:800;background:#f8fbfe}
.live-empty-section{background:linear-gradient(135deg,#fff,#f6f9fc)}
.live-photo-thumb[hidden]{display:none!important}
.live-empty-card{grid-column:1/-1;border:1px dashed #b8c9d9;border-radius:16px;background:#f8fbfe;padding:22px;color:#405a73}
.live-empty-card h2,.live-empty-card h3{margin-top:0;color:#083565}
.live-feed-status-card{margin-bottom:16px}
.feed-warning{color:#8a5200!important;background:#fff8e7;border:1px solid #eed39a;border-radius:12px;padding:10px 12px}
.job-filter-row{display:grid;gap:7px;margin-top:14px;max-width:600px}
.job-filter-row input{width:100%;border:1px solid #c8d6e3;border-radius:12px;padding:12px 14px;font:inherit;background:#fff;color:#17334d}
.job-listing-card .card-link{margin-top:12px}
.history-card .history-source{font-size:12px;color:#60778c;font-weight:850;margin-top:12px}
.photo-feature-empty{grid-template-columns:1fr!important;background:linear-gradient(135deg,#fff,#f5f9fd)}
.photo-feature-empty .photo-feature-copy{max-width:760px}


/* v091 Seneca Lake conditions and seven-day forecast */
.seven-day-card{padding:20px;margin-bottom:14px}.current-weather-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;margin:4px 0 14px;border:1px solid #cfe0ed;border-radius:13px;background:#f4f9fd;color:#36516b;font-weight:800}.current-weather-strip strong{font-size:26px;color:#083565}.current-weather-strip .weather-alert-count{background:#b62b2b;color:#fff;border-radius:999px;padding:5px 9px}.forecast-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.forecast-day{border:1px solid #d8e4ee;border-radius:14px;background:#fff;padding:12px;display:flex;flex-direction:column;min-height:210px;box-shadow:0 5px 16px rgba(8,46,82,.05)}.forecast-day-heading{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.forecast-day-heading strong{color:#083565;font-size:15px}.forecast-day-heading span{color:#6b7f91;font-size:11px;font-weight:800}.forecast-symbol{font-size:32px;line-height:1;margin:14px 0 8px}.forecast-summary{font-size:13px;font-weight:800;color:#435d75;flex:1;margin:0 0 8px}.forecast-temps{color:#102f4c;font-size:15px}.forecast-meta{display:grid;gap:3px;border-top:1px solid #e3ebf2;margin-top:9px;padding-top:8px;color:#64798c;font-size:11px;font-weight:800}.weather-alert-list{margin-top:14px}.weather-alert-list h3{font-size:16px;color:#8b1e1e}.weather-alert-row{display:grid;gap:3px;padding:10px 12px;margin-top:8px;border-left:4px solid #b62b2b;background:#fff5f3;border-radius:8px;color:#542424}.weather-alert-row span{font-size:12px;font-weight:700}.lake-status-card{padding:20px}.lake-metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}.lake-metric{border:1px solid #d8e5ee;border-radius:13px;padding:13px;background:#f7fbfd;display:grid;gap:5px}.lake-metric span{text-transform:uppercase;letter-spacing:.04em;color:#657a8e;font-size:11px;font-weight:900}.lake-metric strong{color:#083565;font-size:15px;line-height:1.25}.lake-condition-list .notice-row{align-items:center}.lake-source-card{margin-bottom:20px}.lake-source-card p{max-width:940px;color:#425c76;font-weight:700}
@media(max-width:1050px){.forecast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lake-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.forecast-day{min-height:190px}.lake-metric-grid{grid-template-columns:1fr 1fr}.current-weather-strip{align-items:flex-start;flex-direction:column;gap:5px}}
@media(max-width:430px){.forecast-grid,.lake-metric-grid{grid-template-columns:1fr}}


/* v092 homepage live-local row and branded feature imagery */
.home-live-row{
  max-width:1320px;
  margin:14px auto 0;
  padding:0 12px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:stretch;
}
.home-live-row>.card{
  min-width:0;
  height:100%;
  display:flex;
  flex-direction:column;
  align-self:stretch;
}
.home-live-row .home-pulse-map-live,
.home-live-row .webcam-embed{
  height:340px;
  min-height:340px;
}
.home-live-row .map-footer-links,
.home-live-row .webcam-caption{
  margin-top:auto;
}
.home-live-row .webcam-caption{
  padding-top:10px;
}
.primary-grid.active-only{
  grid-template-columns:minmax(0,1fr);
}
.feature-row.feature-row-single{
  grid-template-columns:minmax(0,1fr);
}
.feature-art-image{
  display:block;
  width:100%;
  height:104px;
  object-fit:cover;
  object-position:center;
  background:#e8eef4;
}
.feature-card.guide .feature-art-image{object-position:center 47%;}
.feature-card.gorge .feature-art-image{object-position:center 48%;}
.feature-card.pass .feature-art-image{object-position:center 50%;}
@media(max-width:900px){
  .home-live-row{grid-template-columns:1fr;}
  .home-live-row .webcam-card{order:1;}
  .home-live-row .map-card{order:2;}
}
@media(max-width:720px){
  .home-live-row{gap:12px;margin-top:12px;padding:0 12px;}
  .home-live-row .home-pulse-map-live,
  .home-live-row .webcam-embed{
    height:250px;
    min-height:250px;
  }
  .home-live-row .map-heading{display:block;}
  .home-live-row .map-toggles{justify-content:flex-start;margin-top:10px;}
  .feature-art-image{height:132px;}
}

/* v095: Official local internet-provider status */
.internet-status-home{margin-top:14px;padding:18px}.internet-status-home-heading{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.internet-status-home-heading h2{font-size:24px;margin:0 0 6px}.internet-status-home-heading p:not(.eyebrow){margin:0;color:var(--muted);font-weight:700}.internet-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.internet-provider-card{border:1px solid var(--line);border-radius:16px;padding:16px;background:linear-gradient(180deg,#fff,#f7fbff);display:grid;gap:10px;min-width:0}.internet-provider-card.status-operational{border-color:#a9d9b8;background:linear-gradient(180deg,#fbfffc,#edf9f0)}.internet-provider-card.status-degraded,.internet-provider-card.status-maintenance,.internet-provider-card.status-partial_outage{border-color:#efca78;background:linear-gradient(180deg,#fffdf7,#fff7df)}.internet-provider-card.status-major_outage{border-color:#e8a3a3;background:linear-gradient(180deg,#fffafa,#fff0f0)}.internet-provider-card.status-address_check_required,.internet-provider-card.status-unavailable{border-color:#b9cde0;background:linear-gradient(180deg,#fff,#f2f7fc)}.internet-provider-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.internet-provider-name{display:flex;align-items:center;gap:9px;font-size:19px;color:#083565}.internet-provider-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e9f3ff;color:#0b67c7;font-size:19px}.internet-provider-status-pill{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:950;background:#e9f1f8;color:#37536d;white-space:nowrap}.internet-provider-status-pill:before{content:"";width:9px;height:9px;border-radius:50%;background:#7c91a5}.status-operational .internet-provider-status-pill{background:#dff4e5;color:#16733a}.status-operational .internet-provider-status-pill:before{background:#28a557}.status-degraded .internet-provider-status-pill,.status-maintenance .internet-provider-status-pill,.status-partial_outage .internet-provider-status-pill{background:#fff0c7;color:#8b5b00}.status-degraded .internet-provider-status-pill:before,.status-maintenance .internet-provider-status-pill:before,.status-partial_outage .internet-provider-status-pill:before{background:#e09b16}.status-major_outage .internet-provider-status-pill{background:#ffe0e0;color:#a02828}.status-major_outage .internet-provider-status-pill:before{background:#d83e3e}.internet-provider-detail{margin:0;color:#314b63;font-weight:700;line-height:1.45}.internet-provider-scope{font-size:12px;color:var(--muted);font-weight:800}.internet-provider-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.internet-provider-actions a{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:9px 12px;background:#0b67c7;color:#fff;font-size:13px;font-weight:900}.internet-provider-actions a.secondary{background:#edf5ff;color:#0b67c7;border:1px solid #c8ddf2}.internet-status-home-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:8px}.internet-status-home-footer .source-note{margin:0}.internet-status-hero{background:linear-gradient(135deg,#073965,#0d6b87)}.internet-status-updated{display:inline-flex;margin-top:16px;padding:8px 11px;border-radius:10px;background:rgba(255,255,255,.13);font-weight:850}.internet-provider-grid-page{margin:18px 0}.internet-provider-grid-page .internet-provider-card{padding:22px;min-height:235px}.internet-provider-grid-page .internet-provider-name{font-size:23px}.internet-policy-list,.internet-help-list{margin:12px 0 0;padding-left:22px}.internet-policy-list li,.internet-help-list li{padding:7px 0;color:#354f66;font-weight:700}.internet-provider-loading{min-height:110px;place-items:center;color:var(--muted)}
@media(max-width:800px){.internet-provider-grid{grid-template-columns:1fr}.internet-status-home-heading,.internet-status-home-footer{display:block}.internet-status-home-heading .updated{display:inline-block;margin-top:8px}.internet-status-home-footer .card-link{padding-left:0}.internet-provider-topline{align-items:flex-start}.internet-provider-status-pill{white-space:normal;text-align:center}}
@media(max-width:480px){.internet-status-home{padding:15px}.internet-provider-card{padding:14px}.internet-provider-topline{display:grid}.internet-provider-status-pill{justify-self:start}.internet-provider-actions{display:grid}.internet-provider-actions a{width:100%}}


/* v096: Condensed homepage Internet Service Status strip */
.internet-status-home.internet-status-compact{margin:16px 0 18px;padding:12px 14px;border-radius:16px}
.internet-status-compact-layout{display:grid;grid-template-columns:minmax(190px,.72fr) minmax(0,2fr) auto;gap:12px;align-items:center}
.internet-status-compact-heading{min-width:0}
.internet-status-compact-heading .eyebrow{margin:0 0 3px!important;font-size:10px}
.internet-status-compact-heading h2{margin:0;font-size:19px;line-height:1.15;color:#083565}
.internet-status-compact-heading .updated{display:block;margin-top:5px;font-size:10px;padding:4px 7px;width:max-content;max-width:100%}
.internet-provider-grid.internet-provider-grid-compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.internet-provider-card.internet-provider-card-compact{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:0;padding:9px 10px;border-radius:12px}
.internet-provider-compact-main{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.internet-provider-card-compact .internet-provider-name{font-size:14px;gap:7px;min-width:0}
.internet-provider-card-compact .internet-provider-icon{width:27px;height:27px;font-size:14px;flex:0 0 27px}
.internet-provider-card-compact .internet-provider-status-pill{padding:4px 7px;font-size:10px;line-height:1.15;white-space:normal}
.internet-provider-compact-link{font-size:11px;font-weight:900;white-space:nowrap;color:#0b67c7;text-align:right}
.internet-status-compact-more{font-size:12px;font-weight:950;color:#0b67c7;white-space:nowrap}
@media(max-width:980px){
  .internet-status-compact-layout{grid-template-columns:1fr}
  .internet-status-compact-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}
  .internet-status-compact-heading .updated{margin-top:0}
  .internet-status-compact-more{justify-self:start}
}
@media(max-width:700px){
  .internet-status-home.internet-status-compact{padding:11px 12px}
  .internet-status-compact-heading{display:block}
  .internet-status-compact-heading .updated{margin-top:5px}
  .internet-provider-grid.internet-provider-grid-compact{grid-template-columns:1fr;gap:7px}
  .internet-provider-card.internet-provider-card-compact{padding:8px 9px}
}
@media(max-width:430px){
  .internet-provider-card.internet-provider-card-compact{align-items:flex-start}
  .internet-provider-compact-main{display:grid;grid-template-columns:auto 1fr;gap:6px 7px}
  .internet-provider-card-compact .internet-provider-status-pill{grid-column:2;justify-self:start}
  .internet-provider-compact-link{align-self:center}
}

/* v101 public UI cleanup and hosted weather feeds */
.status-grid{
  gap:8px;
}
.status-card{
  min-height:0;
  padding:10px 12px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "num label"
    "link link";
  column-gap:8px;
  row-gap:2px;
  align-content:center;
  border-radius:11px;
  box-shadow:0 7px 18px rgba(8,46,82,.10);
}
.status-card .status-icon{display:none!important}
.status-card strong{
  grid-area:num;
  font-size:25px;
  line-height:1;
  align-self:center;
}
.status-card span:not(.status-icon){
  grid-area:label;
  font-size:12px;
  line-height:1.15;
  align-self:center;
}
.status-card a{
  grid-area:link;
  font-size:11px;
  line-height:1.1;
  margin-top:2px;
}
.status-card.danger,.status-card.warning,.status-card.ok,.status-card.weather,.status-card.events{
  border-color:rgba(255,255,255,.55);
}

.weather-map-grid{grid-template-columns:1fr}
.weather-map-card{min-width:0}

.lake-info-card{
  padding:20px;
  overflow:visible;
}
.lake-info-card h2{
  margin:0 0 10px;
}
.lake-info-card p{
  margin:0 0 12px;
  overflow-wrap:anywhere;
}
.lake-info-card .card-link{
  padding:4px 0 0;
}
.lake-details-card{
  padding-bottom:18px;
  overflow:visible;
}
.lake-condition-list{
  padding:0 18px;
}
.lake-condition-list .notice-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px 14px;
  align-items:start;
  padding:14px 0;
  border-top:1px solid var(--line);
}
.lake-condition-list .notice-row:first-child{border-top:0}
.lake-condition-list .notice-row>div{min-width:0}
.lake-condition-list .notice-row strong,
.lake-condition-list .notice-row p,
.lake-condition-list .notice-row small{
  overflow-wrap:anywhere;
}
.lake-condition-list .notice-row p{margin:5px 0;color:#405a73;font-weight:650}
.lake-condition-list .notice-row small{display:block;color:#6a7d90;font-weight:700}
.lake-condition-list .notice-row .tag{
  justify-self:end;
  white-space:normal;
  max-width:180px;
  text-align:center;
}
.lake-condition-list .notice-row .card-link{
  grid-column:1/-1;
  padding:2px 0 0;
  float:none;
}

@media(max-width:900px){
  .status-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:640px){
  .status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .status-card{padding:9px 10px}
  .status-card strong{font-size:23px}
  .status-card span:not(.status-icon){font-size:11px}
  .lake-info-card{padding:17px}
}
@media(max-width:480px){
  .lake-condition-list .notice-row{grid-template-columns:1fr}
  .lake-condition-list .notice-row .tag{justify-self:start;max-width:none}
}

/* v101 community photo submission */
.photo-submit-card{padding:24px}.photo-submit-card h2{margin:2px 0 8px}.photo-submit-card>p{margin:0 0 18px;color:#496177;font-weight:650}.photo-submit-form{margin-top:6px}.photo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.photo-submit-form label{display:grid;gap:7px;font-weight:850;color:#173b61}.photo-submit-form input[type="text"],.photo-submit-form input[type="email"],.photo-submit-form input[type="file"],.photo-submit-form textarea{width:100%;box-sizing:border-box;border:1px solid #cbd9e5;border-radius:12px;background:#fff;color:#173b61;font:inherit;padding:12px 13px}.photo-submit-form textarea{resize:vertical;min-height:112px}.photo-submit-form input:focus,.photo-submit-form textarea:focus{outline:3px solid rgba(24,126,214,.18);border-color:#187ed6}.photo-form-wide{grid-column:1/-1}.file-field small{color:#667b8f;font-weight:650}.consent-field{grid-template-columns:auto 1fr!important;align-items:start;gap:10px!important;background:#f4f9fd;border:1px solid #d5e2ec;border-radius:12px;padding:13px}.consent-field input{margin-top:4px;transform:scale(1.15)}.photo-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.photo-submit-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}.photo-submit-actions button{border:0;cursor:pointer}.photo-submit-actions button:disabled{opacity:.65;cursor:wait}.form-status{font-weight:800;color:#5b6e80}.form-status.success{color:#18723b}.form-status.error{color:#a2252d}.hero-utility-links .primary-link{background:#0b67c7;color:#fff!important;border-radius:10px;padding:8px 11px;text-decoration:none}
@media(max-width:700px){.photo-submit-card{padding:20px}.photo-form-grid{grid-template-columns:1fr}.photo-form-wide{grid-column:auto}.photo-submit-actions{align-items:stretch}.photo-submit-actions .action-button{width:100%}}

/* v101 daily plan wrapping and moderation dashboard */
#daily-plan-precheck .mini-list-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start;padding:7px 0}
#daily-plan-precheck .mini-list-row strong{display:block;color:#102f50}
#daily-plan-precheck .mini-list-row span{display:block;min-width:0;overflow-wrap:anywhere;word-break:normal;line-height:1.45}
.daily-plan-card,.daily-plan-step,.card{min-width:0}
.daily-plan-step span,.daily-plan-step em,.daily-plan-card p{overflow-wrap:anywhere}
.photo-submit-form select{width:100%;box-sizing:border-box;border:1px solid #cbd9e5;border-radius:12px;background:#fff;color:#173b61;font:inherit;padding:12px 13px}
.admin-review-shell{max-width:980px}.admin-login-card{max-width:520px;margin:70px auto;padding:28px}.admin-login-form{display:grid;gap:15px}.admin-login-form label{display:grid;gap:7px;font-weight:850}.admin-login-form input{padding:12px;border:1px solid #cbd9e5;border-radius:12px;font:inherit}.admin-review-section{margin-top:18px;padding-bottom:18px}.admin-submission-list{display:grid;gap:14px;padding:0 18px}.admin-submission-card{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;padding:16px;border:1px solid #d5e2ec;border-radius:16px;background:#f8fbfe}.admin-submission-card.text-only{grid-template-columns:1fr}.admin-submission-card img{width:100%;max-height:220px;object-fit:cover;border-radius:12px}.admin-submission-card h3{margin:0 0 8px;color:#083565}.admin-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.action-button.danger{background:#a82c34;color:#fff;border:0;cursor:pointer}.admin-flash{padding:14px 16px;border-radius:12px;font-weight:850}.admin-flash.success{background:#eaf7ee;color:#18723b}.admin-flash.error{background:#fff0f1;color:#9c2630}
@media(max-width:700px){#daily-plan-precheck .mini-list-row{grid-template-columns:1fr;gap:2px}.admin-submission-card{grid-template-columns:1fr}.admin-submission-list{padding:0 12px}.admin-actions .action-button{width:100%}}

/* v108 Schuyler Transit */
.transit-home-card{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px 22px;margin:18px 0}.transit-home-card h2{margin:2px 0 5px;color:#083565}.transit-home-card p{margin:0}.transit-home-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.transit-home-inline{min-width:280px}.transit-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:12px 17px;font-weight:900;cursor:pointer;text-decoration:none}.primary-button{background:#0b67c7;color:#fff}.secondary-button{background:#e8f2fc;color:#083565}.transit-departures{display:grid;gap:10px}.transit-departure-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border:1px solid #d9e5ef;border-radius:14px;padding:13px 15px;background:#f8fbfe}.transit-departure-row div{display:grid;gap:3px}.transit-departure-row span,.transit-departure-row small{color:#526a80}.transit-departure-row b{font-size:20px;color:#0b67c7;white-space:nowrap}.transit-route-list{display:grid;gap:10px}.transit-route-row{display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid #dce6ef;padding:10px 0}.transit-route-number{display:inline-flex;align-items:center;justify-content:center;min-width:52px;height:38px;border-radius:10px;background:#0b67c7;color:#fff;font-weight:950}.transit-route-row p{margin:4px 0 0;color:#526a80}.large-call-link{display:inline-flex;margin:12px 0;background:#0b67c7;color:#fff!important;border-radius:12px;padding:13px 17px;font-weight:950;text-decoration:none}.transit-chip-row{display:flex;flex-wrap:wrap;gap:9px}.transit-chip-row button{border:1px solid #bfd5e8;background:#f3f8fc;color:#083565;border-radius:999px;padding:9px 13px;font-weight:850;cursor:pointer}.transit-destination-results{margin-top:15px}.transit-info-grid{margin-top:18px}.transit-destinations{margin-top:18px}@media(max-width:720px){.transit-home-card{display:block;padding:15px 17px}.transit-home-actions{margin-top:12px}.transit-departure-row{align-items:flex-start}.transit-departure-row b{font-size:17px}.transit-home-inline{min-width:0}}
