﻿:root {
    --color-primary--violet: #1701A4;
    --color-primary--cyan: #51EAFF;
    --color-primary--black: #000000;
    --color-primary--orange: #ffda00; /* pomarańczowy akcentów */
    --color-primary--skyBlue: #4A90E2;
    --color-primary--grey: #666;
    --color-primary--grafit: #333;
    --color-primary--lawnGreen: #7CFC00;
    --color-primary--lawnGreen-alpha40: rgba(124, 252, 0, 0.4);
    --color-primary--lawnGreen-alpha50: rgba(124, 252, 0, 0.8);
    --color-primary--lawnGreen-alpha90: rgba(124, 252, 0, 0.9);
    --sbw: 0px; /* scrollbar width (computed in JS) */
}

/* ===== NEW BADGE ===== */
.chip-new {
    position: absolute;
    top: -6px;
    right: -8px;
    letter-spacing: .5px;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
    line-height: 1;
    z-index: 5;
    font-size: .62rem;
    font-weight: 700;
    text-transform: uppercase;
    color: rgba(255,255,255, 0.8);
    background: rgba(18,184,134,0.8);
    border: 1px solid rgba(18,184,134,.45);
    border-radius: 999px;
    padding: 3px 7px 4px;
}



@media (min-width: 768px) {
    .chip-new { font-size: .7rem; padding: 3px 7px 4px; }
}

/* Globalnie: stały pionowy scrollbar + brak poziomego przewijania */
html {
    min-height: 100%;
    overflow-x: hidden;
    overflow-y: scroll; /* zawsze widoczny pionowy pasek, stała szerokość viewportu */
    /* compatibility: prefer standard text-size-adjust across engines */
    text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}

body {
    min-height: 100%;
    overflow-x: hidden;
}

/* (opcjonalny) fallback kompensacji szerokości scrollbara */
body.splash-comp { padding-right: var(--sbw); }

/* Zablokuj przewijanie treści podczas splash, ale zostaw widoczny pasek na html */
body.splash-active {
    position: fixed;
    inset: 0; /* top:0; right:0; bottom:0; left:0; */
    width: 100%;
    overflow: hidden;
}

.section-divider {
    border: none; /* usuń domyślne obramowanie */
    height: 2px; /* grubość linii */
    background: linear-gradient( to right, transparent, rgba(0, 123, 255, 0.6), transparent ); /* delikatny gradient */
    border-radius: 2px; /* lekko zaokrąglone krawędzie */
    margin: 2rem 0 4rem 0;
}

.sectionHeader {
    color: var(--color-primary--violet);
    font-size: 2.5rem; /* adjust if you want larger */
    line-height: 1.2;
    font-weight: bolder;
    margin-top: 0.5rem; /* mt-2 */
    margin-bottom: 3rem; /* mb-3 */
}

.sectionHeaderH2 {
    font-size: 2rem;
    font-weight: bold;
}


.commonTextStyle {
    font-size: 1.18rem;
    line-height: 1.75;
    max-width: 70ch;
    color: #4b5563; /* szarawy, profesjonalny tekst */
    margin-top: 1rem;
    margin-bottom: 2rem;
    position: relative;
    padding-left: 1rem;
    border-left: 4px solid #1d2bd1; /* subtelny brandowy pasek */
}
.commonTextStyle2 {
    font-size: 1.4rem;
    font-weight: 500;
}


/* tabele */

.tableBox {
    border: 2px solid var(--color-primary--violet);
    border-radius: .8rem;
    box-shadow: 0 6px 18px rgba(0,0,0,.6);
    font-size: 2rem;
    margin: 1rem auto;
    padding: 1rem 1rem 2rem 1rem;
    font-weight: 700;
    width: 90%;
    text-align: center;
}
.doubleLineTableBox {
    border: 4px double #007bff;
    border-radius: 8px;
    padding: 1rem 1.5rem;
}
.shadowTableBox {
    border: none;
    border-radius: 10px;
    box-shadow: 0 0 0 3px #007bff, 0 4px 10px rgba(0,0,0,0.1);
    padding: 1rem 1.5rem;
}
.borderLeftSideOnlyTableBox {
    border-left: 6px solid #1701A4;
    padding: 0.5rem 1rem;
}

