:root{
  --lotus-yellow:#fff200;
  --lotus-yellow-soft:#d8cf00;
  --ink:#0a0d0b;
  --cockpit:#111512;
  --panel:#181d19;
  --panel-raised:#202720;
  --line:rgba(255,255,255,.12);
  --text:#f5f7f3;
  --muted:#9da69d;
  --green:#46d886;
  --red:#ff5b55;
  --shadow:0 24px 80px rgba(0,0,0,.38);
  --radius:22px;
}

*{box-sizing:border-box}

html,body{margin:0;min-height:100%;background:var(--cockpit);color:var(--text)}

body{
  min-height:100vh;
  font-family:"DM Sans",sans-serif;
  background:
    radial-gradient(circle at 50% -20%,rgba(255,242,0,.14),transparent 38%),
    linear-gradient(180deg,#171c18 0,#0c100d 70%);
}

button,input,select{font:inherit}
button{cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--lotus-yellow);outline-offset:3px}

.convoy-app{width:min(100%,560px);min-height:100svh;margin:0 auto;position:relative;overflow:hidden}

.convoy-header{
  min-height:82px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:max(14px,env(safe-area-inset-top)) 18px 12px;
  position:relative;
  z-index:20;
}

.convoy-brand{display:flex;align-items:center;gap:12px}
.convoy-brand img{width:48px;height:48px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}
.convoy-brand .header-badge-lockup{display:grid;justify-items:center;gap:0;line-height:1}.header-badge-lockup b{margin-top:2px;color:var(--lotus-yellow);font:800 .58rem/1 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em}
.convoy-brand div{display:grid;gap:1px}
.convoy-brand span,.gate-step,.channel-label{text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;font-weight:700;color:var(--muted)}
.convoy-brand strong{font:700 1.32rem/1 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.04em}

