:root{--bg:#130d08;--card:#21160f;--orange:#f47b20;--orange2:#ffb15a;--text:#fff7ee;--muted:#d9b99e;--danger:#ff3b30;--ok:#22c55e}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:radial-gradient(circle at top,#3a1e0e,#120b07 60%);color:var(--text)}a{color:inherit}.center{min-height:100vh;display:grid;place-items:center;padding:20px}.card{background:rgba(33,22,15,.94);border:1px solid rgba(244,123,32,.35);border-radius:22px;padding:22px;box-shadow:0 20px 60px #0008;max-width:760px;width:100%}.logo{max-width:170px;display:block;margin:auto}.hero{text-align:center}.hero h1{font-size:34px;margin:12px 0 6px}.hero p{color:var(--muted);font-size:18px}.btn{display:inline-block;background:linear-gradient(135deg,var(--orange),var(--orange2));color:#241006;text-decoration:none;border:0;border-radius:14px;padding:13px 18px;font-weight:800;cursor:pointer;margin:5px}.btn.secondary{background:#332014;color:#fff;border:1px solid #774116}.btn.danger{background:var(--danger);color:#fff}.small{font-size:13px;color:var(--muted)}input,select,textarea{width:100%;padding:12px;border-radius:12px;border:1px solid #6b3a1c;background:#120b07;color:#fff;margin:6px 0 12px}label{font-weight:bold;color:#ffd8b8}.grid{display:grid;gap:14px}.grid2{grid-template-columns:repeat(2,1fr)}@media(max-width:760px){.grid2{grid-template-columns:1fr}.hero h1{font-size:26px}}
.top{position:sticky;top:0;z-index:10;background:#160d08dd;backdrop-filter:blur(8px);border-bottom:1px solid #5a2d13;padding:10px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.top img{height:44px}.top .spacer{flex:1}.layout{display:grid;grid-template-columns:1fr 390px;gap:12px;padding:12px;height:calc(100vh - 66px)}#map{min-height:420px;border-radius:18px;border:1px solid #653618}.panel{display:flex;flex-direction:column;gap:12px;min-height:0}.chat{background:#1e130c;border:1px solid #5a2d13;border-radius:18px;display:flex;flex-direction:column;min-height:0;flex:1}.messages{overflow:auto;padding:12px;min-height:280px}.msg{background:#2b1a10;border:1px solid #4b2a16;border-radius:14px;padding:10px;margin-bottom:9px}.msg.help{border-color:#ff3b30;background:#3a1110}.msg b{color:#ffb15a}.msg .time{font-size:12px;color:#c9a084}.composer{padding:10px;border-top:1px solid #4b2a16}.row{display:flex;gap:8px}.row input{margin:0}.statusbar{display:flex;gap:8px;flex-wrap:wrap}.pill{background:#2b1a10;border:1px solid #5a2d13;border-radius:999px;padding:8px 10px;color:#ffd8b8;font-size:13px}.notice{background:#40210f;border-left:5px solid var(--orange);padding:10px;border-radius:12px;color:#ffe2ca}.adminwrap{padding:18px}.table{width:100%;border-collapse:collapse;background:#1e130c;border-radius:16px;overflow:hidden}.table th,.table td{border-bottom:1px solid #4b2a16;padding:10px;text-align:left}.table th{color:#ffb15a}.tabs a{display:inline-block;margin:4px;padding:9px 12px;border:1px solid #6b3a1c;border-radius:12px;text-decoration:none}.tabs a.active{background:var(--orange);color:#230f05;font-weight:bold}@media(max-width:960px){.layout{grid-template-columns:1fr;height:auto}.panel{min-height:600px}.top .spacer{display:none}}

.notice.ok{background:#12351d;border-left-color:#22c55e;color:#d9ffe5}.okbtn{background:#22c55e;color:#07180c}.floating-install{position:fixed;right:18px;bottom:18px;z-index:9999;box-shadow:0 10px 35px #0009}.install-app-btn{display:inline-block}.adminmap{height:72vh;min-height:520px}.top img{width:44px;height:44px;object-fit:contain}.logo{width:150px;height:150px;object-fit:contain}@media(max-width:760px){.floating-install{right:10px;bottom:10px}.row{flex-direction:column}.top img{width:38px;height:38px}#map{min-height:360px}.adminmap{height:65vh}}
.tablewrap{width:100%;overflow:auto;border-radius:16px}.actions{white-space:nowrap}.btn.tiny{padding:8px 10px;border-radius:10px;font-size:12px;margin:2px}.top img,.logo{max-width:160px;max-height:160px}.top img{max-width:44px;max-height:44px}.adminwrap .card h1{margin:0;font-size:38px}
/* APP CC23 corrección rendimiento/chat */
.msg.help{background:#d71920!important;color:#fff!important;border-color:#ffb3b3!important;box-shadow:0 0 0 2px rgba(255,255,255,.08) inset}.msg.help b,.msg.help .time{color:#fff!important}.messages{scroll-behavior:auto}.composer input:disabled{opacity:.7}.notice.ok{background:#12351d;border-left-color:#22c55e;color:#d9ffe5}
@media(max-width:760px){.layout{padding:8px;gap:8px}.panel{min-height:520px}.messages{min-height:240px}.btn{min-height:44px}.composer{position:sticky;bottom:0;background:#1e130c}.top{gap:7px}.top b{font-size:14px}.pill{font-size:12px;padding:6px 8px}}
/* APP CC23 rendimiento móvil */
.logo{width:110px!important;height:110px!important;max-width:110px!important;max-height:110px!important;object-fit:contain}.top img{width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important;object-fit:contain}.admin-help-cell{background:#d71920!important;color:#fff!important;font-weight:800}.chat{contain:layout paint}.messages{will-change:scroll-position}.msg{word-break:break-word}.composer input{font-size:16px}@media(max-width:760px){.logo{width:90px!important;height:90px!important}.layout{height:auto}.top{position:sticky}.chat{min-height:500px}.messages{min-height:260px;max-height:52vh}.floating-install{font-size:12px;padding:10px 12px}.adminwrap{padding:10px}.table th,.table td{padding:8px;font-size:13px}}
.msg.private{border-color:#4aa3ff;background:#102235}.msg.private b{color:#9fd0ff}
textarea{resize:vertical}.card p{line-height:1.45}

.msg.info{background:#0f3a66!important;color:#fff!important;border-color:#62b7ff!important}.msg.info b,.msg.info .time{color:#fff!important}.admin-info-cell{background:#0f67b1!important;color:#fff!important;font-weight:800}
.dashcard{cursor:pointer;transition:transform .12s ease,border-color .12s ease}.dashcard:hover{transform:translateY(-2px);border-color:#ff8a2a}.info-summary{border-color:#1678c2!important}.info-notice{background:#0f3a66!important;color:#fff!important;border-left:6px solid #62b7ff!important}.info-pill{background:#0f67b1!important;color:#fff!important;border:1px solid #62b7ff!important}


/* APP CC23 - FIX 20260705: informativos siempre azules en celulares y panel */
.msg.info,
.messages .msg.info,
.chat .messages .msg.info{
  background:#0f67b1!important;
  background-color:#0f67b1!important;
  color:#fff!important;
  border:2px solid #62b7ff!important;
}
.msg.info *,
.messages .msg.info *,
.chat .messages .msg.info *,
.msg.info b,
.msg.info .time{
  color:#fff!important;
}
.admin-info-cell,
.table td.admin-info-cell{
  background:#0f67b1!important;
  background-color:#0f67b1!important;
  color:#fff!important;
  font-weight:800!important;
}
.admin-info-cell *,
.table td.admin-info-cell *{color:#fff!important}
@media(max-width:760px){
  .msg.info,
  .messages .msg.info,
  .chat .messages .msg.info{
    display:block!important;
    background:#0f67b1!important;
    background-color:#0f67b1!important;
    color:#fff!important;
    border-color:#62b7ff!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.08) inset!important;
  }
  .msg.info *,
  .messages .msg.info *,
  .chat .messages .msg.info *{color:#fff!important}
  .admin-info-cell,
  .table td.admin-info-cell{
    background:#0f67b1!important;
    background-color:#0f67b1!important;
    color:#fff!important;
  }
}

/* APP CC23 - Avisos de nuevos viajeros en panel admin */
.badge-new{display:inline-block;background:#ff3b30;color:#fff;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:900;margin-left:4px}
.new-alert{background:#3b1d08!important;border-left-color:#ffb15a!important;color:#fff3e6!important}
.new-card{border-color:#ffb15a!important;box-shadow:0 0 0 2px rgba(255,177,90,.15) inset!important}

/* APP CC23 - Panel admin fijo y tablas con scroll interno
   Soluciona que los encabezados de columnas se mezclen con los viajeros. */
.admin-panel{
  --admin-top-h:66px;
  --admin-tabs-h:70px;
}
.admin-panel .top{
  position:sticky;
  top:0;
  z-index:100;
}
.admin-panel .adminwrap{
  padding-top:18px;
}
.admin-panel .tabs{
  position:sticky;
  top:var(--admin-top-h);
  z-index:90;
  background:#160d08;
  padding:12px 0 10px;
  margin:-18px 0 10px;
  border-bottom:1px solid rgba(244,123,32,.35);
  box-shadow:0 12px 22px rgba(0,0,0,.45);
}
.admin-panel .tablewrap{
  width:100%;
  overflow:auto;
  border-radius:16px;
  max-height:calc(100vh - var(--admin-top-h) - var(--admin-tabs-h) - 190px);
  min-height:220px;
}
.admin-panel .table{
  border-collapse:separate;
  border-spacing:0;
}
.admin-panel .table tr:first-child th{
  position:sticky;
  top:0;
  z-index:50;
  background:#21160f!important;
  color:#ffb15a!important;
  box-shadow:0 2px 0 #4b2a16,0 8px 14px rgba(0,0,0,.45);
}
.admin-panel .table tr:first-child th:first-child{border-top-left-radius:16px}
.admin-panel .table tr:first-child th:last-child{border-top-right-radius:16px}
@media(max-width:760px){
  .admin-panel .tablewrap{
    max-height:calc(100vh - var(--admin-top-h) - var(--admin-tabs-h) - 150px);
  }
  .admin-panel .table tr:first-child th{font-size:12px}
}


/* APP CC23 - Acceso y recuperación administrativa */
.admin-entry{position:fixed;top:10px;right:12px;z-index:200;color:rgba(255,255,255,.35);font-size:17px;text-decoration:none;line-height:1;padding:7px;border-radius:50%;transition:.2s}
.admin-entry:hover,.admin-entry:focus{color:#ffb15a;background:rgba(0,0,0,.25)}
.forgot-link{display:block;margin-top:16px;text-align:center;color:#ffb15a;font-size:12px;font-weight:800;text-decoration:none;letter-spacing:.2px}
.forgot-link:hover{text-decoration:underline}

/* APP CC23 2026-08-26 - comunidad viajera */
.app-shell{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);gap:14px;padding:12px}.map-zone{min-width:0}.map-actions,.map-filters,.useful-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0}.chip{border:1px solid #d6d6d6;background:#fff;color:#222;border-radius:999px;padding:8px 12px;font-weight:700;cursor:pointer}.chip.active{background:#f47b20;color:#fff;border-color:#f47b20}#map{height:min(58vh,620px);min-height:420px;border-radius:18px;overflow:hidden;box-shadow:0 8px 28px rgba(0,0,0,.16)}.travel-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.travel-tools button{border:0;border-radius:14px;padding:11px 8px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.12);font-size:22px;cursor:pointer}.travel-tools b,.travel-tools small{display:block;font-size:12px;margin-top:3px}.travel-tools small{font-weight:400;color:#666}.useful-strip{background:rgba(255,255,255,.92);padding:10px;border-radius:14px}.useful-strip button{border:0;border-radius:999px;padding:7px 10px;cursor:pointer}.map-card{min-width:220px;line-height:1.45;color:#111;background:#fff;font:14px Arial,sans-serif}.modal{position:fixed;inset:0;background:rgba(0,0,0,.62);z-index:99999;display:none;align-items:center;justify-content:center;padding:16px}.modal.open{display:flex}.modal-card{width:min(540px,100%);max-height:88vh;overflow:auto;background:#fff;color:#222;border-radius:20px;padding:20px;box-shadow:0 18px 60px rgba(0,0,0,.35);position:relative}.modal-card label{display:block;font-weight:700;margin:10px 0 5px}.modal-card input,.modal-card select,.modal-card textarea{width:100%;box-sizing:border-box}.modal-x{position:absolute;right:10px;top:7px;border:0;background:transparent;font-size:30px;cursor:pointer}.tool-row{display:grid;grid-template-columns:1fr auto;gap:3px 12px;padding:10px 0;border-bottom:1px solid #ddd}.tool-row small{grid-column:1/-1;color:#666}.check{display:flex!important;gap:8px;align-items:center}.check input{width:auto!important}.public-share{max-width:1000px;margin:0 auto;padding:12px}.floating-install{display:none!important}
@media(max-width:920px){.app-shell{grid-template-columns:1fr}.travel-tools{grid-template-columns:repeat(4,1fr)}#map{height:55vh;min-height:390px}.panel{min-height:460px}}
@media(max-width:620px){.top{gap:6px}.top .pill{max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top .btn{padding:7px 9px;font-size:12px}.app-shell{padding:7px;gap:8px}.map-actions .btn{font-size:12px;padding:8px 9px}.travel-tools{grid-template-columns:repeat(2,1fr)}.travel-tools button{font-size:21px}.useful-strip{overflow-x:auto;flex-wrap:nowrap}.useful-strip b,.useful-strip button{white-space:nowrap}#map{height:52vh;min-height:360px}.modal{padding:8px}.modal-card{border-radius:16px;padding:18px 14px}.statusbar{position:sticky;top:0;z-index:3}}
.travel-tools button.tracking{background:#173f2a;color:#fff;box-shadow:0 0 0 2px #36c979 inset}.travel-tools button.tracking small{color:#d8ffe6}

/* Ruta hacia viajeros */
.route-mini{margin-top:8px;border:0;border-radius:999px;padding:7px 10px;background:#f47b20;color:#fff;font-weight:800;cursor:pointer}.route-mini:hover{filter:brightness(.96)}.route-go{margin-top:7px}.route-row small{line-height:1.45}.admin-routebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0 2px;padding:10px 12px;border-radius:14px;background:#fff7ef;border:1px solid #ffd4ad}.admin-routebar .small{color:#555}@media(max-width:620px){.admin-routebar .btn{width:100%;white-space:normal}.route-mini{width:100%}}

/* APP CC23 - Qué tengo a mi alrededor */
.travel-tools button.around-tool{background:linear-gradient(145deg,#fff7e8,#ffffff);box-shadow:0 3px 14px rgba(0,0,0,.12),0 0 0 2px rgba(244,123,32,.22) inset}.around-strip b{color:#6a3210}.around-card{width:min(680px,100%)}.around-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:14px 0}.around-grid button{border:1px solid #ead9ca;background:#fffaf6;border-radius:14px;padding:12px 8px;min-height:92px;font-size:24px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.07)}.around-grid button:hover{border-color:#f47b20;transform:translateY(-1px)}.around-grid b,.around-grid small{display:block}.around-grid b{font-size:12px;margin-top:5px;color:#2b211a}.around-grid small{font-size:10px;color:#6c625b;margin-top:3px;line-height:1.2}.around-custom{margin-top:14px;padding-top:12px;border-top:1px solid #eadfd6}.around-custom .row{display:grid;grid-template-columns:1fr auto;gap:8px}.around-custom input{min-width:0}.admin-routebar .btn.secondary{background:#314458;color:#fff}@media(max-width:620px){.around-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.around-grid button{min-height:88px}.around-custom .row{grid-template-columns:1fr}.around-custom .btn{width:100%}}

/* APP CC23 - Compatibilidad iPhone/iPad + instalación 2026-08-27 */
html{background:#15100b}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
.top{padding-top:max(8px,env(safe-area-inset-top));padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}
.install-guide{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:100000;display:none;align-items:center;justify-content:center;padding:18px}.install-guide.open{display:flex}.install-guide-card{position:relative;width:min(500px,100%);background:#fff;color:#23170f;border-radius:24px;padding:24px;box-shadow:0 24px 80px rgba(0,0,0,.5)}.install-guide-card>img{display:block;width:82px;height:82px;object-fit:contain;margin:0 auto 8px}.install-guide-card h2{text-align:center;margin:6px 0 16px;color:#6b3511}.install-guide-card ol{padding-left:22px;line-height:1.65}.install-guide-card li{margin:9px 0}.install-guide-card .btn{width:100%;margin-top:10px}.install-guide-x{position:absolute;right:10px;top:7px;border:0;background:transparent;font-size:32px;cursor:pointer}.install-warning{background:#fff2df;border-left:5px solid #f47b20;padding:10px;border-radius:10px}.share-symbol{display:inline-block;font-weight:900;font-size:20px;color:#1266cc}.ios-install-tip{margin-top:10px;padding:10px 12px;border-radius:12px;background:#fff5eb;border:1px solid #ffd0a7;color:#553018;font-size:13px}.carnet-qr-box{background:#fff;border-radius:18px;padding:10px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.28)}.carnet-qr-box img{width:150px;height:150px;display:block}.carnet-public-link{font-size:12px;word-break:break-all;opacity:.8;margin-top:7px}.carnet-badge{display:inline-block;margin-top:8px;padding:5px 10px;border-radius:999px;background:rgba(255,121,0,.14);border:1px solid rgba(255,121,0,.45);color:#ffad65;font-weight:800}
@media(max-width:600px){.install-guide{padding:10px}.install-guide-card{padding:20px 16px;border-radius:18px}.carnet-qr-box img{width:130px;height:130px}}


/* APP CC23 - Central de monitoreo admin en tiempo real */
.admin-livebar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:#122317;border:1px solid #2c8a4d;border-radius:14px;padding:9px 12px;box-shadow:0 5px 18px rgba(0,0,0,.25);position:relative;z-index:10}.admin-livebar .live-dot{width:10px;height:10px;border-radius:50%;background:#35d66f;box-shadow:0 0 0 0 rgba(53,214,111,.65);animation:cc23live 1.8s infinite}.admin-livebar b{color:#dfffea}.admin-livebar #adminLiveStatus{color:#b9c4bc;font-size:12px}.admin-livebar #adminLiveStatus.online{color:#69ed99;font-weight:800}.admin-livebar .btn{margin-left:auto}.admin-livebar .btn+.btn{margin-left:0}@keyframes cc23live{70%{box-shadow:0 0 0 8px rgba(53,214,111,0)}100%{box-shadow:0 0 0 0 rgba(53,214,111,0)}}
.admin-livefeed{display:none;margin-top:8px;background:#16100c;border:1px solid #4c2e1c;border-radius:14px;overflow:auto;max-height:280px}.admin-livefeed.open{display:block}.admin-livefeed-head{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 12px;background:#21160f;position:sticky;top:0;z-index:2}.admin-livefeed-head b{color:#ffb15a}.admin-livefeed-head span{font-size:11px;color:#c9b9ad}.live-event{display:grid;grid-template-columns:30px 1fr auto;gap:8px;align-items:start;padding:9px 12px;border-top:1px solid rgba(255,255,255,.06)}.live-event.danger{background:#471515}.live-event-icon{font-size:20px}.live-event b{display:block;color:#fff}.live-event small{display:block;color:#c9c0b9;margin-top:2px}.live-event time{color:#9d9188;font-size:11px}.live-empty{padding:12px;color:#9d9188}.admin-origin-box{background:#f7efe7;border:1px solid #e7cfba;border-radius:12px;padding:10px;margin:10px 0}.admin-origin-box label{font-weight:800;display:block;margin-bottom:5px}.admin-origin-row{display:grid;grid-template-columns:1fr auto;gap:7px}.admin-origin-row input{width:100%;box-sizing:border-box}.admin-geo-note{font-size:11px;color:#685d54;margin-top:5px}
@media(max-width:700px){.admin-livebar .btn{margin-left:0}.admin-livefeed-head{align-items:flex-start;flex-direction:column}.admin-origin-row{grid-template-columns:1fr}.admin-origin-row .btn{width:100%}}
