:root{
  --ems-bg:#0f172a;
  --ems-panel:#111827;
  --ems-muted:#1f2937;
  --ems-text:#e5e7eb;
  --ems-soft:#9ca3af;
  --ems-accent:#22c55e;
  --ems-info:#3b82f6;
  --ems-border:#374151;
  --ems-shadow:0 10px 30px rgba(0,0,0,.35);
  --ems-radius:16px;
}
*{box-sizing:border-box}
body{
  margin:0;
  background:linear-gradient(180deg,#0b1022 0%,#0f172a 100%);
  color:var(--ems-text);
  font:14px/1.5 system-ui,Segoe UI,Roboto,Ubuntu,sans-serif;
}
a{color:inherit;text-decoration:none}

.ems-login-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(1200px 600px at 10% -10%, #1d2a52 0%, transparent 60%),
    radial-gradient(900px 500px at 110% 120%, #13213d 0%, transparent 60%);
}
.ems-card{
  width:100%;
  max-width:420px;
  background:rgba(17,24,39,.8);
  border:1px solid var(--ems-border);
  border-radius:var(--ems-radius);
  box-shadow:var(--ems-shadow);
  backdrop-filter: blur(8px);
  padding:24px;
}
.ems-card h1{
  margin:0 0 6px;
  font-size:22px;
  text-align:center;
}
.ems-card p{
  margin:0 0 18px;
  color:var(--ems-soft);
  text-align:center;
}
.ems-login-logo{
  display:block;
  width:140px;
  height:auto;
  margin:0 auto 16px auto;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.55));
}
.ems-field{display:flex;flex-direction:column; gap:6px; margin:12px 0}
.ems-label{font-size:12px;color:var(--ems-soft)}
.ems-input{
  background:#0b1224;
  border:1px solid var(--ems-border);
  color:var(--ems-text);
  padding:12px 14px;
  border-radius:12px;
  outline:none;
  transition:.2s;
}
.ems-input:focus{border-color:var(--ems-info);box-shadow:0 0 0 3px rgba(59,130,246,.15)}
.ems-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  padding:12px 14px;
  border-radius:12px;
  background:linear-gradient(180deg,#22c55e,#16a34a);
  color:#001b0f;
  font-weight:700;
  cursor:pointer;
  transition:.15s;
  width:100%;
}
.ems-btn:active{transform:translateY(1px)}
.ems-hint{font-size:12px;color:var(--ems-soft); margin-top:12px}

