/* PREMIUM LUXURY GOLD – portal lunchowy (VIS-03, DEC-31): klienci prywatni i firmy, czerń i metaliczne złoto.
   Nakładane na portal.css – zmienia wyłącznie wygląd (zamówienia, płatności i rozliczenia bez zmian).
   Czcionki, tokeny, logo 3D i hasła: premium-wspolne.css. */

body.portal {
  font-family: var(--pg-bezszeryf); color: var(--pg-tekst); -webkit-font-smoothing: antialiased;
  background:
    radial-gradient(1000px 560px at 85% -10%, rgba(214, 178, 98, .12), transparent 60%),
    radial-gradient(800px 520px at -15% 110%, rgba(214, 178, 98, .07), transparent 60%),
    linear-gradient(180deg, #0e0c0a 0%, var(--pg-czern) 100%);
  background-attachment: fixed; background-color: var(--pg-czern);
}
html { background: var(--pg-czern); color-scheme: dark; }
body.portal a { color: var(--pg-zloto-jasne); }
::selection { background: rgba(214, 178, 98, .35); color: #fff; }

/* ---------- Nagłówek: logo 3D, hasła, nawigacja ---------- */
.p-naglowek {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px 18px; padding: 10px 18px;
  background: rgba(11, 10, 8, .8); backdrop-filter: blur(16px) saturate(1.3); -webkit-backdrop-filter: blur(16px) saturate(1.3);
  border-bottom: 1px solid rgba(214, 178, 98, .28); box-shadow: 0 10px 30px -18px rgba(0, 0, 0, .9);
}
.p-marka { gap: 12px; color: var(--pg-tekst); }
.p-marka strong { font-family: var(--pg-szeryf); font-weight: 700; font-size: 1.45rem; letter-spacing: .02em;
  background: var(--pg-zloto-metal); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: pg-zloto-plynie 9s ease-in-out infinite alternate; }
.p-marka small { color: var(--pg-tekst-2); letter-spacing: .2em; opacity: 1; }
.hasla-portal { --hasla-h: 2.6em; --hasla-r: 1.2rem; }
.p-nav { gap: 6px; }
.p-nav a { color: var(--pg-tekst); border: 1px solid transparent; transition: background-color .25s, border-color .25s, color .25s; }
.p-nav a:hover, .p-nav a.p-aktywny { background: rgba(214, 178, 98, .12); border-color: rgba(214, 178, 98, .35); color: var(--pg-zloto-jasne); }
.p-nav .p-nav-firma { border-color: rgba(214, 178, 98, .6); color: var(--pg-zloto-jasne); }
@media (max-width: 760px) {
  .p-naglowek { grid-template-columns: 1fr auto; padding: 8px 14px 6px; }
  .hasla-portal { grid-column: 1 / -1; grid-row: 2; --hasla-h: 2.4em; --hasla-r: 1.05rem; border-top: 1px solid rgba(214, 178, 98, .14); }
}

/* ---------- Treść i stopka ---------- */
.p-tresc { max-width: 960px; }
.p-stopka { background: linear-gradient(180deg, transparent, rgba(0, 0, 0, .55)); color: var(--pg-tekst-2); border-top: 1px solid rgba(214, 178, 98, .18); }
.p-stopka strong { color: var(--pg-zloto-jasne); font-family: var(--pg-szeryf); font-size: 1.1rem; }
.p-stopka a { color: var(--pg-zloto-jasne); }

/* ---------- Strona główna lunchy (hero) ---------- */
.p-hero {
  position: relative; overflow: hidden; color: var(--pg-tekst); border-bottom: 1px solid rgba(214, 178, 98, .35);
  background:
    radial-gradient(70% 90% at 50% 0%, rgba(214, 178, 98, .22), transparent 70%),
    linear-gradient(180deg, #16130e 0%, #0b0a08 100%);
  box-shadow: inset 0 -1px 0 rgba(255, 240, 200, .05), 0 30px 60px -40px rgba(214, 178, 98, .35);
}
.p-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(115deg, rgba(214, 178, 98, .025) 0 2px, transparent 2px 22px); }
.p-hero-logo { display: inline-block; width: auto; height: auto; filter: none; margin-bottom: 4px; }
.p-hero h1 { font-family: var(--pg-szeryf); font-weight: 700; font-size: clamp(2.3rem, 6vw, 3.6rem); line-height: 1.04;
  background: var(--pg-zloto-metal); background-size: 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: pg-zloto-plynie 9s ease-in-out infinite alternate; }
.p-lead { color: var(--pg-tekst-2); }
.p-ogloszenie { background: rgba(214, 178, 98, .1); border-color: rgba(214, 178, 98, .5); color: var(--pg-zloto-jasne); }

/* ---------- Przyciski ---------- */
.p-przycisk { position: relative; overflow: hidden; transition: transform .25s var(--pg-krzywa), box-shadow .25s, filter .25s; }
.p-przycisk-zloty { background: var(--pg-zloto-przycisk); color: #1a140a; border: 1px solid #ecd290;
  box-shadow: inset 0 1px 0 rgba(255, 250, 230, .6), 0 10px 26px -10px rgba(214, 178, 98, .65); text-shadow: 0 1px 0 rgba(255, 245, 215, .45); }
.p-przycisk-zloty::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .6) 50%, transparent 65%); background-size: 260% 100%; background-position: 140% 0;
  transition: background-position .9s var(--pg-krzywa); }
