/* Oprawa portretu (komponent .pframe) — postać wychodzi ponad niebieski panel,
   w tle sygnet, sieć neuronowa i fala punktów (grafika/oprawa-tlo.svg),
   na krawędziach karty z prawdziwą treścią. Kolory wyłącznie z palety strony.
   Użycie: wklej <figure class="pframe"> z o-nas.html i podepnij ten arkusz.
   Ścieżki w HTML podawaj względem strony (np. ../zespol/... w narzedzia/). */

        .pframe {
            --pf-r: 32px;
            position: relative; width: 100%; max-width: 560px; margin: 0 auto;
            aspect-ratio: 1 / 0.95;
            isolation: isolate;
        }
        /* Panel z tłem — zaczyna się niżej, żeby głowa wystawała ponad krawędź.
           Kolory z palety strony (css/m3.css): primary #2B6CB0, brand #3B8BDB,
           primary-container #D6E6FA, akcent turkusowy #14B8A6. */
        .pframe-panel {
            position: absolute; left: 0; right: 0; bottom: 0; top: 34%;
            border-radius: var(--pf-r);
            background: var(--md-sys-color-primary, #2B6CB0) url("../grafika/oprawa-tlo.svg") center / cover no-repeat;
            box-shadow: 0 24px 48px -28px rgba(15, 61, 110, 0.55);
            z-index: 0;
        }
        /* Pionowa „pigułka” jak w motywie zdjęcia — wychodzi ponad panel, za postacią */
        .pframe-pill {
            position: absolute; left: 7%; top: 6%; width: 9%; height: 56%;
            border-radius: 999px;
            background: var(--md-sys-color-primary-container, #D6E6FA);
            z-index: 1;
        }
        .pframe-orb {
            position: absolute; right: 9%; top: 20%; width: 6%; aspect-ratio: 1;
            border-radius: 50%; background: var(--color-secondary, #14B8A6); z-index: 1;
        }
        /* Postać przycięta tylko na dole, do zaokrąglonych narożników panelu */
        .pframe-person {
            position: absolute; inset: 0; z-index: 2;
            clip-path: inset(0 0 0 0 round 0 0 var(--pf-r) var(--pf-r));
        }
        .pframe-person img {
            position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
            width: 100%; height: auto; display: block;
            filter: drop-shadow(0 8px 20px rgba(15, 61, 110, 0.3));
        }

/* ===== Karty (M3: jasna powierzchnia, tonalne chipy) ===== */
        .pframe-card {
            position: absolute; z-index: 3;
            border-radius: var(--md-sys-shape-corner-large, 16px); padding: 12px 14px;
            font-size: 13px; line-height: 1.35;
            background: var(--md-sys-color-surface-container-lowest, #fff);
            color: var(--color-text, #191C20);
            border: 1px solid var(--md-sys-color-outline-variant, #D3D9E2);
            box-shadow: 0 12px 28px -14px rgba(15, 61, 110, 0.45);
            animation: pframe-float 7s ease-in-out infinite;
        }
        /* Przepływ zamówienia */
        .pframe-card--flow {
            right: -5%; top: 46%; width: 31%;
            animation-delay: -2s;
        }
        .pframe-card-label {
            display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
            color: var(--md-sys-color-primary, #2B6CB0); margin-bottom: 8px;
        }
        .pframe-flow { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
        .pframe-flow li {
            position: relative; padding: 4px 10px; border-radius: 8px; font-weight: 600; font-size: 12px; white-space: nowrap;
            background: var(--md-sys-color-primary-container, #D6E6FA); color: var(--md-sys-color-on-primary-container, #0F3D6E);
        }
        .pframe-flow li + li::before { content: "↓"; position: absolute; left: 12px; top: -16px; font-size: 11px; color: var(--md-sys-color-outline, #73777F); font-weight: 400; }
        .pframe-status { display: flex; align-items: center; gap: 7px; margin-top: 12px; font-size: 12px; color: var(--color-text-secondary, #43474E); }
        .pframe-status::before {
            content: ""; width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
            background: var(--color-secondary, #14B8A6); box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.2);
        }
        /* Podpis osoby */
        .pframe-card--name {
            left: -5%; bottom: 6%;
            display: flex; align-items: center; gap: 10px;
        }
        .pframe-card--name svg { flex-shrink: 0; }
        .pframe-card--name b { display: block; font-size: 14px; }
        .pframe-card--name span { color: var(--color-text-secondary, #43474E); font-size: 12px; }

        @keyframes pframe-float {
            0%, 100% { transform: translateY(0); }
            50% { transform: translateY(-6px); }
        }
        @media (prefers-reduced-motion: reduce) {
            .pframe-card { animation: none; }
        }
        @media (max-width: 640px) {
            /* Na wąskim ekranie karta przepływu zasłaniałaby twarz — zostaje sam podpis */
            .pframe { --pf-r: 24px; }
            .pframe-card { padding: 9px 11px; font-size: 12px; border-radius: 12px; }
            .pframe-card--flow { display: none; }
            .pframe { margin-bottom: 28px; }
            .pframe-card--name { left: 4%; bottom: -8%; }
        }
