/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-bhuy6b59dp] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-bhuy6b59dp] {
    flex: 1;
}

.sidebar[b-bhuy6b59dp] {
    background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}

.top-row[b-bhuy6b59dp] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-bhuy6b59dp]  a, .top-row[b-bhuy6b59dp]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-bhuy6b59dp]  a:hover, .top-row[b-bhuy6b59dp]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-bhuy6b59dp]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-bhuy6b59dp] {
        justify-content: space-between;
    }

    .top-row[b-bhuy6b59dp]  a, .top-row[b-bhuy6b59dp]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-bhuy6b59dp] {
        flex-direction: row;
    }

    .sidebar[b-bhuy6b59dp] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-bhuy6b59dp] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-bhuy6b59dp]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-bhuy6b59dp], article[b-bhuy6b59dp] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-bhuy6b59dp] {
    color-scheme: light only;
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-bhuy6b59dp] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Partials/Shared/SpiderWebLoader.razor.rz.scp.css */
/* ============================================================
   Animowane zmienne CSS (Chrome 85+, Edge 85+, Firefox 128+)
   @property pozwala interpolować kąty w conic-gradient
   ============================================================ */
@property --sw-start {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

@property --sw-end {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

/* ============================================================
   Keyframes:
     Faza 1 (0% → 50%):  biały łuk rośnie  0° → 360° (odsłanianie)
     Faza 2 (50% → 100%): biały łuk maleje  0° → 360° (znikanie od tyłu)
   ============================================================ */
@keyframes spider-sweep-b-7zivs3ojtu {
    0% {
        --sw-start: 0deg;
        --sw-end:   0deg;
    }
    50% {
        --sw-start: 0deg;
        --sw-end:   360deg;
    }
    100% {
        --sw-start: 360deg;
        --sw-end:   360deg;
    }
}

/* ============================================================
   Overlay — przyciemnienie całego ekranu
   ============================================================ */
.spider-overlay[b-7zivs3ojtu] {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: overlay-fade-in-b-7zivs3ojtu 0.2s ease-out;
}

@keyframes overlay-fade-in-b-7zivs3ojtu {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ============================================================
   Kontener pajęczyny
   ============================================================ */
.spider-web-wrapper[b-7zivs3ojtu] {
    position: relative;
    width: 220px;
    height: 220px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* ============================================================
   SVG — wspólne ustawienia pozycjonowania
   ============================================================ */
.spider-svg[b-7zivs3ojtu] {
    position: absolute;
    top: 0;
    left: 0;
    width: 200px;
    height: 200px;
}

/* ============================================================
   Warstwa szara — bazowa pajęczyna (zawsze widoczna)
   ============================================================ */
.web-base line[b-7zivs3ojtu],
.web-base polygon[b-7zivs3ojtu] {
    fill: none;
    stroke: rgba(255, 255, 255, 0.18);
    stroke-width: 1;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.web-center-dot[b-7zivs3ojtu] {
    fill: rgba(255, 255, 255, 0.18);
}

/* ============================================================
   Warstwa biała — maskowana przez animowany gradient stożkowy
   ============================================================ */
.spider-sweep-mask[b-7zivs3ojtu] {
    position: absolute;
    top: 0;
    left: 0;
    width: 200px;
    height: 200px;

    /* Gradient stożkowy: biały łuk pomiędzy --sw-start a --sw-end */
    mask-image: conic-gradient(
        from 0deg at 50% 50%,
        transparent 0deg,
        transparent var(--sw-start),
        white       var(--sw-start),
        white       var(--sw-end),
        transparent var(--sw-end)
    );
    -webkit-mask-image: conic-gradient(
        from 0deg at 50% 50%,
        transparent 0deg,
        transparent var(--sw-start),
        white       var(--sw-start),
        white       var(--sw-end),
        transparent var(--sw-end)
    );

    animation: spider-sweep-b-7zivs3ojtu 2.4s linear infinite;
}

.web-overlay line[b-7zivs3ojtu],
.web-overlay polygon[b-7zivs3ojtu] {
    fill: none;
    stroke: rgba(255, 255, 255, 0.95);
    stroke-width: 1.5;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.web-center-dot-white[b-7zivs3ojtu] {
    fill: rgba(255, 255, 255, 0.95);
}

/* ============================================================
   Etykieta tekstowa
   ============================================================ */
.spider-label[b-7zivs3ojtu] {
    position: absolute;
    top: 210px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    white-space: nowrap;
    margin: 0;
}