.p-przycisk-zloty:hover { filter: none; transform: translateY(-2px); box-shadow: inset 0 1px 0 rgba(255, 250, 230, .6), 0 16px 34px -12px rgba(214, 178, 98, .8); }
.p-przycisk-zloty:hover::after { background-position: -40% 0; }
.p-przycisk-obrys { color: var(--pg-zloto-jasne); border: 1px solid rgba(214, 178, 98, .6); background: rgba(255, 248, 230, .03); }
.p-przycisk-obrys:hover { background: rgba(214, 178, 98, .12); transform: translateY(-2px); }
.p-przycisk-zielony { background: linear-gradient(180deg, #1d1912, #0e0c09); color: var(--pg-zloto-jasne); border: 1px solid rgba(214, 178, 98, .55); }

/* ---------- Nagłówki sekcji ---------- */
.p-sekcja, .p-tytul { font-family: var(--pg-szeryf); font-weight: 700; color: var(--pg-zloto-jasne); font-variant-numeric: lining-nums;
  display: flex; align-items: center; gap: 14px; }
.p-sekcja::after { content: ""; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(214, 178, 98, .5), transparent); }
.p-drobny, .p-legenda { color: var(--pg-tekst-2); }
.p-brak { background: rgba(255, 248, 230, .03); border-color: rgba(214, 178, 98, .3); color: var(--pg-tekst-2); }

/* ---------- Karta dnia i dania (przestrzenne karty, prawdziwe zdjęcia z panelu) ---------- */
.p-dzien, .p-podsumowanie, .p-karta {
  background: linear-gradient(160deg, rgba(255, 248, 230, .06) 0%, rgba(255, 248, 230, .02) 100%);
  border: 1px solid rgba(214, 178, 98, .25); border-top: 1px solid rgba(240, 214, 150, .55); border-radius: 22px;
  box-shadow: 0 1px 0 rgba(255, 240, 200, .06) inset, 0 30px 60px -30px rgba(0, 0, 0, .9), 0 0 0 1px rgba(0, 0, 0, .3);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); color: var(--pg-tekst);
}
.p-dzien-data { color: var(--pg-zloto); letter-spacing: .16em; text-transform: uppercase; font-size: .82rem; }
.p-zdjecie { border-radius: 16px; border: 1px solid rgba(214, 178, 98, .35); box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .9);
  transition: transform .8s var(--pg-krzywa), filter .8s; }
