:root{
--km-ink-900:#0F1B2D;--km-ink-700:#1F2D43;--km-ink-600:#3D4A5C;--km-ink-500:#5A6779;--km-ink-400:#7A8597;--km-ink-300:#A8B1C0;--km-ink-200:#C8CFD9;
--km-paper:#FFFFFF;--km-paper-2:#F5F7FA;--km-paper-3:#EEF3F8;--km-line:#E2E7EF;--km-line-strong:#C8D1DE;
--km-deep:#0A3D62;--km-deep-2:#1F6FB2;--km-deep-3:#06294A;--km-deep-soft:#E7EFF6;
--km-accent:#F2A310;--km-accent-2:#D88B00;--km-accent-soft:#FCEFD3;
--km-good:#1E8E5C;--km-good-soft:#DDF1E5;--km-warn:#C57400;--km-warn-soft:#FBE9CF;--km-bad:#B0341F;--km-bad-soft:#F7DDD6;
--shadow-1:0 1px 0 0 var(--km-line);--shadow-2:0 1px 2px rgba(15,27,45,.06),0 1px 0 var(--km-line);--shadow-3:0 6px 24px -8px rgba(15,27,45,.18),0 2px 6px rgba(15,27,45,.06);--shadow-4:0 24px 48px -16px rgba(15,27,45,.24);
--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
--font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
--km-mod:#F2A310;
--kb:#C8102E;--kb-deep:#8E0B20;--kb-soft:#FCE8EB;--kb-tint:#FEF4F6;--kb-line:#F1CDD3;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font-sans);color:var(--km-ink-900);background:var(--km-paper-2);-webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
a{color:inherit;text-decoration:none}
input{font-family:inherit}
.km-num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}
.km-skip{position:absolute;left:-999px;top:0;z-index:200;background:var(--km-deep);color:#fff;padding:10px 16px;border-radius:0 0 8px 0}
.km-skip:focus{left:0}
button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--km-deep-2);outline-offset:2px;border-radius:6px}
.km-ph{background-image:repeating-linear-gradient(135deg,#eef3f8 0 11px,#e6edf4 11px 22px);display:flex;align-items:center;justify-content:center;color:var(--km-ink-400);font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;text-align:center;padding:8px}
.km-bottom-nav{display:none}
.km-search-mobile{display:none}
.km-filterbar{display:flex}
.km-filterbtn{display:none}
.km-bkgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media(max-width:900px){.km-bkgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.km-bkgrid{grid-template-columns:1fr}}
.km-bkcols{display:grid;grid-template-columns:1.6fr .9fr;gap:22px;align-items:start}
@media(max-width:820px){.km-bkcols{grid-template-columns:1fr}}
.km-bksticky{position:sticky;top:76px}
@media(max-width:820px){.km-bksticky{position:static}}
@media(max-width:920px){
.km-desktop-nav{display:none!important}
.km-bottom-nav{display:flex!important}
.km-search-center{display:none!important}
.km-search-mobile{display:flex!important}
.km-filterbar{display:none!important}
.km-filterbtn{display:flex!important}
main{padding-bottom:92px!important}
}
.km-mapgrid{}
@media(max-width:720px){.km-mapgrid{grid-template-columns:1fr!important}}
.km-ch{transition:box-shadow .15s ease,transform .15s ease,border-color .15s ease}
.km-ch:hover{box-shadow:var(--shadow-3);transform:translateY(-2px)}
.km-rh{transition:background .12s ease}
.km-rh:hover{background:var(--km-paper-3)}
@keyframes kmrise{from{transform:translateY(18px)}to{transform:none}}
@keyframes kmrowin{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
@keyframes kmpulse{0%,100%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}50%{box-shadow:0 0 0 5px rgba(34,197,94,0)}}
@keyframes kmtickerin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes kmpindrop{from{transform:translate(-50%,-114%) scale(.9)}to{transform:translate(-50%,-100%) scale(1)}}
@keyframes kmpinpulse{0%,100%{box-shadow:0 0 0 0 rgba(242,163,16,.5)}50%{box-shadow:0 0 0 7px rgba(242,163,16,0)}}
@keyframes kmsheet{from{transform:translateY(100%)}to{transform:none}}
@keyframes kmWaveA{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes kmWaveB{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}
@keyframes kmSail{0%,100%{transform:translateY(0) rotate(-1.2deg)}50%{transform:translateY(-9px) rotate(1.2deg)}}
@keyframes kmSailFar{0%,100%{transform:translateY(0) rotate(0.8deg)}50%{transform:translateY(-6px) rotate(-0.8deg)}}
@keyframes kmTwinkle{0%,100%{opacity:.25}50%{opacity:.9}}
@keyframes kmRay{0%,100%{opacity:.35;transform:translateY(0) scaleY(1)}50%{opacity:.7;transform:translateY(-6px) scaleY(1.06)}}
@keyframes kmGull{0%{transform:translate(0,0)}50%{transform:translate(40px,-14px)}100%{transform:translate(80px,0)}}
@keyframes kmGullWing{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.5)}}
@keyframes kmEq{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){[style*="kmWave"],[style*="kmSail"],[style*="kmRay"],[style*="kmGull"],[style*="kmTwinkle"]{animation:none!important}}
.km-fab{position:fixed;right:16px;bottom:20px;z-index:70;display:flex;flex-direction:column;align-items:flex-end}
@media(max-width:920px){.km-fab{bottom:80px}}
@keyframes kmfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.km-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
@media(max-width:760px){.km-hero{grid-template-columns:1fr}}
.km-grid6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
@media(max-width:1000px){.km-grid6{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:720px){.km-grid6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.km-grid6{grid-template-columns:repeat(2,minmax(0,1fr))}}
.km-foot4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 20px}
@media(max-width:720px){.km-foot4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@keyframes kmsh{0%{background-position:-300px 0}100%{background-position:calc(300px + 100%) 0}}
.km-skel{background:linear-gradient(90deg,#eef2f7 25%,#e3e9f1 37%,#eef2f7 63%);background-size:300px 100%;animation:kmsh 1.3s linear infinite;border-radius:12px}
@media (prefers-reduced-motion:reduce){[style*="animation"]{animation:none!important}}
/* hover helpers — replace the design-tool style-hover attrs dropped during the JSX port */
.km-prov{transition:fill .15s,filter .15s,stroke-width .15s}
.km-prov:hover{filter:brightness(1.3) drop-shadow(0 0 6px rgba(245,166,35,.55));stroke:#fff;stroke-width:1.4}
