/* Stabilizacja ribbonu: zawsze klasyczny pasek 45 stopni w prawym gornym rogu. */
.odin-student-dashboard .student-dashboard-card--standard .student-dashboard-card__visual>.student-dashboard-card__ribbon{
  position:absolute!important;
  top:30px!important;
  right:-45px!important;
  width:180px!important;
  min-width:180px!important;
  min-height:30px!important;
  padding:.42rem .7rem!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  transform:rotate(45deg)!important;
  transform-origin:center!important;
  clip-path:none!important;
  white-space:nowrap!important;
  text-align:center!important;
  box-shadow:0 3px 10px rgba(0,0,0,.24)!important;
}

/* Jasny motyw dashboardu: lokalne zmienne zamiast ciemnych wartosci odziedziczonych z dark mode. */
[data-bs-theme="light"] .odin-student-dashboard{
  --sd-surface:#ffffff;
  --sd-surface-2:#f7fafc;
  --sd-muted:#66798b;
  --odin-line:#d9e3eb;
  --odin-text:#172433;
}
[data-bs-theme="light"] .odin-student-dashboard .student-dashboard-card,
[data-bs-theme="light"] .odin-student-dashboard .student-side-box{
  background:#ffffff;
  color:#172433;
}
[data-bs-theme="light"] .odin-student-dashboard .student-dashboard-card__body{
  background:#ffffff;
}
[data-bs-theme="light"] .odin-student-dashboard .student-module-tools select,
[data-bs-theme="light"] .odin-student-dashboard .student-view-toggle button,
[data-bs-theme="light"] .odin-student-dashboard .student-training-load-more,
[data-bs-theme="light"] .odin-student-dashboard .student-trip-load-more{
  background-color:#f7fafc;
  border-color:#d9e3eb;
  color:#3e5263;
}
[data-bs-theme="light"] .odin-student-dashboard .student-dashboard-card__heading h3,
[data-bs-theme="light"] .odin-student-dashboard .student-dashboard-card__status-badge,
[data-bs-theme="light"] .odin-student-dashboard .student-card-actionbar__status,
[data-bs-theme="light"] .odin-student-dashboard .student-card-short-info__item strong,
[data-bs-theme="light"] .odin-student-dashboard .student-organizer-info strong{
  color:#172433;
}
[data-bs-theme="light"] .odin-student-dashboard .student-dashboard-card__progress-row .progress{
  background:#e4ebf0;
}
[data-bs-theme="light"] .odin-student-dashboard .student-card-popover{
  background:#ffffff;
  color:#172433;
  border-color:#d9e3eb;
  box-shadow:0 14px 34px rgba(31,56,78,.16);
}
[data-bs-theme="light"] .odin-student-dashboard .student-organizer-info,
[data-bs-theme="light"] .odin-student-dashboard .student-cost-breakdown,
[data-bs-theme="light"] .odin-student-dashboard .student-card-actionbar,
[data-bs-theme="light"] .odin-student-dashboard .student-card-short-info{
  border-color:#d9e3eb;
}
[data-bs-theme="light"] .odin-student-dashboard .student-estimated-total{
  background:linear-gradient(135deg,color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 9%,#fff),#f8fbfd);
  border-color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 35%,#d9e3eb);
}

/* Popovers use viewport coordinates, not the browser's centered auto margins. */
.odin-student-dashboard .student-card-popover{
  inset:auto;
  margin:0;
  box-sizing:border-box;
  overflow:auto;
  overflow-wrap:anywhere;
}
.odin-student-dashboard .student-dashboard-card__heading h3{
  overflow-wrap:anywhere;
}
[data-bs-theme="light"] .odin-student-dashboard .student-view-toggle button.is-active{
  color:var(--odin-accent-1,var(--odin-info));
  border-color:var(--odin-accent-1,var(--odin-info));
  background-color:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,var(--sd-surface-2));
}

/* Dashboard button typography and connected action groups. */
.odin-student-dashboard .btn,
.odin-student-dashboard button,
.odin-student-dashboard .student-progress-tooltip__trigger{font-weight:400!important}
.odin-student-dashboard .btn-group{gap:0}
.odin-student-dashboard .btn-group>.btn{border-radius:0!important;margin-top:0;margin-bottom:0}
.odin-student-dashboard .btn-group>.btn:first-child{border-top-left-radius:var(--odin-v2-radius)!important;border-bottom-left-radius:var(--odin-v2-radius)!important}
.odin-student-dashboard .btn-group>.btn:last-child{border-top-right-radius:var(--odin-v2-radius)!important;border-bottom-right-radius:var(--odin-v2-radius)!important}
.odin-student-dashboard .btn-group>.btn+.btn{margin-left:calc(-1 * var(--bs-border-width,1px))}

