/* Mira 2: Trainingsplanung ohne Scrollen */
:root{--pl-planner-gap:clamp(8px,1.5vh,16px)}
body:has(dialog[open]){overflow:hidden}
.pl-dialog[open]{position:fixed;inset:var(--pl-header-height) 0 0;width:100%;height:calc(var(--pl-visual-viewport-height, 100dvh) - var(--pl-header-height));max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--pl-paper);overflow:hidden}
.pl-dialog[open]::backdrop{background:rgba(40,27,24,.58)}
.pl-dialog[open]>form,.pl-dialog[open]>div{box-sizing:border-box;width:min(100%,1440px);height:100%;margin:auto;padding:clamp(10px,2vh,22px) clamp(14px,3vw,42px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:var(--pl-planner-gap);overflow:hidden}
.pl-dialog[open] .pl-dialog__head{min-height:0;margin:0;padding:0 52px 0 0}
.pl-dialog[open] .pl-dialog__head h2{font-size:clamp(22px,3.4vh,38px);line-height:1;margin:.1em 0}
.pl-dialog[open] .pl-dialog__head p{margin:.25em 0;font-size:clamp(10px,1.5vh,13px)}
.pl-dialog[open] .pl-dialog__close{position:absolute;top:clamp(10px,2vh,22px);right:clamp(14px,3vw,42px);z-index:3;width:44px;height:44px}
.pl-mira2-stage{min-height:0;display:grid;align-content:center;overflow:hidden}
.pl-mira2-page{min-height:0;max-height:100%;display:grid;align-content:center;gap:var(--pl-planner-gap);overflow:hidden}
.pl-mira2-page[hidden]{display:none!important}
.pl-mira2-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:6px 0 max(6px,env(safe-area-inset-bottom));border-top:1px solid var(--pl-line);background:var(--pl-paper)}
.pl-mira2-actions__progress{font-size:11px;font-weight:800;color:var(--pl-muted);text-align:center}
.pl-mira2-actions .pl-button{min-width:132px;min-height:44px}
.pl-mira2-page .pl-form-row,.pl-mira2-page .pl-schedule-options{margin:0;gap:10px}
.pl-mira2-page .pl-field__help,.pl-mira2-page .pl-save-note{margin:.25em 0;font-size:clamp(9px,1.35vh,11px);line-height:1.35}
.pl-mira2-page .pl-option-grid,.pl-mira2-page .pl-exercise-options{max-height:none!important;overflow:visible!important}
.pl-mira2-page .pl-plan-blocks{display:block;min-height:0}
.pl-mira2-block{display:grid;align-content:center;gap:10px;min-height:0}
.pl-mira2-block[hidden]{display:none!important}
.pl-mira2-pager{display:flex;align-items:center;justify-content:center;gap:10px}
.pl-mira2-pager button{min-width:44px;min-height:44px}
.pl-mira2-live{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pl-team-check-pager{display:flex;align-items:center;justify-content:center;gap:10px}
.pl-team-check-pager span{min-width:92px;text-align:center;font-size:10px;font-weight:800;color:var(--pl-muted)}
#team-dialog .pl-option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#team-dialog .pl-option-card{min-height:72px;padding:10px 12px}
#team-dialog .pl-dialog__actions{margin:0}
#team-dialog[open]>form{grid-template-rows:auto minmax(0,1fr) auto auto}
#team-dialog[open] .pl-season-wizard{min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;align-content:center;overflow:hidden}
#season-team-dialog[open]>#season-team-panel{grid-template-rows:auto minmax(0,1fr)}
#season-team-dialog[open]>#season-team-panel>section:not([hidden]){min-height:0;display:grid;align-content:center;overflow:hidden}
#planning-journey{overflow:hidden}
#planning-journey ol{overflow:hidden}
@media(max-width:720px){
 .pl-dialog[open]{inset:0;height:var(--pl-visual-viewport-height, 100dvh)}
 .pl-dialog[open]>form,.pl-dialog[open]>div{padding:10px 12px;grid-template-rows:auto minmax(0,1fr) auto}
 .pl-dialog[open] .pl-dialog__head{padding-right:46px}
 .pl-dialog[open] .pl-dialog__head h2{font-size:clamp(20px,3.2vh,28px)}
 .pl-dialog[open] .pl-dialog__head p:not(.pl-kicker){display:none}
 .pl-mira2-page .pl-form-row{grid-template-columns:1fr}
 .pl-mira2-actions .pl-button{min-width:0;flex:1;padding-inline:10px}
 .pl-mira2-actions__progress{font-size:10px;max-width:34%}
 .pl-journey ol{grid-template-columns:1fr!important}
 #team-dialog .pl-option-grid{grid-template-columns:1fr 1fr}
 #team-dialog .pl-option-card span{display:none}
 .pl-team-check-pager .pl-button{min-width:44px;font-size:0}
 #season-page-back::after{content:'←';font-size:18px}
 #season-page-next::after{content:'→';font-size:18px}
}
@media(max-height:650px){
 .pl-dialog[open]>form,.pl-dialog[open]>div{padding-block:6px;gap:6px}
 .pl-dialog[open] .pl-dialog__head p:not(.pl-kicker){display:none}
 .pl-dialog[open] .pl-dialog__head h2{font-size:20px}
 .pl-mira2-page{gap:6px}
 .pl-mira2-page .pl-field__help,.pl-mira2-page .pl-save-note{display:none}
}
@media(max-width:360px),(max-height:590px){
 .pl-dialog[open] .pl-dialog__head .pl-kicker{font-size:8px}
 .pl-mira2-actions{gap:5px}
 .pl-mira2-actions .pl-button{font-size:10px;padding:8px}
}
@media(orientation:landscape) and (max-height:520px){
 .pl-dialog[open]{inset:0;height:var(--pl-visual-viewport-height, 100dvh)}
 .pl-dialog[open]>form{grid-template-columns:minmax(180px,28%) minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto}
 .pl-dialog[open] .pl-dialog__head{grid-row:1/3;align-self:center}
 .pl-mira2-stage{grid-column:2}
 .pl-mira2-actions{grid-column:2}
}
@media(prefers-reduced-motion:reduce){.pl-mira2-page{animation:none!important}}
@media print{body:has(dialog[open]){overflow:visible}.pl-dialog[open]{position:static;height:auto;overflow:visible}.pl-mira2-actions{display:none}}


/* LIN-005 redeploy: programmatic heading focus stays accessible without a misleading control outline */
#team-dialog #team-dialog-title:focus{outline:none}

/* LIN-004: iPad selection prominence and card paging */
#team-dialog #season-question-help{display:block;margin:10px 0 0;padding:11px 14px;border-left:5px solid var(--pl-terra);color:var(--pl-brown);background:var(--pl-cream);font-size:clamp(13px,1.7vh,16px);font-weight:850;line-height:1.25}
#team-dialog #season-question-help.is-complete{border-left-color:var(--pl-olive-text);color:var(--pl-olive-text)}
#team-dialog #season-selection-count{align-self:center;padding:8px 10px;border:1px solid var(--pl-line);background:white;font-size:11px;white-space:nowrap}
.pl-exercise-card-pager{display:flex;align-items:center;justify-content:center;gap:12px;min-height:46px;margin-top:8px}
.pl-exercise-card-pager strong{min-width:110px;color:var(--pl-muted);font-size:11px;text-align:center}
.pl-exercise-card-pager .pl-button{min-width:108px;min-height:42px;padding:9px 14px}
.pl-mira2-block .pl-exercise-options{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0}
.pl-mira2-block .pl-exercise-card[hidden]{display:none!important}
.pl-mira2-block{grid-template-rows:auto minmax(0,1fr) auto;align-content:stretch}
.pl-mira2-block .pl-exercise-card{min-height:0;max-height:100%}
@media(max-width:720px){
 #team-dialog .pl-season-wizard__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
 #team-dialog #season-question-help{grid-column:1/-1;font-size:13px}
 .pl-mira2-block .pl-exercise-options{grid-template-columns:1fr}
 .pl-exercise-card-pager .pl-button{min-width:76px}
}


/* LIN-007: real Safari viewport and stable Team-Check action */
html:has(.pl-dialog[open]),body:has(.pl-dialog[open]){height:var(--pl-visual-viewport-height,100dvh);max-height:var(--pl-visual-viewport-height,100dvh);overflow:hidden;overscroll-behavior:none}
#team-dialog[open]{contain:layout paint}
#team-dialog[open] .pl-dialog__actions{position:relative;z-index:4}
#team-dialog[open] #save-team{touch-action:manipulation}


/* LIN-008: Team-Check pager and cards occupy separate, stable grid rows */
#team-dialog[open]>form{grid-template-rows:auto minmax(0,1fr) auto auto}
#team-dialog[open] .pl-season-wizard{margin-top:0;padding-top:clamp(8px,1.4vh,16px);grid-template-rows:auto minmax(0,1fr) auto auto;align-content:stretch;gap:clamp(6px,1.1vh,12px);overflow:hidden}
#team-dialog[open] .pl-season-wizard__head{min-height:0}
#team-dialog[open] #season-options{min-height:0;height:100%;margin-top:0;padding:2px;grid-template-rows:repeat(2,minmax(0,1fr));align-content:stretch;overflow:hidden!important}
#team-dialog[open] #season-options .pl-option-card{min-height:0;height:100%;overflow:hidden}
#team-dialog[open] .pl-team-check-pager{position:relative;z-index:1;min-height:48px;margin:0;background:var(--pl-paper)}
#team-dialog[open] #season-error{min-height:0;margin:0}
#team-dialog[open] #season-error:empty{display:none}
@media(max-height:760px){
 #team-dialog[open] .pl-dialog__head p:not(.pl-kicker){display:none}
 #team-dialog[open] #season-question-help{margin-top:6px;padding:7px 10px}
 #team-dialog[open] .pl-team-check-pager{min-height:42px}
 #team-dialog[open] .pl-dialog__actions{min-height:44px;padding-block:3px}
 #team-dialog[open] #profile-save-note{display:none}
 #team-dialog[open]>form{grid-template-rows:auto minmax(0,1fr) auto}
}


/* LIN-026: Inline-Planung gegen spätere Vollbild-Dialogregeln absichern */
html:has(.pl-planning-inline[open]):not(:has(.pl-dialog[open]:not(.pl-planning-inline))),
body:has(.pl-planning-inline[open]):not(:has(.pl-dialog[open]:not(.pl-planning-inline))){
  height:auto;
  max-height:none;
  overflow:visible;
  overscroll-behavior:auto;
}
.pl-dialog.pl-planning-inline[open]{
  position:static;
  inset:auto;
  width:100%;
  height:auto;
  max-width:none;
  max-height:none;
  margin:0 0 32px;
  padding:0;
  overflow:visible;
  contain:none;
}
.pl-dialog.pl-planning-inline[open]>form{
  box-sizing:border-box;
  width:100%;
  height:auto;
  margin:0;
  padding:clamp(20px,4vw,46px);
  display:block;
  overflow:visible;
}
.pl-dialog.pl-planning-inline[open] .pl-dialog__head{
  min-height:auto;
  margin:0 0 18px;
  padding-right:52px;
}
.pl-dialog.pl-planning-inline[open] .pl-dialog__close{
  top:0;
  right:0;
}
.pl-dialog.pl-planning-inline[open] .pl-season-wizard,
.pl-dialog.pl-planning-inline[open] .pl-option-grid,
.pl-dialog.pl-planning-inline[open] .pl-plan-blocks,
.pl-dialog.pl-planning-inline[open] .pl-exercise-options{
  height:auto;
  max-height:none;
  overflow:visible;
}
@media(max-width:720px){
  .pl-dialog.pl-planning-inline[open]{
    inset:auto;
    height:auto;
    margin-bottom:20px;
  }
  .pl-dialog.pl-planning-inline[open]>form{
    padding:22px 16px;
  }
}
@media(orientation:landscape) and (max-height:520px){
  .pl-dialog.pl-planning-inline[open]>form{
    display:block;
  }
}

/* LIN-051: systemübergreifendes Responsive-Gate für den vollständigen Planungsfluss */
.pl-dialog[open],
.pl-dialog[open] *,
.pl-dialog.pl-planning-inline[open],
.pl-dialog.pl-planning-inline[open] *{min-width:0}
.pl-dialog[open] h1,
.pl-dialog[open] h2,
.pl-dialog[open] h3,
.pl-dialog[open] h4{overflow-wrap:normal;word-break:normal;hyphens:auto}
.pl-dialog[open] button,
.pl-dialog[open] input,
.pl-dialog[open] select,
.pl-dialog[open] summary{touch-action:manipulation}
@media(max-width:720px){
 html:has(.pl-dialog[open]:not(.pl-planning-inline)),
 body:has(.pl-dialog[open]:not(.pl-planning-inline)){
   width:100%;
   height:var(--pl-visual-viewport-height,100dvh);
   max-height:var(--pl-visual-viewport-height,100dvh);
   overflow:hidden;
 }
 .pl-dialog[open]:not(.pl-planning-inline){
   inset:0;
   width:100%;
   max-width:none;
   height:var(--pl-visual-viewport-height,100dvh);
   max-height:var(--pl-visual-viewport-height,100dvh);
   margin:0;
   padding:
     env(safe-area-inset-top)
     env(safe-area-inset-right)
     env(safe-area-inset-bottom)
     env(safe-area-inset-left);
 }
 .pl-dialog[open]:not(.pl-planning-inline)>form,
 .pl-dialog[open]:not(.pl-planning-inline)>div{
   width:100%;
   max-width:none;
   height:100%;
   padding:clamp(12px,3.8vw,18px);
   padding-top:max(12px,env(safe-area-inset-top));
   padding-right:max(12px,env(safe-area-inset-right));
   padding-bottom:max(12px,env(safe-area-inset-bottom));
   padding-left:max(12px,env(safe-area-inset-left));
   gap:clamp(10px,2vh,16px);
 }
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__head{
   padding-right:54px;
   gap:12px;
 }
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__head>div{min-width:0;width:100%}
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__head h2{
   max-width:100%;
   font-size:clamp(24px,7vw,34px);
   line-height:1.04;
 }
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__close{
   top:max(12px,env(safe-area-inset-top));
   right:max(12px,env(safe-area-inset-right));
   width:48px;
   height:48px;
 }
 .pl-mira2-stage,
 .pl-mira2-page,
 #team-dialog[open] .pl-season-wizard,
 #season-team-dialog[open]>#season-team-panel>section:not([hidden]){
   min-height:0;
   align-content:start;
   overflow-x:hidden;
   overflow-y:auto;
   overscroll-behavior-y:contain;
   -webkit-overflow-scrolling:touch;
   scrollbar-gutter:stable;
 }
 .pl-mira2-page{
   max-height:none;
   padding:2px 2px max(18px,env(safe-area-inset-bottom));
 }
 #team-dialog[open] .pl-season-wizard{
   display:block;
   padding:8px 2px max(16px,env(safe-area-inset-bottom));
 }
 #team-dialog[open] .pl-season-wizard__head{
   display:block;
   width:100%;
 }
 #team-dialog[open] #season-profile-title{
   max-width:100%;
   margin:8px 0 12px;
   font-size:clamp(28px,8vw,40px);
   line-height:1.08;
 }
 #team-dialog[open] #season-selection-count{
   display:inline-flex;
   width:auto;
   max-width:100%;
   margin:0 0 10px;
   white-space:normal;
 }
 #team-dialog[open] #season-question-help{
   width:100%;
   margin:0 0 12px;
 }
 #team-dialog[open] #season-options{
   height:auto;
   grid-template-columns:1fr;
   grid-template-rows:none;
   overflow:visible!important;
 }
 #team-dialog[open] #season-options .pl-option-card{
   min-height:64px;
   height:auto;
 }
 #team-dialog[open] .pl-team-check-pager{
   position:static;
   width:100%;
   margin:14px 0 8px;
 }
 #team-dialog[open] .pl-dialog__actions,
 .pl-mira2-actions{
   flex:0 0 auto;
   flex-wrap:wrap;
   padding-bottom:max(8px,env(safe-area-inset-bottom));
 }
 #team-dialog[open] .pl-dialog__actions .pl-button{
   flex:1 1 100%;
   width:100%;
 }
 .pl-mira2-block{
   align-content:start;
   overflow:visible;
 }
 .pl-mira2-block .pl-exercise-options{grid-template-columns:1fr}
 .pl-exercise-card{
   height:auto;
   max-height:none!important;
 }
 .pl-exercise-card__content{overflow:visible}
 .pl-exercise-card-pager{
   position:sticky;
   bottom:0;
   z-index:3;
   width:100%;
   padding:8px 0 max(8px,env(safe-area-inset-bottom));
   background:var(--pl-paper);
 }
 .pl-exercise-card-pager .pl-button{
   min-width:48px;
   min-height:48px;
 }
 .pl-mira2-pager{
   display:grid;
   grid-template-columns:48px minmax(0,1fr) 48px;
   width:100%;
 }
 .pl-mira2-pager button{width:48px}
 .pl-mira2-actions__progress{max-width:none}
}
@media(max-width:420px){
 .pl-dialog[open]:not(.pl-planning-inline) .pl-kicker{
   font-size:clamp(8px,2.8vw,11px);
   letter-spacing:.16em;
 }
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__head h2{
   font-size:clamp(23px,7.4vw,31px);
 }
 #team-dialog[open] #season-profile-title{
   font-size:clamp(27px,8.4vw,36px);
 }
 .pl-team-check-pager{justify-content:space-between}
 .pl-team-check-pager span{min-width:0;flex:1}
 .pl-mira2-actions{
   display:grid;
   grid-template-columns:48px minmax(0,1fr) 48px;
 }
 .pl-mira2-actions .pl-button{
   min-width:48px;
   width:100%;
 }
}
@media(orientation:landscape) and (max-height:520px){
 .pl-dialog[open]:not(.pl-planning-inline)>form{
   display:grid;
   grid-template-columns:minmax(150px,30%) minmax(0,1fr);
   grid-template-rows:minmax(0,1fr) auto;
 }
 .pl-dialog[open]:not(.pl-planning-inline) .pl-dialog__head{
   grid-row:1/3;
   align-self:start;
 }
 .pl-mira2-stage,
 #team-dialog[open] .pl-season-wizard{grid-column:2}
 .pl-mira2-actions,
 #team-dialog[open] .pl-dialog__actions{grid-column:2}
}
@media(min-width:721px) and (max-width:1100px){
 .pl-dialog[open]>form,.pl-dialog[open]>div{padding-inline:clamp(22px,4vw,42px)}
 .pl-dialog[open] .pl-season-wizard__head{grid-template-columns:minmax(0,1fr) auto}
 .pl-mira2-block .pl-exercise-options{grid-template-columns:repeat(2,minmax(0,1fr))}
}