.table-container {
        padding-inline: 0rem; /* przywróć marginesy jak w .container */
        -webkit-overflow-scrolling: touch; /* płynniejsze przewijanie na iOS */
}

a {
    text-decoration: none; /* usuwa podkreślenie */
    color: inherit; /* przejmuje kolor z rodzica */
}
nav-link {
    text-decoration: none; /* usuwa podkreślenie */
    color: inherit; /* przejmuje kolor z rodzica */
}

@media (max-width: 768px) {
    .sectionHeader {
        margin-bottom: 1rem; /* mb-md-5 */
        font-size: 2rem; /* adjust if you want larger */
    }

    .sectionHeaderH2 {
        font-size: 1.8rem;
        font-weight: bold;
    }
}




.time-inputs {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 0 4px;
}

.time-input {
    width: 62px;
    text-align: right;
    padding: 2px 4px;
}

.time-separator {
    margin: 0 4px 0 0px;
    font-size: 0.9rem;
    color: #555;
}

/* Chrome, Edge, Safari */
.time-input::-webkit-inner-spin-button {
    margin-left: 4px; /* odsuwa strzałki od tekstu */
}

input[type=number]::-webkit-inner-spin_button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
}

p, span{
    color: var(--color-primary--grafit);
}


.table-title {
    font-size: 1.9rem;
    font-weight: 600;
    margin: 12px 0 6px;
    color: #333;
}

.table-subtitle {
    font-size: 0.9rem;
    color: var(--color-primary--grey);
    margin-bottom: 8px;
}
.table-container {
    padding-inline: 5rem;
}

@media (max-width: 992px) {
    .table-container {
        padding-inline: 3px; /* przywróć marginesy jak w .container */
    }
}


.benefitItem--disabled {
    opacity: 0.5; /* wyszarzenie */
    filter: grayscale(100%); /* odcienie szarości dla obrazka */
    cursor: not-allowed; /* wizualny sygnał niedostępności */
}

/* ===================== SPLASH / LOADER ===================== */
.splash {
  position: fixed;
  inset: 0;
  z-index: 2147483647; /* nad wszystkim */
  display: grid;
  place-items: center;
  background: var(--bs-body-bg, #ffffff);
  transition: opacity .35s ease, visibility .35s linear;
  will-change: opacity, visibility;
}

.splash__logoWrap {
  position: relative;
  width: clamp(140px, 24vw, 260px);
  aspect-ratio: 1 / 1;
  display: grid;
  place-items: center;
}

.splash__logo {
  width: 60%;
  height: auto;
  will-change: transform, opacity;
  transform: translateZ(0);
  animation: splash-pop 1.2s ease-in-out infinite alternate;
  image-rendering: -webkit-optimize-contrast;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.16));
}

/* Obręcz/kółko animowane dookoła logo */
.splash__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  --ring-c1: var(--color-primary--violet);
  --ring-c2: var(--color-primary--skyBlue);
  background:
    conic-gradient(from 0deg, var(--ring-c1), var(--ring-c2), var(--ring-c1));
  /* order: first standard mask, then vendor-prefixed */
  mask:
    radial-gradient(circle at center, transparent 58%, black 59%);
  -webkit-mask:
    radial-gradient(circle at center, transparent 58%, black 59%);
  filter: drop-shadow(0 4px 16px rgba(0,0,0,.18));
  animation: ring-spin 1.6s linear infinite;
}

@keyframes ring-spin { to { transform: rotate(360deg); } }

@keyframes splash-pop {
  from { transform: scale(.96); opacity: .92; }
  to   { transform: scale(1.04); opacity: 1; }
}

.splash--fadeout { opacity: 0; visibility: hidden; }

/* Motyw ciemny: tło splash */
[data-bs-theme="dark"] .splash { background: var(--bs-body-bg, #0b0b0c); }