.ems-shell{display:grid; grid-template-columns:260px 1fr; min-height:100vh}
.ems-content{
  min-width:0;
  display:grid;
  grid-template-rows:auto 1fr;
}
.ems-aside{
  background:var(--ems-panel);
  border-right:1px solid var(--ems-border);
  padding:18px;
  position:sticky;
  top:0;
  height:100vh;
}
.ems-brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  margin-bottom:16px;
  text-align:center;
}
.ems-logo-op{
  width:100px;
  height:auto;
  display:block;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.6));
}
.ems-brand-sub{color:var(--ems-soft); font-size:12px}
.ems-nav{display:flex; flex-direction:column; gap:6px; margin-top:8px}
.ems-nav-link{
  width:100%;
  text-align:left;
  background:#0b1224;
  border:1px solid var(--ems-border);
  color:var(--ems-text);
  padding:10px 12px;
  border-radius:12px;
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  font:inherit;
}
.ems-nav-link[aria-current="page"]{border-color:var(--ems-info)}
.ems-topbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:14px 18px;
  border-bottom:1px solid var(--ems-border);
  background:linear-gradient(180deg, rgba(17,24,39,.8), rgba(17,24,39,.6));
  position:sticky;
  top:0;
  z-index:5;
  backdrop-filter: blur(6px);
  gap:12px;
}
.ems-top-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.ems-main{padding:18px; display:grid; gap:18px}
.ems-grid{display:grid; grid-template-columns:minmax(0,1.8fr) minmax(360px,1fr); gap:18px}
.ems-dashboard-layout{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(390px,.95fr);
  gap:18px;
  align-items:start;
}
.ems-dashboard-layout-single{
  grid-template-columns:1fr;
}
.ems-dashboard-primary{
  display:grid;
  gap:18px;
}
.ems-dashboard-secondary{
  min-width:0;
}
.ems-panel{
  background:rgba(17,24,39,.7);
  border:1px solid var(--ems-border);
  border-radius:var(--ems-radius);
  box-shadow:var(--ems-shadow);
  padding:16px;
}
.ems-panel h2{margin:0 0 10px; font-size:16px}
.ems-panel h3{margin:14px 0 10px; font-size:14px; color:#cbd5e1}
.ems-panel-compact{
  padding:14px 16px;
}
.ems-panel-map{
  padding:16px;
}
.ems-map-tools{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
}
.ems-map-select{
  min-width:220px;
}
.ems-btn-sec.is-active{
  border-color:var(--ems-info);
  box-shadow:0 0 0 3px rgba(59,130,246,.15);
}
.ems-map-canvas{
  width:100%;
  min-height:320px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid var(--ems-border);
  background:#0b1224;
}
.ems-panel-pending-main{
  min-height:340px;
}
.ems-dashboard-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,1fr);
  gap:14px;
  align-items:start;
  padding:12px 16px;
}
.ems-dashboard-hero h1{
  margin:0;
  font-size:24px;
}
.ems-kpi-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.ems-kpi-card{
  border:1px solid var(--ems-border);
  border-radius:14px;
  background:#0b1224;
  padding:14px;
  display:grid;
  gap:6px;
  align-content:start;
}
.ems-kpi-card strong{
  font-size:22px;
  line-height:1.1;
}
.ems-kpi-label{
  color:var(--ems-soft);
  font-size:12px;
}
.ems-section-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.ems-section-actions{
  display:flex;
  gap:10px;
  align-items:center;
  flex-wrap:wrap;
}
.ems-section-head-tight{
  margin-bottom:4px;
}
.ems-table{width:100%; border-collapse:collapse; font-size:13px}
.ems-table th, .ems-table td{
  border-bottom:1px solid var(--ems-border);
  padding:10px;
  text-align:left;
  vertical-align:top
}
.ems-table th{color:#cbd5e1; font-weight:600; background:#0b1224}
.ems-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  background:#0b1224;
  border:1px solid var(--ems-border);
  padding:8px 10px;
  border-radius:999px;
  font-size:12px;
}
.ems-selection-banner{
  display:grid;
  gap:6px;
  padding:12px 14px;
  margin:0 0 14px;
  border:1px solid var(--ems-border);
  border-radius:14px;
  background:#0b1224;
}
.ems-selection-banner-head{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.ems-selection-banner strong{
  font-size:14px;
}
.ems-chip-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--ems-accent);
  display:inline-block;
}
.ems-danger{color:#fecaca;border-color:#ef4444}
.ems-actions{display:flex; gap:8px; flex-wrap:wrap}
.ems-btn-sec{
  background:#0b1224;
  color:var(--ems-text);
  border:1px solid var(--ems-border);
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
}
.ems-btn-info{
  background:linear-gradient(180deg,#3b82f6,#2563eb);
  color:#e8f1ff;
  border:1px solid #1d4ed8;
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
}
.ems-alert{
  border-radius:12px;
  padding:10px 12px;
  border:1px solid transparent;
}
.ems-alert.ok{border-color:#16a34a; color:#bbf7d0; background:rgba(22,163,74,.1)}
.ems-alert.err{border-color:#ef4444; color:#fecaca; background:rgba(239,68,68,.1)}
.ems-ok{
  border-radius:12px;
  padding:10px 12px;
  border:1px solid #16a34a;
  color:#bbf7d0;
  background:rgba(22,163,74,.12);
  margin-bottom:12px;
}
.ems-error{
  border-radius:12px;
  padding:10px 12px;
  border:1px solid #ef4444;
  color:#fecaca;
  background:rgba(239,68,68,.12);
  margin-bottom:12px;
}
.ems-soft-text{color:var(--ems-soft)}
.ems-location-list{
  display:grid;
  gap:12px;
  margin-top:12px;
}
.ems-location-card{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--ems-border);
  border-radius:14px;
  background:#0b1224;
}
.ems-location-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  flex-wrap:wrap;
}
.ems-location-card-actions{
  display:flex;
  justify-content:flex-end;
}
.ems-btn-xs{
  padding:7px 10px;
  font-size:12px;
  border-radius:8px;
}
.ems-location-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:8px 12px;
  color:#cbd5e1;
}
.ems-location-card.is-empty{
  border-style:dashed;
}
.ems-location-arrival{
  color:#067647;
  font-weight:700;
}
.ems-map-marker-shell{
  background:transparent;
  border:0;
}
.ems-map-marker{
  display:grid;
  gap:2px;
  min-width:148px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(15,23,42,.92);
  box-shadow:0 8px 22px rgba(0,0,0,.35);
  color:#fff;
  text-align:center;
}
.ems-map-marker strong{
  font-size:12px;
  line-height:1.1;
}
.ems-map-marker span{
  font-size:11px;
  color:#cbd5e1;
}
.ems-map-marker.is-ok{
  border-color:#16a34a;
}
.ems-map-marker.is-alert{
  border-color:#ef4444;
}
.ems-map-marker.is-neutral{
  border-color:#3b82f6;
}
.ems-map-popup{
  color:#111827;
  line-height:1.5;
}
.ems-map-destination-shell{
  background:transparent;
  border:0;
}
.ems-map-destination{
  display:grid;
  gap:2px;
  min-width:132px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:0 8px 22px rgba(0,0,0,.28);
  text-align:center;
}
.ems-map-destination strong{
  font-size:12px;
  line-height:1.1;
}
.ems-map-destination span{
  font-size:11px;
}
.ems-map-destination.is-pending{
  background:rgba(180,83,9,.92);
  color:#fff7ed;
  border-color:#f59e0b;
}
.ems-map-destination.is-arrived{
  background:rgba(6,118,71,.92);
  color:#ecfdf3;
  border-color:#16a34a;
}
.ems-eyebrow{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:11px;
  color:#86efac;
  margin:0 0 10px;
}
.ems-turno-wrap{
  min-height:100vh;
  padding:32px;
  background:
    radial-gradient(900px 480px at 15% -10%, rgba(34,197,94,.14), transparent 60%),
    radial-gradient(1000px 520px at 100% 0%, rgba(59,130,246,.12), transparent 58%),
    linear-gradient(180deg,#08111f 0%,#0f172a 100%);
  display:grid;
  gap:22px;
}
.ems-turno-header{
  max-width:760px;
}
.ems-turno-header h1{
  margin:0 0 8px;
  font-size:34px;
}
.ems-turno-header p{
  margin:0 0 6px;
  color:#dbe6f3;
}
.ems-turno-note{
  color:var(--ems-soft);
}
.ems-grid-form{
  display:grid;
  gap:18px;
}
.ems-assignment-card{
  border:1px solid var(--ems-border);
  border-radius:14px;
  padding:16px;
  background:#0b1224;
  display:grid;
  gap:12px;
}
.ems-assignment-card h3{
  margin:0;
}
.ems-crew-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ems-crew-slot{
  display:grid;
  gap:6px;
}
.ems-assignment-list{
  display:grid;
  gap:14px;
}
.ems-assignment-summary{
  border:1px solid var(--ems-border);
  border-radius:14px;
  padding:14px;
  background:#0b1224;
  display:grid;
  gap:12px;
}
.ems-assignment-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.ems-crew-list{
  margin:0;
  padding-left:18px;
  color:#dbe6f3;
}
.ems-inline-edit{
  display:grid;
  gap:12px;
}
.ems-form{
  display:grid;
  gap:12px;
}
.ems-search-results,
.ems-results-list{
  display:grid;
  gap:10px;
}
.ems-result-card,
.ems-result-empty{
  width:100%;
  text-align:left;
  padding:12px 14px;
  border:1px solid var(--ems-border);
  border-radius:12px;
  background:#0b1224;
  color:var(--ems-text);
}
.ems-result-card{
  cursor:pointer;
  display:grid;
  gap:4px;
  font:inherit;
}
.ems-result-empty{
  color:var(--ems-soft);
}
.ems-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ems-row-stats{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.ems-field{
  display:grid;
  gap:6px;
}
.ems-field-full{
  grid-column:1 / -1;
}
.ems-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:end;
}
.ems-placeholder-block,
.ems-vehicle-list,
.ems-timeline,
.ems-clientes-grid,
.ems-pending-attention-list,
.ems-timeline-focus{
  display:grid;
  gap:12px;
}
.ems-vehicle-card,
.ems-timeline-item{
  display:grid;
  gap:6px;
  padding:12px 14px;
  border:1px solid var(--ems-border);
  border-radius:12px;
  background:#0b1224;
}
.ems-placeholder-block{
  min-height:220px;
  align-content:start;
}
.ems-placeholder-block-soft{
  min-height:140px;
  padding:4px 0 0;
}
.ems-placeholder-block-pending{
  min-height:300px;
  border:1px dashed rgba(148,163,184,.25);
  border-radius:14px;
  padding:18px;
  background:linear-gradient(180deg, rgba(11,18,36,.7), rgba(11,18,36,.25));
}
.ems-map-placeholder{
  min-height:360px;
  border:1px dashed rgba(148,163,184,.35);
  border-radius:14px;
  background:
    radial-gradient(circle at top left, rgba(59,130,246,.16), transparent 38%),
    linear-gradient(180deg, rgba(15,23,42,.55), rgba(11,18,36,.95));
  display:grid;
  place-items:center;
  text-align:center;
  gap:8px;
  padding:24px;
}
.ems-map-placeholder span{
  font-size:18px;
  font-weight:700;
}
.ems-grid-bottom{
  grid-template-columns:minmax(0,1.3fr) minmax(320px,.9fr);
}
.ems-timeline-compact{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.ems-timeline-compact .ems-timeline-item{
  min-height:100%;
}
.ems-check-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.ems-check-card{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--ems-border);
  border-radius:12px;
  background:#0b1224;
  color:var(--ems-text);
}
.ems-check-card input{
  margin:0;
}
.ems-area{
  min-height:88px;
  resize:vertical;
}
.ems-payment-panel{
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid rgba(245,158,11,.35);
  border-radius:14px;
  background:rgba(120,53,15,.12);
}
.ems-payment-panel[hidden],
.ems-address-accordion[hidden],
[hidden]{
  display:none !important;
}
.ems-address-accordion{
  background:rgba(92,46,18,.08);
  border-color:rgba(180,83,9,.26);
}
.ems-accordion-summary{
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.ems-accordion-summary::-webkit-details-marker{
  display:none;
}
.ems-accordion-summary::after{
  content:"+";
  font-size:20px;
  color:#fdba74;
}
.ems-address-accordion[open] .ems-accordion-summary::after{
  content:"-";
}
.ems-accordion-body{
  display:grid;
  gap:12px;
  padding-top:6px;
}
.ems-address-extra-charge{
  display:grid;
  gap:12px;
  padding:12px;
  border-radius:12px;
  border:1px solid rgba(251,191,36,.26);
  background:rgba(120,53,15,.12);
}
.ems-payment-actions{
  display:flex;
  gap:12px;
  align-items:center;
  flex-wrap:wrap;
}
.ems-clientes-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:14px;
}
.ems-client-card{
  display:grid;
  gap:10px;
  padding:16px;
  border:1px solid var(--ems-border);
  border-radius:14px;
  background:#0b1224;
}
.ems-client-card-head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
}
.ems-client-card h3{
  margin:0;
  font-size:16px;
}
.ems-client-meta{
  display:grid;
  gap:4px;
  color:var(--ems-soft);
  font-size:13px;
}
.ems-client-coverage{
  border:1px solid var(--ems-border);
  border-radius:12px;
  padding:10px 12px;
  font-size:13px;
  line-height:1.45;
}
.ems-client-coverage.is-ok{
  background:rgba(34,197,94,.12);
  border-color:rgba(34,197,94,.28);
  color:#dcfce7;
}
.ems-client-coverage.is-danger{
  background:rgba(239,68,68,.12);
  border-color:rgba(239,68,68,.32);
  color:#fee2e2;
}
.ems-client-owner{
  display:grid;
  gap:8px;
  padding:12px;
  border:1px solid rgba(148,163,184,.2);
  border-radius:12px;
  background:rgba(15,23,42,.8);
}
.ems-client-owner-title{
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#cbd5e1;
}
.ems-client-owner-grid{
  display:grid;
  gap:6px;
  color:var(--ems-soft);
  font-size:13px;
}
.ems-client-tags{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ems-client-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ems-pending-attention-list{
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
}
.ems-pending-attention-list.is-table{
  display:block;
}
.ems-view-toggle{
  display:flex;
  gap:8px;
  align-items:center;
}
.ems-view-toggle .ems-btn-sec.is-active{
  border-color:var(--ems-info);
  box-shadow:0 0 0 2px rgba(59,130,246,.14);
}
.ems-pending-card{
  display:grid;
  gap:12px;
  align-content:start;
  padding:16px;
  border:1px solid var(--ems-border);
  border-radius:16px;
  background:#0b1224;
  box-shadow:var(--ems-shadow);
  min-height:100%;
}
.ems-pending-card.is-empty{
  min-height:160px;
  align-content:center;
}
.ems-pending-card-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.ems-pending-card h3{
  margin:0;
  font-size:17px;
}
.ems-pending-wait{
  display:grid;
  gap:4px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(15,23,42,.85);
  border:1px solid rgba(148,163,184,.16);
}
.ems-pending-wait strong{
  font-size:22px;
}
.ems-pending-actions{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.ems-recategory-form{
  display:grid;
  gap:12px;
}
.ems-pending-table{
  display:grid;
  gap:10px;
}
.ems-pending-table-head,
.ems-pending-row-summary{
  display:grid;
  grid-template-columns:minmax(280px,1.6fr) 110px 130px 130px 120px minmax(180px,1.2fr);
  gap:12px;
  align-items:center;
}
.ems-pending-table-head{
  padding:0 14px 10px;
  color:#cbd5e1;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.ems-pending-row{
  border:1px solid var(--ems-border);
  border-radius:16px;
  background:#0b1224;
  overflow:hidden;
}
.ems-pending-row-summary{
  list-style:none;
  padding:14px;
  cursor:pointer;
}
.ems-pending-row-summary::-webkit-details-marker{
  display:none;
}
.ems-pending-col-main{
  display:grid;
  gap:4px;
}
.ems-pending-col-main strong{
  font-size:15px;
}
.ems-pending-col-main small{
  color:var(--ems-soft);
  line-height:1.35;
}
.ems-stage-inline{
  display:inline-flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.ems-stage-inline strong{
  color:#cbd5e1;
  font-size:12px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.ems-stage-inline span:last-child{
  color:#94a3b8;
}
.ems-pending-row-detail{
  display:grid;
  gap:14px;
  padding:0 14px 14px;
  border-top:1px solid rgba(148,163,184,.12);
}
.ems-pending-row-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ems-pending-row-meta p{
  margin:0;
}
.ems-pending-row-extra{
  display:grid;
  gap:10px;
}
.ems-pending-detail-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ems-pending-detail-grid div{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border:1px solid rgba(148,163,184,.12);
  border-radius:12px;
  background:rgba(15,23,42,.7);
}
.ems-pending-detail-grid strong{
  font-size:12px;
  color:#cbd5e1;
}
.ems-timeline-highlight{
  border-width:2px;
}
.severity-normal{
  border-color:rgba(34,197,94,.28);
}
.severity-media{
  border-color:rgba(245,158,11,.38);
}
.severity-alta{
  border-color:rgba(249,115,22,.42);
}
.severity-critica{
  border-color:rgba(239,68,68,.52);
  background:linear-gradient(180deg, rgba(69,10,10,.32), rgba(11,18,36,.96));
}
.severity-chip-normal{
  border-color:rgba(34,197,94,.28);
}
.severity-chip-media{
  border-color:rgba(245,158,11,.38);
  color:#fde68a;
}
.severity-chip-alta{
  border-color:rgba(249,115,22,.42);
  color:#fdba74;
}
.severity-chip-critica{
  border-color:rgba(239,68,68,.52);
  color:#fecaca;
}
.ems-btn-ghost{
  background:transparent;
  color:var(--ems-text);
  border:1px solid var(--ems-border);
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
}
.ems-btn-ghost[disabled],
.ems-btn-sec[disabled],
.ems-btn-info[disabled]{
  opacity:.55;
  cursor:not-allowed;
}

@media (max-width: 900px){
  .ems-shell{grid-template-columns:1fr}
  .ems-aside{border-right:0; border-bottom:1px solid var(--ems-border)}
  .ems-dashboard-hero,
  .ems-dashboard-layout,
  .ems-kpi-grid,
  .ems-grid,
  .ems-grid-bottom,
  .ems-row,
  .ems-row-stats{grid-template-columns:1fr}
  .ems-crew-grid{grid-template-columns:1fr}
  .ems-turno-wrap{padding:18px}
  .ems-turno-header h1{font-size:28px}
  .ems-search-row{grid-template-columns:1fr}
  .ems-check-grid{grid-template-columns:1fr}
  .ems-timeline-compact{grid-template-columns:1fr}
  .ems-map-placeholder{min-height:240px}
  .ems-map-tools{width:100%}
  .ems-map-select{min-width:0; width:100%}
  .ems-payment-actions{align-items:flex-start; flex-direction:column}
  .ems-clientes-grid{grid-template-columns:1fr}
  .ems-pending-attention-list{grid-template-columns:1fr}
  .ems-pending-table-head{display:none}
  .ems-pending-row-summary{grid-template-columns:1fr}
  .ems-pending-row-meta,
  .ems-pending-detail-grid{grid-template-columns:1fr}
}
.ems-help { font-size: 0.92rem; margin-top: .25rem; }
.ems-help-info { opacity: .9; }
.ems-help-ok { font-weight: 600; }
.ems-help-warn { font-weight: 600; }
.ems-help-danger { font-weight: 700; }
.ems-btn.is-loading{
  position:relative;
  opacity:.78;
  cursor:wait;
}
.ems-btn.is-loading::after{
  content:"";
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid rgba(0,27,15,.28);
  border-top-color:#001b0f;
  animation:ems-spin .85s linear infinite;
}
.ems-dispatch-feedback,
.ems-dispatch-queue{
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--ems-border);
  border-radius:14px;
  background:#0b1224;
}
.ems-dispatch-feedback-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.ems-dispatch-state{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  border:1px solid var(--ems-border);
}
.ems-dispatch-state::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:currentColor;
  opacity:.9;
}
.ems-dispatch-state.is-info{
  color:#93c5fd;
  border-color:rgba(59,130,246,.4);
  background:rgba(59,130,246,.12);
}
.ems-dispatch-state.is-ok{
  color:#86efac;
  border-color:rgba(34,197,94,.42);
  background:rgba(34,197,94,.12);
}
.ems-dispatch-state.is-warn{
  color:#fcd34d;
  border-color:rgba(245,158,11,.42);
  background:rgba(245,158,11,.12);
}
.ems-dispatch-state.is-danger{
  color:#fca5a5;
  border-color:rgba(239,68,68,.42);
  background:rgba(239,68,68,.12);
}
.ems-dispatch-state.is-sending::before{
  animation:ems-pulse .9s ease-in-out infinite;
}
.ems-dispatch-queue-list{
  display:grid;
  gap:10px;
}
.ems-dispatch-item{
  display:grid;
  gap:8px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--ems-border);
  background:rgba(15,23,42,.82);
}
.ems-dispatch-item-head{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:flex-start;
}
.ems-dispatch-item-title{
  display:grid;
  gap:2px;
}
.ems-dispatch-item-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.ems-dispatch-item-meta{
  color:var(--ems-soft);
  font-size:12px;
}
.ems-dispatch-item-message{
  margin:0;
}
.ems-dispatch-item.is-success{
  border-color:rgba(34,197,94,.35);
}
.ems-dispatch-item.is-error{
  border-color:rgba(239,68,68,.35);
}
.ems-dispatch-item.is-sending{
  border-color:rgba(59,130,246,.35);
}
@keyframes ems-spin{
  to{transform:rotate(360deg)}
}
@keyframes ems-pulse{
  0%,100%{opacity:.35}
  50%{opacity:1}
}
.ems-hr { border: 0; height: 1px; opacity: .15; margin: 14px 0; background: currentColor; }
.ems-burger{
  display:none;
  border:1px solid var(--ems-border);
  background:#0b1224;
  color:var(--ems-text);
  padding:8px 10px;
  border-radius:10px;
  cursor:pointer;
}
.ems-drawer-backdrop{
  display:none;
}
.ems-modal-open{
  overflow:hidden;
}
.ems-modal-back{
  position:fixed;
  inset:0;
  background:rgba(3,8,20,.72);
  backdrop-filter:blur(6px);
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:2200;
}
.ems-modal-back.is-open{
  display:flex;
}
.ems-modal{
  position:relative;
  z-index:2201;
  isolation:isolate;
  width:min(1200px,100%);
  max-height:calc(100vh - 48px);
  overflow:auto;
  background:rgba(17,24,39,.96);
  border:1px solid var(--ems-border);
  border-radius:20px;
  box-shadow:var(--ems-shadow);
  padding:18px;
}
.ems-modal-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  padding-bottom:14px;
  margin-bottom:16px;
  border-bottom:1px solid var(--ems-border);
}
.ems-close{
  background:#0b1224;
  color:var(--ems-text);
  border:1px solid var(--ems-border);
  padding:10px 12px;
  border-radius:10px;
  cursor:pointer;
}
.ems-modal-grid{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.75fr);
  gap:18px;
  align-items:start;
}
.ems-modal-panel{
  display:grid;
  gap:12px;
}