#apply-season-team-selection[aria-disabled="true"],
#start-new-team-planning[aria-disabled="true"]{opacity:.58;cursor:not-allowed}
#context-change-step:not([hidden]){min-height:0;display:grid;align-content:center;gap:12px}
#context-change-step .pl-dialog__actions{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}

/* LIN-091: kompakte Planerhinweise bleiben mindestens 12 px lesbar. */
.pl-dialog[open] .pl-dialog__head p,
.pl-mira2-actions__progress,
.pl-mira2-page .pl-field__help,
.pl-mira2-page .pl-save-note,
.pl-team-check-pager span,
.pl-dialog[open] .pl-dialog__head .pl-kicker,
.pl-mira2-actions .pl-button,
#team-dialog #season-selection-count,
.pl-exercise-card-pager strong {
  font-size: var(--pl-type-ui-small) !important;
  line-height: 1.25;
}

#team-dialog #season-question-help {
  font-size: var(--pl-type-ui) !important;
  line-height: 1.25;
}


/* LIN-098: kompakte Planungs-Overlays mit sichtbarem Seitenkontext */
:is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]::backdrop{
  background:rgba(38,26,24,.38);
  backdrop-filter:blur(1px);
}
:is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]{
  transform:none!important;
}
@media(min-width:721px){
  :is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]{
    position:fixed!important;
    inset:calc(var(--pl-header-height,72px) + 16px) 0 auto!important;
    width:min(760px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
    height:auto!important;
    max-height:calc(100dvh - var(--pl-header-height,72px) - 32px)!important;
    margin:0 auto!important;
    border:1px solid color-mix(in srgb,var(--pl-ink,#522a27) 18%,transparent)!important;
    border-radius:20px!important;
    box-shadow:0 24px 64px rgba(38,26,24,.24)!important;
    overflow:hidden!important;
  }
  #training-plan-dialog[open]{
    width:min(1080px,calc(100vw - 32px))!important;
  }
  :is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]>form,
  #season-team-dialog[open]>#season-team-panel{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:calc(100dvh - var(--pl-header-height,72px) - 34px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
}
@media(max-width:720px){
  :is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]{
    position:fixed!important;
    inset:auto 0 0!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:calc(var(--pl-visual-viewport-height,100dvh) - 72px)!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:20px 20px 0 0!important;
    box-shadow:0 -16px 48px rgba(38,26,24,.22)!important;
    overflow:hidden!important;
  }
  :is(#season-team-dialog,#team-dialog,#training-plan-dialog)[open]>form,
  #season-team-dialog[open]>#season-team-panel{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:calc(var(--pl-visual-viewport-height,100dvh) - 72px)!important;
    padding:14px 14px max(14px,env(safe-area-inset-bottom))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #training-plan-dialog[open]>form{
    display:block!important;
  }
  .pl-planning-start{
    min-height:48px;
    display:inline-grid!important;
    grid-template-columns:28px minmax(0,1fr);
    align-items:center;
    gap:8px;
  }
  .pl-planning-start__plus{
    display:grid;
    width:28px;
    height:28px;
    place-items:center;
    border-radius:999px;
    background:currentColor;
    color:var(--pl-paper,#fff);
    font-size:22px;
    line-height:1;
  }
}
