@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@300;400;500;600;700&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&family=JetBrains+Mono:wght@400;600&family=Share+Tech+Mono&display=swap');

/* ===== CSS VARIABLES ===== */
:root {
  --bg:        #070e1c;
  --panel:     #0d1929;
  --card:      #111f32;
  --border:    #1c3150;
  --green:     #4ade80;
  --green-dim: #052014;
  --amber:     #fbbf24;
  --amber-dim: #3a2400;
  --red:       #f87171;
  --blue:      #60a5fa;
  --text:      #d8e6f6;
  --text-dim:  #7a97b5;
  --radio:     #38bdf8;
  --tmpl:      #4ade80;
  --r:         6px;

  --radio-glow:   rgba(56,189,248,.2);
  --border-hi:    rgba(255,255,255,.055);
  --card-shadow:  inset 0 1px 0 rgba(255,255,255,.055), 0 2px 10px rgba(0,0,0,.38);
  --app-height: 100dvh;
}

/* ===== RESET ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;max-width:100vw}

/* ===== BASE ===== */
body {
  background-color: var(--bg);
  /* Vignette + aeronautical dot grid */
  background-image:
    radial-gradient(ellipse 130% 100% at 50% 50%, transparent 48%, rgba(0,0,0,.5) 100%),
    radial-gradient(circle, rgba(255,255,255,.022) 1px, transparent 1px);
  background-size: 100% 100%, 32px 32px;
  background-position: center, 0 0;
  color: var(--text);
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 14px;
  line-height: 1.5;
}

/* ===== SCREENS ===== */
.screen{display:none;height:100vh;height:var(--app-height, 100dvh);width:100vw;max-width:100vw;flex-direction:column;overflow:hidden}
.screen.active{display:flex}

/* ===== MENU SCREEN ===== */
#s-menu{align-items:center;justify-content:flex-start;gap:28px;padding:32px;overflow-y:auto}

.menu-header{text-align:center;max-width:100%}
.menu-language{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 auto 12px;
  flex-wrap:wrap;
}
.menu-language-label{
  color:var(--text-dim);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.menu-language-options{
  display:inline-flex;
  gap:6px;
  padding:4px;
  border:1px solid var(--border);
  border-radius:999px;
  background:rgba(255,255,255,.03);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.menu-language-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-width:96px;
  min-height:30px;
  padding:5px 10px;
  border-radius:999px;
  text-align:center;
  white-space:nowrap;
  font-size:.78rem;
  line-height:1;
}
.menu-test-tools{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin:0 auto 12px;
  flex-wrap:wrap;
}
.release-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:3px 10px;
  border:1px solid var(--border);
  border-radius:999px;
  color:var(--radio);
  background:rgba(56,189,248,.06);
  font-family:'Share Tech Mono',monospace;
  font-size:.76rem;
}
.menu-header h1{
  font-family:'Barlow Condensed',sans-serif;
  font-size:2.7rem;
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:var(--text);
  line-height:1;
}
.menu-header h1 span{color:var(--radio)}
.menu-header p{
  color:var(--text-dim);
  margin-top:9px;
  font-size:.88rem;
  font-weight:400;
  letter-spacing:.02em;
}
.menu-header .release-disclaimer{
  max-width:760px;
  margin:12px auto 0;
  color:var(--text);
  opacity:.78;
  font-size:.8rem;
  line-height:1.5;
}

.airspace-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:880px;width:100%}
@media(max-width:640px){.airspace-grid{grid-template-columns:1fr}}

.air-card{
  background:linear-gradient(145deg, var(--card), rgba(8,14,22,.92));
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:28px 22px 26px;
  cursor:pointer;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position:relative;
  overflow:hidden;
  box-shadow:var(--card-shadow);
}
.air-card:hover{transform:translateY(-2px)}
.air-card:focus-visible{outline:2px solid var(--blue);outline-offset:3px;transform:translateY(-2px)}

.air-card.unc:hover{border-color:var(--green);box-shadow:var(--card-shadow),0 10px 32px rgba(0,230,118,.13)}
.air-card.fiz:hover{border-color:var(--amber);box-shadow:var(--card-shadow),0 10px 32px rgba(255,179,0,.13)}
.air-card.ctrl:hover{border-color:var(--red);box-shadow:var(--card-shadow),0 10px 32px rgba(239,83,80,.13)}


.air-card.unc:focus-visible{outline-color:var(--green);border-color:var(--green)}
.air-card.fiz:focus-visible{outline-color:var(--amber);border-color:var(--amber)}
.air-card.ctrl:focus-visible{outline-color:var(--red);border-color:var(--red)}

.air-card .badge{
  display:inline-block;
  padding:3px 9px;
  border-radius:3px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.12em;
  margin-bottom:14px;
}
.unc .badge{background:var(--green-dim);color:var(--green);border:1px solid rgba(0,230,118,.2)}
.fiz .badge{background:var(--amber-dim);color:var(--amber);border:1px solid rgba(255,179,0,.2)}
.ctrl .badge{background:rgba(239,83,80,.12);color:var(--red);border:1px solid rgba(239,83,80,.22)}

.air-card h2{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.28rem;
  font-weight:600;
  letter-spacing:.02em;
  margin-bottom:8px;
  color:var(--text);
}
.air-card p{color:var(--text-dim);font-size:.86rem;line-height:1.65}
.air-card .freq{position:absolute;bottom:14px;right:16px;font-family:'Share Tech Mono',monospace;font-size:.78rem;color:var(--text-dim)}

/* ===== SETUP SCREEN ===== */
#s-setup{padding:0}

.setup-header{
  background:var(--panel);
  border-bottom:1px solid var(--border);
  padding:14px 24px;
  display:flex;align-items:center;gap:14px;
  flex-shrink:0;
  box-shadow:0 1px 0 var(--border-hi);
}
.setup-header h2{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.1rem;
  font-weight:600;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.btn-back{
  background:none;
  border:1px solid var(--border);
  color:var(--text-dim);
  border-radius:var(--r);
  padding:6px 14px;
  cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.82rem;
  transition:all .15s;
}
.btn-back:hover{border-color:var(--text-dim);color:var(--text)}

.setup-body{
  flex:1;overflow-y:auto;
  padding:20px 24px 96px;
  display:grid;grid-template-columns:1fr 1fr;gap:16px;align-content:start;
}
@media(max-width:640px){
  .setup-body{grid-template-columns:1fr;padding-bottom:24px}
  .setup-privacy{border-radius:0;margin:0;border-left:none;border-right:none;border-bottom:none}
}

.setup-onboarding{
  grid-column:1 / -1;
  background:rgba(56,189,248,.06);
  border:1px solid rgba(56,189,248,.2);
  border-radius:var(--r);
  display:flex;flex-direction:column;
}
.setup-onboarding-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;
  background:transparent;
  border:none;
  cursor:pointer;
  width:100%;
  text-align:left;
  gap:8px;
}
.setup-onboarding-header:hover .setup-onboarding-title{color:var(--blue)}
.setup-onboarding-title{
  font-size:.82rem;
  color:var(--text-dim);
  letter-spacing:.03em;
  text-transform:uppercase;
}
.setup-onboarding-chevron{
  font-size:.7rem;
  color:var(--text-dim);
  transition:transform .18s ease;
  flex-shrink:0;
}
.setup-onboarding--collapsed .setup-onboarding-chevron{transform:rotate(180deg)}
.setup-onboarding-tips{
  margin:0;padding:0 14px 12px 26px;
  display:flex;flex-direction:column;gap:5px;
  font-size:.8rem;
  color:var(--text-dim);
  line-height:1.5;
  transition:none;
}
.setup-onboarding--collapsed .setup-onboarding-tips{display:none}
.setup-onboarding-tips b{color:var(--text)}
.setup-onboarding-tips em{font-style:normal;color:var(--blue)}
.setup-section{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:18px;
  box-shadow:var(--card-shadow);
}
.setup-section h3{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--text-dim);
  margin-bottom:12px;
}

.setup-help{color:var(--text-dim);font-size:.82rem;line-height:1.65;margin-bottom:10px}
.setup-mini{color:var(--text-dim);font-size:.77rem;line-height:1.5}
.setup-mode-hint{margin-top:5px;min-height:1.1em;transition:opacity .15s}
.setup-mode-hint:empty{display:none}
.setup-field{display:flex;flex-direction:column;gap:5px}
.setup-field + .setup-field{margin-top:10px}
.speech-start-note{
  display:grid;gap:4px;
  margin:0 0 12px;
  padding:11px 13px;
  background:rgba(255,179,0,.07);
  border:1px solid rgba(255,179,0,.28);
  border-radius:var(--r);
  color:var(--text);
  font-size:.82rem;
  line-height:1.5;
}
.speech-start-note strong{
  color:var(--amber);
  font-family:'Barlow Condensed',sans-serif;
  font-size:.82rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.speech-start-note span{color:var(--text-dim)}
.speech-check-panel{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:10px 0 12px;
  padding:11px 12px;
  background:rgba(66,165,245,.055);
  border:1px solid rgba(66,165,245,.18);
  border-radius:var(--r);
}
.speech-check-panel[data-level="ok"]{
  background:rgba(0,230,118,.055);
  border-color:rgba(0,230,118,.2);
}
.speech-check-panel[data-level="warn"]{
  background:rgba(255,179,0,.07);
  border-color:rgba(255,179,0,.24);
}
.speech-check-panel strong{
  display:block;
  color:var(--text);
  font-size:.86rem;
  margin-bottom:2px;
}
.speech-check-panel span{
  display:block;
  color:var(--text-dim);
  font-size:.78rem;
  line-height:1.45;
}
.speech-mode-badge{
  display:inline-block;
  margin-top:4px;
  padding:2px 7px;
  border-radius:3px;
  background:rgba(66,165,245,.1);
  border:1px solid rgba(66,165,245,.22);
  color:var(--blue);
  font-size:.73rem;
  font-family:'Share Tech Mono',monospace;
  letter-spacing:.04em;
  line-height:1.6;
}
.speech-mode-badge:empty{display:none}
.speech-check-panel[data-level="ok"] .speech-mode-badge{background:rgba(0,230,118,.08);border-color:rgba(0,230,118,.22);color:var(--green)}
.speech-check-panel[data-level="warn"] .speech-mode-badge{background:rgba(255,179,0,.08);border-color:rgba(255,179,0,.22);color:var(--amber)}
.mic-diagnostic{
  display:grid;gap:7px;
  margin:0 0 12px;
  padding:10px 12px;
  border:1px solid rgba(66,165,245,.14);
  border-radius:var(--r);
  background:rgba(255,255,255,.025);
}
.mic-diagnostic-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:.76rem;
  color:var(--text-dim);
}
.mic-diagnostic-row strong{
  max-width:62%;
  color:var(--text);
  font-size:.78rem;
  font-weight:650;
  text-align:right;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.mic-meter{
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08);
}
.mic-meter span{
  display:block;
  width:0;
  min-width:0;
  height:100%;
  border-radius:inherit;
  background:var(--blue);
  transition:width .16s ease, background .16s ease;
}
.mic-diagnostic[data-level="ok"] .mic-meter span{background:var(--green)}
.mic-diagnostic[data-level="warn"] .mic-meter span{background:var(--amber)}
.speech-check-btn{
  flex-shrink:0;
  background:rgba(66,165,245,.1);
  border:1px solid rgba(66,165,245,.28);
  color:var(--blue);
  border-radius:var(--r);
  padding:7px 12px;
  cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.78rem;
  font-weight:600;
  transition:all .15s;
}
.speech-check-btn:hover{border-color:var(--blue);background:rgba(66,165,245,.16)}
.speech-check-btn:disabled{opacity:.55;cursor:wait}
.speech-check-btn--done,
.speech-check-btn--done:hover{
  border-color:rgba(0,230,118,.45);
  background:rgba(0,230,118,.12);
  color:var(--green);
}
.speech-check-btn--warn,
.speech-check-btn--warn:hover{
  border-color:rgba(255,179,0,.5);
  background:rgba(255,179,0,.13);
  color:var(--amber);
}
.speech-check-recommendation{
  font-size:.76rem;
  color:var(--text-dim);
  line-height:1.5;
  margin:0 0 10px;
  padding:7px 10px;
  background:rgba(255,255,255,.02);
  border:1px solid var(--border);
  border-radius:var(--r);
}
.voice-quality-panel{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:10px 0 0;
  padding:11px 12px;
  background:rgba(66,165,245,.055);
  border:1px solid rgba(66,165,245,.18);
  border-radius:var(--r);
}
.voice-quality-panel[data-level="ok"]{
  background:rgba(0,230,118,.055);
  border-color:rgba(0,230,118,.2);
}
.voice-quality-panel[data-level="warn"]{
  background:rgba(255,179,0,.07);
  border-color:rgba(255,179,0,.24);
}
.voice-quality-panel strong{
  display:block;
  color:var(--text);
  font-size:.86rem;
  margin-bottom:2px;
}
.voice-quality-panel span{
  display:block;
  color:var(--text-dim);
  font-size:.78rem;
  line-height:1.45;
}
.voice-quality-badge{
  display:inline-block;
  margin-top:4px;
  padding:2px 7px;
  border-radius:3px;
  background:rgba(66,165,245,.1);
  border:1px solid rgba(66,165,245,.22);
  color:var(--blue);
  font-size:.73rem;
  font-family:'Share Tech Mono',monospace;
  letter-spacing:.04em;
  line-height:1.6;
}
.voice-quality-badge:empty{display:none}
.voice-quality-panel[data-level="ok"] .voice-quality-badge{background:rgba(0,230,118,.08);border-color:rgba(0,230,118,.22);color:var(--green)}
.voice-quality-panel[data-level="warn"] .voice-quality-badge{background:rgba(255,179,0,.08);border-color:rgba(255,179,0,.22);color:var(--amber)}
.voice-preview-btn{white-space:nowrap}

