#touchHintDismiss{display:none}
/* Shared touch HUD contract. Content is measured by touch-layout.js. */
body.touch.touch-layout{
  --touch-left:calc(var(--sal,0px) + var(--movli-space-3));
  --touch-right:calc(var(--sar,0px) + var(--movli-space-3));
  --touch-bottom:calc(var(--sab,0px) + var(--movli-space-3));
  --touch-top:calc(var(--sat,0px) + var(--movli-space-3));
  --touch-steer-width:clamp(128px,calc((100vw - var(--touch-left) - var(--touch-right) - 230px)/2),var(--movli-touch-steer-width));
  --touch-nav-width:min(440px,calc(100vw - var(--touch-left) - var(--touch-right) - 60px));
}
body.touch.touch-layout :is(#touchTeacherButton,#soundCtl,#tTop){display:none}
body.touch.touch-layout #driveUtilities{top:var(--touch-top);right:var(--touch-right);gap:var(--movli-space-2)}
body.touch.touch-layout #diagnosticsToggle{display:none}
body.touch.touch-layout #tPause{display:none}
body.touch.touch-layout #tTop{top:auto;left:calc(var(--touch-left) + 112px);bottom:calc(var(--touch-bottom) + var(--movli-touch-steer-height) + var(--movli-space-2))}
body.touch.touch-layout #tFocus{height:var(--movli-icon-target);min-width:94px;padding:0 var(--movli-space-2);font-size:14px;letter-spacing:0}
body.touch.touch-layout #tLeft{left:var(--touch-left);bottom:var(--touch-bottom);gap:var(--movli-space-2)}
body.touch.touch-layout #tSignals{gap:var(--movli-space-2)}
body.touch.touch-layout .tSig{width:var(--movli-icon-target);height:var(--movli-icon-target)}
body.touch.touch-layout #tSteer{width:var(--touch-steer-width);height:var(--movli-touch-steer-height);background:color-mix(in srgb,var(--movli-hud-surface) 80%,transparent);border-color:var(--movli-slate-500);border-radius:var(--movli-radius-control)}
body.touch.touch-layout #tSteer .tLbl{display:none}
body.touch.touch-layout #tSteerKnob{width:24px;height:24px;margin:-12px 0 0 -12px;background:var(--movli-sky-300);border:0;box-shadow:none}
body.touch.touch-layout #tSteer.on #tSteerKnob{background:var(--movli-sky-300)}
body.touch.touch-layout .tLbl{font:700 12px var(--movli-font-body);color:var(--movli-hud-muted);letter-spacing:0}
body.touch.touch-layout .tBtn,body.touch.touch-layout .tPedal{background:var(--movli-hud-surface);color:var(--movli-hud-text);border-color:var(--movli-slate-500);box-shadow:none;text-shadow:none}
body.touch.touch-layout .tBtn.on{background:var(--movli-sky-700);border-color:var(--movli-sky-300)}
body.touch.touch-layout #tBrake.on{background:var(--movli-danger-600)}
body.touch.touch-layout #tGas.on{background:var(--movli-go-700)}
body.touch.touch-layout #tRight{right:var(--touch-right);bottom:var(--touch-bottom);width:clamp(112px,calc((100vw - var(--touch-left) - var(--touch-right) - 214px)/2),184px);height:var(--movli-touch-pedal-height);gap:var(--movli-space-2);flex-direction:row}
body.touch.touch-layout .tPedal{position:relative;isolation:isolate;overflow:hidden;min-width:44px;font:800 14px var(--movli-font-display);letter-spacing:0}
body.touch.touch-layout .tPedal::before{content:"";position:absolute;inset:auto 0 0;height:var(--touch-pedal-pressure,0%);background:var(--movli-sky-700);z-index:-1}
body.touch.touch-layout #tBrake::before{background:var(--movli-danger-600)}
body.touch.touch-layout #tGas::before{background:var(--movli-go-700)}
body.touch.touch-layout :is(#tGas,#tBrake).on{background:var(--movli-hud-surface)}
body.touch.touch-layout #tGear{left:calc(50% + (var(--sal,0px) - var(--sar,0px))/2);bottom:var(--touch-bottom);gap:4px}
body.touch.touch-layout .tGearB{width:var(--movli-icon-target);height:var(--movli-icon-target);font:800 18px var(--movli-font-display)}
body.touch.touch-layout #wrap #nav{position:absolute;z-index:8;left:var(--touch-left);right:auto;top:var(--touch-route-top);width:max-content;max-width:var(--touch-nav-width);box-sizing:border-box;pointer-events:auto;cursor:pointer}
body.touch.touch-layout #wrap #nav:focus-visible{outline:3px solid var(--movli-focus);outline-offset:3px}
body.touch.touch-layout #wrap #navTop,body.touch.touch-layout #wrap #navRoad{display:none}
body.touch.touch-layout #touchRouteLabel{display:block;padding:var(--movli-space-1) var(--movli-space-3) 0;font:500 12px var(--movli-font-body);color:var(--movli-hud-muted)}
body.touch.touch-layout #wrap #nav #navAct{padding:var(--movli-space-1) var(--movli-space-3);font:800 18px/1.2 var(--movli-font-display);gap:var(--movli-space-2)}
body.touch.touch-layout #wrap #nav .navD{font-size:14px;line-height:1.25;margin-top:var(--movli-space-1)}
body.touch.touch-layout #competency-progress{display:none!important}
#touchTripStatus{font:500 14px/1.4 var(--movli-font-body);color:var(--movli-text-muted)}
/* A single measured cue slot; long text goes to a paused, fully readable dialog. */
body.touch.touch-layout #veileder:not(.minimert){position:absolute;left:var(--touch-cue-left);top:var(--touch-cue-top);width:var(--touch-cue-width);min-width:0;max-height:none;display:grid;grid-template-columns:var(--movli-touch-teacher-size) minmax(0,1fr);gap:var(--movli-space-2);padding:0;align-items:start;overflow:visible;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body.touch.touch-layout #veileder #vAnsikt{grid-column:1;grid-row:1;margin:0;width:var(--movli-touch-teacher-size);height:var(--movli-touch-teacher-size);min-height:0;border-radius:var(--movli-radius-round);align-self:center}
body.touch.touch-layout #veileder #vSpeech{grid-column:2;grid-row:1;width:auto;padding:var(--movli-space-2);background:color-mix(in srgb,var(--movli-hud-surface) 80%,transparent);border:0;max-height:none;overflow:visible;pointer-events:none}
body.touch.touch-layout #veileder #vTekst{padding:0!important;font:500 16px/1.3 var(--movli-font-body);color:var(--movli-hud-text);max-height:none;overflow:visible}
body.touch.touch-layout #veileder :is(#vControls,#vSteg,#vControlBand,#vMute,#vMinimer,#vMiniVisual,#vNavn,#assistance-phase){display:none!important}
body.touch.touch-layout #veileder.minimert,body.touch.touch-layout.utenveileder #veileder{display:none!important}
body.touch.touch-layout #veileder[data-touch-suppressed="true"] #vSpeech{visibility:hidden}
body.touch.touch-layout #tHint{left:calc(var(--touch-left) + var(--movli-touch-teacher-size) + var(--movli-space-2));top:var(--touch-cue-top);bottom:auto;transform:none;width:calc(var(--touch-cue-width) - var(--movli-touch-teacher-size) - var(--movli-space-2));max-width:none;padding:var(--movli-space-2);box-sizing:border-box;display:flex;gap:var(--movli-space-2);align-items:center;text-align:left;background:var(--movli-hud-surface);color:var(--movli-hud-text);font:500 16px/1.3 var(--movli-font-body);opacity:1;transition:none;pointer-events:auto}
body.touch.touch-layout #tHint.gone{display:none}
body.touch.touch-layout #touchHintDismiss{display:block;flex:none;min-height:var(--movli-icon-target);background:var(--movli-slate-600);color:var(--movli-hud-text);border:0;padding:var(--movli-space-2);border-radius:var(--movli-radius-control);font:700 14px var(--movli-font-body)}
body.touch.touch-layout #toasts{display:none}
/* The assistance cue already identifies its target. Never draw arrows through touch controls. */
body.touch.touch-layout #teacher-arrow{display:none!important}
body.touch.touch-layout #cabinActivity{display:none}
body.touch.touch-layout.touch-blocked :is(#touchUI,#nav,#veileder,#driveUtilities,#competency-progress,#toasts){visibility:hidden!important}
body.touch.touch-layout #rotateOv{z-index:170}
#rotateOv .card b{color:inherit}
#rotateExit{margin-top:var(--movli-space-4)}
.touch-reading-dialog{display:flex!important;flex-direction:column;max-height:calc(100dvh - 32px - var(--sat,0px) - var(--sab,0px))!important}
.touch-reading-body{overflow:auto;min-height:0;overscroll-behavior:contain;touch-action:pan-y;font:400 16px/1.5 var(--movli-font-body);color:var(--movli-text)}
.movli-dialog-overlay.competency-page:has(.touch-reading-dialog){padding:max(var(--movli-space-6),var(--movli-safe-top)) max(var(--movli-space-6),var(--movli-safe-right)) max(var(--movli-space-6),var(--movli-safe-bottom)) max(var(--movli-space-6),var(--movli-safe-left))}
.touch-reading-body p{white-space:pre-line}
.touch-reading-dialog .dialog-actions{flex:none;margin-top:var(--movli-space-4)}
.touch-reading-controls{display:flex;flex-wrap:wrap;gap:var(--movli-space-2);margin-top:var(--movli-space-4)}
.touch-reading-controls:first-child{margin-top:0}
.touch-reading-dialog .page-intro{font-size:14px!important;margin-bottom:var(--movli-space-3)!important}
@media(orientation:landscape) and (max-height:420px){
  .movli-dialog-overlay .course-card.movli-dialog.touch-reading-dialog{padding:var(--movli-space-4)}
}
/* Height-aware welcome keeps readiness and the first decision visible. */
@media(orientation:landscape) and (max-height:550px){
  .movli-dialog-overlay .welcome-cockpit.movli-dialog{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);padding:var(--movli-space-4);column-gap:var(--movli-space-6);width:min(680px,100%)}
  .welcome-cockpit .welcome-content{display:contents}
  .welcome-cockpit .welcome-art{display:block;grid-column:1;grid-row:1/4;min-height:0;border-radius:var(--movli-radius-control)}
  .welcome-cockpit .welcome-art .mode-art{height:100%;min-height:0}
  .welcome-cockpit .welcome-heading{grid-column:2;padding:0}
  .welcome-cockpit .welcome-eyebrow,.welcome-cockpit .welcome-description{display:none}
  .welcome-cockpit h1{font-size:32px}
  .welcome-cockpit .welcome-note{grid-column:2;margin:var(--movli-space-2) 0;font-size:14px}
  .movli-dialog-overlay .welcome-cockpit.movli-dialog>.dialog-actions{grid-column:2;padding:0;margin:0;gap:var(--movli-space-2)}
  .welcome-cockpit .dialog-actions .introduction-continue{min-height:48px}
  .welcome-cockpit .drive-preparation{font-size:14px;max-height:40px}
  .welcome-cockpit .dialog-utilities{grid-column:2;margin:var(--movli-space-1) 0 0;padding:0;border:0;background:none;justify-content:flex-end}
  .welcome-cockpit .dialog-utilities>span{display:none}
}
/* A distance can share the maneuver line; recovery qualifications retain their own line. */
body.touch.touch-layout #wrap #nav .navD{display:inline-block;margin:0 0 0 var(--movli-space-2)}
body.touch.touch-layout #wrap #nav.recovery .navD{display:block;margin:var(--movli-space-1) 0 0}
body.touch.touch-layout #veileder #vSpeech #vTekst{font:500 16px/1.3 var(--movli-font-body)}
@media(orientation:landscape) and (max-height:550px){
  .welcome-cockpit .welcome-art{grid-row:1/5;position:relative;overflow:hidden}
  .welcome-cockpit .welcome-art .mode-art{position:absolute;inset:0;width:100%;height:100%;transform:none}
  .welcome-cockpit .welcome-art .mode-art svg{width:100%;height:100%}
  .welcome-cockpit .welcome-heading{grid-row:1}
  .welcome-cockpit .welcome-note{grid-row:2}
  .movli-dialog-overlay .welcome-cockpit.movli-dialog>.dialog-actions{grid-row:3}
  .welcome-cockpit .dialog-utilities{grid-row:4}
}
@media(orientation:landscape) and (max-height:550px){
  .movli-dialog-overlay .welcome-cockpit.movli-dialog{row-gap:0}
  .movli-dialog-overlay .welcome-cockpit.movli-dialog h1{font-size:32px;line-height:1.06;margin:0;padding:0}
  .movli-dialog-overlay .welcome-cockpit.movli-dialog .welcome-note{font:400 14px/1.35 var(--movli-font-body);margin:var(--movli-space-2) 0}
  .movli-dialog-overlay .welcome-cockpit.movli-dialog .welcome-art{align-self:stretch;justify-self:stretch;height:auto;width:auto}
}

body.touch.touch-layout #veileder #vTekst::before{display:none}
