diff --git a/app/components/live-atc/cockpit/CommLogRail.vue b/app/components/live-atc/cockpit/CommLogRail.vue
new file mode 100644
index 0000000..200a098
--- /dev/null
+++ b/app/components/live-atc/cockpit/CommLogRail.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ mdi-magnify-scan
+ Readback check
+
+
heard: “{{ readbackTranscript }}”
+
+ {{ r.matched ? 'mdi-check-circle' : 'mdi-close-circle' }}
+
+ {{ r.field }}
+ = {{ r.expected || '—' }}
+ → “{{ r.matched_via }}”
+
+ → not recognised
+ (say: {{ r.accepted_forms.join(' / ') }})
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/live-atc/cockpit/LastTransmissionCard.vue b/app/components/live-atc/cockpit/LastTransmissionCard.vue
new file mode 100644
index 0000000..48f1590
--- /dev/null
+++ b/app/components/live-atc/cockpit/LastTransmissionCard.vue
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ {{ text }}
+
+
+ {{ faultNote || 'Marked as faulty.' }}
+
+
+
+
+
diff --git a/app/components/live-atc/cockpit/TextInputPanel.vue b/app/components/live-atc/cockpit/TextInputPanel.vue
new file mode 100644
index 0000000..aff00db
--- /dev/null
+++ b/app/components/live-atc/cockpit/TextInputPanel.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+ Text input
+ {{ activeFrequency || '---.---' }}
+
+
+
+
+
+ Suggested phrase
+
+
+
+
+
+
diff --git a/app/pages/live-atc.vue b/app/pages/live-atc.vue
index 80b7475..07dbf9c 100644
--- a/app/pages/live-atc.vue
+++ b/app/pages/live-atc.vue
@@ -305,39 +305,12 @@
-
-
-
-
Text Input
- {{ frequencies.active || '---' }}
-
-
-
-
-
Suggested phrase
-
-
- {{ backendExpectedPhrase }}
-
-
-
-
-
+
@@ -346,92 +319,13 @@
v-if="lastTransmission"
class="pm-block"
>
-
-
-
-
-
-
- Last transmission
-
-
-
-
- Faulty
-
-
-
- mdi-alert-circle-outline
-
- {{ lastTransmissionFaulty ? 'Edit issue' : 'Mark as faulty' }}
-
-
-
- mdi-restore
-
- Reset
-
-
-
- mdi-close
-
- Delete
-
-
-
- {{ lastTransmission }}
-
-
Issue description
-
- {{ lastTransmissionFaultNote }}
-
-
- Marked as faulty.
-
-
-
-
+
@@ -444,32 +338,12 @@
@@ -608,6 +482,9 @@ import { useFrequencyPresets } from '~/composables/useFrequencyPresets'
import RadioPanel from '~/components/live-atc/cockpit/RadioPanel.vue'
import ExpectedCommStrip from '~/components/live-atc/cockpit/ExpectedCommStrip.vue'
import PttPad from '~/components/live-atc/cockpit/PttPad.vue'
+import TextInputPanel from '~/components/live-atc/cockpit/TextInputPanel.vue'
+import LastTransmissionCard from '~/components/live-atc/cockpit/LastTransmissionCard.vue'
+import CommLogRail from '~/components/live-atc/cockpit/CommLogRail.vue'
import { useAtisPlayback } from '~/composables/useAtisPlayback'
import { usePttRecording } from '~/composables/usePttRecording'
import { useBugReport } from '~/composables/useBugReport'
@@ -750,7 +627,6 @@ const {
transmissionIssueNote,
setLastTransmission,
clearLastTransmission,
- resetLastTransmissionFault,
startTransmissionIssueFlow,
confirmTransmissionIssue,
removeTransmissionIssue,
@@ -1564,44 +1440,6 @@ onUnmounted(() => {
display: none;
}
-.pm-readback-check {
- margin-bottom: 10px;
- padding: 10px 12px;
- border: 1px solid var(--border);
- border-radius: 12px;
- background: color-mix(in srgb, var(--text) 4%, transparent);
- font-size: 11.5px;
-}
-.pm-readback-head {
- display: flex;
- align-items: center;
- gap: 6px;
- text-transform: uppercase;
- letter-spacing: .12em;
- font-size: 10px;
- font-weight: 600;
- color: color-mix(in srgb, var(--text) 55%, transparent);
- margin-bottom: 6px;
-}
-.pm-readback-heard {
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
- color: color-mix(in srgb, var(--text) 50%, transparent);
- margin-bottom: 6px;
- font-size: 11px;
-}
-.pm-readback-row {
- display: flex;
- align-items: flex-start;
- gap: 6px;
- font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
- line-height: 1.5;
-}
-.pm-readback-row.is-ok { color: #6ee7a8; }
-.pm-readback-row.is-missing { color: #fca5a5; }
-.pm-readback-field { color: var(--t2); }
-.pm-readback-expected { color: var(--text); font-weight: 600; }
-.pm-readback-forms { color: var(--t4); }
-
/* Setup screens sit above the shared radar backdrop. */
.pm-setup {
position: relative;