.advanced-speech{
  margin-top:12px;
  border:1px solid rgba(66,165,245,.18);
  border-radius:var(--r);
  background:rgba(8,14,24,.5);
  overflow:hidden;
}
.advanced-speech summary{
  cursor:pointer;list-style:none;
  padding:9px 12px;
  color:var(--text-dim);
  font-size:.83rem;font-weight:500;
  display:flex;align-items:center;justify-content:space-between;
}
.advanced-speech summary::-webkit-details-marker{display:none}
.advanced-speech summary::after{content:"+";color:var(--blue);font-weight:800;font-family:'Share Tech Mono',monospace}
.advanced-speech[open] summary{border-bottom:1px solid rgba(66,165,245,.14)}
.advanced-speech[open] summary::after{content:"−"}
.advanced-speech-body{padding:10px}

.option-group{display:flex;flex-direction:column;gap:7px}

.opt-btn{
  background:var(--panel);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:var(--r);
  padding:9px 14px;
  cursor:pointer;
  text-align:left;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.9rem;
  transition:all .13s;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.opt-btn:hover{border-color:var(--blue);background:rgba(66,165,245,.04)}
.opt-btn:focus-visible,
.btn-back:focus-visible,
.btn-start:focus-visible,
.btn-exit:focus-visible,
.ptt-btn:focus-visible,
.send-btn:focus-visible,
.skip-btn:focus-visible,
.step-nav-btn:focus-visible,
.rbtn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.opt-btn.selected{
  border-color:var(--radio);
  color:var(--radio);
  background:rgba(56,189,248,.07);
  box-shadow:inset 0 1px 0 rgba(56,189,248,.07),0 0 0 1px rgba(56,189,248,.05);
}
.airport-option-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.airport-option-meta{color:var(--text-dim);font-size:.82rem}
.airport-subset-badge{
  display:inline-flex;align-items:center;
  border:1px solid rgba(251,191,36,.34);
  border-radius:999px;
  padding:2px 7px;
  color:rgba(251,191,36,.95);
  background:rgba(251,191,36,.08);
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.02em;
}
.airport-subset-note{
  display:block;
  margin-top:5px;
  color:var(--text-dim);
  font-size:.76rem;
  line-height:1.35;
}

.setup-input{
  width:100%;
  background:var(--panel);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:var(--r);
  padding:9px 12px;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.88rem;
  outline:none;
  transition:border-color .15s;
}
.setup-input:focus{border-color:var(--radio)}
.callsign-input:focus,.text-input:focus,.setup-select:focus{box-shadow:0 0 0 1px rgba(56,189,248,.1)}
.setup-input:disabled{opacity:.45;cursor:not-allowed}

.setup-select{
  width:100%;
  background:var(--panel);
  border:1px solid var(--border);
  color:var(--text);
  border-radius:var(--r);
  padding:9px 32px 9px 12px;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.88rem;
  outline:none;
  cursor:pointer;
  transition:border-color .15s;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%234e6882' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 12px center;
}
.setup-select:focus{border-color:var(--radio)}
.setup-select:disabled{opacity:.45;cursor:not-allowed}

.setup-footer{
  background:var(--panel);
  border-top:1px solid var(--border);
  padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-shrink:0;
  box-shadow:0 -1px 0 var(--border-hi);
}
.setup-hint{font-size:.78rem;color:var(--text-dim);flex:1}

.callsign-input{
  background:var(--card);
  border:1px solid var(--border);
  color:var(--radio);
  border-radius:var(--r);
  padding:8px 12px;
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.95rem;
  width:150px;
  letter-spacing:.08em;
  transition:border-color .15s;
}
.callsign-input:focus{outline:none;border-color:var(--radio)}

label{color:var(--text-dim);font-size:.82rem;font-weight:500}

.plane-type-opts{display:flex;gap:10px;flex-wrap:wrap}
.plane-type-btn{
  background:var(--panel);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:12px 16px;
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:6px;
  color:var(--text-dim);
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.82rem;
  transition:all .15s;
  min-width:88px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.plane-type-btn:hover{border-color:var(--blue);color:var(--text)}
.plane-type-btn.selected{
  border-color:var(--radio);
  background:rgba(56,189,248,.06);
  color:var(--radio);
}
.plane-type-btn.selected svg{filter:drop-shadow(0 0 5px rgba(56,189,248,.3))}

.btn-start{
  background:var(--radio);
  color:#010a02;
  border:none;
  border-radius:var(--r);
  padding:10px 32px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:opacity .18s, box-shadow .18s;
}
.btn-start:not(:disabled):hover{opacity:.88;box-shadow:0 0 18px var(--radio-glow)}
.btn-start:disabled{opacity:.3;cursor:not-allowed}

/* ===== TRAINING SCREEN ===== */
#s-train{padding:0}

.train-topbar{
  background:var(--panel);
  border-bottom:1px solid var(--border);
  padding:8px 18px;
  display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;
  flex-shrink:0;
  box-shadow:0 1px 0 var(--border-hi);
}

.flight-instruments{display:flex;align-items:stretch;gap:7px;min-width:0}

/* Avionics LCD frequency readout */
.freq-display{
  background:linear-gradient(160deg,#010a03,#000);
  border:1px solid rgba(56,189,248,.2);
  border-radius:3px;
  padding:5px 13px;
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:1.2rem;
  color:var(--radio);
  letter-spacing:.14em;
  text-shadow:0 0 7px var(--radio),0 0 22px var(--radio-glow);
  min-width:118px;
  text-align:center;
  position:relative;
  overflow:hidden;
  box-shadow:
    inset 0 0 12px rgba(0,0,0,.88),
    inset 0 1px 0 rgba(56,189,248,.05),
    0 0 14px rgba(56,189,248,.06);
}
/* Scanning sweep */
.freq-display::before{
  content:'';
  position:absolute;top:0;bottom:0;
  width:40%;
  background:linear-gradient(90deg,transparent,rgba(56,189,248,.09) 50%,transparent);
  animation:freq-sweep 6s ease-in-out infinite;
  pointer-events:none;z-index:1;
}
@keyframes freq-sweep{
  0%{transform:translateX(-120%);opacity:0}
  8%{opacity:1}
  92%{opacity:.6}
  100%{transform:translateX(320%);opacity:0}
}
/* Scanlines */
.freq-display::after{
  content:'';
  position:absolute;inset:0;
  background:repeating-linear-gradient(
    0deg,
    rgba(0,0,0,.12) 0px,rgba(0,0,0,.12) 1px,
    transparent 1px, transparent 3px
  );
  pointer-events:none;z-index:2;
}

.altimeter-display{
  min-width:92px;
  padding:4px 10px 3px;
  display:grid;
  grid-template-columns:1fr auto;
  grid-template-rows:auto 1fr;
  align-items:end;
  column-gap:5px;
  background:linear-gradient(160deg,#07111f,#02070d);
  border:1px solid rgba(245,195,19,.38);
  border-radius:3px;
  box-shadow:inset 0 0 12px rgba(0,0,0,.82),0 0 14px rgba(245,195,19,.05);
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  color:var(--amber);
  text-shadow:0 0 7px rgba(245,195,19,.42);
  overflow:hidden;
}
.altimeter-label{
  grid-column:1 / -1;
  align-self:start;
  font-size:.52rem;
  line-height:1;
  color:var(--text-dim);
  letter-spacing:0;
}
.altimeter-display strong{font-size:1.02rem;line-height:1;font-weight:600;white-space:nowrap}
.altimeter-unit{font-size:.55rem;line-height:1.25;color:var(--text-dim)}

.train-info{flex:1;min-width:0}
.train-info .airport-row{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
}
.train-info .airport-name{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:600;font-size:1rem;
  letter-spacing:.04em;text-transform:uppercase;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.train-info .scenario-desc{color:var(--text-dim);font-size:.78rem}

.mode-badge{
  padding:3px 10px;
  border-radius:3px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem;font-weight:700;letter-spacing:.1em;
  flex-shrink:0;
  white-space:nowrap;
}
.mode-g{background:rgba(66,165,245,.1);color:var(--blue);border:1px solid rgba(66,165,245,.2)}
.mode-o{background:rgba(0,230,118,.09);color:var(--green);border:1px solid rgba(0,230,118,.2)}
.mode-s{background:rgba(239,83,80,.1);color:var(--red);border:1px solid rgba(239,83,80,.2)}

.step-indicator{display:flex;align-items:center;gap:7px;white-space:nowrap}
.step-indicator-label{color:var(--text-dim);font-size:.72rem}
.step-dots{display:flex;align-items:center;gap:4px}
.step-dot{width:7px;height:7px;border-radius:50%;transition:all .2s;flex-shrink:0}
.step-dot.done{background:var(--green);opacity:.7}
.step-dot.current{width:9px;height:9px;background:var(--radio);border:2px solid var(--radio);box-shadow:0 0 6px var(--radio-glow);opacity:1}
.step-dot.future{background:var(--border)}

.btn-report,
.btn-exit{
  background:none;
  border:1px solid var(--border);
  color:var(--text-dim);
  border-radius:var(--r);
  padding:5px 12px;
  cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.78rem;
  transition:all .15s;
}
.btn-report:hover{border-color:var(--blue);color:var(--blue)}
.btn-exit:hover{border-color:var(--red);color:var(--red)}
.global-report-btn{
  position:fixed;
  right:18px;
  bottom:calc(env(safe-area-inset-bottom, 0px) + 18px);
  z-index:45;
  background:rgba(13,25,41,.94);
  box-shadow:0 10px 28px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(8px);
}
body[data-active-screen="s-train"] .global-report-btn{display:none}
body[data-active-screen="s-setup"] .global-report-btn{display:none}
.setup-report-btn{margin-left:auto;flex-shrink:0}

@media(max-width:760px){
  .train-topbar{
    grid-template-columns:minmax(0,1fr) auto auto;
    grid-template-rows:auto auto;
    gap:6px 8px;
    padding:6px 10px;
  }
  .flight-instruments{grid-column:1;grid-row:1}
  .freq-display{
    min-width:96px;
    padding:6px 8px;
    font-size:1rem;
    letter-spacing:.11em;
  }
  .train-info{grid-column:1 / -1;grid-row:2}
  .train-info .airport-name{font-size:.9rem;line-height:1.05}
  .train-info .scenario-desc{font-size:.7rem;line-height:1.2}
  .train-topbar .mode-badge{
    padding:2px 7px;
    font-size:.65rem;
  }
  .btn-report,
  .btn-exit{
    grid-row:1;
    justify-self:end;
    padding:4px 8px;
    font-size:.72rem;
    white-space:nowrap;
  }
  .btn-report{grid-column:2}
  .btn-exit{grid-column:3}
}

@media(max-width:640px){
  .global-report-btn{
    right:10px;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 10px);
    padding:7px 10px;
    font-size:.72rem;
  }
}

/* Training body layout */
.train-body{flex:1;display:grid;grid-template-columns:minmax(260px,40%) minmax(0,1fr);min-height:0;min-width:0;overflow:hidden}
.train-body > *{min-width:0}
.train-body.card-visible{grid-template-columns:minmax(280px,34%) minmax(260px,28%) minmax(340px,38%)}
.train-body.card-visible.card-expanded{grid-template-columns:minmax(220px,22%) minmax(320px,50%) minmax(300px,28%)}
.train-body.card-expanded .field-card-box{overflow:hidden;display:flex;flex-direction:column}
.train-body.card-expanded #field-card-content{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.train-body.card-expanded .field-card-head{order:0;flex-shrink:0}
.train-body.card-expanded .field-card-legend{order:1;flex-shrink:0;margin-top:0;margin-bottom:8px}
.train-body.card-expanded .field-steps{order:2;flex-shrink:0;margin-top:0;margin-bottom:6px}
.train-body.card-expanded .field-map-wrap{order:3;flex:1;min-height:0}
.train-body.card-expanded .field-map{aspect-ratio:unset;width:100%;height:100%}
.train-body.card-expanded .field-card-note{display:none}
.train-body.card-expanded .right-panel .text-form{flex-basis:100%;order:2}
.train-body.card-expanded .right-panel .status-text{flex-basis:100%;order:3}
.train-body.card-expanded .right-panel .skip-btn,.train-body.card-expanded .right-panel .step-nav-btn{margin-left:0;order:4}
@media(max-width:1100px){
  .train-body.card-visible{
    grid-template-columns:minmax(0,1fr) minmax(360px,1fr);
    grid-template-rows:minmax(0,1fr) auto;
  }
  .train-body.card-visible .left-panel{grid-column:1;grid-row:1}
  .train-body.card-visible .right-panel{grid-column:2;grid-row:1 / span 2}
  .train-body.card-visible .field-card-box{
    grid-column:1;grid-row:2;
    max-height:42vh;
    border-left:none;
    border-right:1px solid var(--border);
    border-top:1px solid var(--border);
  }
  .train-body.card-visible .avionics-stack{
    grid-template-columns:1fr;
  }
}
@media(max-width:900px){
  .train-body:not(.card-visible){
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    overflow:hidden;
  }
}
@media(max-width:760px){
  /* Override 900px rule for all states */
  .train-body:not(.card-visible){
    grid-template-rows:auto 1fr;
    overflow:hidden;
  }
  .train-body,
  .train-body.card-visible,
  .train-body.card-visible.card-expanded{
    grid-template-columns:1fr;
    grid-template-rows:auto auto 1fr;
    overflow:hidden;
  }
  .train-body.card-visible .left-panel,
  .train-body.card-visible .field-card-box,
  .train-body.card-visible .right-panel{
    grid-column:auto;grid-row:auto;
  }
  /* Left panel: allow internal scroll if guide/tips are long */
  .left-panel{
    overflow-y:auto;
    max-height:28dvh;
    max-height:28vh;
  }
  /* Field card: compact by default, expandable */
  .train-body.card-visible .field-card-box{
    display:flex;
    flex-direction:column;
    min-height:260px;
    max-height:40dvh;
    max-height:40vh;
    overflow:hidden;
    border-top:1px solid var(--border);
    border-left:none;
  }
  .train-body.card-visible #field-card-content{
    flex:1;
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
  }
  .train-body.card-visible .field-card-head,
  .train-body.card-visible .field-card-legend{
    flex-shrink:0;
  }
  .train-body.card-visible .field-card-legend{
    flex-wrap:wrap;
    overflow-x:hidden;
    padding-bottom:2px;
  }
  .train-body.card-visible .field-chip{
    flex-shrink:0;
    padding:3px 7px;
    font-size:.68rem;
    white-space:nowrap;
  }
  .train-body.card-visible .field-steps{display:none}
  .train-body.card-visible .field-map-wrap{
    flex:1;
    min-height:150px;
  }
  .train-body.card-visible .field-map{
    width:100%;
    height:100%;
    aspect-ratio:unset;
  }
  .train-body.card-visible .field-card-note{display:none}
  .right-panel{min-height:0}
  .train-body.card-visible .right-panel{
    border-top:1px solid var(--border);
  }
  .train-body.card-visible .transcript{
    min-height:72px;
    padding:10px 14px;
    border-bottom:1px solid var(--border);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
  }
  .controls-bar{flex-shrink:0}
  .train-body.card-visible.card-expanded .field-card-box{
    max-height:42dvh;
    max-height:42vh;
  }
}
@media(max-width:420px){
  .left-panel{
    max-height:21dvh;
    max-height:21vh;
  }
  .train-body.card-visible .field-card-box{
    min-height:220px;
    max-height:35dvh;
    max-height:35vh;
  }
  .train-body.card-visible .field-card-legend{display:none}
}

/* Left panel */
.left-panel{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}

.situation-box{
  background:var(--card);
  border-bottom:1px solid var(--border);
  padding:14px 16px;
  flex-shrink:0;
  box-shadow:inset 0 1px 0 var(--border-hi);
}
.situation-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.situation-box .lbl{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-dim);margin-bottom:0;
}
.situation-box .step-indicator{align-items:flex-end;padding-top:1px}
.situation-box p{font-size:.88rem;line-height:1.7;color:var(--text)}

/* Template box — left accent bar + glow */
.template-box{
  background:rgba(56,189,248,.04);
  border-bottom:1px solid rgba(56,189,248,.1);
  padding:12px 16px 12px 18px;
  flex-shrink:0;
  position:relative;
}
.template-box::before{
  content:'';
  position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg, transparent 5%, var(--tmpl) 30%, var(--tmpl) 70%, transparent 95%);
  opacity:.4;
}
.template-box .lbl{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--tmpl);margin-bottom:7px;opacity:.65;
}
.template-box .tmpl{
  font-family:'Share Tech Mono',monospace;
  font-size:.87rem;color:var(--tmpl);line-height:1.7;word-break:break-word;
}
.hear-example-btn{
  display:inline-flex;align-items:center;gap:5px;
  margin-top:8px;padding:4px 12px;
  background:transparent;border:1px solid color-mix(in srgb, var(--tmpl) 35%, transparent);
  color:var(--tmpl);font-size:.75rem;border-radius:4px;cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;letter-spacing:.04em;
  transition:background .15s;
}
.hear-example-btn:hover{background:color-mix(in srgb, var(--tmpl) 10%, transparent)}