@media (max-width: 768px){
  .ems-topbar{
    align-items:flex-start;
    flex-direction:column;
  }
  .ems-top-actions{
    display:none;
  }
  .ems-actions{
    width:100%;
  }
  .ems-actions .ems-btn-info,
  .ems-actions .ems-btn-sec{
    width:100%;
  }
  .ems-aside{
    position:fixed;
    left:0;
    top:0;
    bottom:0;
    width:min(85vw,320px);
    transform:translateX(-100%);
    transition:transform .2s ease;
    z-index:60;
    box-shadow:var(--ems-shadow);
  }
  body.ems-aside-open .ems-aside{
    transform:translateX(0);
  }
  .ems-drawer-backdrop{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.45);
    z-index:55;
  }
  body.ems-aside-open .ems-drawer-backdrop{
    display:block;
  }
  .ems-burger{
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  .ems-section-head,
  .ems-modal-header{
    flex-direction:column;
  }
  .ems-section-actions{
    width:100%;
  }
  .ems-section-actions .ems-btn-info{
    width:100%;
  }
  .ems-modal-back{
    padding:12px;
  }
  .ems-modal{
    max-height:calc(100vh - 24px);
    padding:14px;
  }
  .ems-modal-grid{
    grid-template-columns:1fr;
  }
}