.icon-button,.small-action{
  border:1px solid var(--line);
  background:rgba(255,255,255,.05);
  color:var(--text);
}
.icon-button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.icon-button svg{width:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.share-invite-button{width:auto;min-width:92px;height:46px;padding:0 14px;border:0;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;background:var(--lotus-yellow);color:#101300;box-shadow:0 7px 24px rgba(255,242,0,.19)}.share-invite-button svg{width:20px;stroke-width:2.1}.share-invite-button span{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.header-actions{display:flex;align-items:center;gap:7px}.tutorial-button{width:auto;min-width:76px;height:46px;padding:0 11px;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:7px}.tutorial-button svg{width:19px}.tutorial-button span{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}

.gate-screen{padding:6vh 18px 40px}
.gate-screen[hidden],.drive-screen[hidden],.map-view[hidden],.sheet[hidden]{display:none}

.gate-card{
  position:relative;
  overflow:hidden;
  padding:28px;
  border:1px solid var(--line);
  border-radius:28px;
  background:linear-gradient(145deg,rgba(34,41,35,.98),rgba(18,23,19,.98));
  box-shadow:var(--shadow);
}
.gate-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--lotus-yellow)}
.gate-card h1{margin:14px 0 10px;font:700 clamp(2.5rem,12vw,4.3rem)/.88 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.025em;max-width:430px}
.lotus-comms-badge{display:grid;justify-items:center;gap:1px}.lotus-comms-badge img{display:block;filter:drop-shadow(0 10px 24px rgba(0,0,0,.32))}.lotus-comms-badge>strong{font:800 1.25rem/1 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.2em;color:var(--lotus-yellow)}.logged-out-screen{min-height:calc(100svh - 82px);display:grid;align-items:center}.logged-out-card{text-align:center}.logged-out-brand{margin:0 auto 18px}.logged-out-brand img{width:132px;height:132px}.logged-out-card h1{margin-inline:auto}.logged-out-card>p{color:var(--muted);line-height:1.55}.logged-out-status{margin:24px 0 18px;padding:14px;border:1px solid rgba(70,216,134,.3);border-radius:14px;display:flex;align-items:center;gap:12px;background:rgba(70,216,134,.07);text-align:left}.logged-out-status>i{width:42px;height:42px;flex:0 0 42px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#07140d;font-style:normal;font-weight:900}.logged-out-status>span{display:grid;gap:3px}.logged-out-status strong{color:var(--green);font-size:.9rem}.logged-out-status small{color:var(--muted);line-height:1.35}.logged-out-close-note{margin:14px 0 0!important;font-size:.74rem}.logged-out-screen[hidden]{display:none}
.gate-card>p{margin:0 0 28px;color:#bac2ba;line-height:1.55;font-size:1rem}

.convoy-form{display:grid;gap:10px}
.convoy-form label{font-size:.86rem;font-weight:700;color:#dfe4df}
.convoy-form input[type="email"],.convoy-form input[type="text"],.convoy-form select,.convoy-form textarea{
  width:100%;min-height:54px;border:1px solid var(--line);border-radius:12px;padding:0 15px;background:#0f1410;color:var(--text);font-size:1rem
}
.convoy-form textarea{min-height:112px;padding:13px 15px;resize:vertical;line-height:1.45}
.convoy-form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#aeb5ae 50%),linear-gradient(135deg,#aeb5ae 50%,transparent 50%);background-position:calc(100% - 20px) 23px,calc(100% - 14px) 23px;background-size:6px 6px;background-repeat:no-repeat}
.field-action{display:grid;grid-template-columns:1fr auto;gap:8px}

.button{min-height:54px;border-radius:12px;border:0;padding:0 20px;font-weight:800}
.button-yellow{background:var(--lotus-yellow);color:#111300;box-shadow:0 8px 30px rgba(255,242,0,.14)}
.button-outline{border:1px solid var(--line);background:#151a16;color:var(--text)}
.button-full{width:100%}
.button:disabled{opacity:.55;cursor:not-allowed}

.form-state{min-height:24px;margin-top:12px;color:var(--muted);font-size:.88rem;line-height:1.45}
.form-state.is-error{color:#ff837f}
.form-state.is-success{color:#75e7a8}
.form-state a{color:var(--lotus-yellow)}
.registration-paused-notice{margin-top:8px;padding:12px 14px;border:1px solid rgba(255,91,85,.3);border-radius:11px;background:rgba(255,91,85,.08);color:#ffaaa6;font-size:.82rem;line-height:1.45}
.registration-paused-notice[hidden]{display:none}

.gate-note{display:flex;gap:10px;align-items:flex-start;margin-top:24px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;line-height:1.45}
.gate-note svg{width:20px;min-width:20px;fill:none;stroke:var(--lotus-yellow);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.profile-form{gap:9px}
.colour-row{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:4px;padding:12px 0}
.colour-row div{display:grid;gap:3px}.colour-row span{font-size:.76rem;color:var(--muted)}
.colour-row input[type="color"]{width:58px;height:42px;padding:4px;border-radius:10px;border:1px solid var(--line);background:#0f1410}

.car-preview{display:flex;align-items:center;gap:16px;min-height:84px;margin:4px 0 10px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:#0f1410}
.car-glyph{width:74px;height:auto;fill:var(--car-color,var(--lotus-yellow));filter:drop-shadow(0 5px 9px color-mix(in srgb,var(--car-color,var(--lotus-yellow)) 25%,transparent))}
.car-glyph circle{fill:#090b09;stroke:var(--car-color,var(--lotus-yellow));stroke-width:2}
.car-preview div{display:grid;gap:3px}.car-preview strong{font-size:1rem}.car-preview span{font-size:.82rem;color:var(--muted)}
.delete-account-panel{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,91,85,.28);display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px}.delete-account-panel[hidden]{display:none}.delete-account-panel>div{display:grid;gap:3px}.delete-account-panel strong{font-size:.82rem;color:#ff9a96}.delete-account-panel span{color:var(--muted);font-size:.68rem;line-height:1.35}.delete-account-panel button{min-height:42px;padding:0 12px;border:1px solid rgba(255,91,85,.48);border-radius:10px;background:rgba(255,91,85,.1);color:#ff9a96;font-size:.72rem;font-weight:800}.delete-account-panel button:disabled{opacity:.45}

.permission-card{text-align:center;padding-top:34px}
.permission-card h1{margin-inline:auto}.permission-card>p{max-width:400px;margin-inline:auto}
.location-orbit{width:104px;height:104px;margin:0 auto 24px;border:1px solid rgba(255,242,0,.35);border-radius:50%;display:grid;place-items:center;position:relative}
.location-orbit::before,.location-orbit::after{content:"";position:absolute;border:1px solid rgba(255,242,0,.13);border-radius:50%}
.location-orbit::before{inset:13px}.location-orbit::after{inset:28px}
.location-orbit span{width:14px;height:14px;border:4px solid var(--ink);border-radius:50%;background:var(--lotus-yellow);box-shadow:0 0 0 6px rgba(255,242,0,.16)}
.permission-list{display:grid;gap:9px;margin-top:22px;text-align:left;color:var(--muted);font-size:.82rem}
.permission-list span{display:flex;align-items:center;gap:10px}.permission-list b{color:var(--lotus-yellow);font:700 .85rem "Barlow Condensed",sans-serif;letter-spacing:.1em}
.permission-mode-selector{margin:20px 0;padding:16px;border:1px solid rgba(255,242,0,.2);border-radius:17px;background:rgba(5,9,6,.38);text-align:left}.permission-mode-heading{display:grid;gap:2px;margin-bottom:11px}.permission-mode-heading>span{color:var(--lotus-yellow);font-size:.65rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.permission-mode-heading>strong{font-size:1rem}.permission-mode-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}.permission-mode-card{min-height:128px;padding:13px;border:2px solid var(--line);border-radius:14px;display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;align-content:center;align-items:center;gap:8px 10px;position:relative;background:#101511;color:var(--text);text-align:left}.permission-mode-card>.permission-mode-icon{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;background:rgba(255,255,255,.07)}.permission-mode-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.permission-mode-card:first-child .permission-mode-icon svg{width:34px;fill:currentColor;stroke:none}.permission-mode-card>span:nth-child(2){display:grid;gap:4px}.permission-mode-card strong{font-size:.9rem}.permission-mode-card small{color:var(--muted);font-size:.66rem;line-height:1.35}.permission-mode-card>i{position:absolute;right:9px;top:9px;width:17px;height:17px;border:2px solid #626b63;border-radius:50%}.permission-mode-card[aria-pressed="true"]{border-color:var(--lotus-yellow);background:rgba(255,242,0,.08);box-shadow:0 0 0 4px rgba(255,242,0,.045)}.permission-mode-card[aria-pressed="true"]>.permission-mode-icon{background:var(--lotus-yellow);color:#111300}.permission-mode-card[aria-pressed="true"]>i{border-color:var(--lotus-yellow);background:var(--lotus-yellow);box-shadow:inset 0 0 0 3px #101511}.permission-mode-card:disabled{opacity:.6}.permission-mode-selector>p{margin:11px 0 0;color:var(--muted);font-size:.68rem;line-height:1.4}.permission-mode-state{min-height:0;margin-top:6px;font-size:.72rem}.permission-mode-state:empty{display:none}
.admin-no-gps-button{margin-top:10px}.admin-no-gps-note{margin:10px auto 0!important;color:var(--muted)!important;font-size:.76rem!important;line-height:1.4!important}.admin-no-gps-button[hidden],.admin-no-gps-note[hidden]{display:none}

.drive-screen{min-height:calc(100svh - 82px);padding:0 14px 94px;position:relative}
.drive-topline{height:42px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.live-status,.gps-status{display:flex;align-items:center;gap:7px}.live-status i{width:7px;height:7px;border-radius:50%;background:#748078}.live-status i.is-live{background:var(--green);box-shadow:0 0 0 4px rgba(70,216,134,.12)}
.gps-status svg{width:16px;fill:none;stroke:var(--green);stroke-width:1.7;stroke-linecap:round}

.comms-view{display:grid;gap:13px}
.driver-strip,.radio-readout,.crew-summary{border:1px solid var(--line);background:linear-gradient(150deg,#1b211c,#121713);border-radius:16px}
.driver-strip{min-height:74px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:10px 12px}
.driver-strip .car-glyph{width:64px}.driver-strip div{display:grid;gap:2px}.driver-strip strong{font-size:.96rem}.driver-strip span{color:var(--muted);font-size:.78rem}
.driver-strip .driver-strip-actions{display:flex;align-items:center;gap:5px}.active-mode-button{min-height:42px;padding:5px 9px;border:1px solid rgba(255,242,0,.42);border-radius:10px;display:grid;place-content:center;gap:0;background:rgba(255,242,0,.08);color:var(--lotus-yellow);text-align:center}.active-mode-button strong{font-size:.68rem;line-height:1.05;text-transform:uppercase;letter-spacing:.04em}.active-mode-button small{color:var(--muted);font-size:.57rem;font-weight:700;text-transform:uppercase}.active-mode-button.is-passenger{border-color:rgba(65,145,255,.5);background:rgba(57,137,247,.1);color:#67a8ff}.return-comms-button[hidden]{display:none}
.small-action{min-height:36px;padding:0 13px;border-radius:10px;font-size:.76rem;font-weight:700}

.radio-readout{display:grid;gap:6px;padding:16px 18px;background:#0b0f0c;position:relative;overflow:hidden}
.radio-readout::after{content:"";position:absolute;width:80px;height:80px;right:-35px;top:-35px;border:1px solid rgba(255,242,0,.11);border-radius:50%;box-shadow:0 0 0 14px rgba(255,242,0,.03)}
.radio-readout strong{font:700 clamp(1.65rem,7vw,2.15rem)/1 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.01em}
.radio-readout em{font-style:normal;color:var(--green);font-size:.8rem}
.connection-metrics{position:relative;z-index:1;padding-top:6px;border-top:1px solid rgba(255,255,255,.08);color:var(--muted);font-size:.62rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}

.ptt-mode-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px}
.ptt-mode-button{min-height:42px;display:flex;align-items:center;gap:8px;padding:0 11px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.045);color:var(--text)}
.ptt-mode-button>span{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.ptt-mode-button>strong{font-size:.8rem}
.ptt-mode-button>i{width:31px;height:18px;padding:2px;border-radius:999px;background:#485049;display:flex;align-items:center;transition:background .18s ease}
.ptt-mode-button>i b{width:14px;height:14px;border-radius:50%;background:#fff;transform:translateX(0);transition:transform .18s ease}
.ptt-mode-button[aria-pressed="true"]>i{background:var(--lotus-yellow)}
.ptt-mode-button[aria-pressed="true"]>i b{background:#111300;transform:translateX(13px)}
.transmission-limit{color:var(--muted);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}

.ptt-wrap{height:min(46vh,390px);min-height:290px;display:grid;place-items:center;position:relative}
.ptt-rings{position:absolute;width:min(74vw,330px);aspect-ratio:1;border:1px solid rgba(255,242,0,.12);border-radius:50%;box-shadow:0 0 0 18px rgba(255,242,0,.025),0 0 0 38px rgba(255,242,0,.018)}
.ptt-button{
  position:relative;width:min(59vw,264px);aspect-ratio:1;border:6px solid #2a302b;border-radius:50%;display:grid;place-content:center;justify-items:center;gap:5px;background:radial-gradient(circle at 50% 35%,#fff85a,var(--lotus-yellow) 43%,#d6cc00 100%);color:#111300;box-shadow:inset 0 -9px 15px rgba(0,0,0,.16),0 22px 55px rgba(0,0,0,.38);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;appearance:none
}
.ptt-button:focus{outline:none}.ptt-button:focus-visible{outline:3px solid var(--lotus-yellow);outline-offset:5px}.ptt-button::-moz-focus-inner{border:0}
.ptt-button::before{content:"";position:absolute;z-index:1;inset:8px;border:1px solid rgba(0,0,0,.15);border-radius:50%}
.ptt-button::after{content:"";position:absolute;z-index:0;inset:4%;border-radius:50%;background:url("../img/lotus-pwa-512.png") center/contain no-repeat;opacity:.28;filter:grayscale(1) contrast(1.2);mix-blend-mode:multiply;pointer-events:none}
.ptt-button>*{position:relative;z-index:2}
.ptt-button svg{width:36px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.ptt-button .incoming-car-icon{display:none;width:78px;fill:var(--incoming-car-color,var(--lotus-yellow));stroke:none;filter:drop-shadow(0 5px 9px rgba(0,0,0,.22))}.ptt-button .incoming-car-icon circle{fill:#07140d;stroke:var(--incoming-car-color,var(--lotus-yellow));stroke-width:2}.ptt-button.is-receiving>svg:first-child{display:none}.ptt-button.is-receiving .incoming-car-icon{display:block}
.ptt-countdown{display:block;font:800 2.25rem/.9 "Barlow Condensed",sans-serif;letter-spacing:.02em}.ptt-countdown[hidden]{display:none}.ptt-button.is-transmitting>svg{display:none}.ptt-button.is-transmitting .ptt-countdown{animation:ptt-countdown-pulse 1s ease-in-out infinite}@keyframes ptt-countdown-pulse{50%{transform:scale(1.07)}}
.ptt-button strong{font:800 1.65rem/1 "Barlow Condensed",sans-serif;text-transform:uppercase}.ptt-button span{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;opacity:.58}
.ptt-button:disabled{filter:saturate(.18);opacity:.66}
.ptt-button.is-transmitting{background:radial-gradient(circle at 50% 35%,#ff8985,var(--red) 48%,#d73a36 100%);color:#fff;transform:scale(.975)}
.ptt-button.is-receiving{background:radial-gradient(circle at 50% 35%,#8aefb8,var(--green) 48%,#22a65c 100%);color:#07140d}
.ptt-button.is-transmitting+.none{display:none}

.crew-summary{width:100%;min-height:68px;padding:10px 15px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;color:var(--text);text-align:left}
.crew-summary>span:nth-child(2){display:grid;gap:2px}.crew-summary strong{font-size:.86rem}.crew-summary small{color:var(--muted)}.crew-summary>svg{width:20px;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.avatar-stack{display:flex;min-width:44px}.car-avatar{width:32px;height:32px;margin-left:-9px;border:3px solid #171c18;border-radius:50%;display:grid;place-items:center;background:var(--avatar-color,var(--lotus-yellow));color:#0a0c0a;font:800 .72rem "Barlow Condensed",sans-serif}.car-avatar:first-child{margin-left:0}

.drive-nav{position:fixed;z-index:50;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(calc(100% - 28px),532px);height:70px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:6px;border:1px solid var(--line);border-radius:20px;background:rgba(16,21,17,.94);backdrop-filter:blur(18px);box-shadow:0 16px 50px rgba(0,0,0,.4)}
.drive-nav button{border:0;border-radius:14px;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px;font-size:.78rem;font-weight:700}
.drive-nav button.is-active{background:var(--lotus-yellow);color:#101300}
.drive-nav .exit-app-button{color:#ff8c88}
.drive-nav svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.map-view{position:fixed;z-index:70;inset:0;width:100%;height:100svh;overflow:hidden;background:#171c18}
.convoy-map{width:100%;height:100%}.leaflet-control-attribution{font-size:10px}.leaflet-control-zoom a{background:#171c18;color:#fff;border-color:var(--line)}
.map-view .leaflet-top{top:178px}.map-view .leaflet-bottom{bottom:132px}
.map-card{position:absolute;z-index:500;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:rgba(15,19,16,.92);backdrop-filter:blur(14px);box-shadow:0 10px 35px rgba(0,0,0,.25)}
.map-card div{display:grid;gap:2px}.map-card span{color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.map-card strong{font-size:.9rem}.map-card small{color:var(--muted);font-size:.56rem;white-space:nowrap}
.map-card .map-actions{display:flex;flex-direction:row;gap:6px}
.map-card .map-actions .small-action{padding:0 7px;font-size:.68rem}
.add-map-button{border-color:rgba(255,242,0,.38);color:var(--lotus-yellow)}
.follow-convoy-button,.follow-me-button{border-color:rgba(70,216,134,.42);color:var(--green)}
.follow-convoy-button[aria-pressed="true"]{border-color:rgba(70,216,134,.78);background:rgba(70,216,134,.13);box-shadow:0 0 0 3px rgba(70,216,134,.1),0 0 18px rgba(70,216,134,.3)}
.follow-convoy-button[aria-pressed="false"],.follow-me-button[aria-pressed="false"]{border-color:var(--line);color:var(--text);background:rgba(255,255,255,.08);box-shadow:none}.follow-me-button:disabled{opacity:.42;color:var(--muted)}
.map-view.is-follow-free .follow-convoy-button{border-color:rgba(255,242,0,.72);color:var(--lotus-yellow);background:rgba(255,242,0,.12);box-shadow:0 0 0 3px rgba(255,242,0,.1),0 0 18px rgba(255,242,0,.28)}
.route-point-controls{position:absolute;z-index:500;top:max(78px,calc(env(safe-area-inset-top) + 78px));left:12px;right:12px;display:grid;gap:6px;pointer-events:none}.route-point-view-actions,.route-point-admin-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;pointer-events:auto}.route-point-view{min-height:48px;padding:5px 10px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(15,19,16,.94);color:var(--text);backdrop-filter:blur(12px)}.route-point-view>i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#07140d;font-size:.72rem;font-style:normal;font-weight:900}.route-point-view>span{display:grid;gap:1px;text-align:left}.route-point-view strong{font-size:.72rem}.route-point-view small{color:var(--muted);font-size:.58rem}.route-point-view.is-finish>i{background:#ff5b55;color:#fff}.route-point-view:disabled{opacity:.45;cursor:not-allowed}.route-point-admin-actions[hidden]{display:none}.route-point-admin-actions .small-action{min-height:34px;background:rgba(15,19,16,.94);color:var(--lotus-yellow);border-color:rgba(255,242,0,.4)}.route-point-admin-actions .share-route-map-button{grid-column:1/-1;color:#07140d;background:var(--lotus-yellow);border-color:var(--lotus-yellow)}
.map-view.is-placing-stop .convoy-map,.map-view.is-placing-arrow .convoy-map,.map-view.is-placing-route-point .convoy-map{cursor:crosshair}
.map-view.is-placing-stop .map-card,.map-view.is-placing-arrow .map-card,.map-view.is-placing-route-point .map-card{border-color:rgba(255,242,0,.55)}
.map-comms-dock{position:absolute;z-index:500;left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));display:grid;grid-template-columns:116px 1fr;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:22px;background:rgba(15,19,16,.94);backdrop-filter:blur(14px);box-shadow:0 14px 45px rgba(0,0,0,.42)}
.ptt-button.map-ptt-button{width:108px;min-width:108px;height:108px;aspect-ratio:1;border-width:4px;gap:2px;box-shadow:inset 0 -6px 10px rgba(0,0,0,.16),0 8px 24px rgba(0,0,0,.34)}
.map-ptt-button::before{inset:5px}.map-ptt-button svg{width:28px}.map-ptt-button .incoming-car-icon{width:52px}.map-ptt-button .ptt-countdown{font-size:1.75rem}.map-ptt-button strong{font-size:1.18rem}.map-ptt-button span{max-width:88px;font-size:.54rem;line-height:1.1;text-align:center}
.map-close-button{min-height:76px;border:0;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--lotus-yellow);color:#101300}
.map-close-button svg{width:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.map-close-button span{display:grid;gap:2px;text-align:left}.map-close-button strong{font-size:1rem}.map-close-button small{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.62}
.convoy-marker{display:grid;place-items:center;width:34px;height:34px;border:3px solid #fff;border-radius:50% 50% 50% 8px;transform:rotate(-45deg);background:var(--marker-color);box-shadow:0 5px 14px rgba(0,0,0,.35)}
.leaflet-marker-icon.convoy-marker-host{transition:transform .85s linear}
.convoy-marker svg{width:20px;transform:rotate(45deg);fill:#0a0c0a}.convoy-marker.is-stale{opacity:.55}
.leaflet-tooltip.convoy-tooltip{border:0;border-radius:8px;background:#101511;color:#fff;box-shadow:0 6px 18px rgba(0,0,0,.28);font:700 12px "DM Sans",sans-serif}.leaflet-tooltip.convoy-tooltip::before{border-top-color:#101511}
.stop-marker{width:38px;height:38px;border:3px solid #fff;border-radius:50% 50% 50% 8px;display:grid;place-items:center;transform:rotate(-45deg);background:var(--lotus-yellow);box-shadow:0 6px 16px rgba(0,0,0,.4)}
.stop-marker svg{width:20px;height:20px;transform:rotate(45deg);fill:none;stroke:#111300;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.stop-marker.is-draft{animation:stop-pulse 1.2s ease-in-out infinite}
.route-point-marker{width:44px;height:44px;border:3px solid #fff;border-radius:50% 50% 50% 8px;display:grid;place-items:center;transform:rotate(-45deg);background:var(--green);box-shadow:0 7px 19px rgba(0,0,0,.48)}.route-point-marker span{transform:rotate(45deg);color:#07140d;font:900 1rem "DM Sans",sans-serif}.route-point-marker.is-finish{background:#ff5b55}.route-point-marker.is-finish span{color:#fff}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#111612;color:var(--text)}
.leaflet-popup-content{margin:14px;min-width:180px;font-family:"DM Sans",sans-serif}.leaflet-popup-content strong{display:block;margin-bottom:5px;font-size:.92rem}.leaflet-popup-content p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.leaflet-popup-content .remove-stop-popup{width:100%;min-height:34px;margin-top:12px;border:1px solid rgba(255,91,85,.35);border-radius:8px;background:rgba(255,91,85,.09);color:#ff8c88;font-size:.72rem;font-weight:800}
.stop-form{margin-top:20px}.stop-form-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:8px}.stop-panel>p{margin-top:0}
@keyframes stop-pulse{50%{filter:drop-shadow(0 0 9px rgba(255,242,0,.8))}}
.route-arrow{width:28px;height:28px;display:grid;place-items:center;filter:drop-shadow(0 3px 4px rgba(0,0,0,.65))}
.route-arrow svg{width:27px;height:27px;fill:var(--lotus-yellow);stroke:#101300;stroke-width:1.8;stroke-linejoin:round;transform:rotate(var(--arrow-bearing));transform-origin:center}
.route-arrow.is-draft svg{animation:arrow-pulse 1.1s ease-in-out infinite}
.arrow-form{margin-top:18px}.arrow-panel>p{margin-top:0}
.direction-preview{width:132px;height:132px;margin:4px auto 8px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;position:relative;background:#0f1410;box-shadow:inset 0 0 0 14px rgba(255,255,255,.018)}
.direction-preview::before,.direction-preview::after{content:"";position:absolute;background:rgba(255,255,255,.1)}.direction-preview::before{width:1px;height:100%}.direction-preview::after{height:1px;width:100%}
.direction-preview svg{position:relative;z-index:2;width:64px;height:64px;fill:var(--lotus-yellow);stroke:#101300;stroke-width:1.4;stroke-linejoin:round;transform:rotate(var(--arrow-bearing,0deg));transform-origin:center;filter:drop-shadow(0 5px 8px rgba(0,0,0,.35))}
.direction-north{position:absolute;z-index:3;top:7px;color:var(--muted);font:700 .68rem "Barlow Condensed",sans-serif;letter-spacing:.1em}
.bearing-readout{display:flex;align-items:center;justify-content:space-between;gap:12px}.bearing-readout span{color:var(--muted);font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.bearing-readout output{font-weight:800;color:var(--lotus-yellow)}
.arrow-form input[type="range"]{width:100%;accent-color:var(--lotus-yellow)}
.rotate-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@keyframes arrow-pulse{50%{filter:drop-shadow(0 0 8px rgba(255,242,0,.85));transform:rotate(var(--arrow-bearing)) scale(1.13)}}

.sheet{position:fixed;z-index:100;inset:0;display:grid;align-items:end}
.sheet-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.68)}
.sheet-panel{position:relative;width:min(100%,560px);max-height:82vh;overflow:auto;margin:0 auto;padding:12px 24px max(28px,env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:24px 24px 0 0;background:#171d18;box-shadow:0 -20px 70px rgba(0,0,0,.4)}
.sheet-handle{width:46px;height:4px;margin:0 auto 22px;border-radius:4px;background:#4e574f}.sheet-panel h2{margin:0 0 6px;font:700 2rem "Barlow Condensed",sans-serif;text-transform:uppercase}.sheet-panel>p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}
.qr-box{width:216px;height:216px;margin:22px auto;padding:12px;background:#fff;border-radius:16px}.qr-box img,.qr-box canvas{display:block;width:100%!important;height:100%!important}
.sheet-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-title-row span{padding:6px 10px;border-radius:999px;background:rgba(70,216,134,.1);color:var(--green);font-size:.75rem;font-weight:700}
.install-app-button{margin-top:10px}.install-help{margin:12px 0 0!important;padding:12px;border:1px solid rgba(255,242,0,.25);border-radius:11px;background:rgba(255,242,0,.055);color:#d9ded9!important;text-align:center}.install-help[hidden],.install-app-button[hidden]{display:none}
.crew-list{display:grid;gap:8px;margin:18px 0 0;padding:0;list-style:none}.crew-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#101511}.crew-list li>span:nth-child(2){display:grid;gap:2px}.crew-list strong{font-size:.88rem}.crew-list small{color:var(--muted)}.crew-live{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:rgba(70,216,134,.09);color:var(--green);font-size:.64rem;font-style:normal;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.crew-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#687169}.crew-live.is-live::before{background:var(--green);box-shadow:0 0 0 3px rgba(70,216,134,.11)}
.crew-actions{display:flex;align-items:center;justify-content:flex-end;gap:11px}.locate-driver-button{min-height:38px;padding:0 11px;border:1px solid rgba(255,242,0,.38);border-radius:9px;background:rgba(255,242,0,.08);color:var(--lotus-yellow);font-size:.7rem;font-weight:800}.locate-driver-button:disabled{border-color:var(--line);background:rgba(255,255,255,.035);color:#687169;cursor:not-allowed}

.status-panel{padding-top:12px}.status-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.sheet-close-button{min-height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px;display:flex;align-items:center;justify-content:center;gap:6px;background:rgba(255,255,255,.07);color:var(--text);font-size:.76rem;font-weight:800}.sheet-close-button svg{width:19px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}.status-panel h2{margin-top:8px}.driver-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0 4px}.driver-status-button{min-height:86px;padding:12px;border:1px solid var(--line);border-radius:15px;display:grid;grid-template-columns:38px 1fr;align-items:center;gap:10px;background:#101511;color:var(--text);text-align:left}.driver-status-button>b{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.09);font:800 1.2rem "Barlow Condensed",sans-serif}.driver-status-button>span{display:grid;gap:3px}.driver-status-button strong{font-size:.88rem}.driver-status-button small{color:var(--muted);font-size:.66rem;line-height:1.25}.driver-status-button.is-urgent{border-color:rgba(255,91,85,.45);background:rgba(255,91,85,.08)}.driver-status-button.is-urgent>b{background:var(--red);color:#fff}.driver-status-button.is-warning{border-color:rgba(255,242,0,.35)}.driver-status-button.is-warning>b{background:var(--lotus-yellow);color:#111300}.driver-status-button.is-okay{grid-column:1/-1;border-color:rgba(70,216,134,.4);background:rgba(70,216,134,.07)}.driver-status-button.is-okay>b{background:var(--green);color:#07140d}.driver-status-button:disabled{opacity:.45;cursor:not-allowed}
.driver-status-button.is-wide{grid-column:1/-1}.custom-status-form{display:grid;gap:8px;margin:16px 0 2px;padding-top:15px;border-top:1px solid var(--line)}.custom-status-form label{font-size:.8rem;font-weight:800}.custom-status-form textarea{width:100%;min-height:72px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;resize:none;background:#0d120e;color:var(--text);font:inherit;line-height:1.35}.custom-status-form>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.custom-status-form small{color:var(--muted);font-size:.7rem}.custom-status-form .button{min-height:46px}.custom-status-form textarea:focus-visible{outline:3px solid var(--lotus-yellow);outline-offset:2px}
.driver-status-button.is-police{border-color:rgba(65,145,255,.55);background:rgba(38,116,224,.12)}.driver-status-button.is-police>b{background:#3989f7;color:#fff;box-shadow:0 0 0 5px rgba(57,137,247,.1)}
.driver-status-button.is-camera{border-color:rgba(255,176,0,.55);background:rgba(255,176,0,.1)}.driver-status-button.is-camera>b{background:#ffb000;color:#171006;box-shadow:0 0 0 5px rgba(255,176,0,.1);font-size:1.5rem}
.tutorial-overlay{position:fixed;z-index:320;inset:0;padding:18px;display:grid;place-items:center;background:rgba(5,8,6,.92);backdrop-filter:blur(10px)}.tutorial-overlay[hidden]{display:none}.tutorial-card{width:min(100%,480px);min-height:520px;max-height:calc(100svh - 36px);overflow:auto;padding:22px;border:1px solid rgba(255,242,0,.3);border-radius:26px;display:flex;flex-direction:column;background:linear-gradient(145deg,#202720,#111612);box-shadow:0 30px 100px rgba(0,0,0,.62)}.tutorial-topline{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutorial-topline>span{color:var(--lotus-yellow);font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.tutorial-topline>button{min-height:38px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.05);color:var(--muted);font-size:.72rem;font-weight:800}.tutorial-icon{width:96px;height:96px;margin:28px auto 20px;border:3px solid var(--lotus-yellow);border-radius:50%;display:grid;place-items:center;background:rgba(255,242,0,.08);color:var(--lotus-yellow);font:800 2.8rem/1 "Barlow Condensed",sans-serif;box-shadow:0 0 0 12px rgba(255,242,0,.035)}.tutorial-kicker{display:block;color:var(--green);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-align:center;text-transform:uppercase}.tutorial-card h2{margin:7px 0 12px;color:#fff;font:800 clamp(2.4rem,12vw,3.7rem)/.9 "Barlow Condensed",sans-serif;text-align:center;text-transform:uppercase}.tutorial-card>p{margin:0 auto;color:#cbd2cb;font-size:1rem;line-height:1.55;text-align:center;max-width:390px}.tutorial-ptt-states{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.tutorial-ptt-states[hidden]{display:none}.tutorial-ptt-state{min-height:66px;padding:9px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:9px;background:#101511;text-align:left}.tutorial-ptt-state>i{width:34px;height:34px;flex:0 0 34px;border:3px solid #303630;border-radius:50%;background:var(--state-colour);box-shadow:inset 0 -4px 7px rgba(0,0,0,.18)}.tutorial-ptt-state>span{display:grid;gap:2px}.tutorial-ptt-state strong{font-size:.78rem}.tutorial-ptt-state small{color:var(--muted);font-size:.61rem;line-height:1.25}.tutorial-ptt-state.is-ready{--state-colour:var(--lotus-yellow)}.tutorial-ptt-state.is-talking{--state-colour:var(--red)}.tutorial-ptt-state.is-receiving{--state-colour:var(--green)}.tutorial-ptt-state.is-locked{--state-colour:#687169}.tutorial-card.has-ptt-states .tutorial-icon{width:64px;height:64px;margin:15px auto 12px;font-size:1.8rem}.tutorial-card.has-ptt-states h2{font-size:clamp(2.2rem,10vw,3rem)}.tutorial-card.has-ptt-states .tutorial-safety{margin-top:auto}.tutorial-safety{margin:auto 0 18px;padding:12px 14px;border-left:3px solid var(--lotus-yellow);border-radius:8px;background:rgba(255,242,0,.065);color:#dce1dc;font-size:.76rem;line-height:1.45}.tutorial-actions{display:grid;grid-template-columns:1fr 1.6fr;gap:8px}.tutorial-actions .button{min-height:56px}.tutorial-actions .button:disabled{visibility:hidden}
@media(max-width:380px){.convoy-header{gap:8px}.convoy-brand{gap:8px}.convoy-brand img{width:42px;height:42px}.convoy-brand strong{font-size:1.12rem}.convoy-brand span{font-size:.58rem}.tutorial-button,.share-invite-button{width:44px;min-width:44px;padding:0}.tutorial-button span,.share-invite-button span{display:none}.tutorial-card{min-height:min(520px,calc(100svh - 24px));padding:18px}.tutorial-icon{width:78px;height:78px;margin:18px auto 14px;font-size:2.2rem}.tutorial-card h2{font-size:2.5rem}}

@media(max-width:380px){.map-comms-dock{grid-template-columns:104px 1fr}.ptt-button.map-ptt-button{width:96px;min-width:96px;height:96px}.map-close-button{min-height:70px}.map-close-button small{font-size:.6rem}}

.driver-status-alert{position:fixed;z-index:240;inset:0;padding:20px;display:grid;place-items:center;background:rgba(5,8,6,.9);backdrop-filter:blur(8px)}.driver-status-alert[hidden]{display:none}.driver-status-alert-card{--status-colour:var(--lotus-yellow);width:min(100%,460px);padding:24px;border:3px solid var(--status-colour);border-radius:26px;background:#151a16;text-align:center;box-shadow:0 0 0 8px color-mix(in srgb,var(--status-colour) 13%,transparent),0 28px 90px rgba(0,0,0,.6);animation:status-card-in .25s ease-out}.driver-status-alert-card.is-urgent{--status-colour:var(--red)}.driver-status-alert-card.is-okay{--status-colour:var(--green)}.driver-status-alert-card>span{display:block;color:var(--status-colour);font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.driver-status-alert-icon{width:94px;height:94px;margin:20px auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--status-colour);color:#101300;font:800 3.6rem/1 "Barlow Condensed",sans-serif;box-shadow:0 0 0 12px color-mix(in srgb,var(--status-colour) 10%,transparent)}.driver-status-alert-card h2{margin:0;color:var(--status-colour);font:800 clamp(2.8rem,14vw,4.7rem)/.86 "Barlow Condensed",sans-serif;text-transform:uppercase}.driver-status-alert-card p{margin:14px auto 22px;max-width:340px;color:#d5dbd5;line-height:1.45}.driver-status-alert-card .button{width:100%;min-height:64px}@keyframes status-card-in{from{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}
.driver-status-alert-card.is-police{--status-colour:#3989f7}.driver-status-alert-card.is-police .button{background:#3989f7;color:#fff;box-shadow:0 8px 30px rgba(57,137,247,.2)}
.driver-status-alert-card.is-camera{--status-colour:#ffb000}.driver-status-alert-card.is-camera .button{background:#ffb000;color:#171006;box-shadow:0 8px 30px rgba(255,176,0,.2)}

.convoy-marker.has-driver-status{--status-marker-colour:var(--red);animation:driver-status-pulse 1s ease-in-out infinite}.convoy-marker.has-driver-status::after{content:"!";position:absolute;right:-8px;top:-8px;width:18px;height:18px;border:2px solid #fff;border-radius:50%;display:grid;place-items:center;background:var(--status-marker-colour);color:#fff;font:800 12px/1 "Barlow Condensed",sans-serif;transform:rotate(45deg)}.convoy-marker.has-driver-status.status-warning{--status-marker-colour:var(--lotus-yellow)}.convoy-marker.has-driver-status.status-warning::after{color:#111300}.convoy-marker.has-driver-status.status-okay{--status-marker-colour:var(--green)}.convoy-marker.has-driver-status.status-okay::after{content:"✓";color:#07140d}@keyframes driver-status-pulse{50%{filter:drop-shadow(0 0 10px var(--status-marker-colour));transform:rotate(-45deg) scale(1.12)}}
.convoy-marker.has-driver-status.status-police{--status-marker-colour:#3989f7}.crew-driver-status{color:var(--lotus-yellow)!important;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.crew-driver-status.is-urgent{color:#ff8d89!important}.crew-driver-status.is-police{color:#67a8ff!important}.crew-driver-status.is-okay{color:var(--green)!important}
.convoy-marker.has-driver-status.status-camera{--status-marker-colour:#ffb000}.convoy-marker.has-driver-status.status-camera::after{content:"◎";color:#171006}.crew-driver-status.is-camera{color:#ffc23d!important}

.admin-manager{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.admin-manager[hidden]{display:none}
.registration-control{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;margin-bottom:8px;padding:14px;border:1px solid rgba(70,216,134,.25);border-radius:14px;background:rgba(70,216,134,.055)}
.registration-control>div{display:grid;gap:3px}.registration-control span{color:var(--muted);font-size:.67rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.registration-control strong{font-size:1rem;color:var(--green)}.registration-control small{color:var(--muted);font-size:.72rem;line-height:1.35}
.registration-control.is-paused{border-color:rgba(255,91,85,.3);background:rgba(255,91,85,.06)}.registration-control.is-paused strong{color:#ff8c88}
.registration-toggle{min-height:40px;padding:0 13px;border:1px solid rgba(255,91,85,.35);border-radius:10px;background:rgba(255,91,85,.08);color:#ff9a96;font-size:.76rem;font-weight:800}
.registration-control.is-paused .registration-toggle{border-color:rgba(70,216,134,.38);background:rgba(70,216,134,.09);color:var(--green)}
.registration-toggle:disabled{opacity:.5;cursor:not-allowed}
.admin-manager-head{display:flex;align-items:center;justify-content:space-between;gap:14px}
.admin-manager-head div{display:grid;gap:2px}.admin-manager-head span{color:var(--lotus-yellow);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.admin-manager-head h3{margin:0;font:700 1.45rem "Barlow Condensed",sans-serif;text-transform:uppercase}
.admin-manager>p{margin:8px 0 0;color:var(--muted);font-size:.78rem;line-height:1.45}
.admin-user-list{display:grid;gap:8px;margin:8px 0 0;padding:0;list-style:none}
.admin-user-list li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#101511}
.admin-user-list li>span{display:grid;gap:2px;min-width:0}.admin-user-list strong,.admin-user-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-user-list strong{font-size:.86rem}.admin-user-list small{color:var(--muted);font-size:.72rem}
.remove-driver{min-height:34px;padding:0 11px;border:1px solid rgba(255,91,85,.35);border-radius:9px;background:rgba(255,91,85,.08);color:#ff8c88;font-size:.72rem;font-weight:800}
.remove-driver:disabled{opacity:.45;cursor:not-allowed}
.admin-you{color:var(--green);font-size:.72rem;font-weight:700}
.admin-activity{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.admin-activity>p{margin:8px 0 0;color:var(--muted);font-size:.76rem;line-height:1.45}.activity-search{display:grid;gap:7px;margin-top:14px}.activity-search label{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.activity-search>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.activity-search input{min-width:0;height:42px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:#0d120e;color:var(--text)}.activity-search .small-action{min-width:72px;border-radius:10px}.activity-log{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}.activity-entry{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#101511}.activity-entry>i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(255,242,0,.12);color:var(--lotus-yellow);font:800 .68rem "Barlow Condensed",sans-serif}.activity-entry.is-join>i{background:rgba(70,216,134,.15);color:var(--green);font-size:1rem}.activity-entry.is-leave>i{background:rgba(255,91,85,.13);color:#ff8c88;font-size:1rem}.activity-entry.is-ptt_denied>i{background:rgba(255,91,85,.16);color:#ff8c88;font-size:1rem}.activity-entry>span{display:grid;gap:2px;min-width:0}.activity-entry strong,.activity-entry small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-entry strong{font-size:.76rem}.activity-entry small{color:var(--muted);font-size:.65rem}.activity-entry time{max-width:78px;color:var(--muted);font-size:.58rem;line-height:1.25;text-align:right}.activity-empty{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:.76rem;text-align:center}

.route-share-panel{display:grid;gap:12px}.route-share-panel>p{margin-bottom:4px}.shared-map-status{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#101511}.shared-map-status>i{width:13px;height:13px;flex:0 0 13px;border-radius:50%;background:#687169;box-shadow:0 0 0 5px rgba(104,113,105,.12)}.shared-map-status>span{display:grid;gap:2px}.shared-map-status strong{font-size:.86rem}.shared-map-status small{color:var(--muted);font-size:.7rem;line-height:1.35}.shared-map-status.is-enabled{border-color:rgba(70,216,134,.32);background:rgba(70,216,134,.06)}.shared-map-status.is-enabled>i{background:var(--green);box-shadow:0 0 0 5px rgba(70,216,134,.12)}.shared-map-status.is-enabled strong{color:var(--green)}.shared-map-link{display:grid;gap:7px}.shared-map-link[hidden]{display:none}.shared-map-link label{color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.shared-map-link input{width:100%;height:44px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:#0d120e;color:var(--text);font-size:.75rem}.shared-map-link>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shared-map-link .button{min-height:46px}.shared-map-link .share-facebook-button{grid-column:1/-1;background:#1877f2;border-color:#1877f2;color:#fff}.route-share-panel>.button{margin-top:0}

.arrival-celebration{position:fixed;z-index:220;inset:0;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 34%,rgba(255,242,0,.28),transparent 38%),rgba(5,8,6,.94);overflow:hidden}
.arrival-celebration[hidden]{display:none}
.arrival-card{position:relative;z-index:2;width:min(100%,470px);padding:34px 24px 24px;border:2px solid var(--lotus-yellow);border-radius:28px;background:linear-gradient(155deg,#252d26,#111612);text-align:center;box-shadow:0 0 0 8px rgba(255,242,0,.08),0 28px 90px rgba(0,0,0,.55)}
.arrival-icon{width:106px;height:106px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:var(--lotus-yellow);box-shadow:0 0 0 12px rgba(255,242,0,.09),0 0 55px rgba(255,242,0,.25)}
.arrival-icon svg{width:62px;height:62px;fill:none;stroke:#101300;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.arrival-card h2{margin:10px 0 7px;font:800 clamp(3rem,15vw,5rem)/.83 "Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:-.03em;color:var(--lotus-yellow)}
.arrival-card>strong{display:block;font-size:1.3rem}.arrival-card>p{margin:10px auto 12px;max-width:360px;color:#d2d8d2;line-height:1.5}.arrival-distance{display:block;margin-bottom:22px;color:var(--green);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.arrival-dismiss{width:100%;min-height:68px;display:grid;place-content:center;gap:2px}.arrival-dismiss>strong{font-size:1rem}.arrival-dismiss>span{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.62}
.arrival-test-badge{position:absolute;top:13px;right:14px;padding:6px 9px;border-radius:999px;background:rgba(70,216,134,.13);color:var(--green);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.arrival-test-badge[hidden]{display:none}
.arrival-burst{position:absolute;inset:0;display:grid;place-items:center}.arrival-burst i{position:absolute;width:min(82vw,520px);aspect-ratio:1;border:1px solid rgba(255,242,0,.22);border-radius:50%;animation:arrival-ring 2.2s ease-out infinite}.arrival-burst i:nth-child(2){animation-delay:.7s}.arrival-burst i:nth-child(3){animation-delay:1.4s}
.leaflet-popup-content .test-stop-popup{width:100%;min-height:38px;margin-top:12px;border:0;border-radius:8px;background:var(--lotus-yellow);color:#111300;font-size:.72rem;font-weight:800}.leaflet-popup-content .test-stop-popup+.remove-stop-popup{margin-top:7px}
@keyframes arrival-ring{0%{transform:scale(.35);opacity:0}20%{opacity:1}100%{transform:scale(1.35);opacity:0}}

@media(max-width:520px){
  .convoy-header{min-height:76px;padding-left:14px;padding-right:14px}.convoy-brand img{width:44px;height:44px}.header-badge-lockup b{font-size:.53rem}
  .gate-screen{padding:3vh 12px 30px}.gate-card{padding:24px 20px;border-radius:22px}.gate-card h1{font-size:clamp(2.5rem,13vw,3.6rem)}
  .field-action{grid-template-columns:1fr}.field-action .button{width:100%}
  .drive-screen{min-height:calc(100svh - 76px);padding-inline:8px}.drive-topline{padding-inline:6px}
  .ptt-wrap{height:min(42vh,355px)}.ptt-rings{width:min(78vw,320px)}.ptt-button{width:min(62vw,248px)}
}

@media(max-width:410px){.permission-mode-options{grid-template-columns:1fr}.permission-mode-card{min-height:92px}.permission-mode-selector{padding:13px}}

@media(max-width:340px){.share-invite-button{min-width:78px;padding:0 10px;gap:6px}.share-invite-button span{font-size:.7rem}.convoy-brand{gap:8px}.convoy-brand strong{font-size:1.18rem}}

@media(max-height:700px){
  .convoy-header{min-height:68px}.convoy-brand img{width:40px;height:40px}.drive-screen{min-height:calc(100svh - 68px)}
  .comms-view{gap:9px}
  .ptt-wrap{height:250px;min-height:250px;margin-top:-14px;margin-bottom:-6px}.ptt-button{width:210px}.ptt-rings{width:260px}
  .driver-strip{min-height:62px}.radio-readout{padding:12px 16px}.crew-summary{min-height:58px}
}

@media(prefers-reduced-motion:no-preference){
  .ptt-button{transition:transform .12s ease,background .18s ease}.live-status i.is-live{animation:pulse 2s ease-in-out infinite}
  .map-view.is-follow-free .follow-convoy-button{animation:follow-button-attention 1.35s ease-in-out infinite}
  .follow-convoy-button[aria-pressed="true"]{animation:following-button-active 1.35s ease-in-out infinite}
  @keyframes pulse{50%{box-shadow:0 0 0 7px rgba(70,216,134,0)}}
  @keyframes follow-button-attention{50%{transform:scale(1.055);box-shadow:0 0 0 6px rgba(255,242,0,.16),0 0 28px rgba(255,242,0,.55)}}
  @keyframes following-button-active{50%{transform:scale(1.055);box-shadow:0 0 0 6px rgba(70,216,134,.16),0 0 28px rgba(70,216,134,.58)}}
}

@media(prefers-reduced-motion:reduce){.leaflet-marker-icon.convoy-marker-host{transition:none}}

.tutorial-brand{margin:12px auto 7px}.tutorial-brand img{width:72px;height:72px}.tutorial-brand>strong{font-size:.95rem}.tutorial-card.has-ptt-states .tutorial-brand{margin:7px auto 4px}.tutorial-card.has-ptt-states .tutorial-brand img{width:54px;height:54px}
@media(max-width:380px){.tutorial-brand img{width:60px;height:60px}.tutorial-card.has-ptt-states .tutorial-brand img{width:50px;height:50px}}