.guide-box{flex:1 1 0;min-height:0;overflow-y:auto;padding:12px 16px}
.guide-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.guide-box .lbl{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-dim);margin-bottom:8px;
}
.guide-head .lbl{margin-bottom:0}
.guide-more-hint{display:none}
.panel-toggle-btn{
  display:none;
  background:rgba(66,165,245,.08);
  border:1px solid rgba(66,165,245,.24);
  border-radius:4px;
  color:var(--blue);
  cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.68rem;
  font-weight:650;
  line-height:1.1;
  padding:3px 8px;
  white-space:nowrap;
}
.panel-toggle-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.guide-box .guide-text{font-size:.87rem;line-height:1.75;color:var(--text);white-space:pre-line;margin-bottom:12px}
.tips-list{display:flex;flex-direction:column;gap:5px}
.tip-item{background:var(--panel);border-left:2px solid var(--amber);border-radius:0 4px 4px 0;padding:7px 10px;font-size:.82rem;color:var(--blue);line-height:1.5}

/* Field card box */
.field-card-box{
  background:linear-gradient(180deg, rgba(66,165,245,.07), rgba(10,16,26,.95));
  border-left:1px solid var(--border);border-right:1px solid var(--border);
  padding:14px 16px;min-height:0;min-width:0;overflow-y:auto;
}
.field-card-box-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.field-card-box-hdr .lbl{margin-bottom:0}
.field-card-box .lbl{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--blue);margin-bottom:10px;opacity:.8;
}
.card-size-btn{background:none;border:1px solid rgba(66,165,245,.2);border-radius:4px;color:rgba(66,165,245,.5);font-size:.82rem;line-height:1;padding:2px 6px;cursor:pointer;transition:all .15s}
.card-size-btn:hover{border-color:rgba(66,165,245,.5);color:var(--blue)}
.field-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.field-card-title{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1rem;font-weight:600;letter-spacing:.03em;color:var(--text);
}
.field-card-meta{font-size:.77rem;color:var(--text-dim);line-height:1.5}
.field-card-tools{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.field-card-badge{background:rgba(66,165,245,.1);border:1px solid rgba(66,165,245,.24);border-radius:999px;padding:3px 10px;font-size:.7rem;color:var(--blue);white-space:nowrap}
.field-style-switch{display:flex;gap:3px;flex-wrap:wrap;justify-content:flex-end}
.field-style-btn{
  -webkit-appearance:none;appearance:none;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:24px;padding:3px 9px;
  border-radius:4px;
  border:1px solid rgba(66,165,245,.32);
  background:rgba(66,165,245,.07);
  color:var(--text-dim);
  font-family:'DM Sans',system-ui,sans-serif;
  font-size:.7rem;line-height:1.1;
  cursor:pointer;transition:all .12s;
  box-shadow:0 1px 3px rgba(0,0,0,.35);
}
.field-style-btn:hover{background:rgba(66,165,245,.14);border-color:rgba(66,165,245,.6);color:var(--text)}
.field-style-btn:active{transform:translateY(1px);box-shadow:none}
.field-style-btn.selected{background:rgba(56,189,248,.13);border-color:rgba(56,189,248,.5);color:var(--radio);font-weight:600;box-shadow:inset 0 1px 0 rgba(56,189,248,.12),0 1px 2px rgba(0,0,0,.3)}
.field-style-btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.field-map-wrap{background:rgba(6,10,18,.5);border:1px solid var(--border);border-radius:8px;padding:8px;position:relative}
.field-map-wrap--photo{padding:3px;background:rgba(6,10,18,.7)}
.field-map-wrap--photo .field-map{background:none}
.field-map-wrap--osm{padding:0;overflow:hidden;aspect-ratio:4/3}
.field-map-wrap--osm .field-osm-map-bg{position:absolute;inset:0;z-index:0;border-radius:8px}
.field-map-wrap--osm .field-osm-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.field-map-wrap--osm .field-map-zoom{display:none}
.field-map-wrap--osm .leaflet-control-attribution{font-size:8px!important;opacity:.55;background:rgba(0,0,0,.5)!important;color:#ccc!important;padding:1px 4px;border-radius:3px 0 0 0}
.field-map-wrap--osm .leaflet-control-attribution a{color:#aac}
.card-expand-btn{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:rgba(10,16,26,.85);border:1px solid rgba(66,165,245,.3);border-radius:4px;color:rgba(66,165,245,.65);cursor:pointer;transition:all .15s;z-index:2}
.card-expand-btn:hover{background:rgba(66,165,245,.1);border-color:var(--blue);color:var(--blue)}
.field-map-zoom{position:absolute;top:12px;right:40px;display:flex;align-items:center;gap:4px;z-index:2;background:rgba(10,16,26,.85);border:1px solid rgba(66,165,245,.24);border-radius:4px;padding:2px}
.field-map-zoom button{height:18px;min-width:22px;border:0;border-radius:3px;background:transparent;color:rgba(210,230,255,.78);font-size:.68rem;line-height:1;cursor:pointer}
.field-map-zoom button:hover{background:rgba(66,165,245,.14);color:var(--blue)}
.field-map-zoom span{min-width:28px;text-align:center;font-family:'Share Tech Mono',monospace;font-size:.66rem;color:var(--text-dim)}
.field-map{
  width:100%;aspect-ratio:4/3;display:block;border-radius:6px;
  background:
    radial-gradient(circle at 18% 16%, rgba(255,255,255,.05), transparent 36%),
    linear-gradient(180deg, rgba(36,70,33,.55), rgba(20,40,23,.75));
}
.field-card-legend{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.field-chip{background:rgba(10,16,26,.85);border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:.72rem;color:var(--text-dim)}
.wind-chip{border-color:rgba(66,165,245,.3);color:rgba(66,165,245,.88)}
.active-rwy-chip{border-color:rgba(251,191,36,.3);color:rgba(251,191,36,.9)}

/* Plane animations — unchanged */
.field-plane{filter:drop-shadow(0 1px 1px rgba(0,0,0,.22))}
.field-plane-prop-wrap{transform-box:fill-box;transform-origin:center}
.field-plane-prop{transform-box:fill-box;transform-origin:center}
.field-plane-prop-static{opacity:.9}
.field-plane-prop-motion{opacity:0;transform-box:fill-box;transform-origin:center;filter:blur(.18px)}
.field-plane-prop-blur-main{opacity:.85}
.field-plane-prop-blur-ghost{opacity:.55}
.field-plane.is-moving .field-plane-prop-static,
.field-traffic-plane.is-moving .field-plane-prop-static{opacity:.08}
.field-plane.is-moving .field-plane-prop-motion,
.field-traffic-plane.is-moving .field-plane-prop-motion{animation:plane-prop-shimmer .12s ease-in-out infinite alternate;opacity:.96}
.field-traffic-plane{filter:drop-shadow(0 1px 1px rgba(0,0,0,.22))}
@keyframes plane-prop-shimmer{
  0%{transform:scaleX(.86);opacity:.58}
  50%{transform:scaleX(1.04);opacity:.92}
  100%{transform:scaleX(.92);opacity:.72}
}

.field-card-note{margin-top:8px;font-size:.75rem;color:var(--text-dim);line-height:1.55}
.field-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:8px}
.field-step{background:rgba(10,16,26,.7);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:.73rem;color:var(--text-dim)}
.field-step strong{
  display:block;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--blue);margin-bottom:2px;
}

/* Right panel */
.right-panel{display:flex;flex-direction:column;min-height:0;min-width:0;background:rgba(5,8,14,.96)}

.transcript{
  flex:1;
  overflow-y:auto;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:rgba(5,8,14,.92);
  position:relative;
}
.transcript:empty::before{
  content:'Dialog';
  color:var(--text-dim);
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  opacity:.65;
}

.msg{max-width:92%;border-radius:var(--r);padding:10px 13px;font-size:.88rem;line-height:1.6;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

.msg-atc{
  background:var(--card);
  border:1px solid var(--border);
  border-top-color:var(--border-hi);
  align-self:flex-start;
  box-shadow:0 1px 4px rgba(0,0,0,.2);
}
.msg-atc .sender{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;color:var(--text-dim);margin-bottom:3px;
  text-transform:uppercase;letter-spacing:.08em;
}
.msg-pilot{
  background:rgba(56,189,248,.07);
  border:1px solid rgba(56,189,248,.18);
  align-self:flex-end;text-align:right;
}
.msg-pilot .sender{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.7rem;color:var(--radio);margin-bottom:3px;
  opacity:.65;text-transform:uppercase;letter-spacing:.08em;
}
.msg-system{background:transparent;border:none;align-self:center;color:var(--text-dim);font-size:.8rem;font-style:italic}

.msg-feedback{background:var(--panel);border:1px solid var(--border);align-self:stretch;border-radius:var(--r)}
.feedback-header{padding:9px 13px 0;font-size:.78rem;font-weight:600;display:flex;align-items:center;gap:7px}
.feedback-body{padding:7px 13px 11px;font-size:.84rem;line-height:1.65;color:var(--text)}
.score-bar{height:3px;border-radius:2px;margin:8px 13px 0;background:var(--border)}
.score-fill{height:100%;border-radius:2px;transition:width .45s ease}
.score-label{padding:4px 13px 9px;font-size:.76rem;color:var(--text-dim)}
.miss-list{margin-top:7px;display:flex;flex-direction:column;gap:3px}
.miss-item{font-size:.82rem;color:var(--amber);display:flex;align-items:baseline;gap:5px}
.miss-item::before{content:"▲";font-size:.62rem;flex-shrink:0}
.warn-item{font-size:.82rem;color:var(--red)}
.ok-item{font-size:.82rem;color:var(--green)}
.try-again-hint{font-size:.78rem;color:var(--text-dim);padding:0 13px 10px}

/* Avionics */
.avionics-stack{
  flex-shrink:0;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:8px;
  padding:9px 12px;
  border-top:1px solid var(--border);
  background:rgba(3,7,12,.96);
}
.avionics-panel{
  min-width:0;
  border:1px solid rgba(148,163,184,.22);
  border-radius:6px;
  background:linear-gradient(180deg, rgba(15,23,42,.88), rgba(4,8,14,.94));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  padding:7px;
}
.avionics-panel--focusable{cursor:zoom-in}
.avionics-panel--focusable:focus-visible{
  outline:2px solid rgba(56,189,248,.7);
  outline-offset:2px;
}
.avionics-panel--focused{
  border-color:rgba(56,189,248,.72);
  box-shadow:0 0 0 1px rgba(56,189,248,.16), 0 0 18px rgba(56,189,248,.12), inset 0 1px 0 rgba(255,255,255,.05);
  cursor:zoom-out;
}
.avionics-panel--warn{
  border-color:rgba(245,158,11,.66);
  box-shadow:0 0 0 1px rgba(245,158,11,.08), inset 0 1px 0 rgba(255,255,255,.04);
}
.avionics-head{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  min-height:18px;margin-bottom:5px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);
}
.avionics-head code{
  font-family:'Share Tech Mono','JetBrains Mono',monospace;
  font-size:.7rem;color:var(--amber);
  letter-spacing:.04em;white-space:nowrap;
}
.radio-digits,.xpdr-digits,.altimeter-digits{
  display:flex;align-items:center;gap:3px;
}
.radio-digits::after{
  content:'MHz';
  margin-left:5px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.1em;color:var(--text-dim);
}
.avionics-digit{
  width:28px;
  display:grid;
  grid-template-rows:18px 30px 18px;
  align-items:center;
  justify-items:center;
}
.radio-digits .avionics-digit:nth-child(3){margin-right:9px;position:relative}
.radio-digits .avionics-digit:nth-child(3)::after{
  content:'.';
  position:absolute;right:-7px;top:25px;
  color:var(--radio);font-size:1.1rem;font-family:'Share Tech Mono',monospace;
}
.avionics-digit span{
  width:100%;height:30px;
  display:grid;place-items:center;
  border:1px solid rgba(56,189,248,.22);
  border-radius:4px;
  background:#020617;
  color:var(--radio);
  font-family:'Share Tech Mono','JetBrains Mono',monospace;
  font-size:1.12rem;
  text-shadow:0 0 8px var(--radio-glow);
}
.avionics-step{
  width:24px;height:17px;padding:0;
  display:grid;place-items:center;
  border:1px solid rgba(148,163,184,.22);
  border-radius:3px;
  background:rgba(15,23,42,.9);
  color:var(--text-dim);
  font-size:.54rem;line-height:1;
  cursor:pointer;
}
.avionics-step:hover{border-color:rgba(56,189,248,.5);color:var(--radio)}
.xpdr-row{display:flex;align-items:flex-end;gap:7px;min-width:0}
.xpdr-digits .avionics-digit span{color:var(--green);border-color:rgba(0,230,118,.25);text-shadow:0 0 8px rgba(0,230,118,.18)}
.altimeter-row{display:flex;align-items:flex-end;gap:7px;min-width:0}
.altimeter-panel{grid-column:1 / -1}
.altimeter-digits .avionics-digit span{color:var(--amber);border-color:rgba(245,158,11,.28);text-shadow:0 0 8px rgba(245,158,11,.18)}
.altimeter-unit{
  height:30px;
  display:grid;place-items:center;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.1em;color:var(--text-dim);
  text-transform:uppercase;
}
.ident-btn{
  height:30px;min-width:54px;padding:0 9px;
  border:1px solid rgba(245,158,11,.42);
  border-radius:5px;
  background:rgba(245,158,11,.1);
  color:var(--amber);
  font-family:'Barlow Condensed',sans-serif;
  font-size:.78rem;font-weight:700;letter-spacing:.1em;
  cursor:pointer;
}
.ident-btn:hover{border-color:var(--amber);background:rgba(245,158,11,.16)}
.ident-lamp{
  width:50px;height:30px;
  display:grid;place-items:center;
  border:1px solid rgba(148,163,184,.18);
  border-radius:5px;
  color:transparent;
  font-family:'Share Tech Mono','JetBrains Mono',monospace;
  font-size:.68rem;font-weight:700;
}
.xpdr-panel.ident-active .ident-lamp{
  color:#052e16;
  border-color:rgba(34,197,94,.8);
  background:#22c55e;
  box-shadow:0 0 18px rgba(34,197,94,.28);
  animation:ident-blink 1s steps(2,end) infinite;
}
@keyframes ident-blink{50%{opacity:.45}}
.avionics-status{
  grid-column:1 / -1;
  min-height:14px;
  font-size:.74rem;color:var(--amber);
  line-height:1.2;
}
.avionics-status:empty{display:none}

/* Controls bar */
.controls-bar{
  background:var(--panel);
  border-top:1px solid var(--border);
  padding:11px 15px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  flex-shrink:0;
  box-shadow:0 -1px 0 var(--border-hi);
}

/* PTT — the primary radio control */
.ptt-btn[hidden]{display:none!important}
.ptt-btn{
  background:linear-gradient(160deg, var(--card), rgba(8,14,22,.95));
  border:2px solid var(--border);
  color:var(--text);
  border-radius:50px;
  padding:11px 22px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:1rem;font-weight:600;letter-spacing:.08em;
  cursor:pointer;
  transition:all .13s;
  display:flex;align-items:center;gap:9px;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 2px 8px rgba(0,0,0,.3), 0 0 0 1px rgba(56,189,248,.04);
}
.ptt-btn:hover{border-color:var(--green);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 2px 12px rgba(0,0,0,.4),0 0 16px rgba(56,189,248,.06)}
.ptt-btn:disabled,
.send-btn:disabled{
  opacity:.45;
  cursor:not-allowed;
  box-shadow:none;
}
.ptt-btn:disabled:hover{border-color:var(--border)}
.ptt-btn.listening{
  background:linear-gradient(160deg, rgba(239,83,80,.16), rgba(239,83,80,.08));
  border-color:var(--red);color:var(--red);
  animation:ptt-pulse 1s ease infinite;
}
@keyframes ptt-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(239,83,80,.4)}
  50%{box-shadow:0 0 0 8px rgba(239,83,80,0)}
}
.ptt-btn .dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim);flex-shrink:0;transition:background .15s}
.ptt-btn.listening .dot{background:var(--red);animation:blink .65s ease infinite}
.ptt-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:34px;height:22px;padding:0 7px;
  border:1px solid rgba(0,230,118,.38);
  border-radius:4px;
  background:rgba(0,230,118,.1);
  color:var(--green);
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.72rem;font-weight:800;letter-spacing:.08em;
}
.ptt-label{line-height:1}
.ptt-btn.listening .ptt-badge{
  border-color:rgba(239,83,80,.45);
  background:rgba(239,83,80,.12);
  color:var(--red);
}
.ptt-btn *{pointer-events:none}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.2}}

