:root{
  --ink:#172554;--navy:#1e1b4b;--indigo:#4338ca;--violet:#7c3aed;
  --sky:#0284c7;--green:#047857;--red:#be123c;--orange:#c2410c;
  --line:#c7d2fe;--panel:#ffffff;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:linear-gradient(145deg,#eef2ff 0%,#f5f3ff 46%,#ecfeff 100%);overscroll-behavior:none}
body{min-height:100dvh;padding:14px}
#gbtt-app{width:min(1040px,100%);margin:0 auto}
#gbtt-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;padding:6px}
.gbtt-btn{
  appearance:none;-webkit-appearance:none;width:100%;min-height:92px;border:0;border-radius:20px;padding:16px 14px;
  background:linear-gradient(135deg,#4338ca,#6366f1);color:#fff!important;text-decoration:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;text-align:center;font-weight:900;font-size:17px;line-height:1.18;
  box-shadow:0 10px 24px rgba(49,46,129,.18);touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  transition:transform .12s ease,box-shadow .12s ease,filter .12s ease
}
.gbtt-btn:hover{filter:brightness(1.04);box-shadow:0 13px 28px rgba(49,46,129,.22)}
.gbtt-btn:active{transform:scale(.98)}
.gbtt-label{display:block;max-width:95%}
.gbtt-btn.emergency{background:linear-gradient(135deg,#be123c,#e11d48)}
.gbtt-btn.help{background:linear-gradient(135deg,#0369a1,#0284c7)}
.gbtt-btn.checkin{background:linear-gradient(135deg,#047857,#10b981)}
.gbtt-btn.ride{background:linear-gradient(135deg,#c2410c,#f59e0b)}
.gbtt-btn.school{background:linear-gradient(135deg,#0f766e,#06b6d4)}
.gbtt-btn.medical{background:linear-gradient(135deg,#9f1239,#db2777)}
.gbtt-btn.media{background:linear-gradient(135deg,#6d28d9,#9333ea)}
.gbtt-btn.learning{background:linear-gradient(135deg,#1d4ed8,#3b82f6)}
.gbtt-btn.safety{background:linear-gradient(135deg,#7e22ce,#a855f7)}
.gbtt-btn.profile{background:linear-gradient(135deg,#334155,#475569)}
.gbtt-btn.controls{background:linear-gradient(135deg,#0f172a,#334155)}

#gbtt-pair,#gbtt-lock{display:none;min-height:84dvh;align-items:center;justify-content:center;text-align:center;padding:22px}
.gbtt-pair-card{width:min(640px,100%);background:rgba(255,255,255,.96);border:2px solid var(--line);border-radius:28px;padding:30px;box-shadow:0 20px 60px rgba(49,46,129,.16)}
.gbtt-pair-card h1{margin:0 0 12px;color:#312e81;font-size:34px;line-height:1.05}
.gbtt-pair-card p{font-size:17px;line-height:1.55;color:#334155;font-weight:700}
#gbtt-code{display:inline-block;margin:13px 0;padding:14px 18px;border:3px dashed #6366f1;border-radius:18px;background:#eef2ff;color:#312e81;font-size:34px;font-weight:950;letter-spacing:4px}
.gbtt-status{font-size:13px;color:#64748b;margin-top:10px;font-weight:700}

#gbtt-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:14px;background:rgba(15,23,42,.68)}
#gbtt-modal.open{display:flex}
.gbtt-modal-card{width:min(580px,100%);max-height:88dvh;overflow:auto;background:#fff;border:2px solid #818cf8;border-radius:24px;padding:22px;box-shadow:0 24px 80px rgba(15,23,42,.38)}
.gbtt-modal-title{margin:0 0 12px;color:#312e81;font-size:27px;line-height:1.08;font-weight:950}
.gbtt-modal-body{color:#334155;font-size:18px;line-height:1.5;font-weight:750;white-space:pre-wrap;overflow-wrap:anywhere}
.gbtt-modal-actions{display:grid;grid-template-columns:1fr;gap:10px;margin-top:18px}
.gbtt-close,.gbtt-modal-link{min-height:54px;border:0;border-radius:14px;padding:12px 16px;background:#4338ca;color:#fff!important;text-decoration:none;font-size:17px;font-weight:900;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}
#gbtt-offline{display:none;position:fixed;left:8px;right:8px;bottom:8px;z-index:100;background:#fff7ed;border:2px solid #f59e0b;border-radius:14px;padding:8px 12px;text-align:center;color:#7c2d12;font-size:12px;font-weight:850}

@media(max-width:720px){body{padding:9px}#gbtt-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gbtt-btn{min-height:86px;font-size:15px;border-radius:18px}.gbtt-pair-card{padding:22px}#gbtt-code{font-size:28px}}
@media(max-width:370px){#gbtt-grid{grid-template-columns:1fr;gap:8px}.gbtt-btn{min-height:72px;font-size:15px}}
@media(orientation:landscape) and (max-height:540px){#gbtt-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.gbtt-btn{min-height:72px;font-size:14px}}