.p-dzien:hover .p-zdjecie { transform: scale(1.015); filter: saturate(1.08) contrast(1.03); }
.p-zestaw { border-top-color: rgba(214, 178, 98, .16); transition: background-color .3s; border-radius: 12px; }
.p-zestaw h3 { font-family: var(--pg-szeryf); font-weight: 700; color: var(--pg-zloto-jasne); font-size: 1.55rem; }
.p-cena { font-family: var(--pg-bezszeryf); font-weight: 800; color: #fff4d6; font-variant-numeric: tabular-nums;
  padding: 4px 12px; border-radius: 999px; background: rgba(214, 178, 98, .14); border: 1px solid rgba(214, 178, 98, .45); }
.p-etykieta { color: var(--pg-zloto); letter-spacing: .18em; }
.p-pozycja { font-family: var(--pg-szeryf); font-weight: 600; color: var(--pg-tekst); font-size: 1.25rem; }
.p-limit { color: var(--pg-zloto-jasne); }
.p-dostepnosc.p-otwarte { background: rgba(111, 207, 142, .1); color: #b7ecc6; border: 1px solid rgba(111, 207, 142, .35); }
.p-dostepnosc.p-zamkniete { background: rgba(255, 248, 230, .04); color: var(--pg-tekst-2); border: 1px solid rgba(214, 178, 98, .2); }

/* ---------- Najbliższe dni i kalendarz ---------- */
.p-dni a, .p-dni .p-dzien-zamk { background: rgba(255, 248, 230, .04); border: 1px solid rgba(214, 178, 98, .22); color: var(--pg-tekst);
  transition: transform .25s var(--pg-krzywa), border-color .25s, background-color .25s; }
.p-dni .p-otwarte a { border-color: rgba(214, 178, 98, .55); }
.p-dni .p-otwarte a:hover { background: rgba(214, 178, 98, .12); transform: translateY(-3px); }
.p-dni strong { color: var(--pg-zloto-jasne); font-family: var(--pg-szeryf); font-size: 1.15rem; font-variant-numeric: lining-nums; }
.p-dni span span, .p-dni a span { color: var(--pg-tekst-2); }
.p-miesiac-nav strong { font-family: var(--pg-szeryf); font-size: 1.5rem; color: var(--pg-zloto-jasne); }
.p-miesiac-nav a { background: rgba(255, 248, 230, .04); border-color: rgba(214, 178, 98, .5); color: var(--pg-zloto-jasne); }
.p-kalendarz th { color: var(--pg-tekst-2); }
.p-kalendarz .p-menu { background: linear-gradient(160deg, rgba(214, 178, 98, .3), rgba(214, 178, 98, .12)); color: #fff4d6; border: 1px solid rgba(214, 178, 98, .5); }
.p-kalendarz .p-pusty { background: rgba(255, 248, 230, .04); color: var(--pg-tekst-2); }
.p-kalendarz .p-wolny-dzien { color: #5f584c; }
.p-kalendarz .p-wybrany { outline-color: var(--pg-zloto-jasne); box-shadow: 0 0 18px rgba(214, 178, 98, .45); }
.p-znak { background: rgba(214, 178, 98, .6); }

/* ---------- Zamówienie: kroki i formularz ---------- */
.p-kroki li { background: rgba(255, 248, 230, .05); color: var(--pg-tekst-2); border: 1px solid rgba(214, 178, 98, .18); }
.p-kroki .p-aktywny { background: var(--pg-zloto-przycisk); color: #1a140a; border-color: #ecd290; }
.p-formularz fieldset { background: rgba(255, 248, 230, .035); border-color: rgba(214, 178, 98, .25); border-radius: 18px; }
.p-formularz legend { font-family: var(--pg-szeryf); font-weight: 700; color: var(--pg-zloto-jasne); }
.p-formularz input, .p-formularz select, .p-formularz textarea { background: rgba(0, 0, 0, .35); color: var(--pg-tekst); border-color: rgba(214, 178, 98, .3); }
.p-formularz input::placeholder { color: #857d6e; }
.p-formularz input:focus, .p-formularz select:focus { outline-color: rgba(214, 178, 98, .45); border-color: var(--pg-zloto); }
.p-formularz .p-radio input, .p-zgoda input { accent-color: var(--pg-zloto); }
.p-zgoda small { color: var(--pg-tekst-2); }
.p-wybor-zestawu { border-bottom-color: rgba(214, 178, 98, .16); }

/* ---------- Komunikaty, statusy, tabele ---------- */
.p-komunikat { background: rgba(111, 207, 142, .12); color: #b7ecc6; border: 1px solid rgba(111, 207, 142, .35); }
.p-komunikat-blad { background: rgba(229, 72, 58, .14); color: #ffb4ab; border-color: rgba(240, 87, 74, .45); }
.p-podsumowanie h2, .p-karta h2 { font-family: var(--pg-szeryf); font-weight: 700; color: var(--pg-zloto-jasne); }
.p-tabela td, .p-tabela th { border-bottom-color: rgba(214, 178, 98, .16); }
.p-tabela th { color: var(--pg-zloto); font-weight: 600; }
.p-tabela .p-razem td { color: #fff4d6; }
.p-dane dt { color: var(--pg-tekst-2); }
.p-status { background: rgba(111, 207, 142, .12); color: #b7ecc6; border: 1px solid rgba(111, 207, 142, .35); }
.p-status-anul { background: rgba(229, 72, 58, .14); color: #ffb4ab; border-color: rgba(240, 87, 74, .45); }
.p-numer { font-family: var(--pg-szeryf); font-weight: 700; color: var(--pg-zloto-jasne); font-variant-numeric: lining-nums; }

/* ---------- Panel firmy: profesjonalny pulpit zamówień i rozliczeń ---------- */
.p-kafel { background: radial-gradient(260px 120px at 100% 0%, rgba(214, 178, 98, .18), transparent 70%), linear-gradient(160deg, #17140f, #0c0a08);
  border: 1px solid rgba(214, 178, 98, .35); border-radius: 18px; box-shadow: 0 20px 40px -24px rgba(0, 0, 0, .9); }
.p-kafel strong { font-family: var(--pg-bezszeryf); font-weight: 800; letter-spacing: -.02em; color: var(--pg-zloto-jasne); font-variant-numeric: tabular-nums; }
.p-kafel span { color: var(--pg-tekst-2); opacity: 1; }
.p-dzien-firmy { background: rgba(255, 248, 230, .04); border-color: rgba(214, 178, 98, .24); border-radius: 18px; }
.p-dzien-firmy.p-zamk { background: rgba(255, 248, 230, .015); }
.p-dzien-firmy header strong { color: var(--pg-zloto-jasne); font-family: var(--pg-szeryf); font-size: 1.25rem; font-variant-numeric: lining-nums; }
.p-dzien-firmy .p-linia input { background: rgba(0, 0, 0, .35); color: var(--pg-tekst); border-color: rgba(214, 178, 98, .35); }
.p-znacznik { background: rgba(255, 248, 230, .06); color: var(--pg-tekst-2); }
.p-znacznik-ok { background: rgba(111, 207, 142, .12); color: #b7ecc6; }
.p-znacznik-uwaga { background: rgba(214, 178, 98, .15); color: var(--pg-zloto-jasne); }
.p-pasek { background: linear-gradient(transparent, var(--pg-czern) 35%); }
.p-zakladki a { background: rgba(255, 248, 230, .04); border-color: rgba(214, 178, 98, .3); color: var(--pg-tekst); }
.p-zakladki a.p-aktywny { background: var(--pg-zloto-przycisk); color: #1a140a; border-color: #ecd290; }

/* ---------- Dane do przelewu ---------- */
.przelew { background: rgba(255, 248, 230, .04); border-color: rgba(214, 178, 98, .3); border-radius: 18px; }
.przelew-status { background: rgba(255, 248, 230, .08); color: var(--pg-tekst); }
.przelew-status-potwierdzona { background: rgba(111, 207, 142, .14); color: #b7ecc6; }
.przelew-status-zgloszono, .przelew-status-czesciowa { background: rgba(214, 178, 98, .16); color: var(--pg-zloto-jasne); }
.przelew-status-przeterminowana { background: rgba(229, 72, 58, .16); color: #ffb4ab; }
.przelew-kwoty dt, .przelew-dane dt, .przelew-naglowek small, .przelew-qr figcaption, .przelew-uwaga { color: var(--pg-tekst-2); }
.przelew-metoda { border-top-color: rgba(214, 178, 98, .25); }
.przelew-metoda h3 { color: var(--pg-zloto); }
.przelew-kopiuj { color: var(--pg-tekst); border-color: rgba(214, 178, 98, .55); }
.przelew-kopiuj-wszystko, .przelew-przycisk { background: var(--pg-zloto-przycisk); color: #1a140a; }
.przelew-saldo { background: rgba(214, 178, 98, .12); }

/* ---------- Media społecznościowe w stopce ---------- */
.media-spol a { border-color: rgba(214, 178, 98, .55); color: var(--pg-zloto-jasne); }
.media-spol a:hover, .media-spol a:focus-visible { background: var(--pg-zloto); color: #1a140a; }

@media (prefers-reduced-motion: reduce) {
  .p-przycisk, .p-zdjecie, .p-dni a, .p-marka strong, .p-hero h1 { transition: none !important; animation: none !important; }
}
.bez-animacji .p-przycisk, .bez-animacji .p-zdjecie, .bez-animacji .p-dni a, .bez-animacji .p-marka strong, .bez-animacji .p-hero h1 { transition: none !important; animation: none !important; }

/* przełącznik animacji w stopce (ten sam co w panelach – premium.js) */
.przelacznik-animacji { display: inline-flex; align-items: center; gap: 8px; background: none; border: 0; padding: 6px 0; cursor: pointer;
  color: var(--pg-tekst-2); font: inherit; font-size: .85rem; min-height: 44px; }
.przelacznik-animacji:hover { color: var(--pg-zloto-jasne); }
.przelacznik-animacji .tor { width: 30px; height: 17px; border-radius: 99px; background: rgba(214, 178, 98, .5); position: relative; flex: none; }
.przelacznik-animacji .tor::after { content: ""; position: absolute; top: 2px; left: 15px; width: 13px; height: 13px; border-radius: 50%; background: #fff5dc; transition: left .2s; }
.bez-animacji .przelacznik-animacji .tor { background: rgba(255, 248, 230, .18); }
.bez-animacji .przelacznik-animacji .tor::after { left: 2px; }

/* przyciski będące odnośnikami – kolor tekstu przycisku ma pierwszeństwo przed kolorem linków */
body.portal a.p-przycisk-zloty, body.portal .p-zakladki a.p-aktywny, body.portal .p-kroki .p-aktywny { color: #1a140a; text-decoration: none; }
body.portal a.p-przycisk-obrys, body.portal a.p-przycisk-zielony { color: var(--pg-zloto-jasne); text-decoration: none; }
/* wszystkie pola tekstowe w portalu – ciemne, ze złotą ramką */
body.portal input:not([type=checkbox]):not([type=radio]):not([type=hidden]), body.portal select, body.portal textarea {
  background: rgba(0, 0, 0, .35); color: var(--pg-tekst); border: 1px solid rgba(214, 178, 98, .3); border-radius: 10px; }
body.portal input[type=checkbox], body.portal input[type=radio] { accent-color: var(--pg-zloto); }