.text-form{flex:1 1 240px;display:flex;gap:7px;min-width:0}
.text-input{
  flex:1;min-width:0;
  background:var(--card);border:1px solid var(--border);
  color:var(--text);border-radius:var(--r);
  padding:8px 12px;
  font-family:'DM Sans',system-ui,sans-serif;font-size:.88rem;
  outline:none;transition:border-color .15s;
}
.text-input:focus{border-color:var(--radio)}
.text-input::placeholder{color:var(--text-dim)}

.send-btn{
  background:var(--radio);color:#010a02;
  border:none;border-radius:var(--r);
  padding:8px 18px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.9rem;font-weight:700;letter-spacing:.06em;
  cursor:pointer;flex-shrink:0;
  transition:opacity .15s;
}
.send-btn:hover{opacity:.85}

.status-text{font-size:.78rem;color:var(--text-dim);white-space:normal;flex:1 1 150px;min-width:0}
.status-text:empty{display:none}

.skip-btn,.step-nav-btn{
  background:none;border:1px solid var(--border);color:var(--text-dim);
  border-radius:var(--r);padding:5px 12px;cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;font-size:.78rem;
  transition:all .15s;
}
.skip-btn{margin-left:0}
.step-nav-btn{margin-left:auto}
.skip-btn:hover,.step-nav-btn:hover{border-color:var(--text-dim);color:var(--text)}
.step-nav-btn:disabled{opacity:.3;cursor:default;pointer-events:none}

.controls-row2{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-left:auto}
.controls-row2 .step-nav-btn{margin-left:0}
.controls-row2 .skip-btn,.controls-row2 .step-nav-btn{white-space:nowrap}

/* ===== RESULTS SCREEN ===== */
#s-results{align-items:center;padding:32px;gap:0;overflow-y:auto}

.results-card{
  margin-block:auto;
  background:var(--card);border:1px solid var(--border);
  border-radius:var(--r);padding:32px;
  max-width:580px;width:100%;text-align:center;
  box-shadow:var(--card-shadow),0 8px 40px rgba(0,0,0,.4);
}

.grade-circle{
  width:88px;height:88px;border-radius:50%;border:3px solid;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  margin:0 auto 18px;
}
.grade-letter{
  font-family:'Barlow Condensed',sans-serif;
  font-size:2.4rem;font-weight:700;line-height:1;
}
.grade-sub{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.1em;color:var(--text-dim);
}

.results-card h2{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.4rem;font-weight:600;letter-spacing:.04em;margin-bottom:6px;
}
.results-card .pct{font-size:.95rem;color:var(--text-dim);margin-bottom:10px}
#result-mode{margin-bottom:18px}

