.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.toolbar h1{margin:0}.badge{display:inline-block;padding:5px 9px;border-radius:20px;background:#eee;color:#555;font-size:11px;font-weight:800}.badge.ADMIN{background:#f3dce5;color:var(--wine)}.badge.CAPTURISTA{background:#e5f1ed;color:var(--green)}.badge.CONSULTA{background:#eee;color:#555}.mini{padding:7px 10px;font-size:12px}.danger{background:#fff;color:var(--red);border:1px solid #e8b9b9}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{text-align:left;padding:14px 10px;border-bottom:1px solid var(--line);font-size:13px}.empty{padding:35px;text-align:center;color:var(--muted)}
@media(max-width:700px){.users-table thead{display:none}.users-table tr{display:grid;border-bottom:1px solid var(--line);padding:10px}.users-table td{border:0;padding:5px}}
.map-layout{display:grid;grid-template-columns:1.4fr .7fr;gap:18px}.rail-map{min-height:540px;position:relative;overflow:hidden;background:linear-gradient(145deg,#f7f5f2,#ebe8e3)}.rail-map svg{width:100%;height:500px}.rail-line{fill:none;stroke:var(--wine);stroke-width:8;stroke-linecap:round}.rail-line.secondary{stroke:var(--gold);stroke-width:5}.station{cursor:pointer;fill:#fff;stroke:var(--wine);stroke-width:5}.station:hover,.station.selected{fill:var(--wine)}.map-detail h2{font-size:28px}.alerts{display:grid;gap:8px}.alert-row{border-left:4px solid var(--red);padding:12px 14px;background:#fff7f7;border-radius:5px}.alert-row small{color:var(--muted)}.print-only{display:none}
@media(max-width:900px){.map-layout{grid-template-columns:1fr}.rail-map{min-height:400px}.rail-map svg{height:360px}}
@media print{aside,header,#summary,#map,#projects,#incidents,#users,.no-print{display:none!important}.app{display:block}.view{display:none!important}#report{display:block!important;padding:0}.hero{background:#fff!important;color:#111!important;border:2px solid #a51f49}.print-only{display:block}body{background:#fff}.card{break-inside:avoid}}

.menu-toggle,.menu-backdrop{display:none}
@media(max-width:900px){
  body{overflow-x:hidden}.app{display:block}.app>aside{position:fixed;inset:0 auto 0 0;width:min(320px,88vw);height:100dvh;z-index:20;transform:translateX(-105%);transition:transform .22s ease;box-shadow:12px 0 40px #0003}.app>aside.open{transform:translateX(0)}
  .menu-backdrop{position:fixed;inset:0;background:#15111680;z-index:19}.menu-backdrop.open{display:block}.menu-toggle{display:inline-grid;place-items:center;background:#fff;color:var(--wine);border:1px solid var(--line);font-size:22px;width:44px;height:44px;padding:0;flex:0 0 auto}
  .gov{height:72px}.via{display:flex;padding:20px 22px 8px}.via b{font-size:30px}nav{display:grid;overflow:visible;padding:8px 12px}nav button{white-space:normal}.session{display:grid;margin-top:auto}
  header{height:76px;padding:0 14px;gap:12px}.page-heading{min-width:0;flex:1}.page-heading small{display:none}.page-heading h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view{padding:18px 14px}.stats,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.inc-layout{grid-template-columns:1fr}.incident-list{max-height:380px;overflow:auto}.card{min-width:0}.report-table,.users-table{display:block;overflow-x:auto;white-space:nowrap}
}
@media(max-width:560px){
  header h2{font-size:18px}header #new-incident{padding:10px;font-size:0;white-space:nowrap}header #new-incident::after{content:'+ Incidencia';font-size:12px}.view{padding:14px 10px}
  .stats,.project-grid,.detail-meta,.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.hero{align-items:flex-start;gap:12px;padding:20px;flex-direction:column}.hero h1{font-size:22px}.hero strong{font-size:28px}.card{padding:18px}.stat{min-height:118px}.stat b{font-size:27px;margin-top:9px}.follow-form{flex-direction:column}.detail h1{font-size:24px}.dialog-head h2{font-size:23px}dialog form{padding:20px}.toolbar{align-items:flex-start;flex-direction:column}.toolbar>button{width:100%}
}
