/* StreetMate UX/UI polish — deliberate spacing and density refinements only. */
:root{--sm-card-radius:20px;--sm-card-shadow:0 16px 46px rgba(0,0,0,.28);--sm-section-gap:58px}
.city-picker[hidden]{display:none!important}
body{line-height:1.45;text-rendering:optimizeLegibility}
.btn{min-height:44px;padding-inline:18px}
.top{height:72px}
.dashboard{padding-bottom:84px}
.dashboard-search-section{min-height:440px;padding:72px 0 56px;gap:clamp(32px,6vw,76px)}
.dashboard-search-copy h1{font-size:clamp(54px,7.2vw,96px);margin:14px 0 16px}
.dashboard-search-copy p{max-width:620px;font-size:15px;line-height:1.55}
.dashboard-search{border-radius:22px;box-shadow:0 20px 60px rgba(0,0,0,.34)}
.dashboard-section{padding:var(--sm-section-gap) 0}
.dashboard-heading{margin-bottom:22px}
.dashboard-heading h2,.dashboard-map-card h2{font-size:clamp(32px,4vw,50px)}
.dashboard-heading p{max-width:650px;margin-top:8px;line-height:1.5}
.dashboard-stats{gap:12px}
.dashboard-stats article{min-height:116px;padding:17px 19px;grid-template-columns:42px 1fr;gap:2px 13px;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.dashboard-stats article>span{width:42px;height:42px;border-radius:13px;font-size:20px}
.dashboard-stats strong{font-size:32px}
.dashboard-stats p{font-size:11px}
.dashboard-venue-grid{gap:14px}
.dashboard-venue{min-height:260px;padding:18px;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.dashboard-venue-copy h3{font-size:22px}
.dashboard-venue-copy p{min-height:0;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dashboard-signal{padding:14px 16px;border-radius:17px}
.dashboard-event{padding:16px;border-radius:18px}
.dashboard-map-card{min-height:300px;padding:clamp(26px,4vw,48px);gap:38px;border-radius:24px;box-shadow:var(--sm-card-shadow)}
.dashboard-map-card p{margin:13px 0 20px;line-height:1.55}
.map-preview{height:215px;border-radius:20px}

.route-main.has-content{padding:54px 22px 78px}
.route-main.has-content .route-intro{margin-bottom:42px}
.route-intro h1{font-size:clamp(48px,7.5vw,88px)}
.route-intro p{margin-top:16px;font-size:clamp(14px,1.6vw,18px);line-height:1.55}
.route-icon{width:58px;height:58px;margin-bottom:18px;border-radius:18px;font-size:24px}
.signals-page-head{margin-bottom:18px}
.route-signal-card{padding:17px;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.route-signal-card p{margin:12px 0 15px;font-size:13px}
.route-signals-empty,.events-empty{padding:42px 22px;border-radius:var(--sm-card-radius)}

.venues-main{padding-bottom:78px}
.venues-hero{padding:64px 0 38px}
.venues-hero h1{font-size:clamp(58px,8vw,96px);margin:10px 0 12px}
.venues-hero p{font-size:clamp(14px,1.6vw,18px)}
.catalog-controls{margin:20px 0 46px;padding:14px;gap:10px;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.catalog-controls select,.catalog-search>div{height:46px}
.catalog-heading{margin-bottom:20px}
.catalog-heading h2{font-size:clamp(32px,4.2vw,48px)}
.venue-catalog-grid{gap:14px}
.catalog-card{display:flex;flex-direction:column;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.catalog-card:not(.expanded) .catalog-card-body{display:flex;flex:1;flex-direction:column}
.catalog-card:not(.expanded) .catalog-card-footer{margin-top:auto}
.catalog-card-visual{height:140px}
.catalog-card-body{padding:17px}
.catalog-card-body h3{font-size:20px}
.catalog-badges{margin:13px 0 10px}
.catalog-card-footer{margin-top:14px;padding-top:13px}
.venue-detail-section{padding:clamp(17px,2.4vw,23px);border-radius:18px}
.venue-detail-section-title{margin-bottom:14px}
.venue-long-description,.inline-detail-copy p{line-height:1.65}
.venue-score-panel{min-height:165px}

.events-search{height:54px;border-radius:16px}
.events-filters{margin:10px 0 30px}
.events-result-head{margin-bottom:15px}
.events-grid{gap:12px}
.event-card{display:flex;flex-direction:column;border-radius:var(--sm-card-radius);box-shadow:var(--sm-card-shadow)}
.event-card-accent{height:102px}
.event-card-body{display:flex;flex:1;flex-direction:column;padding:16px}
.event-card-body>.event-detail-toggle{margin-top:auto}
.event-card-meta{margin:13px 0}

.map-route{padding:32px 18px 54px!important}
.map-route .route-intro{margin-bottom:24px!important}
.map-mode-switch{border-radius:17px}
.map-mode-switch button{min-height:54px}
.map-stage{border-radius:22px;box-shadow:0 24px 70px rgba(0,0,0,.32)}

.admin-main{padding:34px clamp(18px,3.4vw,46px) 58px}
.section-heading{min-height:62px;margin-bottom:19px}
.section-heading h2{font-size:clamp(28px,3.5vw,40px)}
.metric-grid{gap:9px}
.metric-card{min-height:108px;padding:15px;border-radius:16px}
.metric-card strong{margin-top:12px;font-size:25px}
.admin-card,.table-card{border-radius:18px;box-shadow:var(--sm-card-shadow)}
.admin-card{padding:19px}
.quick-actions button{min-height:80px}

@media(max-width:900px){
  body:has(.mobile){padding-bottom:76px}
  body:has(.mobile) .top{height:64px;min-height:64px!important;padding:8px 16px!important;flex-wrap:nowrap!important}
  body:has(.mobile) .top .site-nav{display:none!important}
  body:has(.mobile) .top .login{display:none!important}
  body:has(.mobile) .top .city-picker{order:initial!important;margin-left:auto}
  .mobile{display:grid!important}
  .server-banner{top:64px}
  .dashboard-search-section{padding-top:54px}
}

@media(max-width:650px){
  body:has(.mobile){padding-bottom:76px}
  .logo{font-size:18px}.mark{width:36px}
  .city-picker{min-width:116px;height:42px}
  .mobile{height:72px;grid-template-columns:repeat(6,minmax(0,1fr));padding-bottom:env(safe-area-inset-bottom)}
  .mobile a,.mobile button{min-width:0;min-height:52px;font-size:7px}
  .mobile a{color:rgba(255,255,255,.55)!important}
  .mobile a[aria-current="page"]{color:var(--cyan)!important}
  .dashboard{padding:0 15px 74px}
  .dashboard-search-section{min-height:0;padding:36px 0 34px;gap:20px}
  .dashboard-search-section:before{width:390px;height:390px;right:-250px;top:10px}
  .dashboard-search-copy h1{font-size:clamp(48px,15.5vw,62px);line-height:.9;margin:11px 0 13px}
  .dashboard-search-copy p{font-size:14px;line-height:1.5}
  .dashboard-search{padding:8px;border-radius:20px}
  .dashboard-search>label{padding:5px 8px 8px;font-size:9px}
  .dashboard-search input{height:45px;font-size:13px}
  .dashboard-search button{min-height:46px}
  .dashboard-section{padding:38px 0}
  .dashboard-heading{gap:12px;margin-bottom:17px}
  .dashboard-heading h2,.dashboard-map-card h2{font-size:32px}
  .dashboard-heading p{font-size:11px}
  .stats-section .dashboard-heading{margin-bottom:14px}
  .dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .dashboard-stats article{min-width:0;min-height:96px;padding:11px 8px;display:block;text-align:center;border-radius:15px}
  .dashboard-stats article>span{width:32px;height:32px;margin:0 auto 8px;border-radius:10px;font-size:16px}
  .dashboard-stats strong{display:block;font-size:25px}
  .dashboard-stats p{margin-top:4px;font-size:8px;line-height:1.25}
  .dashboard-heading>.btn,.dashboard-heading-actions .btn{min-height:44px}
  .dashboard-venue{min-width:78vw;min-height:260px;padding:17px;border-radius:19px}
  .dashboard-signal{padding:13px;border-radius:16px}
  .dashboard-event{padding:14px;border-radius:16px}
  .dashboard-map-card{min-height:0;padding:22px 17px;gap:20px;border-radius:20px}
  .map-preview{height:165px}

  .route-main.has-content{padding:34px 14px 68px}
  .route-main.has-content .route-intro{margin-bottom:27px;text-align:left}
  .route-main.has-content .route-icon{display:none}
  .route-intro .kicker{margin-bottom:9px;font-size:9px}
  .route-intro h1{font-size:46px;line-height:.95}
  .route-intro p{margin:10px 0 0;font-size:14px;line-height:1.45}
  .route-content{width:100%}
  .signals-page-head{gap:13px;margin-bottom:16px}
  .signals-page-head h2{font-size:30px}
  .route-signal-card{padding:16px}
  .route-signals-empty,.events-empty{padding:34px 18px}

  .venues-main,.venue-detail-main{width:calc(100% - 28px)}
  .venues-hero{padding:38px 0 26px}
  .venues-hero h1{font-size:52px;margin:8px 0 9px}
  .venues-hero p{font-size:14px;line-height:1.45}
  .catalog-controls{grid-template-columns:1fr 1fr;margin:16px 0 32px;padding:10px;gap:9px}
  .catalog-search{grid-column:1/-1!important}
  .catalog-controls label:not(.catalog-toggle){gap:5px}
  .catalog-controls label>span{font-size:8px}
  .catalog-controls select,.catalog-search>div{height:44px;padding-inline:10px;font-size:10px}
  .catalog-toggle{min-width:0;min-height:44px;padding:8px 9px}
  .catalog-toggle span{font-size:8px!important;line-height:1.25}
  .catalog-heading{gap:7px;margin-bottom:16px}
  .catalog-heading h2{font-size:32px}
  .catalog-card{border-radius:19px}
  .catalog-card-visual{height:130px}
  .catalog-card-body{padding:16px}
  .catalog-card-body h3{font-size:21px}
  .status-badge,.catalog-tags span{padding:5px 7px}
  .venue-detail-shell{grid-template-columns:1fr;gap:10px}
  .venue-detail-section{grid-column:1/-1!important;padding:16px;border-radius:16px}
  .venue-gallery-placeholder{min-height:170px}
  .venue-primary-actions{gap:7px}
  .venue-primary-action{min-height:88px;padding:12px 10px}

  .events-search{height:48px}
  .events-filters{margin:9px 0 24px}
  .event-time-filters button{min-height:40px}
  .event-card{border-radius:18px}
  .event-card-accent{height:88px}
  .event-card-body{padding:15px}
  .event-card-title h3{font-size:19px}

  .map-route{padding:24px 10px 30px!important}
  .map-route .route-intro{margin-bottom:18px!important}
  .map-mode-switch{padding:5px}
  .map-mode-switch button{min-height:52px}
  .map-toolbar{gap:8px}
  .map-location-btn{min-height:44px}
  .map-stage{height:calc(100svh - 260px);min-height:480px;border-radius:18px}

  .admin-main{padding:24px 10px 48px}
  .admin-sidebar{padding:12px 10px}
  .admin-sidebar nav{gap:4px}
  .admin-sidebar nav button{min-height:42px}
  .section-heading{min-height:0;margin-bottom:16px;gap:12px}
  .section-heading h2{font-size:30px}
  .metric-grid{gap:7px}
  .metric-card{min-height:96px;padding:13px}
  .metric-card strong{font-size:23px}
  .admin-card{padding:16px}
  .quick-actions{gap:7px}
  .quick-actions button{min-height:74px}
}
/* Public legal-information link shared by all application footers. */
.footer-legal-link {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  margin-left: 14px;
  color: var(--cyan, #58e6df);
  font-size: 0.78rem;
  font-weight: 800;
  text-decoration: none;
}

.footer-legal-link:hover,
.footer-legal-link:focus-visible {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 640px) {
  .footer-legal-link {
    margin-left: 0;
  }
}