.breakdown{text-align:left;background:var(--panel);border-radius:var(--r);padding:14px;margin-bottom:20px;border:1px solid var(--border)}
.breakdown h3{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-dim);margin-bottom:10px;
}
.bdrow{display:flex;align-items:center;gap:9px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.86rem}
.bdrow:last-child{border-bottom:none}
.bdrow .step-name{flex:1;color:var(--text-dim)}
.bdrow .step-score{font-family:'Share Tech Mono',monospace;font-weight:600}
.bdrow .mini-bar{flex:2;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.bdrow .mini-fill{height:100%;border-radius:2px}

.weak-areas{
  text-align:left;
  background:linear-gradient(180deg, rgba(255,179,0,.08), rgba(10,16,26,.92));
  border:1px solid rgba(255,179,0,.22);
  border-radius:var(--r);
  padding:14px;
  margin-bottom:14px;
}
.weak-areas h3{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  color:var(--amber);
  margin-bottom:10px;
}
.weak-areas--empty{
  background:rgba(0,230,118,.055);
  border-color:rgba(0,230,118,.18);
}
.weak-areas--empty h3{color:var(--green)}
.weak-areas p{color:var(--text-dim);font-size:.84rem}
.weak-area-list{display:grid;gap:8px}
.weak-area{
  background:rgba(8,14,22,.72);
  border:1px solid rgba(255,255,255,.06);
  border-radius:var(--r);
  padding:9px 10px;
}
.weak-area-main{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.weak-area-main strong{font-size:.9rem;color:var(--text)}
.weak-area-main span{font-family:'Share Tech Mono',monospace;font-size:.75rem;color:var(--amber);white-space:nowrap}
.weak-area-hint{margin-top:2px;color:var(--text-dim);font-size:.78rem;line-height:1.45;font-style:italic}
.weak-area-examples{margin-top:3px;color:var(--text-dim);font-size:.78rem;line-height:1.45}
.weak-area-drill-btn{
  background:transparent;border:1px solid rgba(56,189,248,.25);color:var(--radio);
  font-size:.72rem;padding:2px 8px;border-radius:4px;cursor:pointer;white-space:nowrap;
  font-family:'DM Sans',system-ui,sans-serif;transition:background .15s;
}
.weak-area-drill-btn:hover{background:rgba(56,189,248,.08)}
.weak-area-drill-all-btn{
  display:block;width:100%;margin-top:10px;padding:8px 16px;
  background:transparent;border:1px solid rgba(56,189,248,.3);
  color:var(--radio);font-size:.82rem;border-radius:5px;cursor:pointer;
  font-family:'Barlow Condensed',sans-serif;letter-spacing:.06em;
  transition:background .15s,border-color .15s;
}
.weak-area-drill-all-btn:hover{background:rgba(56,189,248,.08);border-color:var(--radio)}

.results-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.rbtn{
  border-radius:var(--r);padding:10px 24px;cursor:pointer;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.95rem;font-weight:600;letter-spacing:.05em;
  transition:all .18s;
}
.rbtn-primary{background:var(--radio);color:#010a02;border:none}
.rbtn-primary:hover{opacity:.88;box-shadow:0 0 16px var(--radio-glow)}
.rbtn-sec{background:none;border:1px solid var(--border);color:var(--text)}
.rbtn-sec:hover{border-color:var(--text-dim)}

/* ===== EMERGENCY PHASE BUTTON ===== */
.opt-btn--emerg{border-color:color-mix(in srgb, var(--red) 40%, var(--border))!important}
.opt-btn--emerg:hover,.opt-btn--emerg.selected{background:color-mix(in srgb, var(--red) 18%, var(--card))!important;border-color:var(--red)!important;color:var(--red)!important}

/* ===== HISTORY SECTION ===== */
.history-section{text-align:left;background:var(--panel);border-radius:var(--r);padding:14px;margin-top:20px;border:1px solid var(--border)}
.history-section h3{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-dim);margin-bottom:10px;
}
.hist-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:.8rem}
.hist-row:last-child{border-bottom:none}
.hist-date{width:34px;color:var(--text-dim);flex-shrink:0;font-family:'Share Tech Mono',monospace;font-size:.75rem}
.hist-label{flex:2;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-airport{flex:1;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-grade{width:20px;font-family:'Barlow Condensed',sans-serif;font-weight:700;text-align:center;flex-shrink:0}
.hist-bar{flex:1;height:4px;background:var(--border);border-radius:2px;overflow:hidden}
.hist-fill{height:100%;border-radius:2px;transition:width .3s}
.hist-trend{
  display:flex;align-items:center;gap:10px;
  padding:6px 0 8px;margin-bottom:4px;border-bottom:1px solid var(--border);
}
.sparkline{display:block;flex-shrink:0}
.hist-trend-label{
  font-size:.74rem;font-family:'DM Sans',system-ui,sans-serif;
  font-weight:600;letter-spacing:.04em;
}

/* ===== MISC ===== */
.hidden{display:none!important}
::-webkit-scrollbar{width:4px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}
@media(max-width:640px){
  #s-menu{padding:28px 20px}
  .left-panel{display:flex;flex-direction:column;overflow-y:auto}
  .guide-box{min-height:auto;overflow:visible}
  .field-card-box{min-height:auto}
  .field-card-box{border-left:none;border-right:none;border-top:1px solid var(--border)}
  .train-body.card-visible .field-card-box{overflow:hidden}
  .avionics-stack{grid-template-columns:1fr;padding:7px 10px;gap:6px}
  .avionics-panel{padding:6px}
  .avionics-digit{width:25px;grid-template-rows:16px 27px 16px}
  .avionics-digit span{height:27px;font-size:1rem}
  .avionics-step{width:22px;height:15px}
  .ident-btn,.ident-lamp,.altimeter-unit{height:27px}
  .controls-bar{display:grid;grid-template-columns:1fr 64px;grid-template-rows:auto auto;gap:6px 8px;padding:9px 15px;align-items:start}
  #s-train .ptt-btn{grid-column:2;grid-row:1/span 2;flex:unset;width:100%;align-self:stretch;flex-direction:column;justify-content:center;align-items:center;padding:10px 4px;gap:8px;font-size:.9rem}
  .ptt-btn .ptt-label{display:none}
  .text-form{grid-column:1;grid-row:1;flex-basis:auto;order:unset}
  .controls-row2{grid-column:1;grid-row:2;margin-left:0;flex-wrap:nowrap}
  .speech-check-panel,
  .voice-quality-panel{align-items:stretch;flex-direction:column}
  .speech-check-btn{width:100%}
  .menu-header h1{
    max-width:100%;
    font-size:1.95rem;
    letter-spacing:.045em;
    line-height:1.06;
    overflow-wrap:normal;
  }
  .airspace-grid{gap:12px}
  .air-card{padding:22px 16px 20px}
  .menu-features{padding:4px 4px;gap:2px}
  .menu-feature{font-size:.66rem;padding:2px 8px}
  .menu-feature+.menu-feature{border-left:none}
}

/* ===== TRAINING: PHONE LAYOUT REFINEMENT ===== */
@media(max-width:760px){
  #s-train .train-topbar{
    padding:5px 8px;
    gap:3px 8px;
  }
  #s-train .freq-display{
    min-width:88px;
    padding:4px 7px;
    font-size:.94rem;
    letter-spacing:.1em;
  }
  #s-train .altimeter-display{
    min-width:74px;
    padding:3px 7px;
  }
  #s-train .altimeter-display strong{font-size:.82rem}
  #s-train .train-info .airport-name{
    font-size:.84rem;
    line-height:1;
  }
  #s-train .train-info .scenario-desc{
    font-size:.68rem;
    line-height:1.15;
  }
  #s-train .train-topbar .mode-badge{
    padding:2px 7px;
    font-size:.62rem;
  }
  #s-train .btn-exit{
    padding:3px 8px;
    font-size:.7rem;
  }

  #s-train .train-body,
  #s-train .train-body.card-visible,
  #s-train .train-body.card-visible.card-expanded{
    grid-template-rows:auto auto minmax(0,1fr);
  }
  #s-train .left-panel{
    max-height:34dvh;
    max-height:34vh;
    overflow:auto;
    border-right:none;
  }
  #s-train .left-panel:has(.situation-box--expanded),
  #s-train .left-panel:has(.guide-box--expanded){
    max-height:38dvh;
    max-height:38vh;
  }
  #s-train .situation-box{
    flex:0 0 auto;
    min-height:74px;
    max-height:74px;
    overflow:hidden;
    padding:8px 12px 7px;
  }
  #s-train .situation-head{
    display:grid;
    grid-template-columns:minmax(58px,1fr) auto minmax(64px,1fr);
    align-items:center;
    gap:8px;
    margin-bottom:3px;
  }
  #s-train .situation-head .lbl{
    justify-self:start;
  }
  #s-train .situation-box .step-indicator{
    justify-self:center;
    transform:scale(.88);
    transform-origin:center;
    flex-direction:row;
    gap:5px;
  }
  #s-train .situation-toggle-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    justify-self:end;
  }
  #s-train .situation-box p{
    display:block;
    max-height:2.95em;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    font-size:.82rem;
    line-height:1.45;
  }
  #s-train .situation-box.situation-box--expanded{
    min-height:0;
    max-height:none;
    overflow:visible;
  }
  #s-train .situation-box.situation-box--expanded p{
    max-height:none;
    overflow:visible;
  }
  #s-train .template-box{
    padding:8px 12px 9px 14px;
  }
  #s-train .template-box .lbl{
    margin-bottom:4px;
    font-size:.66rem;
  }
  #s-train .template-box .tmpl{
    font-size:.82rem;
    line-height:1.45;
    max-height:none;
    overflow:visible;
  }
  #s-train .hear-example-btn{
    margin-top:6px;
    padding:3px 10px;
    font-size:.72rem;
  }
  #s-train .guide-box{
    flex:0 0 auto;
    min-height:50px;
    max-height:50px;
    overflow:hidden;
    padding:6px 12px 7px;
    position:relative;
  }
  #s-train .guide-head{
    margin-bottom:2px;
  }
  #s-train .guide-more-hint{
    align-items:center;
    justify-content:center;
    position:absolute;
    right:12px;
    bottom:8px;
    z-index:1;
    padding:2px 7px;
    border:1px solid rgba(245,158,11,.24);
    border-radius:999px;
    background:rgba(245,158,11,.08);
    color:var(--amber);
    font-family:'DM Sans',system-ui,sans-serif;
    font-size:.62rem;
    font-weight:700;
    line-height:1.15;
    white-space:nowrap;
    cursor:pointer;
  }
  #s-train .guide-more-hint:hover{
    background:rgba(245,158,11,.14);
    border-color:rgba(245,158,11,.42);
  }
  #s-train .guide-more-hint:focus-visible{
    outline:2px solid var(--amber);
    outline-offset:2px;
  }
  #s-train .guide-box.guide-box--expanded.guide-box--has-tips .guide-more-hint{
    display:inline-flex;
  }
  #s-train .guide-box .lbl{
    font-size:.64rem;
  }
  #s-train .guide-toggle-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }
  #s-train .guide-box .guide-text{
    margin-bottom:0;
    font-size:.78rem;
    line-height:1.35;
    display:block;
    max-height:1.35em;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }
  #s-train .tips-list{
    display:none;
  }
  #s-train #t-tips-label{
    display:none!important;
  }
  #s-train .guide-box.guide-box--expanded{
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:visible;
  }
  #s-train .guide-box.guide-box--expanded.guide-box--has-tips{
    padding-bottom:30px;
  }
  #s-train .guide-box.guide-box--expanded .guide-text{
    display:block;
    -webkit-line-clamp:unset;
    max-height:none;
    overflow:visible;
    margin-bottom:8px;
  }
  #s-train .guide-box.guide-box--expanded .tips-list{
    display:flex;
  }
  #s-train .guide-box.guide-box--expanded #t-tips-label{
    display:block!important;
  }

  #s-train .train-body.card-visible .field-card-box{
    min-height:300px;
    max-height:40dvh;
    max-height:40vh;
    padding:7px 8px 8px;
  }
  #s-train .field-card-box .lbl{
    margin-bottom:4px;
    font-size:.64rem;
  }
  #s-train .train-body.card-visible #field-card-content{
    gap:0;
  }
  #s-train .train-body.card-visible .field-card-head{
    order:0;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:4px 8px;
    margin-bottom:5px;
  }
  #s-train .field-card-title{
    font-size:.92rem;
    line-height:1.05;
  }
  #s-train .field-card-tools{
    align-items:flex-end;
    gap:4px;
  }
  #s-train .field-card-badge{
    padding:2px 7px;
    font-size:.64rem;
  }
  #s-train .field-style-switch{
    gap:3px;
  }
  #s-train .field-style-btn{
    min-height:21px;
    padding:2px 6px;
    font-size:.64rem;
  }
  #s-train .train-body.card-visible .field-card-legend{
    order:1;
    display:flex;
    flex-wrap:wrap;
    overflow-x:hidden;
    gap:4px;
    margin:0 0 5px;
    padding-bottom:2px;
  }
  #s-train .train-body.card-visible .field-chip{
    flex-shrink:0;
    padding:3px 7px;
    font-size:.66rem;
  }
  #s-train .train-body.card-visible .field-map-wrap{
    order:2;
    flex:1;
    min-height:210px;
    padding:3px;
    overflow:hidden;
    border-radius:6px;
  }
  #s-train .train-body.card-visible .field-map{
    width:100%;
    height:100%;
    aspect-ratio:unset;
    transform:scale(1.1);
    transform-origin:center;
  }
  #s-train .field-map-zoom{
    top:6px;
    right:32px;
    transform:scale(.92);
    transform-origin:top right;
  }
  #s-train .card-expand-btn{
    top:6px;
    right:6px;
  }
  #s-train .train-body.card-visible .field-steps,
  #s-train .train-body.card-visible .field-card-note{
    display:none;
  }

  #s-train .controls-bar{
    position:relative;
    padding:7px 12px calc(7px + env(safe-area-inset-bottom, 0px));
    gap:7px;
  }
  #s-train .ptt-btn{
    padding:8px 4px;
  }
  #s-train .text-input{
    padding:7px 11px;
  }
  #s-train .send-btn{
    padding:7px 16px;
  }
  #s-train .skip-btn,
  #s-train .step-nav-btn{
    padding:4px 10px;
  }
  #s-train .status-text{
    position:fixed;
    left:12px;
    right:12px;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 92px);
    z-index:30;
    flex:unset;
    min-width:0;
    max-height:4.6em;
    overflow:auto;
    padding:9px 12px;
    border-radius:6px;
    border:1px solid rgba(96,165,250,.3);
    background:rgba(10,16,26,.94);
    color:var(--text);
    box-shadow:0 10px 28px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06);
    text-align:center;
    pointer-events:none;
  }
  #s-train .status-text[data-level="ok"]{
    border-color:rgba(74,222,128,.34);
    background:rgba(5,32,20,.94);
    color:rgba(210,255,226,.94);
  }
  #s-train .status-text[data-level="warn"]{
    border-color:rgba(248,113,113,.38);
    background:rgba(86,16,26,.94);
    color:rgba(255,225,229,.94);
  }
  #s-train .status-text:empty{
    display:none;
  }
}

@media(max-width:420px){
  #s-train .left-panel{
    max-height:31dvh;
    max-height:31vh;
  }
  #s-train .train-body.card-visible .field-card-box{
    min-height:292px;
    max-height:40dvh;
    max-height:40vh;
  }
  #s-train .train-body.card-visible .field-card-legend{
    display:flex;
  }
  #s-train .train-body.card-visible .field-map-wrap{
    min-height:205px;
  }
  #s-train .train-body.card-visible .field-map{
    transform:scale(1.13);
  }
  #s-train .avionics-stack{
    grid-template-columns:minmax(0,1.35fr) minmax(0,.9fr) minmax(0,.9fr);
    gap:3px;
    padding:3px 6px;
  }
  #s-train .altimeter-panel{grid-column:auto}
  #s-train .avionics-panel{padding:3px}
  #s-train .avionics-head{min-height:11px;margin-bottom:1px;font-size:.52rem}
  #s-train .avionics-head code{font-size:.5rem}
  #s-train .avionics-digit{
    width:16px;
    grid-template-rows:9px 18px 9px;
  }
  #s-train .avionics-digit span{
    height:18px;
    font-size:.72rem;
  }
  #s-train .avionics-step{
    width:15px;
    height:9px;
    font-size:.38rem;
  }
  #s-train .radio-digits::after{
    display:none;
  }
  #s-train .radio-digits .avionics-digit:nth-child(3){margin-right:4px}
  #s-train .radio-digits .avionics-digit:nth-child(3)::after{
    right:-4px;
    top:15px;
    font-size:.76rem;
  }
  #s-train .xpdr-row{gap:4px}
  #s-train .altimeter-row{gap:4px}
  #s-train .ident-btn{
    display:none;
  }
  #s-train .altimeter-unit{
    display:none;
  }
  #s-train .ident-lamp{display:none}
  #s-train .avionics-status{font-size:.58rem;min-height:8px}
  #s-train .avionics-stack--focused{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }
  #s-train .avionics-stack--focused .avionics-panel--focused{
    grid-column:1 / -1;
    padding:7px 8px;
  }
  #s-train .avionics-stack--focused .avionics-panel--focused .avionics-head{
    min-height:16px;
    margin-bottom:4px;
    font-size:.68rem;
  }
  #s-train .avionics-stack--focused .avionics-panel--focused .avionics-head code{
    font-size:.66rem;
  }
  #s-train .avionics-stack--focused .avionics-panel--focused .avionics-digit{
    width:28px;
    grid-template-rows:16px 32px 16px;
  }
  #s-train .avionics-stack--focused .avionics-panel--focused .avionics-digit span{
    height:32px;
    font-size:1.12rem;
  }
  #s-train .avionics-stack--focused .avionics-panel--focused .avionics-step{
    width:26px;
    height:16px;
    font-size:.56rem;
  }
  #s-train .avionics-stack--focused .radio-panel.avionics-panel--focused .radio-digits::after{
    display:inline;
    margin-left:5px;
    font-size:.62rem;
  }
  #s-train .avionics-stack--focused .radio-panel.avionics-panel--focused .radio-digits .avionics-digit:nth-child(3){
    margin-right:8px;
  }
  #s-train .avionics-stack--focused .radio-panel.avionics-panel--focused .radio-digits .avionics-digit:nth-child(3)::after{
    right:-7px;
    top:25px;
    font-size:1rem;
  }
  #s-train .avionics-stack--focused .xpdr-panel.avionics-panel--focused .xpdr-row{
    gap:8px;
  }
  #s-train .avionics-stack--focused .xpdr-panel.avionics-panel--focused .ident-btn{
    display:grid;
    height:32px;
    min-width:50px;
    font-size:.72rem;
  }
}

