.route-progress {
  height: 4px;
  margin-top: .75rem;
  background: #26312c;
}

.route-progress span {
  display: block;
  height: 100%;
  background: #d9bd68;
  transition: width .35s ease;
}

.route-wait {
  gap: 1rem;
  text-align: center;
}

.route-wait .signal {
  min-height: 34vh;
}

.route-wait p {
  max-width: 28rem;
  margin: auto;
  color: #9eaaa4;
}

.money-route > .action {
  margin-top: auto;
}

/* build: route-handoff-v16 */

.game-menu { z-index: 45; }

.syndikat-mark {
  position: absolute;
  z-index: 3;
  top: 7vh;
  display: grid;
  justify-items: center;
  gap: .8rem;
  color: #9fc7b2;
  font: 700 .64rem monospace;
  letter-spacing: .24em;
  opacity: .48;
}

.syndikat-mark .eye {
  width: 4rem;
  height: 4rem;
  border: 1px solid #a8d3bc;
  transform: rotate(45deg);
  box-shadow: 0 0 28px #7fbc9a55;
}

.garage-whispers { position: relative; z-index: 3; width: 100%; height: 35vh; }
.garage-whispers span {
  position: absolute;
  inset: 50% 0 auto;
  text-align: center;
  color: #b5d8c5;
  font: 700 clamp(.58rem, 2vw, .78rem) monospace;
  letter-spacing: .16em;
  opacity: 0;
  animation: syndikat-whisper 20s infinite;
}
.garage-whispers span:nth-child(2) { animation-delay: 5s; }
.garage-whispers span:nth-child(3) { animation-delay: 10s; }
.garage-whispers span:nth-child(4) { animation-delay: 15s; }

.garage-help,.garage-laptop {
  position: absolute;
  z-index: 5;
  bottom: max(14px, env(safe-area-inset-bottom));
  border: 1px solid #718379;
  border-radius: 8px;
  background: #050806cc;
  color: #a9b9b0;
  padding: .65rem .8rem;
  font: 700 .62rem monospace;
  letter-spacing: .06em;
}
.garage-help { left: max(14px, env(safe-area-inset-left)); }
.garage-laptop { right: max(14px, env(safe-area-inset-right)); }

