/* Existing QADAM tokens and typography also govern the Smart City features. */
[hidden] { display: none !important; }
.qw-btn--primary { color: var(--primary-color); }
.qw-btn--outline:hover { color: var(--primary-color); }
.qw-city { scroll-margin-top: 100px; background: var(--surface-color); }
.qw-city .qw-section__head { margin-bottom: 1.5rem; }
.qw-field { min-width: 0; }
.qw-field select { min-width: 0; width: 100%; max-width: 100%; }
.qw-planner__fields { grid-template-columns: minmax(0, 1fr); }
.city-map-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1.25rem; align-items: start; }
.city-map-main { min-width: 0; }
.city-map-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: .75rem; }
.city-map-toolbar .qw-btn { min-height: 40px; font-size: .82rem; }
.city-map-toolbar [aria-pressed="true"] { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
#cityMap { height: 540px; border-radius: var(--radius-lg); border: 1px solid var(--border-color); z-index: 0; }
#cityMap .leaflet-control-attribution a { text-decoration: underline; }
.city-map-sidebar { display: grid; gap: 1rem; padding-top: 52px; min-width: 0; }
.city-map-info, .city-weather, .city-route-result { padding: 1.25rem; background: #fff; border: 1px solid var(--border-color); border-radius: var(--radius-md); }
.city-map-info h3, .city-route-result h3 { font-size: 1rem; margin-bottom: .65rem; }
.city-map-info p { color: var(--text-muted); font-size: .9rem; line-height: 1.6; }
.city-map-actions { display: grid; gap: .6rem; margin-top: 1rem; }
.city-map-actions .qw-btn { white-space: normal; text-align: center; }
.city-weather h3 { font-size: .85rem; color: var(--text-muted); }
#cityWeatherValue { display: block; font: 800 2.2rem var(--font-heading); margin: .4rem 0; }
#cityWeatherFeels, #cityWeatherSource { display: block; font-size: .8rem; color: var(--text-muted); line-height: 1.5; }
#cityWeatherSource { margin-top: .4rem; text-decoration: underline; }
.city-route-result { margin-top: 1rem; }
#mapRoutePath { font-weight: 700; font-size: 1rem; }
#mapRouteMetrics { font: 800 1.5rem var(--font-heading); margin: .5rem 0; color: var(--primary-color); }
#mapRouteSteps { list-style: decimal; padding-left: 1.25rem; margin: .75rem 0; font-size: .85rem; color: var(--text-muted); line-height: 1.8; }
#mapRouteStatus { font-size: .92rem; color: var(--primary-color); margin-top: .75rem; }
#mapRouteStatus:empty { display: none; }
.qw-route__map { margin-top: .7rem; }
.city-map-demo { margin-top: .75rem; color: var(--text-muted); font-size: .85rem; line-height: 1.5; }
.assistant-send:disabled { opacity: .5; cursor: wait; }
.assistant-panel { max-height: calc(100dvh - 7rem); z-index: 1500; }
.assistant-panel__body { min-height: 100px; }
.qw-hero__title { text-wrap: balance; }
.qw-modal { z-index: 2000; }
.dest-viewer { touch-action: none; }
.dest-hero { width: 100%; }
.dest-map { z-index: 0; border: 1px solid var(--border-color); }
.qw-header { z-index: 1200; }
.qw-header__cta { display: none; }
.qw-nav { gap: 1rem; }
.qw-nav__link { white-space: nowrap; }
#cityWeatherValue.is-status { font: 600 .95rem var(--font-body); line-height: 1.5; }
@media (max-width: 1199px) {
    .qw-nav { display: none; }
    .qw-burger { display: inline-flex; }
}
@media (min-width: 640px) {
    .qw-planner__fields { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
}
@media (max-width: 1100px) {
    .qw-header__cta { display: none; }
    .qw-nav { gap: 1rem; }
    .city-map-layout { grid-template-columns: minmax(0, 1fr) 260px; }
}
@media (max-width: 760px) {
    .city-map-layout { grid-template-columns: 1fr; }
    .city-map-sidebar { padding-top: 0; grid-template-columns: 1fr 1fr; }
    #cityMap { height: 420px; }
    .city-map-info, .city-weather { padding: 1rem; }
    .city-map-toolbar .qw-btn { padding: .65rem .75rem; }
    .qw-city { scroll-margin-top: 85px; }
}
@media (max-width: 420px) {
    .qw-header__inner { gap: .4rem; }
    .qw-brand { font-size: .9rem; gap: .45rem; }
    .qw-brand__mark { width: 2rem; height: 2rem; flex-shrink: 0; }
    .qw-header__actions { gap: .35rem; }
    .qw-burger { width: 2.25rem; height: 2.25rem; }
    .lang-switch__btn { padding: .5rem .6rem; gap: .35rem; font-size: .8rem; }
    .lang-switch__btn > i:first-child { display: none; }
    .city-map-sidebar { grid-template-columns: 1fr; }
    .city-weather { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .25rem .75rem; }
    #cityWeatherValue { font-size: 1.8rem; grid-column: 2; grid-row: 1 / 3; }
    #cityWeatherSource { grid-column: 1; }
    #cityMap { height: 380px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