@media(max-width:760px) and (max-height:820px){
  #s-train .train-topbar{
    padding:4px 7px;
    gap:5px 7px;
  }
  #s-train .freq-display{
    min-width:82px;
    padding:3px 6px;
    font-size:.86rem;
  }
  #s-train .left-panel{
    max-height:30dvh;
    max-height:30vh;
  }
  #s-train .left-panel:has(.situation-box--expanded),
  #s-train .left-panel:has(.guide-box--expanded){
    max-height:38dvh;
    max-height:38vh;
  }
  #s-train .situation-box{
    min-height:70px;
    max-height:70px;
    padding:6px 10px;
  }
  #s-train .situation-box p{
    max-height:3.2em;
    overflow:auto;
    font-size:.78rem;
    line-height:1.35;
  }
  #s-train .situation-box.situation-box--expanded{
    min-height:0;
    max-height:none;
    overflow:visible;
  }
  #s-train .situation-box.situation-box--expanded p{
    max-height:none;
    overflow:visible;
  }
  #s-train .template-box{
    padding:7px 10px 8px 12px;
  }
  #s-train .template-box .tmpl{
    font-size:.78rem;
    line-height:1.35;
    max-height:none;
    overflow:visible;
  }
  #s-train .hear-example-btn{
    margin-top:4px;
    padding:2px 9px;
  }
  #s-train .guide-box{
    min-height:50px;
    max-height:50px;
    padding:4px 10px 5px;
  }
  #s-train .guide-box .guide-text{
    font-size:.73rem;
    line-height:1.28;
  }
  #s-train .guide-box.guide-box--expanded{
    min-height:0;
    max-height:none;
  }
  #s-train .train-body.card-visible .field-card-box{
    min-height:235px;
    max-height:31dvh;
    max-height:31vh;
    padding:5px 7px 6px;
  }
  #s-train .field-card-title{
    font-size:.84rem;
  }
  #s-train .field-card-tools{
    gap:3px;
  }
  #s-train .field-style-btn{
    min-height:20px;
    padding:2px 5px;
  }
  #s-train .train-body.card-visible .field-card-legend{
    margin-bottom:4px;
  }
  #s-train .train-body.card-visible .field-chip{
    padding:2px 6px;
    font-size:.62rem;
  }
  #s-train .train-body.card-visible .field-map-wrap{
    min-height:150px;
  }
  #s-train .train-body.card-visible .field-map{
    transform:scale(1.06);
  }
  #s-train .train-body.card-visible .transcript{
    min-height:54px;
    padding:8px 12px;
  }
  #s-train .msg{
    padding:8px 10px;
    font-size:.82rem;
    line-height:1.45;
  }
  #s-train .controls-bar{
    padding:6px 10px calc(6px + max(env(safe-area-inset-bottom, 0px), 6px));
    gap:6px;
  }
  #s-train .ptt-btn{
    padding:7px 4px;
    font-size:.92rem;
  }
  #s-train .ptt-badge{
    min-width:31px;
    height:20px;
  }
  #s-train .text-input{
    padding:6px 10px;
    font-size:.82rem;
  }
  #s-train .send-btn{
    padding:6px 14px;
    font-size:.84rem;
  }
  #s-train .skip-btn,
  #s-train .step-nav-btn{
    padding:3px 8px;
    font-size:.72rem;
  }
  #s-train .status-text{
    bottom:calc(env(safe-area-inset-bottom, 0px) + 85px);
  }
}

@media(max-width:420px) and (max-height:820px){
  #s-train .left-panel{
    max-height:30dvh;
    max-height:30vh;
  }
  #s-train .train-body.card-visible .field-card-box{
    min-height:235px;
    max-height:31dvh;
    max-height:31vh;
  }
  #s-train .train-body.card-visible .field-map-wrap{
    min-height:150px;
  }
}

/* ===== MENU: FEATURE CHIPS ===== */
.menu-features{
  display:inline-flex;gap:0;justify-content:center;flex-wrap:wrap;margin-top:22px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
  border-radius:8px;padding:5px 6px;
}
.menu-feature{
  display:inline-flex;align-items:center;gap:4px;
  padding:2px 12px;
  font-size:.68rem;color:var(--text-dim);
  font-family:'DM Sans',system-ui,sans-serif;font-weight:500;letter-spacing:.06em;text-transform:uppercase;
  user-select:none;cursor:default;pointer-events:none;
}
.menu-feature+.menu-feature{border-left:1px solid rgba(255,255,255,.1)}

/* ===== MENU: LARGER HERO TITLE ===== */
.menu-header h1{font-size:3rem}

/* ===== AIR CARD: ACCENT LINE ===== */
.air-card-line{display:block;width:28px;height:2px;border-radius:1px;margin-bottom:10px;opacity:.5}
.unc .air-card-line{background:var(--green)}
.fiz .air-card-line{background:var(--amber)}
.ctrl .air-card-line{background:var(--red)}

/* ===== SETUP: STEP NUMBERS ===== */
.setup-section{position:relative}
.setup-step-num{
  position:absolute;top:15px;right:15px;
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.68rem;color:var(--border);letter-spacing:.04em;
  user-select:none;pointer-events:none;
  transition:color .2s,text-shadow .2s;
}
.setup-section.step-done .setup-step-num{
  color:var(--green);
  text-shadow:0 0 8px rgba(74,222,128,.3);
}

/* ===== SETUP: SPEECH MODE TOGGLE ===== */
.speech-mode-toggle{display:flex;gap:8px;margin-bottom:14px}
.speech-mode-btn{
  flex:1;padding:9px 12px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  color:var(--text-dim);font-size:.82rem;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.speech-mode-btn:hover{border-color:rgba(56,189,248,.4);color:var(--text)}
.speech-mode-btn.selected{
  background:rgba(56,189,248,.1);
  border-color:var(--radio);
  color:var(--text);
}

/* ===== SETUP: SUMMARY BAR ===== */
.setup-summary{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.73rem;color:var(--text-dim);
  display:flex;align-items:center;flex-wrap:wrap;min-height:20px;gap:0;
}
.setup-summary .ss-sep{color:var(--border);padding:0 6px;font-size:.7rem}
.setup-summary .ss-val{color:var(--radio)}

/* ===== MONOSPACE UPGRADE: JETBRAINS MONO ===== */
.freq-display,.template-box .tmpl,.callsign-input,.bdrow .step-score,.hist-date{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
}

/* ===== FREQ DISPLAY: SWEEP ANIMATION ===== */
.freq-display::before{
  content:'';position:absolute;top:0;bottom:0;width:40%;
  background:linear-gradient(90deg,transparent,rgba(56,189,248,.09) 50%,transparent);
  animation:freq-sweep 6s ease-in-out infinite;
  pointer-events:none;z-index:1;
}
@keyframes freq-sweep{
  0%{transform:translateX(-120%);opacity:0}
  8%{opacity:1}92%{opacity:.6}
  100%{transform:translateX(320%);opacity:0}
}

/* ===== STEP DOTS: CURRENT = GREEN ===== */
.step-dot.current{
  width:9px;height:9px;background:var(--radio);
  border:2px solid var(--radio);box-shadow:0 0 6px var(--radio-glow);opacity:1;
}

/* ===== PTT: LARGER AND BOLDER ===== */
.ptt-btn{
  padding:11px 22px;font-size:1rem;letter-spacing:.08em;gap:9px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 2px 8px rgba(0,0,0,.3),0 0 0 1px rgba(56,189,248,.04);
}
.ptt-btn:hover{
  border-color:var(--green);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 2px 12px rgba(0,0,0,.4),0 0 16px rgba(56,189,248,.06);
}

/* ===== BTN-START: APPEAR ANIMATION ===== */
@keyframes btn-start-appear{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
.btn-start:not(:disabled){animation:btn-start-appear .2s ease both}

/* ===== RESULTS: LOGBOOK STRIP ===== */
.logbook-strip{
  display:flex;align-items:center;justify-content:space-between;
  padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border);
}
.logbook-label{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);
}
.logbook-strip-right{display:flex;align-items:center;gap:12px}
.logbook-date,.logbook-airport{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.7rem;color:var(--text-dim);
}

/* ===== MENU: COMBINED STATS BOX ===== */
.menu-stats{
  padding:12px 16px;
  background:rgba(255,255,255,.03);border:1px solid var(--border);
  border-radius:6px;display:flex;flex-direction:column;gap:10px;
}
.menu-stats-row{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
}
.menu-stats-count{font-size:.78rem;color:var(--text-dim)}
.menu-stats-avg{font-size:.78rem;color:var(--text)}
.menu-stats-last{font-size:.78rem;font-weight:600}
.menu-stats-trend{font-size:.95rem;font-weight:700}
.menu-stats-weak{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;
  padding-top:10px;border-top:1px solid var(--border);
}
.menu-weak-label{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--amber,#fbbf24);white-space:nowrap;
}
.menu-weak-chips{display:flex;flex-wrap:wrap;gap:6px}
.menu-weak-chip{
  padding:3px 10px;border-radius:4px;
  background:rgba(255,180,0,.1);border:1px solid rgba(255,180,0,.25);
  font-size:.72rem;color:var(--amber,#fbbf24);
  font-family:'DM Sans',system-ui,sans-serif;font-weight:600;letter-spacing:.04em;
}
.menu-weak-chip--drill{
  cursor:pointer;transition:background .15s,border-color .15s;
}
.menu-weak-chip--drill:hover{
  background:rgba(255,180,0,.22);border-color:rgba(255,180,0,.5);
}
.menu-continue-btn{
  margin-top:10px;width:100%;padding:9px 14px;
  background:rgba(56,189,248,.07);border:1px solid rgba(56,189,248,.2);
  border-radius:6px;color:var(--text);font-size:.82rem;
  cursor:pointer;text-align:left;transition:background .15s,border-color .15s;
}
.menu-continue-btn:hover{
  background:rgba(56,189,248,.14);border-color:rgba(56,189,248,.38);
}
.learner-profile{
  margin:16px auto 0;width:min(760px,100%);padding:14px 16px;
  background:rgba(10,16,26,.72);border:1px solid rgba(56,189,248,.18);
  border-radius:6px;text-align:left;
}
.learner-profile--compact{margin-top:18px}
.learner-profile--empty p{margin-top:8px;color:var(--text-dim);font-size:.84rem;line-height:1.55}
.learner-profile-head{display:grid;gap:4px}
.learner-profile-head strong{font-size:1rem;color:var(--text)}
.learner-profile-head em{font-style:normal;color:var(--text-dim);font-size:.82rem;line-height:1.45}
.learner-profile-kicker{
  font-family:'Barlow Condensed',sans-serif;font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--radio);
}
.learner-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.learner-profile-metrics div{padding:8px 10px;background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:4px}
.learner-profile-metrics span{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}
.learner-profile-metrics b{display:block;margin-top:2px;font-family:'Share Tech Mono',monospace;font-size:1rem;color:var(--text)}
.learner-profile-focus{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.learner-profile-focus span{
  padding:4px 9px;border-radius:4px;background:rgba(251,191,36,.1);
  border:1px solid rgba(251,191,36,.22);color:var(--amber);font-size:.75rem;
}
.learner-profile-focus b{font-family:'Share Tech Mono',monospace}
.learner-profile-focus--empty{color:var(--text-dim);font-size:.78rem}

/* ===== MENU: DRILL ENTRY ===== */
.menu-drill-entry{
  margin-top:24px;display:flex;justify-content:center;gap:10px;flex-wrap:wrap;
}
.drill-entry-btn{
  background:transparent;border:1px solid rgba(56,189,248,.18);
  color:var(--text-dim);padding:10px 28px;border-radius:6px;
  font-family:'DM Sans',system-ui,sans-serif;font-size:.82rem;letter-spacing:.04em;
  cursor:pointer;transition:border-color .15s,color .15s;
}
.drill-entry-btn:hover{border-color:var(--green);color:var(--text);}
.drill-entry-btn--route{
  border-color:rgba(56,189,248,.32);color:var(--text);font-weight:500;
}
.drill-entry-btn--route:hover{border-color:var(--accent);color:#fff;}

/* ===== ROUTE SETUP SCREEN ===== */
#s-route.active{display:flex;flex-direction:column;padding:0;overflow:hidden}
.route-body{flex:1;overflow:auto;padding:22px;display:flex;justify-content:center}
.route-setup{width:min(680px,100%);display:flex;flex-direction:column;gap:24px}
.route-section h3{
  font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--text-dim);margin-bottom:10px;
}
.route-cards{display:grid;gap:10px}
.route-card{
  display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;
  align-items:start;gap:2px 10px;
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:14px 16px;cursor:pointer;transition:border-color .15s;
}
.route-card:hover,.route-card:has(input:checked){border-color:var(--accent);}
.route-card input[type=radio]{grid-row:1/3;margin-top:3px;accent-color:var(--accent);}
.route-card strong{font-size:.95rem;color:var(--text);}
.route-card .route-meta{font-size:.78rem;color:var(--text-dim);display:flex;gap:8px;align-items:center;}
.route-card .route-desc{grid-column:2;font-size:.8rem;color:var(--text-dim);line-height:1.4;}
.route-level{
  display:inline-block;font-size:.65rem;padding:2px 7px;border-radius:4px;
  background:rgba(56,189,248,.12);color:var(--accent);letter-spacing:.05em;text-transform:uppercase;
}
.route-level--mixed{background:rgba(250,204,21,.1);color:#facc15;}
.route-events{display:flex;flex-direction:column;gap:8px}
.route-event-check{
  display:flex;align-items:flex-start;gap:10px;
  background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:12px 14px;
  cursor:pointer;
}
.route-event-check input{margin-top:2px;accent-color:var(--accent);}
.route-event-label{font-size:.88rem;color:var(--text);font-weight:500;}
.route-event-desc{font-size:.78rem;color:var(--text-dim);margin-top:2px;}
.route-modes{display:flex;gap:8px;flex-wrap:wrap}
.route-mode-btn{
  background:transparent;border:1px solid var(--border);border-radius:6px;
  color:var(--text-dim);padding:8px 20px;font-family:inherit;font-size:.85rem;cursor:pointer;
  transition:all .15s;
}
.route-mode-btn:hover{border-color:var(--accent);color:var(--text);}
.route-mode-btn.selected{background:var(--accent);border-color:var(--accent);color:#fff;}
.route-start-btn{
  background:var(--green);color:#000;border:none;border-radius:8px;
  padding:14px 32px;font-size:1rem;font-weight:600;font-family:inherit;cursor:pointer;
  transition:opacity .15s;align-self:flex-start;
}
.route-start-btn:hover{opacity:.88;}

/* ===== INSTRUCTOR VIEW ===== */
#s-instructor.active{display:flex;flex-direction:column;padding:0;overflow:hidden}
.instructor-body{flex:1;overflow:auto;padding:22px;display:flex;justify-content:center}
.instructor-dashboard{width:min(980px,100%);display:grid;gap:14px}
.instructor-panel{
  background:var(--panel);border:1px solid var(--border);border-radius:6px;
  padding:16px;text-align:left;
}
.instructor-panel h3{font-size:1rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px}
.instructor-panel p{color:var(--text-dim);font-size:.88rem;line-height:1.6;margin-bottom:12px}
.instructor-kicker{
  display:block;font-family:'Barlow Condensed',sans-serif;font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--radio);margin-bottom:4px;
}
.instructor-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}
.instructor-metrics div{padding:9px 10px;background:rgba(255,255,255,.035);border:1px solid var(--border);border-radius:4px}
.instructor-metrics span{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}
.instructor-metrics b{display:block;margin-top:2px;font-family:'Share Tech Mono',monospace;font-size:1.05rem;color:var(--text)}
.instructor-focus{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 14px}
.instructor-focus span{padding:4px 9px;border-radius:4px;background:rgba(251,191,36,.1);border:1px solid rgba(251,191,36,.22);color:var(--amber);font-size:.76rem}
.instructor-focus b{font-family:'Share Tech Mono',monospace}
.instructor-rows{display:grid;gap:7px}
.instructor-row{
  display:grid;grid-template-columns:80px 1.2fr .7fr 1fr .7fr 1fr;gap:8px;align-items:center;
  padding:8px 0;border-bottom:1px solid var(--border);font-size:.8rem;
}
.instructor-row span,.instructor-row em{color:var(--text-dim);font-style:normal}
.instructor-row b{color:var(--radio);font-family:'Share Tech Mono',monospace}
.instructor-empty{color:var(--text-dim);font-size:.86rem;padding:10px 0}

/* ===== DRILL SCREEN ===== */
#s-drill.active{
  display:flex;flex-direction:column;
  padding:0;overflow:hidden;
}
.drill-header{
  display:flex;align-items:center;gap:16px;
  padding:16px 20px 14px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.drill-header h2{
  margin:0;font-family:'Barlow Condensed',sans-serif;
  font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);flex:1;
}
.drill-header-progress{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.75rem;color:var(--text-dim);
}
.drill-body{
  flex:1;overflow-y:auto;
  display:flex;flex-direction:column;align-items:center;
  padding:24px 20px 32px;
}