.terminal-sequence {
  position: fixed;
  inset: 0;
  z-index: 20;
  display: flex;
  flex-direction: column;
  padding: max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  background: #030706;
  color: #edf2ee;
}
.terminal-progress { height: 4px; background: #25302b; }
.terminal-progress span { display: block; height: 100%; background: #93d0ad; transition: width .3s ease; }
.terminal-active,.terminal-wait { flex: 1; display: grid; place-content: center; gap: 1rem; }
.terminal-active h2 { margin: 0; color: #b8e0ca; font-size: clamp(2rem,9vw,4rem); }
.terminal-active p,.terminal-wait p { max-width: 34rem; color: #b4c1ba; font-size: clamp(1rem,4vw,1.35rem); }
.key-packet { padding: 1.25rem; border: 1px solid #a9d4bb; background: #0a1510; color: #e2f4e9; font: 900 clamp(1.35rem,7vw,2.7rem)/1.25 monospace; overflow-wrap: anywhere; letter-spacing: .08em; }
.terminal-wait { text-align: center; }
.terminal-wait .signal { min-height: 38vh; }
.terminal-sequence > .action { margin-top: auto; }

@keyframes syndikat-whisper {
  0%,18%,100% { opacity: 0; filter: blur(4px); transform: translateY(8px); }
  4%,12% { opacity: .42; filter: blur(0); transform: translateY(0); }
}

.money-card {
  touch-action: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}
.map-fragment.accurate-map{
  background-image:url('/mill-map.svg?v=21');
  background-size:calc(var(--map-total,4) * 100%) 100%;
}

.dossier-details{border-color:#70583f!important;background:#111616!important}
.dossier-capture{display:grid;gap:.9rem}.dossier-capture select{width:100%;padding:.9rem;background:#080d0b;color:#e7e3da;border:1px solid #46504b;border-radius:4px}
.dossier-consent{display:flex;gap:.8rem;padding:1rem;border:1px solid #46504b;background:#0a0f0d;text-align:left}.dossier-consent input{width:1.3rem;accent-color:#b97b42}.dossier-consent span{display:grid;gap:.35rem}.dossier-consent small{color:#89958f;line-height:1.4}
.photo-action{display:block;padding:1rem;border:1px solid #b97b42;background:#6c4324;color:#fff;text-align:center;font-weight:800;cursor:pointer}.photo-action.disabled{opacity:.35;cursor:not-allowed}.photo-action input{position:absolute;opacity:0;pointer-events:none}
.dossier-status{display:grid;gap:1rem;margin-top:.5rem}.dossier-minihead{padding:1rem;border-block:1px solid #70583f;display:flex;justify-content:space-between;gap:1rem;font:700 .72rem monospace;letter-spacing:.1em;color:#c88946}.dossier-minihead span{color:#ddd8cb;text-align:right}
.dossier-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.dossier-people article{min-width:0;background:#0b0f10;border:1px solid #3e4642;overflow:hidden}.dossier-people img,.portrait-fallback{display:grid;place-items:center;width:100%;aspect-ratio:1;object-fit:cover;background:radial-gradient(circle,#303936,#171d1b);color:#c88946;font:900 3rem Georgia}.dossier-people article>div:last-child{display:grid;gap:.15rem;padding:.55rem}.dossier-people small{font:.55rem monospace;color:#a87343}.dossier-people b{font:700 1rem Georgia;color:#eee8dc}.dossier-people span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:.6rem monospace;color:#9da69f}.dossier-people i{margin-top:.35rem;font:700 .52rem monospace;font-style:normal;color:#7f8a84}.dossier-people .state-ready{color:#82c39a}.dossier-people .state-processing{color:#d2a76c}.dossier-delete{border:0;background:transparent;color:#8e716d;text-decoration:underline;padding:.7rem;font-size:.7rem}.loader{display:inline-block;width:1rem;height:1rem;border:2px solid #46504b;border-top-color:#c88946;border-radius:50%;animation:dossier-spin .8s linear infinite}@keyframes dossier-spin{to{transform:rotate(360deg)}}
.final-tabs .dossier-details{order:-1;border:2px solid #b98247;background:linear-gradient(145deg,#171b1b,#111513);box-shadow:0 0 28px #b9824724}.dossier-details>summary{display:grid;gap:.25rem;font:700 1.05rem Georgia;color:#eadbc5}.dossier-details>summary span{font:700 .58rem monospace;letter-spacing:.16em;color:#c88946}.feedback-details{opacity:.68}.feedback-details[open]{opacity:1}.feedback-details>summary{font-size:.72rem!important;color:#8f9a94!important}
.dossier-export{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));background:#020403f2;backdrop-filter:blur(10px)}.dossier-export section{width:min(100%,31rem);height:100%;display:flex;flex-direction:column;gap:.65rem}.dossier-export img{min-height:0;flex:1;width:100%;object-fit:contain;border:1px solid #b98247;background:#0b0e0d}.dossier-export .action{flex:0 0 auto}
@media(min-width:700px){.dossier-people{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Camera recovery stays readable above the garage effects. */
.garage-scan-actions{position:absolute;z-index:6;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:max(64px,calc(64px + env(safe-area-inset-bottom)));display:grid;gap:10px}
.garage-scan-actions .action{position:static;width:100%;min-height:48px;padding:12px;border-radius:8px;white-space:normal;font:700 .8rem/1.3 monospace;letter-spacing:.02em}
.garage-scan-actions .garage-laptop{background:var(--green);color:#07100b;border:1px solid var(--green)}
.garage-scan-actions #scan-other-device{background:#050806cc;color:#b9cec2;border:1px solid #718379}
.scanner-modal.scanner-help{z-index:40;padding:18px;overflow:auto;background:#020907f5}
.scanner-help .mission-card{display:flex;flex-direction:column;gap:12px;width:min(100%,420px);height:auto;min-height:0;padding:20px}
.scanner-help .mission-card p{margin:0;line-height:1.45;font-size:14px}
.scanner-help .mission-card h2{margin:0;font-size:22px}
.scanner-help button{position:static;flex:none;width:100%;min-height:44px;border-radius:8px;white-space:normal}
