/* Nowy panel modułów (24.10.2026, etap 1): powitanie z datą, grupy, kafelki z nazwą 18 px,
   zwinięte „W przygotowaniu”. Węzły i identyfikatory pochodzą z zaakceptowanych szablonów. */
@media(min-width:761px){
  .panel-page .workspace.hv{padding-top:34px}
  .panel-page .hv-hero{align-items:flex-end;margin-bottom:4px}
  .panel-page .hv-date{font-size:14px;font-weight:500;color:var(--muted);margin:0 0 4px}
  .panel-page .hv-hero #sessionInfo{font-size:34px;font-weight:600;letter-spacing:-1px;line-height:1.15;margin:0}
  .panel-page .hv-sum{margin-top:8px;color:var(--muted);font-size:14px}
  .panel-page .trainer-workspace.hv .hv-hero p:not(.hv-date):not(.hv-sum){display:none}

  .panel-page .hv-group{margin-top:28px}
  .panel-page .hv-group-title{font-size:15px;font-weight:600;color:var(--ink);margin:0 4px 12px;letter-spacing:0}
  .panel-page .hv .hv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .panel-page .hv .hv-tiles-wide{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}

  /* Kafelek: ikona i nazwa w jednym wierszu, opis pod spodem, „Otwórz” na dole. */
  .panel-page .hv .module-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto auto 1fr;grid-template-areas:"icon name status" "desc desc desc" "bottom bottom bottom";column-gap:12px;row-gap:10px;padding:20px 22px 18px;border-radius:20px;min-height:150px;
    transition:translate .5s cubic-bezier(.2,.9,.25,1.05),box-shadow .35s,border-color .3s}
  .panel-page .hv .module-card .tile-top,.panel-page .hv .module-card .tile-symbol{display:contents}
  .panel-page .hv .module-card .icon-well{grid-area:icon;width:38px;height:38px;border-radius:11px}
  .panel-page .hv .module-card .module-number{display:none}
  /* Nazwa 600 jak tytuł nagłówka — przy otwieraniu modułu nazwa przelatuje do nagłówka bez zmiany grubości (24.10.2026). */
  .panel-page .hv .module-card>strong{grid-area:name;align-self:center;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:-.25px;min-width:0}
  .panel-page .hv .module-card .module-status{grid-area:status;align-self:center}
  .panel-page .hv .module-card>small{grid-area:desc;font-size:13px;line-height:1.5;max-width:60ch}
  .panel-page .hv .module-card .tile-bottom{grid-area:bottom;align-self:end;margin:0;padding-top:2px}
  .panel-page .hv .module-card .tile-bottom .open{font-size:13px}
  .panel-page .hv .module-card .open svg{transition:translate .4s cubic-bezier(.2,.9,.25,1.05)}
  .panel-page .hv .module-card:not([aria-disabled=true]):hover{translate:0 -3px;border-color:#c5ced9;box-shadow:0 18px 36px -20px rgba(37,46,60,.3)}
  .panel-page .hv .module-card:not([aria-disabled=true]):hover .open svg{translate:3px 0}

  /* „W przygotowaniu” — domyślnie zwinięte. */
  .panel-page .hv-soon{margin-top:28px}
  .panel-page .hv-soon>summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:9px;min-height:44px;margin:0 4px;font-size:15px;font-weight:600;color:var(--muted)}
  .panel-page .hv-soon>summary::-webkit-details-marker{display:none}
  .panel-page .hv-soon>summary:hover{color:var(--ink)}
  .panel-page .hv-soon .roadmap-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));padding-top:8px}
  .panel-page .hv-soon .module-card{min-height:0}
}
@media(max-width:760px){
  .panel-page .mobile-main.hv{padding-top:20px}
  .panel-page .hv .hv-hero{margin-bottom:4px}
  .panel-page .hv .hv-date{font-size:13px;color:#677587;margin:0 0 2px}
  .panel-page .hv .hv-greet{font-size:26px;letter-spacing:-.6px;margin:0 0 4px}
  .panel-page .hv .hv-group{margin-top:18px}
  .panel-page .hv .hv-group-title{font-size:15px;font-weight:600;line-height:1.3;margin:0 4px 8px;letter-spacing:0}
  .panel-page .hv .module-row .module-number{display:none}
  .panel-page .hv .module-list{border-radius:16px}
  .panel-page .hv .optional-group{margin-top:14px}
}
/* Stany kafelków (24.10.2026, etap 3): stan zastępuje opis w tym samym miejscu — opis rezerwuje dwie linie
   stanu (45 px), więc dojście danych nie zmienia wysokości kafelków. Kolor tylko przy sprawie do działania. */
.panel-page .hv .module-card>small,.panel-page .hv .module-card>.hv-state{grid-area:desc;min-height:45px}
.panel-page .hv-has-state>small,.panel-page .hv-has-state>p,.panel-page .hv-has-state>.trainer-main>p{display:none!important}
.panel-page .hv-state{display:grid;align-content:start;gap:4px;min-width:0;margin:0}
.panel-page :is(.trainer-card .trainer-main,.trainer-entry)>p{min-height:45px}
.panel-page .hv-state>.hv-line{display:flex;align-items:center;gap:8px;min-width:0;margin:0;font-size:15px;font-weight:500;line-height:21px;color:var(--ink,#293443);font-variant-numeric:tabular-nums}
.panel-page .hv-state>.hv-line>span,.panel-page .hv-state>.hv-lbl{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-page .hv-attn-line::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:currentColor}
.panel-page .hv-state>.hv-lbl{display:block;min-width:0;margin:0;font-size:13px;line-height:19.5px;color:var(--muted,#677587);font-variant-numeric:tabular-nums}
.panel-page .hv-state>.hv-lbl>span:not([class=""]){font-weight:600}
.panel-page .hv-state .hv-warn{color:#9a5b00}.panel-page .hv-state .hv-pink{color:#d92558}.panel-page .hv-state .hv-ok{color:#16794a}
.panel-page .hv-state .hv-cash{color:#16794a}.panel-page .hv-state .hv-card{color:#2563eb}.panel-page .hv-state .hv-spend{color:#a86500}
.panel-page .hv-sum .hv-attn{color:#9a5b00;font-weight:500}
/* Telefon: jedna linia pod nazwą w wierszu modułu (wysokość wiersza bez zmian). */
.panel-page .module-row .hv-brief{display:block;min-width:0;margin-top:1px;font-size:13px;font-weight:400;line-height:17px;color:var(--muted,#677587);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-page .module-row.hv-has-state .module-copy>small:not(.hv-brief){display:none}
.panel-page .module-row .hv-brief.hv-warn{color:#9a5b00}.panel-page .module-row .hv-brief.hv-pink{color:#d92558}.panel-page .module-row .hv-brief.hv-ok{color:#16794a}
/* Karta trenera: bez numeru modułu i chipu „Gotowe” — jak pozostałe kafelki nowego panelu. */
.panel-page .trainer-card .module-number,.panel-page .trainer-card .module-status{display:none!important}
/* Przytrzymanie kafelka otwiera szybkie akcje — bez systemowego podglądu linku i zaznaczania tekstu. */
.panel-page :is(.hv .module-card,.hv .module-row,.hv-today-row){-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
/* Szybkie akcje: komputer — menu przy kursorze; telefon — arkusz od dołu. */
.hv-quick{position:fixed;z-index:2147481000;box-sizing:border-box;display:grid;gap:2px;min-width:240px;max-width:min(320px,calc(100vw - 16px));padding:8px;background:#fff;border:1px solid #e0e6ee;border-radius:16px;box-shadow:0 18px 48px -12px rgba(37,46,60,.35);color:#293443;font:400 14px/1.4 Inter,"Segoe UI",Arial,sans-serif}
.hv-quick-title{margin:4px 10px 6px;font-size:12px;font-weight:600;color:#677587;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hv-quick .hv-quick-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;margin:0;padding:0 10px;border:0;border-radius:10px;background:transparent;color:#293443;font:500 14px/1.3 Inter,"Segoe UI",Arial,sans-serif;text-align:left;cursor:pointer;box-shadow:none;transform:none}
.hv-quick .hv-quick-item:hover,.hv-quick .hv-quick-item:focus-visible{background:#f2f5f8;outline:none;transform:none;box-shadow:none}
.hv-quick .hv-quick-item svg{flex:none;color:#a2adbb}
.hv-quick .hv-quick-aside{margin-top:4px;border-top:1px solid #e0e6ee;border-radius:0 0 10px 10px;color:#677587;font-weight:400}
.hv-quick.hv-sheet{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));top:auto;max-width:none;min-width:0;padding:10px 10px 12px;border-radius:20px}
.hv-quick.hv-sheet .hv-quick-title{font-size:13px;margin:6px 12px 8px}
.hv-quick.hv-sheet .hv-quick-item{min-height:52px;padding:0 12px;font-size:16px}
.hv-quick-backdrop{position:fixed;inset:0;z-index:2147480999;background:rgba(22,28,38,.32)}
/* „Na dziś” (telefon): sprawy do zrobienia na górze panelu. */
.panel-page .hv-today{margin-top:16px}
.panel-page .hv-today-list{display:grid;background:#fff;border:1px solid #e0e6ee;border-radius:16px;overflow:hidden}
.panel-page .hv-today-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:60px;margin:0;padding:10px 14px;border:0;border-radius:0;background:#fff;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:none;transform:none}
.panel-page .hv-today-row+.hv-today-row{border-top:1px solid #e0e6ee}
.panel-page .hv-today-row:active{background:#f2f5f8;transform:none}
.panel-page .hv-today-row .module-symbol{flex:none}
.panel-page .hv-today-copy{display:grid;min-width:0}
.panel-page .hv-today-line{font-size:15px;font-weight:600;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-page .hv-today-line.hv-warn{color:#9a5b00}.panel-page .hv-today-line.hv-pink{color:#d92558}
.panel-page .hv-today-name{font-size:13px;line-height:17px;color:#677587;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-page .hv-today-go{display:grid;color:#a2adbb}
/* Szkielet „Na dziś” (tyle wierszy co ostatnio) — ta sama wysokość wiersza, migotanie jak .loading-lines. */
.panel-page .hv-today-skeleton{cursor:default}
.panel-page .hv-today-skeleton .module-symbol{background:#e9edf2}
.panel-page .hv-today-skeleton .hv-today-copy{gap:8px}
.panel-page .hv-today-skeleton i{display:block;width:70%;height:12px;border-radius:6px;background:#e9edf2 linear-gradient(100deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.75) 50%,rgba(255,255,255,0) 70%) no-repeat;background-size:200% 100%;animation:xt-skeleton 1.5s ease-in-out infinite}
.panel-page .hv-today-skeleton i+i{width:40%;height:10px}
@media(prefers-reduced-motion:reduce){.panel-page .hv-today-skeleton i{animation:none}}
@media(prefers-reduced-motion:reduce){
  .panel-page .hv *{transition:none!important}
}