/* Category picker */
.drill-cats{ width:100%;max-width:480px; }
.drill-intro{
  font-size:.82rem;color:var(--text-dim);margin:0 0 16px;
}
.drill-cat-grid{
  display:flex;flex-direction:column;gap:8px;
}
.drill-cat-btn{
  display:flex;flex-direction:column;align-items:flex-start;gap:2px;
  padding:14px 18px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:6px;
  cursor:pointer;text-align:left;transition:border-color .15s,background .15s;
  width:100%;
}
.drill-cat-btn:hover{
  border-color:var(--green);background:rgba(56,189,248,.04);
}
.drill-cat-label{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text);
}
.drill-cat-desc{
  font-size:.76rem;color:var(--text-dim);
}

/* Question */
.drill-q{ width:100%;max-width:480px;display:flex;flex-direction:column;gap:12px; }
.drill-q-progress{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.72rem;color:var(--text-dim);
}
.drill-q-prompt{
  font-size:.9rem;color:var(--text-dim);
}
.drill-q-value{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:2.6rem;font-weight:700;color:var(--green);
  letter-spacing:.04em;line-height:1;padding:20px 0 16px;
}
.drill-q-hint{
  font-size:.72rem;color:var(--text-dim);opacity:.7;padding-bottom:4px;
}
.drill-form{
  display:flex;gap:8px;margin-top:4px;
}
.drill-input{
  flex:1;background:rgba(255,255,255,.06);
  border:1px solid var(--border);border-radius:6px;
  color:var(--text);padding:10px 14px;
  font-family:'JetBrains Mono','Share Tech Mono',monospace;font-size:.9rem;
  outline:none;transition:border-color .15s;
}
.drill-input:focus{ border-color:var(--green); }
.drill-submit{
  flex-shrink:0;
}
.drill-ptt-btn{
  display:inline-flex;align-items:center;gap:6px;
  flex-shrink:0;padding:10px 16px;
  background:transparent;border:1px solid var(--border);
  color:var(--text-dim);border-radius:6px;cursor:pointer;
  font-family:'DM Sans',system-ui,sans-serif;font-size:.82rem;
  transition:border-color .15s,color .15s,background .15s;
  touch-action:none;user-select:none;
}
.drill-ptt-btn:hover{border-color:var(--green);color:var(--text);}
.drill-ptt-btn.listening{
  border-color:var(--green);color:var(--green);
  background:rgba(56,189,248,.07);
}
.drill-ptt-dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--text-dim);flex-shrink:0;
  transition:background .15s;
}
.drill-ptt-btn.listening .drill-ptt-dot{
  background:var(--green);
  box-shadow:0 0 6px var(--radio-glow);
  animation:drill-dot-pulse 1s ease-in-out infinite;
}
@keyframes drill-dot-pulse{
  0%,100%{opacity:1} 50%{opacity:.4}
}

/* Result */
.drill-result{
  width:100%;max-width:480px;
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding-top:16px;
}
.drill-result-icon{
  font-size:3rem;line-height:1;
}
.drill-result--correct .drill-result-icon{ color:var(--green); }
.drill-result--wrong .drill-result-icon{ color:var(--red,#ff4444); }
.drill-result-verdict{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.5rem;letter-spacing:.1em;text-transform:uppercase;
}
.drill-result--correct .drill-result-verdict{ color:var(--green); }
.drill-result--wrong .drill-result-verdict{ color:var(--red,#ff4444); }
.drill-result-rows{
  width:100%;display:flex;flex-direction:column;gap:6px;
  margin:6px 0;padding:14px 16px;
  background:rgba(255,255,255,.04);border-radius:6px;border:1px solid var(--border);
}
.drill-result-row{ display:flex;flex-direction:column;gap:2px; }
.drill-result-lbl{ font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em; }
.drill-result-val{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.88rem;color:var(--text);
}
.drill-result-val--correct{ color:var(--green); }
.drill-next-btn{ margin-top:8px;min-width:140px; }

/* Summary */
.drill-summary{
  width:100%;max-width:480px;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  padding-top:20px;
}
.drill-summary-score{
  font-family:'Barlow Condensed',sans-serif;
  font-size:5rem;line-height:1;font-weight:700;letter-spacing:.02em;
}
.drill-summary-score--good{ color:var(--green); }
.drill-summary-score--ok{ color:var(--amber,#fbbf24); }
.drill-summary-score--poor{ color:var(--red,#ff4444); }
.drill-summary-denom{ font-size:2.5rem;opacity:.6; }
.drill-summary-msg{
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.4rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);
}
.drill-summary-cat{ font-size:.8rem;color:var(--text-dim);margin-bottom:8px; }
.drill-summary-btns{ display:flex;flex-wrap:wrap;gap:10px;justify-content:center; }

/* ── Lärlage ──────────────────────────────────────────────────── */
.learn-header{
  display:flex;align-items:center;gap:16px;
  padding:16px 20px 14px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.learn-header h2{
  margin:0;font-family:'Barlow Condensed',sans-serif;
  font-size:1.1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text);flex:1;
}
.learn-progress{
  font-family:'JetBrains Mono','Share Tech Mono',monospace;
  font-size:.75rem;color:var(--text-dim);
}
.learn-body{
  flex:1;overflow-y:auto;
  display:flex;flex-direction:column;align-items:center;
  padding:24px 20px 0;
}
.learn-content{
  width:100%;max-width:1180px;
  display:grid;grid-template-columns:minmax(300px,540px) minmax(320px,1fr);
  gap:16px;align-items:start;
}
.learn-card{
  width:100%;max-width:540px;
  background:rgba(255,255,255,.04);border:1px solid var(--border);
  border-radius:8px;padding:22px 24px;margin-bottom:16px;
}
.learn-field-card-box{
  width:100%;max-width:620px;margin-bottom:16px;
  overflow:hidden;display:flex;flex-direction:column;
}
.learn-field-card-box.hidden{display:none}
.learn-field-card-box #learn-field-card-content{
  min-height:0;display:flex;flex-direction:column;
}
.learn-field-card-box .field-map-wrap{min-height:260px}
#s-learn.card-expanded .learn-body{align-items:stretch}
#s-learn.card-expanded .learn-content{
  max-width:none;grid-template-columns:minmax(260px,360px) minmax(520px,1fr);
}
#s-learn.card-expanded .learn-card{max-width:none}
#s-learn.card-expanded .learn-field-card-box{
  max-width:none;height:calc(100dvh - 148px);height:calc(100vh - 148px);
}
#s-learn.card-expanded .learn-field-card-box #learn-field-card-content{
  flex:1;overflow:hidden;
}
#s-learn.card-expanded .learn-field-card-box .field-card-head,
#s-learn.card-expanded .learn-field-card-box .field-card-legend{
  flex-shrink:0;
}
#s-learn.card-expanded .learn-field-card-box .field-map-wrap{
  flex:1;min-height:0;
}
#s-learn.card-expanded .learn-field-card-box .field-map{
  aspect-ratio:unset;width:100%;height:100%;
}
#s-learn.card-expanded .learn-field-card-box .field-card-note{display:none}
.learn-step-name{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--text-dim);margin-bottom:10px;
}
.learn-situation{
  font-size:.88rem;color:var(--text-dim);line-height:1.65;margin-bottom:16px;
}
.learn-say-label{
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text-dim);margin-bottom:6px;font-weight:600;
}
.learn-template{
  font-size:.98rem;color:var(--text);line-height:1.7;
  padding:12px 16px;
  background:rgba(56,189,248,.06);
  border-left:3px solid var(--green);
  border-radius:0 4px 4px 0;margin-bottom:14px;
}
.learn-guide{
  font-size:.82rem;color:var(--text-dim);line-height:1.6;margin-top:6px;
}
.learn-tips{
  margin:8px 0 0;padding:0;list-style:none;
}
.learn-tips li{
  font-size:.82rem;color:var(--text-dim);
  padding:2px 0 2px 16px;position:relative;line-height:1.5;
}
.learn-tips li::before{ content:'›';position:absolute;left:0;color:var(--green); }
.learn-nav{
  width:100%;max-width:540px;
  display:flex;gap:10px;align-items:center;
  padding-bottom:4px;
}
.learn-card .learn-nav{
  max-width:none;
  margin:16px 0 6px;
}
.learn-nav .btn-ghost,.learn-nav .btn-primary{ flex:1;text-align:center; }
.learn-skip{
  width:100%;max-width:540px;
  text-align:center;padding:10px 0 20px;
}
.learn-card .learn-skip{
  max-width:none;
  padding:0 0 12px;
}
.learn-skip-btn{
  font-size:.8rem;color:var(--text-dim);background:none;border:none;
  cursor:pointer;text-decoration:underline;padding:4px 8px;
}
.learn-skip-btn:hover{ color:var(--text); }
@media(max-width:980px){
  .learn-content{max-width:640px;grid-template-columns:1fr}
  .learn-card,.learn-field-card-box{max-width:none}
}
@media(max-width:640px){
  .learn-body{padding:16px 12px 0}
  .learn-card{padding:18px 16px}
  .learn-field-card-box{padding:12px}
  .learn-field-card-box .field-card-head{flex-direction:column;gap:8px}
  .learn-field-card-box .field-card-tools{align-items:flex-start}
  #s-learn.card-expanded .learn-content{grid-template-columns:1fr}
  #s-learn.card-expanded .learn-field-card-box{height:48dvh;height:48vh}
}