/* Kompaktowy widget Najblizsze kroki na dashboardzie. */
.odin-student-dashboard .student-next-steps-widget{
  --next-red:#ff6470;
  --next-blue:#438df8;
  --next-yellow:#f7bd4b;
  --next-session:#39bde2;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.odin-student-dashboard .student-next-steps-widget__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.7rem;
}
.odin-student-dashboard .student-next-steps-widget__head>div>span{
  display:block;
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.68rem;
  font-weight:850;
  letter-spacing:.1em;
}
.odin-student-dashboard .student-next-steps-widget__head h2{
  margin:.22rem 0 0;
  font-size:.95rem;
  line-height:1.2;
}
.odin-student-dashboard .student-next-steps-widget__head>b{
  flex:0 0 auto;
  padding:.25rem .45rem;
  border:1px solid var(--odin-line);
  border-radius:999px;
  color:var(--sd-muted,#607587);
  font-size:.66rem;
  font-weight:700;
  white-space:nowrap;
}
.odin-student-dashboard .student-next-steps-widget__list{
  display:grid;
  gap:.45rem;
}
.odin-student-dashboard .student-next-steps-widget__list>a{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  align-items:center;
  gap:.6rem;
  margin:0;
  padding:.62rem;
  border:1px solid var(--odin-line);
  border-radius:.6rem;
  background:color-mix(in srgb,var(--sd-surface-2,#f2f7fa) 92%,transparent);
  color:inherit;
  text-decoration:none;
  transition:border-color .16s ease,background .16s ease;
}
.odin-student-dashboard .student-next-steps-widget__list>a:hover{
  border-color:var(--odin-accent-1,var(--odin-info));
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 5%,var(--sd-surface-2));
}
.odin-student-dashboard .student-next-steps-widget__list>a>i{
  width:32px;
  height:32px;
  display:grid;
  place-items:center;
  border-radius:.55rem;
  font-size:.8rem;
}
.odin-student-dashboard .student-next-steps-widget__list>a.is-missing>i{
  color:var(--next-red);
  background:color-mix(in srgb,var(--next-red) 11%,transparent);
}
.odin-student-dashboard .student-next-steps-widget__list>a.is-progress>i{
  color:var(--next-blue);
  background:color-mix(in srgb,var(--next-blue) 11%,transparent);
}
.odin-student-dashboard .student-next-steps-widget__list>a.is-expiring>i{
  color:var(--next-yellow);
  background:color-mix(in srgb,var(--next-yellow) 11%,transparent);
}
.odin-student-dashboard .student-next-steps-widget__list>a.is-session>i{
  color:var(--next-session);
  background:color-mix(in srgb,var(--next-session) 12%,transparent);
}
.odin-student-dashboard .student-next-steps-widget__list span{
  min-width:0;
}
.odin-student-dashboard .student-next-steps-widget__list strong,
.odin-student-dashboard .student-next-steps-widget__list small{
  display:block;
}
.odin-student-dashboard .student-next-steps-widget__list strong{
  font-size:.8rem;
  line-height:1.25;
}
.odin-student-dashboard .student-next-steps-widget__list small{
  margin-top:.14rem;
  color:var(--sd-muted,#607587);
  font-size:.7rem;
  line-height:1.35;
}
.odin-student-dashboard .student-next-steps-widget__list em{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.7rem;
  font-style:normal;
  font-weight:700;
  white-space:nowrap;
}
.odin-student-dashboard .student-next-steps-widget__section{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  margin:.85rem 0 .45rem;
  padding-top:.75rem;
  border-top:1px solid var(--odin-line);
}
.odin-student-dashboard .student-next-steps-widget__section>span{
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.67rem;
  font-weight:850;
  letter-spacing:.08em;
}
.odin-student-dashboard .student-next-steps-widget__section>b{
  color:var(--sd-muted,#607587);
  font-size:.66rem;
  font-weight:700;
}
.odin-student-dashboard .student-next-steps-widget__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.6rem;
  margin-top:.7rem;
  padding-top:.65rem;
  border-top:1px solid var(--odin-line);
}
.odin-student-dashboard .student-next-steps-widget__footer>a{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.72rem;
  font-weight:750;
  text-decoration:none;
}
[data-bs-theme="light"] .odin-student-dashboard .student-next-steps-widget__list>a{
  background:#f7fafc;
}
@media(max-width:1199.98px){
  .odin-student-dashboard .student-next-steps-widget__list>a{grid-template-columns:32px minmax(0,1fr)}
  .odin-student-dashboard .student-next-steps-widget__list em{grid-column:2}
}
@media(max-width:767.98px){
  .odin-student-dashboard .student-next-steps-widget__head{align-items:center}
  .odin-student-dashboard .student-next-steps-widget__list>a{grid-template-columns:32px minmax(0,1fr)}
  .odin-student-dashboard .student-next-steps-widget__list em{display:none}
  .odin-student-dashboard .student-next-steps-widget__footer{align-items:flex-start;flex-direction:column}

  /* Floating bottom navigation must never cover the final dashboard module. */
  .odin-v2-content:has(.odin-student-dashboard){
    padding-bottom:calc(var(--odin-v2-mobilebar) + 4.5rem + env(safe-area-inset-bottom))!important;
  }
  .odin-student-dashboard{
    padding-bottom:1rem;
  }
}


/* Sticky right rail, heading-style counter and reusable session actions. */
@media(min-width:768px){
  .odin-student-dashboard .student-dashboard-side{
    position:sticky;
    top:calc(var(--odin-v2-header-height,64px) + 1rem);
    align-self:start;
    max-height:calc(100dvh - var(--odin-v2-header-height,64px) - 2rem);
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin
  }
}
.odin-student-dashboard .student-next-steps-widget__heading{
  align-items:flex-start;
  min-height:42px;
  margin-bottom:1rem
}
.odin-student-dashboard .student-next-steps-widget__heading h2{
  margin:0;
  font-size:1.12rem;
  line-height:1.2
}
.odin-student-dashboard .student-next-steps-widget__heading p{
  margin:.2rem 0 0;
  color:var(--sd-muted,#607587);
  font-size:.72rem;
  line-height:1.35
}
.odin-student-dashboard .student-next-steps-widget__count{
  display:grid;
  width:42px;
  height:42px;
  flex:0 0 42px;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 45%,var(--odin-line));
  border-radius:.65rem;
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 10%,transparent);
  color:var(--odin-accent-1,var(--odin-info));
  font-size:1.08rem;
  font-weight:900
}
.odin-student-dashboard .student-next-step-session>button{
  display:grid;
  grid-template-columns:32px minmax(0,1fr) auto;
  align-items:center;
  gap:.6rem;
  width:100%;
  margin:0;
  padding:.62rem;
  border:1px solid var(--odin-line);
  border-radius:.6rem;
  background:#f2f7fa;
  color:inherit;
  font:inherit;
  text-align:left;
  transition:border-color .16s ease,background .16s ease;
  cursor:pointer
}
.odin-student-dashboard .student-next-step-session>button:hover,
.odin-student-dashboard .student-next-step-session>button:focus-visible{
  border-color:var(--odin-accent-1,var(--odin-info));
  background:color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 5%,var(--sd-surface-2))
}
.odin-student-dashboard .student-next-step-session>button>i{
  display:grid;
  width:32px;
  height:32px;
  place-items:center;
  border-radius:.55rem;
  background:color-mix(in srgb,var(--next-session) 12%,transparent);
  color:var(--next-session);
  font-size:.8rem
}
.odin-student-dashboard .student-next-step-session>button span{min-width:0}
.odin-student-dashboard .student-next-step-session>button strong,
.odin-student-dashboard .student-next-step-session>button small{display:block}
.odin-student-dashboard .student-next-step-session>button strong{
  font-size:.8rem;
  line-height:1.25
}
.odin-student-dashboard .student-next-step-session>button small{
  margin-top:.14rem;
  color:var(--sd-muted,#607587);
  font-size:.7rem;
  line-height:1.35
}
.odin-student-dashboard .student-next-step-session>button em{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.7rem;
  font-style:normal;
  font-weight:700;
  white-space:nowrap
}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad{
  margin-top:.75rem;
  padding:.82rem .9rem;
  border-top:2px solid color-mix(in srgb,var(--odin-accent-1,var(--odin-info)) 58%,var(--odin-line));
  background:#f2f7fa
}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad>*{display:block}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad>span{
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.09em
}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad>strong{
  margin-top:.28rem;
  font-size:.76rem;
  line-height:1.3
}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad>small{
  margin-top:.18rem;
  color:var(--sd-muted,#607587);
  font-size:.66rem;
  line-height:1.35
}
:is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad>a{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  margin-top:.5rem;
  color:var(--odin-accent-1,var(--odin-info));
  font-size:.68rem;
  font-weight:750;
  text-decoration:none
}
@media(max-width:1199.98px) and (min-width:768px){
  .odin-student-dashboard .student-next-step-session>button{grid-template-columns:32px minmax(0,1fr)}
  .odin-student-dashboard .student-next-step-session>button em{grid-column:2}
}
@media(max-width:767.98px){
  .odin-student-dashboard .student-dashboard-side{
    position:static;
    max-height:none;
    overflow:visible
  }
  .odin-student-dashboard .student-next-step-session>button{grid-template-columns:32px minmax(0,1fr)}
  .odin-student-dashboard .student-next-step-session>button em{display:none}
}


/* Dedicated training/trip menu views reuse the dashboard card modules. */
.odin-student-dashboard.is-section-view>.student-carousel[hidden],
.odin-student-dashboard.is-section-view .student-content-module[hidden],
.odin-student-dashboard.is-section-view .student-dashboard-module-divider[hidden],
.odin-student-dashboard.is-section-view .student-dashboard-side[hidden]{display:none!important}
.odin-student-dashboard.is-section-view .student-dashboard-grid{
  grid-template-columns:minmax(0,1fr);
  padding-top:1.35rem
}
.odin-student-dashboard.is-section-view .student-dashboard-main{min-width:0}
.odin-student-dashboard.is-section-view .student-content-module>header{margin-bottom:1rem}
@media(max-width:767.98px){
  .odin-student-dashboard.is-section-view .student-dashboard-grid{padding-top:1rem}
}

html[data-bs-theme="dark"] :is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad,
body[data-theme="dark"] :is(.student-home-components-workspace,.training-occurrence-workspace) .student-side-ad{background:#102233}