/* ── Privacy-sektion i setup ─────────────────────────────────── */
.setup-privacy{
  margin:0 0 8px;
  border:1px solid var(--border,rgba(255,255,255,.07));
  border-radius:8px;
  background:var(--card,rgba(255,255,255,.03));
}
.setup-privacy-toggle{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px;cursor:pointer;
  font-size:.78rem;color:var(--text-dim);font-weight:500;
  list-style:none;
}
.setup-privacy-toggle::-webkit-details-marker{ display:none }
.setup-privacy-toggle::after{ content:'▼';font-size:.65rem;margin-left:6px;opacity:.5 }
details[open].setup-privacy .setup-privacy-toggle::after{ content:'▲' }
.setup-privacy-body{
  padding:4px 14px 12px;display:flex;flex-direction:column;gap:6px;
}
.setup-privacy-body p{
  margin:0;font-size:.75rem;line-height:1.55;color:var(--text-dim);
}
.setup-privacy-body p b{ color:var(--text); }

/* ── Responsiv höjd (t.ex. 1280×720) ─────────────────────────── */
@media(max-height:760px){
  /* Training: minska padding så att guide/tips ryms utan scrollning */
  .situation-box{padding:8px 16px}
  .situation-head{margin-bottom:4px}
  .situation-box p{line-height:1.6}
  .template-box{padding:8px 16px 8px 18px}
  .template-box .lbl{margin-bottom:4px}
  .guide-box{padding:8px 16px}
  .guide-box .guide-text{margin-bottom:8px;line-height:1.6}
  /* Setup: kompaktera sektioner så TAL-sektionen syns utan scrollning */
  .setup-body{padding-top:12px;padding-bottom:72px}
  .setup-section{padding:12px 14px}
  .setup-section h3{margin-bottom:8px}
  .speech-start-note{margin-bottom:8px;padding:8px 10px}
  .speech-check-panel{margin:8px 0 10px}
}

/* ===== RADIOTRAINER BRAND PROFILE (DEFAULT THEME) ===== */
:root:not([data-theme]) {
  --bg:        #f6f8fb;
  --panel:     #ffffff;
  --card:      #ffffff;
  --border:    #d8e1ea;
  --green:     #168252;
  --green-dim: #e8f6ef;
  --amber:     #b77900;
  --amber-dim: #fff5cc;
  --red:       #c43a45;
  --blue:      #0f62ad;
  --text:      #071c3a;
  --text-dim:  #5d7088;
  --radio:     #08306a;
  --tmpl:      #168252;
  --r:         8px;
  --radio-glow: rgba(8,48,106,.18);
  --border-hi: rgba(255,255,255,.72);
  --card-shadow: 0 10px 28px rgba(7,28,58,.08);
}

:root:not([data-theme]) body {
  background-color:var(--bg);
  background-image:none;
}

.menu-brand-lockup{display:none}

:root:not([data-theme]) #s-menu,
:root:not([data-theme]) #s-setup,
:root:not([data-theme]) #s-results,
:root:not([data-theme]) #s-drill,
:root:not([data-theme]) #s-route,
:root:not([data-theme]) #s-instructor {
  background:var(--bg);
  color:var(--text);
}

:root:not([data-theme]) .menu-brand-lockup {
  display:block;
  width:min(390px,78vw);
  height:auto;
  margin:2px auto 14px;
}

:root:not([data-theme]) .menu-header h1 {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}

:root:not([data-theme]) #s-menu {
  gap:22px;
  padding:24px 32px 34px;
}

:root:not([data-theme]) .menu-header p {color:#40536a}
:root:not([data-theme]) .menu-header .release-disclaimer {color:var(--text-dim);opacity:1}

:root:not([data-theme]) .menu-language-options,
:root:not([data-theme]) .theme-picker {
  border-color:var(--border);
  background:rgba(255,255,255,.82);
  box-shadow:0 6px 18px rgba(7,28,58,.06);
}

:root:not([data-theme]) .theme-dot {border-color:rgba(8,48,106,.18)}
:root:not([data-theme]) .theme-dot:hover,
:root:not([data-theme]) .theme-dot.active {border-color:#ffffff;box-shadow:0 0 0 2px rgba(8,48,106,.24)}

:root:not([data-theme]) .release-badge {
  border-color:rgba(8,48,106,.16);
  background:#edf3f8;
  color:var(--blue);
}

:root:not([data-theme]) .menu-features {
  border-color:var(--border);
  background:rgba(255,255,255,.82);
  box-shadow:0 8px 22px rgba(7,28,58,.05);
}
:root:not([data-theme]) .menu-feature {color:var(--text-dim)}
:root:not([data-theme]) .menu-feature + .menu-feature {border-left-color:var(--border)}

:root:not([data-theme]) .airspace-grid {max-width:980px;gap:16px}
:root:not([data-theme]) .air-card {
  min-height:220px;
  background:#ffffff;
  border-color:var(--border);
  border-radius:8px;
  box-shadow:var(--card-shadow);
}
:root:not([data-theme]) .air-card:hover {
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(7,28,58,.12);
}
:root:not([data-theme]) .air-card h2 {color:var(--radio);font-size:1.36rem}
:root:not([data-theme]) .air-card p {color:var(--text-dim)}
:root:not([data-theme]) .unc .badge {background:#e8f6ef;border-color:#bfe4d2;color:#116a43}
:root:not([data-theme]) .fiz .badge {background:#fff5cc;border-color:#f1d979;color:#805400}
:root:not([data-theme]) .ctrl .badge {background:#fcebed;border-color:#efc3c8;color:#a62d38}

:root:not([data-theme]) .learner-profile,
:root:not([data-theme]) .menu-stats,
:root:not([data-theme]) .instructor-panel,
:root:not([data-theme]) .route-card,
:root:not([data-theme]) .route-event-check {
  background:#ffffff;
  border-color:var(--border);
  box-shadow:0 8px 24px rgba(7,28,58,.06);
}
:root:not([data-theme]) .learner-profile-metrics div,
:root:not([data-theme]) .instructor-metrics div {background:#f7f9fc}
:root:not([data-theme]) .menu-continue-btn {background:#edf3f8;border-color:#cbd9e7;color:var(--radio)}
:root:not([data-theme]) .drill-entry-btn {background:#ffffff;border-color:#cbd9e7;color:var(--radio)}
:root:not([data-theme]) .drill-entry-btn:hover {background:#edf3f8;border-color:var(--blue)}

:root:not([data-theme]) .setup-header,
:root:not([data-theme]) .drill-header,
:root:not([data-theme]) .learn-header {
  background:#ffffff;
  border-bottom-color:var(--border);
  box-shadow:0 4px 18px rgba(7,28,58,.05);
}
:root:not([data-theme]) .setup-header {border-bottom:3px solid #f5c313}
:root:not([data-theme]) .setup-header h2,
:root:not([data-theme]) .drill-header h2 {color:var(--radio)}
:root:not([data-theme]) .btn-back {background:#ffffff;border-color:#cbd9e7;color:var(--radio)}
:root:not([data-theme]) .btn-back:hover {background:#edf3f8;border-color:var(--blue);color:var(--radio)}

:root:not([data-theme]) .setup-body {gap:14px;padding-top:18px}
:root:not([data-theme]) .setup-onboarding {
  background:#edf3f8;
  border-color:#cbd9e7;
}
:root:not([data-theme]) .setup-onboarding-title {color:var(--radio)}
:root:not([data-theme]) .setup-section {
  background:#ffffff;
  border-color:var(--border);
  border-radius:8px;
  box-shadow:var(--card-shadow);
}
:root:not([data-theme]) .setup-section h3 {color:var(--radio);font-size:.82rem}
:root:not([data-theme]) .setup-step-num {
  border-color:#cbd9e7;
  background:#edf3f8;
  color:var(--blue);
}
:root:not([data-theme]) .setup-section.step-done .setup-step-num {
  border-color:#f5c313;
  background:#fff8d7;
  color:#6d5500;
}
:root:not([data-theme]) .opt-btn,
:root:not([data-theme]) .plane-type-btn,
:root:not([data-theme]) .setup-input,
:root:not([data-theme]) .setup-select,
:root:not([data-theme]) .callsign-input {
  background:#ffffff;
  border-color:#cbd9e7;
  box-shadow:none;
}
:root:not([data-theme]) .opt-btn:hover,
:root:not([data-theme]) .plane-type-btn:hover {background:#f5f8fb;border-color:var(--blue)}
:root:not([data-theme]) .opt-btn.selected,
:root:not([data-theme]) .plane-type-btn.selected,
:root:not([data-theme]) .speech-mode-btn.selected {
  border-color:var(--radio);
  background:#edf3f8;
  color:var(--radio);
  box-shadow:inset 4px 0 0 #f5c313;
}
:root:not([data-theme]) .speech-check-panel,
:root:not([data-theme]) .voice-quality-panel,
:root:not([data-theme]) .mic-diagnostic,
:root:not([data-theme]) .advanced-speech,
:root:not([data-theme]) .setup-privacy {
  background:#f7f9fc;
  border-color:var(--border);
}
:root:not([data-theme]) .mic-meter {background:#e3eaf1;border-color:#d5dfe9}
:root:not([data-theme]) .setup-footer {
  background:rgba(255,255,255,.94);
  border-top-color:var(--border);
  box-shadow:0 -10px 26px rgba(7,28,58,.07);
  backdrop-filter:blur(14px);
}
:root:not([data-theme]) .btn-start,
:root:not([data-theme]) .route-start-btn,
:root:not([data-theme]) .rbtn-primary {
  background:var(--radio);
  color:#ffffff;
  border-radius:8px;
  box-shadow:0 10px 24px rgba(8,48,106,.16);
}

:root:not([data-theme]) #s-results {background:#edf3f8}
:root:not([data-theme]) .results-card {
  background:#ffffff;
  border-color:var(--border);
  border-top:5px solid #f5c313;
  border-radius:8px;
  box-shadow:0 22px 54px rgba(7,28,58,.12);
}
:root:not([data-theme]) .breakdown,
:root:not([data-theme]) .history-section {background:#f7f9fc}
:root:not([data-theme]) .weak-areas {background:#fff8df;border-color:#ecd98a}
:root:not([data-theme]) .weak-areas--empty {background:#eaf7f1;border-color:#bfe4d2}
:root:not([data-theme]) .weak-area {background:#ffffff;border-color:var(--border)}
:root:not([data-theme]) .rbtn-sec {background:#ffffff;border-color:#cbd9e7;color:var(--radio)}

:root:not([data-theme]) .drill-cat-btn,
:root:not([data-theme]) .drill-result-rows,
:root:not([data-theme]) .drill-input {
  background:#ffffff;
  border-color:var(--border);
}

:root:not([data-theme]) #s-train,
:root:not([data-theme]) #s-learn {
  --bg:        #06101f;
  --panel:     #0a1728;
  --card:      #0e1d30;
  --border:    #1d3552;
  --green:     #35d27f;
  --green-dim: #082518;
  --amber:     #f5c313;
  --amber-dim: #332900;
  --red:       #f0646d;
  --blue:      #5ab0f2;
  --text:      #e2edf8;
  --text-dim:  #87a2be;
  --radio:     #45c6f4;
  --tmpl:      #35d27f;
  --radio-glow:rgba(69,198,244,.2);
  --border-hi:rgba(255,255,255,.055);
  --card-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 2px 10px rgba(0,0,0,.34);
  background:#06101f;
  color:var(--text);
}

:root:not([data-theme]) #s-train .train-topbar {
  background:#071629;
  border-bottom:3px solid #f5c313;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
}
:root:not([data-theme]) #s-train .left-panel {background:#081423}
:root:not([data-theme]) #s-train .situation-box {background:#0b1a2c}
:root:not([data-theme]) #s-train .template-box {background:#0d1f33}
:root:not([data-theme]) #s-train .guide-box {background:#091827}
:root:not([data-theme]) #s-train .template-box::before {background:#f5c313}
:root:not([data-theme]) #s-train .mode-badge {border-radius:6px}
:root:not([data-theme]) #s-train .freq-display {border-color:rgba(69,198,244,.4)}
:root:not([data-theme]) #s-train .field-card-box {background:#0b1929}
:root:not([data-theme]) #s-train .right-panel,
:root:not([data-theme]) #s-train .transcript {background:#040b14}
:root:not([data-theme]) #s-train .controls-bar {border-top-color:#263d57;background:#071321}

:root:not([data-theme]) #s-learn .learn-header {
  background:#071629;
  border-bottom:3px solid #f5c313;
  box-shadow:0 8px 24px rgba(0,0,0,.28);
}
:root:not([data-theme]) #s-learn .learn-card,
:root:not([data-theme]) #s-learn .learn-field-card-box {
  background:#0b1a2c;
  border-color:#1d3552;
  box-shadow:0 12px 28px rgba(0,0,0,.2);
}

:root:not([data-theme]) .global-report-btn {
  background:rgba(8,48,106,.94);
  border-color:rgba(255,255,255,.2);
  color:#ffffff;
  box-shadow:0 10px 28px rgba(7,28,58,.22);
}

@media(max-width:640px){
  :root:not([data-theme]) #s-menu {padding:20px 14px 30px;gap:18px}
  :root:not([data-theme]) .menu-brand-lockup {width:min(310px,86vw);margin-bottom:10px}
  :root:not([data-theme]) .air-card {min-height:0;padding:20px 18px}
  :root:not([data-theme]) .setup-header {padding:12px 14px}
  :root:not([data-theme]) .setup-body {padding-left:12px;padding-right:12px}
  :root:not([data-theme]) .setup-footer {padding:10px 12px}
  .setup-header {gap:8px}
  .setup-header h2 {min-width:0;line-height:1.15}
  .setup-report-btn {padding:6px 8px;font-size:.72rem}
}
