/* Szaty graficzne – czcionki ładowane tylko, gdy wybrana szata ich używa */
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/playfair-display-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/playfair-display-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/playfair-display-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Playfair Display'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/playfair-display-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/josefin-sans-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/josefin-sans-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/josefin-sans-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Josefin Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/josefin-sans-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Dancing Script'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/dancing-script-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Dancing Script'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/dancing-script-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Amatic SC'; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/amatic-sc-latin-ext-700-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Amatic SC'; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/amatic-sc-latin-700-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Poiret One'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/poiret-one-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Poiret One'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/poiret-one-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/montserrat-latin-ext-400-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url(../fonts/montserrat-latin-400-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/montserrat-latin-ext-600-normal.woff2) format('woff2'); unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/montserrat-latin-600-normal.woff2) format('woff2'); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }

/* Domyślne wartości dekoracji (szata klasyczna) */
body { background-image: var(--pattern, none); background-attachment: fixed; }
.guest-header { background: var(--hero, linear-gradient(180deg, var(--accent-soft), var(--bg))); }
.guest-header::after { content: var(--ornament, "❦"); display: block; color: var(--accent); font-size: 1.3rem; margin-top: .3rem; letter-spacing: .4em; }

/* 1. Klasyczna elegancja – korzysta z wartości domyślnych (obsługuje też tryb ciemny) */
.theme-classic { }

/* 2. Rustykalna stodoła */
.theme-rustic {
  --bg: #efe4d0; --surface: #fffaf0; --surface-2: #f5ebd8; --text: #3d3022; --muted: #7d6a52; --line: #dccaa8;
  --accent: #7a5c3e; --accent-strong: #5f452c; --accent-soft: #e9dcc2;
  --font-display: "Amatic SC", "Cormorant Garamond", serif; --font-script: "Dancing Script", cursive; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 6px; --ornament: "❀ ❀ ❀";
  --pattern: repeating-linear-gradient(90deg, rgba(122,92,62,.035) 0 2px, transparent 2px 46px), repeating-linear-gradient(0deg, rgba(122,92,62,.02) 0 1px, transparent 1px 9px);
  --hero: linear-gradient(180deg, #d9c39d, #efe4d0);
}
.theme-rustic h1, .theme-rustic h2 { font-weight: 700; letter-spacing: .03em; }
.theme-rustic h1 { font-size: 2.6rem; }
.theme-rustic .card, .theme-rustic .tile { border-style: dashed; }

/* 3. Boho terakota */
.theme-boho {
  --bg: #f6ece3; --surface: #fffaf5; --surface-2: #f3e3d6; --text: #4a2f25; --muted: #8a6a5a; --line: #ead3c2;
  --accent: #c0673f; --accent-strong: #9c4f2e; --accent-soft: #f4dccd;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 22px; --ornament: "⌒ ✿ ⌒";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Cg fill='%23c0673f' fill-opacity='.10'%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Ccircle cx='40' cy='40' r='2'/%3E%3C/g%3E%3Cpath d='M25 55 Q 30 35 35 55' fill='none' stroke='%23c0673f' stroke-opacity='.10'/%3E%3C/svg%3E");
  --hero: radial-gradient(120% 90% at 50% 100%, #f6ece3 55%, #ecc9b4 56%, #ecc9b4 64%, #e3b499 65%);
}
.theme-boho .tile { border-radius: 120px 120px 18px 18px; }

/* 4. Glamour noc */
.theme-glamour {
  --bg: #141312; --surface: #1e1c1a; --surface-2: #2a2724; --text: #f3ead7; --muted: #b5a88f; --line: #3b362f;
  --accent: #d4af37; --accent-strong: #e8c55a; --accent-soft: #3a3220;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Great Vibes", cursive;
  --shadow: 0 8px 30px rgba(0,0,0,.45); --ornament: "◆ ◆ ◆";
  --pattern: repeating-linear-gradient(135deg, rgba(212,175,55,.05) 0 1px, transparent 1px 22px);
  --hero: linear-gradient(180deg, #2a2418, #141312);
}
.theme-glamour .btn-primary { color: #141312; }
.theme-glamour .tile-accent { background: linear-gradient(135deg, #b8912a, #e8c55a); color: #141312; }
.theme-glamour .tile-accent .tile-icon { color: #141312; }
.theme-glamour .card, .theme-glamour .tile { border-color: #4a412f; }

/* 5. Ogród różany */
.theme-roses {
  --bg: #fff5f5; --surface: #ffffff; --surface-2: #fdeced; --text: #4a2e38; --muted: #8c6c76; --line: #f2d6db;
  --accent: #c76d7e; --accent-strong: #a8526a; --accent-soft: #fbe3e7;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 18px; --ornament: "✿ ❀ ✿";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='none' stroke='%23c76d7e' stroke-opacity='.13' stroke-width='1.5'%3E%3Cpath d='M30 30 m-10 0 a10 10 0 1 0 20 0 a10 10 0 1 0 -20 0 M30 30 m-5 0 a5 5 0 1 1 10 0'/%3E%3Cpath d='M100 95 m-12 0 a12 12 0 1 0 24 0 a12 12 0 1 0 -24 0 M100 95 m-6 0 a6 6 0 1 1 12 0'/%3E%3C/g%3E%3Cg fill='%239bab8f' fill-opacity='.18'%3E%3Cellipse cx='45' cy='42' rx='8' ry='4' transform='rotate(35 45 42)'/%3E%3Cellipse cx='84' cy='104' rx='9' ry='4' transform='rotate(-30 84 104)'/%3E%3C/g%3E%3C/svg%3E");
  --hero: radial-gradient(circle at 15% 20%, #f9d3da 0 60px, transparent 61px), radial-gradient(circle at 85% 30%, #e3ead9 0 70px, transparent 71px), linear-gradient(180deg, #fde8ec, #fff5f5);
}

/* 6. Morska bryza */
.theme-sea {
  --bg: #f1f5f8; --surface: #ffffff; --surface-2: #e8eef4; --text: #1f2a3c; --muted: #5d6b80; --line: #d6e0ea;
  --accent: #2e5c8a; --accent-strong: #234a71; --accent-soft: #dfe9f3;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Great Vibes", cursive;
  --radius: 12px; --ornament: "〜 ⚓ 〜";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='40' viewBox='0 0 160 40'%3E%3Cpath d='M0 20 Q 20 5 40 20 T 80 20 T 120 20 T 160 20' fill='none' stroke='%232e5c8a' stroke-opacity='.10' stroke-width='2'/%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #cfe0ee 0%, #f1f5f8 70%), #f1f5f8;
}
.theme-sea h1, .theme-sea h2 { font-weight: 600; letter-spacing: .02em; }
.theme-sea .guest-header { border-bottom: 3px solid #d9c9a8; }

/* 7. Minimalizm */
.theme-minimal {
  --bg: #ffffff; --surface: #ffffff; --surface-2: #f4f4f4; --text: #111111; --muted: #6f6f6f; --line: #e3e3e3;
  --accent: #111111; --accent-strong: #000000; --accent-soft: #f0f0f0;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 0px; --shadow: none; --ornament: "—";
  --hero: #ffffff;
}
.theme-minimal h1, .theme-minimal h2 { font-weight: 400; text-transform: uppercase; letter-spacing: .12em; font-size: 1.5rem; }
.theme-minimal .guest-names { font-weight: 400; text-transform: uppercase; letter-spacing: .25em; font-size: 1.5rem; }
.theme-minimal .btn { border-radius: 0; text-transform: uppercase; letter-spacing: .08em; font-size: .8rem; }
.theme-minimal .card, .theme-minimal .tile { border-color: #111; }

/* 8. Lawendowa Prowansja */
.theme-lavender {
  --bg: #f7f4fb; --surface: #ffffff; --surface-2: #efe9f6; --text: #3b3350; --muted: #776e8c; --line: #e2d9ee;
  --accent: #7d68a8; --accent-strong: #634f8c; --accent-soft: #ebe4f5;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --ornament: "❦ ❦ ❦";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90' viewBox='0 0 90 90'%3E%3Cg fill='%237d68a8' fill-opacity='.10'%3E%3Ccircle cx='20' cy='20' r='3'/%3E%3Ccircle cx='23' cy='27' r='3'/%3E%3Ccircle cx='18' cy='33' r='3'/%3E%3Ccircle cx='22' cy='40' r='3'/%3E%3Ccircle cx='65' cy='60' r='3'/%3E%3Ccircle cx='68' cy='67' r='3'/%3E%3Ccircle cx='63' cy='73' r='3'/%3E%3C/g%3E%3Cpath d='M21 42 L 21 70 M66 75 L 66 90' stroke='%237d68a8' stroke-opacity='.12'/%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #ddd2ee, #f7f4fb);
}

/* 9. Eukaliptus */
.theme-eucalyptus {
  --bg: #f2f5f0; --surface: #fbfcfa; --surface-2: #e7ede4; --text: #26332a; --muted: #66756a; --line: #d5dfd2;
  --accent: #5f7d64; --accent-strong: #4a654f; --accent-soft: #e0eadf;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 16px; --ornament: "❧ ❧ ❧";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%235f7d64' stroke-opacity='.13' stroke-width='1.5'%3E%3Cpath d='M20 100 C 30 70, 50 60, 60 30'/%3E%3Cellipse cx='38' cy='72' rx='9' ry='5' transform='rotate(-35 38 72)'/%3E%3Cellipse cx='50' cy='52' rx='9' ry='5' transform='rotate(-55 50 52)'/%3E%3Cellipse cx='30' cy='86' rx='8' ry='4.5' transform='rotate(-20 30 86)'/%3E%3Ccircle cx='95' cy='25' r='6'/%3E%3Ccircle cx='103' cy='35' r='4'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #d3e0d0, #f2f5f0);
}

/* 10. Art déco */
.theme-artdeco {
  --bg: #0f2a26; --surface: #163a35; --surface-2: #1d4740; --text: #f1e9d8; --muted: #b8b09c; --line: #2d5a52;
  --accent: #c9a45c; --accent-strong: #e0bf7a; --accent-soft: #24443d;
  --font-display: "Poiret One", "Josefin Sans", sans-serif; --font-script: "Poiret One", sans-serif; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 2px; --shadow: 0 8px 30px rgba(0,0,0,.35); --ornament: "◇ ◆ ◇";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='40' viewBox='0 0 80 40'%3E%3Cg fill='none' stroke='%23c9a45c' stroke-opacity='.14'%3E%3Cpath d='M0 40 A40 40 0 0 1 80 40 M10 40 A30 30 0 0 1 70 40 M20 40 A20 20 0 0 1 60 40 M30 40 A10 10 0 0 1 50 40'/%3E%3Cpath d='M-40 20 A40 40 0 0 1 40 20 M40 20 A40 40 0 0 1 120 20' stroke-opacity='0'/%3E%3C/g%3E%3C/svg%3E");
  --hero: repeating-radial-gradient(circle at 50% 120%, rgba(201,164,92,.18) 0 2px, transparent 2px 26px), linear-gradient(180deg, #123530, #0f2a26);
}
.theme-artdeco h1, .theme-artdeco h2, .theme-artdeco .guest-names { letter-spacing: .12em; text-transform: uppercase; font-weight: 400; }
.theme-artdeco .guest-names { font-size: 1.9rem; }
.theme-artdeco .btn-primary { color: #0f2a26; }
.theme-artdeco .tile-accent { color: #0f2a26; }
.theme-artdeco .tile-accent .tile-icon { color: #0f2a26; }
.theme-artdeco .card, .theme-artdeco .tile { border: 1px solid #c9a45c55; outline: 1px solid #c9a45c22; outline-offset: -6px; }


/* ===== Nowe szaty gości (2026-10): każda różni się kształtem, nie tylko kolorem ===== */

/* 11. Królewski granat – herbowe podwójne ramki, kapitaliki */
.theme-royal {
  --bg: #f4f2ec; --surface: #fffdf8; --surface-2: #ece8de; --text: #1d2f55; --muted: #5d6680; --line: #ddd5c2;
  --accent: #1d2f55; --accent-strong: #13213f; --accent-soft: #e5e3dc; --on-accent: #f4e2b0;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Playfair Display", Georgia, serif;
  --radius: 4px; --ornament: "♛";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cpath d='M24 14l3 6 6 1-4.5 4 1 6-5.5-3-5.5 3 1-6L15 21l6-1z' fill='%23b8954a' fill-opacity='.10'/%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #1d2f55, #2b4170);
}
.theme-royal .guest-header { color: #f4e2b0; border-bottom: 4px double #b8954a; }
.theme-royal .guest-names { color: #f4e2b0; font-style: italic; }
.theme-royal .guest-header::after { color: #b8954a; }
.theme-royal .card, .theme-royal .tile { border: 1px solid #b8954a; outline: 1px solid #b8954a66; outline-offset: -6px; }
.theme-royal h1, .theme-royal h2 { font-variant: small-caps; letter-spacing: .05em; }
.theme-royal .tile-accent { background: linear-gradient(135deg, #1d2f55, #34508a); color: #f4e2b0; }
.theme-royal .tile-accent .tile-icon { color: #f4e2b0; }

/* 12. Vintage sepia – postarzany papier, ząbkowane „znaczki” */
.theme-vintage {
  --bg: #efe6d6; --surface: #f8f1e3; --surface-2: #ece0c9; --text: #3a2c20; --muted: #7e6a55; --line: #d8c6a6;
  --accent: #8a5a3b; --accent-strong: #6a4228; --accent-soft: #e6d5bb;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 2px; --ornament: "✉ ✦ ✉";
  --pattern: radial-gradient(rgba(110, 75, 40, .08) 1px, transparent 1.2px);
  --hero: linear-gradient(180deg, #dcc8a6, #efe6d6);
}
.theme-vintage body, body.theme-vintage { background-size: 7px 7px; }
.theme-vintage .tile { border: 2px dashed #b89a72; background: #fbf5e8; box-shadow: 3px 3px 0 #d8c6a6; }
.theme-vintage .card { border: 1px solid #c8b08a; box-shadow: 0 1px 0 #fff inset, 0 6px 16px -10px rgba(80, 50, 20, .4); }
.theme-vintage .guest-names { color: #6a4228; }
.theme-vintage .tile-accent { background: #8a5a3b; border-style: solid; color: #fbf5e8; }
.theme-vintage .tile-accent .tile-icon { color: #fbf5e8; }

/* 13. Nowoczesny blok – grube czarne ramki i twarde cienie */
.theme-modern {
  --bg: #f6f4ef; --surface: #ffffff; --surface-2: #efece4; --text: #111111; --muted: #5a5750; --line: #111111;
  --accent: #ff5a1f; --accent-strong: #e0400a; --accent-soft: #ffe4d9; --on-accent: #111111;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 0px; --shadow: 5px 5px 0 #111111; --ornament: "■ ■ ■";
  --hero: #f6f4ef;
}
.theme-modern .guest-header { text-align: left; padding: 2rem 1.25rem 1.1rem; border-bottom: 3px solid #111; }
.theme-modern .guest-names { font-weight: 600; font-size: 2.6rem; letter-spacing: -.04em; text-transform: uppercase; line-height: .95; }
.theme-modern .guest-header::after { font-size: .8rem; color: #ff5a1f; letter-spacing: .25em; }
.theme-modern .card, .theme-modern .tile { border: 2px solid #111; }
.theme-modern .tile { align-items: flex-start; text-align: left; }
.theme-modern .tile:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 #111; }
.theme-modern h1, .theme-modern h2 { font-weight: 600; letter-spacing: -.02em; text-transform: uppercase; }
.theme-modern .btn { border-radius: 0; border: 2px solid #111; box-shadow: 3px 3px 0 #111; font-weight: 600; }
.theme-modern .tabbar { border-top: 3px solid #111; }

/* 14. Szkło i gradient – mieniące się tło, matowe karty */
.theme-glass {
  --bg: #e9e4ff; --surface: rgba(255, 255, 255, .55); --surface-2: rgba(255, 255, 255, .4); --text: #1e1b3a; --muted: #5d5880; --line: rgba(255, 255, 255, .7);
  --accent: #6d4aff; --accent-strong: #4f2fe0; --accent-soft: rgba(109, 74, 255, .14);
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 24px; --shadow: 0 10px 30px -12px rgba(60, 30, 140, .35); --ornament: "✦";
  --pattern: radial-gradient(circle at 10% 10%, #ffc2e2 0, transparent 40%), radial-gradient(circle at 90% 20%, #b9d7ff 0, transparent 45%), radial-gradient(circle at 50% 90%, #d5c2ff 0, transparent 50%);
  --hero: transparent;
}
.theme-glass .card, .theme-glass .tile { backdrop-filter: blur(14px) saturate(1.4); -webkit-backdrop-filter: blur(14px) saturate(1.4); }
.theme-glass .guest-names { font-weight: 600; letter-spacing: -.02em; }
.theme-glass .tile-accent { background: linear-gradient(120deg, #8a6bff, #ff6fb5); border: 0; color: #fff; }
.theme-glass .tile-accent .tile-icon { color: #fff; }
.theme-glass .tabbar { background: rgba(255, 255, 255, .6); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }

/* 15. Neon nocą – ciemne tło i świecące krawędzie */
.theme-neon {
  --bg: #0d0b1e; --surface: #16132e; --surface-2: #1f1b40; --text: #f1eaff; --muted: #a59cc8; --line: #2d2858;
  --accent: #ff3db8; --accent-strong: #ff7dd0; --accent-soft: #2e1640; --on-accent: #0d0b1e;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif;
  --radius: 14px; --shadow: 0 0 0 1px rgba(56, 225, 255, .25), 0 0 22px -6px rgba(56, 225, 255, .35); --ornament: "✦ ✦ ✦";
  --pattern: linear-gradient(rgba(56, 225, 255, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(56, 225, 255, .05) 1px, transparent 1px);
  --hero: radial-gradient(80% 120% at 50% 0%, #3a1258, #0d0b1e);
  --ok-soft: #13302a; --warn-soft: #33270f; --danger-soft: #3a1426; --ok: #6ff0b4; --warn: #ffd166; --danger: #ff7a9a;
}
body.theme-neon { background-size: 32px 32px; }
.theme-neon .guest-names { color: #fff; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; text-shadow: 0 0 10px #ff3db8, 0 0 28px #ff3db8; }
.theme-neon .guest-names .amp { color: #38e1ff; text-shadow: 0 0 10px #38e1ff; }
.theme-neon .tile-accent { background: transparent; color: #ff7dd0; border: 2px solid #ff3db8; box-shadow: 0 0 16px rgba(255, 61, 184, .55), inset 0 0 16px rgba(255, 61, 184, .25); }
.theme-neon .tile-accent .tile-icon { color: #ff7dd0; }
.theme-neon .tile .tile-icon { color: #38e1ff; filter: drop-shadow(0 0 6px #38e1ff); }
.theme-neon .btn-primary { box-shadow: 0 0 18px rgba(255, 61, 184, .55); }

/* 16. Fiesta – każdy kafelek w innym kolorze */
.theme-fiesta {
  --bg: #fffaf0; --surface: #ffffff; --surface-2: #fff1e0; --text: #2b2140; --muted: #6e6485; --line: #f2e3cf;
  --accent: #ff4f7b; --accent-strong: #e0285a; --accent-soft: #ffe3ea;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Dancing Script", cursive; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 20px; --ornament: "🎉";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Crect x='14' y='20' width='8' height='4' rx='2' fill='%23ff4f7b' fill-opacity='.35' transform='rotate(30 18 22)'/%3E%3Crect x='80' y='14' width='8' height='4' rx='2' fill='%232d6cdf' fill-opacity='.35' transform='rotate(-20 84 16)'/%3E%3Ccircle cx='60' cy='60' r='3' fill='%23ffb000' fill-opacity='.45'/%3E%3Crect x='96' y='84' width='8' height='4' rx='2' fill='%2312a36b' fill-opacity='.35' transform='rotate(50 100 86)'/%3E%3Ccircle cx='24' cy='96' r='3' fill='%238b5cf6' fill-opacity='.4'/%3E%3C/svg%3E");
  --hero: linear-gradient(120deg, #ffd6e0, #fff1c7 50%, #d4e6ff);
}
.theme-fiesta .guest-names { font-weight: 600; font-family: "Dancing Script", cursive; }
.theme-fiesta .tile { border: 0; color: #fff; box-shadow: 0 10px 22px -12px rgba(43, 33, 64, .5); }
.theme-fiesta .tile .tile-icon, .theme-fiesta .tile small { color: rgba(255, 255, 255, .92); }
.theme-fiesta .tile:nth-child(6n+1) { background: #ff4f7b; }
.theme-fiesta .tile:nth-child(6n+2) { background: #2d6cdf; }
.theme-fiesta .tile:nth-child(6n+3) { background: #ffb000; color: #2b2140; }
.theme-fiesta .tile:nth-child(6n+3) .tile-icon, .theme-fiesta .tile:nth-child(6n+3) small { color: #2b2140; }
.theme-fiesta .tile:nth-child(6n+4) { background: #12a36b; }
.theme-fiesta .tile:nth-child(6n+5) { background: #8b5cf6; }
.theme-fiesta .tile:nth-child(6n+6) { background: #ff7a3d; }

/* 17. Tropiki – liście monstery i soczyste kolory */
.theme-tropical {
  --bg: #f2fbf5; --surface: #ffffff; --surface-2: #e3f6ea; --text: #173a2e; --muted: #557365; --line: #cfeadb;
  --accent: #0f7a5a; --accent-strong: #0a5c43; --accent-soft: #d8f2e4;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 26px 6px 26px 6px; --ornament: "🌿 🌺 🌿";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cpath d='M30 120 C 10 80 30 40 70 30 C 60 60 70 90 30 120Z' fill='%230f7a5a' fill-opacity='.08'/%3E%3Cpath d='M120 50 C 140 70 140 100 115 125 C 110 100 100 80 120 50Z' fill='%23ff6f61' fill-opacity='.09'/%3E%3C/svg%3E");
  --hero: radial-gradient(circle at 12% 30%, #ffd2c9 0 50px, transparent 51px), radial-gradient(circle at 88% 20%, #bff0d8 0 70px, transparent 71px), linear-gradient(180deg, #d6f3e4, #f2fbf5);
}
.theme-tropical .tile-accent { background: linear-gradient(135deg, #ff6f61, #ff9a5a); border: 0; color: #fff; }
.theme-tropical .tile-accent .tile-icon { color: #fff; }
.theme-tropical .tile .tile-icon { color: #ff6f61; }
.theme-tropical .guest-names .amp { color: #ff6f61; }

/* 18. Cukierkowe pastele – miękkie, zaokrąglone, kafelki w pastelach */
.theme-pastel {
  --bg: #fff7fb; --surface: #ffffff; --surface-2: #fdeef6; --text: #3f3557; --muted: #7d7196; --line: #f3e1ee;
  --accent: #9c7cf4; --accent-strong: #7a57e6; --accent-soft: #efe8ff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Great Vibes", cursive; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 28px; --ornament: "♡ ♡ ♡";
  --hero: linear-gradient(120deg, #ffe0ef, #e6f9f3 50%, #ece5ff);
}
.theme-pastel .tile { border: 0; }
.theme-pastel .tile:nth-child(4n+1) { background: #efe8ff; }
.theme-pastel .tile:nth-child(4n+2) { background: #dff7ef; }
.theme-pastel .tile:nth-child(4n+3) { background: #ffe6d9; }
.theme-pastel .tile:nth-child(4n+4) { background: #ffe0ef; }
.theme-pastel .tile-accent { background: linear-gradient(120deg, #b49cff, #8fd9c6); color: #fff; }
.theme-pastel .tile-accent .tile-icon { color: #fff; }
.theme-pastel .btn { border-radius: 999px; }

/* 19. Zachód słońca – ciepły gradient na nagłówku i przyciskach */
.theme-sunset {
  --bg: #fff3ea; --surface: #ffffff; --surface-2: #ffe8dc; --text: #3d1f3a; --muted: #85617a; --line: #f6d9cb;
  --accent: #e8505b; --accent-strong: #c43642; --accent-soft: #ffe2dc;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 18px; --ornament: "☀";
  --hero: linear-gradient(180deg, #ffb36b 0%, #f2545b 55%, #7b3fa0 100%);
}
.theme-sunset .guest-header { color: #fff; padding-bottom: 2.4rem; border-radius: 0 0 50% 50% / 0 0 28px 28px; }
.theme-sunset .guest-names, .theme-sunset .guest-names .amp, .theme-sunset .guest-header::after { color: #fff; }
.theme-sunset .guest-date { color: rgba(255, 255, 255, .9); }
.theme-sunset .tile-accent, .theme-sunset .btn-primary { background: linear-gradient(120deg, #ff9a5a, #e8505b 55%, #9b4bb8); border: 0; color: #fff; }
.theme-sunset .tile-accent .tile-icon { color: #fff; }

/* 20. Różowy sen – serduszka i różowe złoto */
.theme-blush {
  --bg: #fdeff2; --surface: #fffafb; --surface-2: #fbe4e9; --text: #4d2f35; --muted: #8f6c73; --line: #f4d3da;
  --accent: #d4787f; --accent-strong: #b5585f; --accent-soft: #fbe0e4;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 999px; --ornament: "♥ ♥ ♥";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70' viewBox='0 0 70 70'%3E%3Cpath d='M20 24c-3-6-12-4-11 3 1 5 11 11 11 11s10-6 11-11c1-7-8-9-11-3z' fill='%23d4787f' fill-opacity='.10'/%3E%3C/svg%3E");
  --hero: radial-gradient(120% 100% at 50% 0%, #f8c9d1, #fdeff2);
}
.theme-blush .tile { border-radius: 26px; border-color: #ecc3b0; }
.theme-blush .card { border-radius: 26px; border-color: #ecc3b0; }
.theme-blush .tile-accent { background: linear-gradient(135deg, #e3a08c, #d4787f); border: 0; color: #fff; }
.theme-blush .tile-accent .tile-icon { color: #fff; }
.theme-blush .btn { border-radius: 999px; }

/* Wyraźniejszy charakter dawnych szat */
.theme-classic .card, .theme-classic .tile { outline: 1px solid color-mix(in srgb, var(--accent) 25%, transparent); outline-offset: -5px; }
.theme-roses .tile { border-radius: 60px 60px 18px 18px; }
.theme-sea .tile { border-radius: 4px 28px 4px 28px; }
.theme-lavender .tile { border-radius: 50% 50% 16px 16px / 34px 34px 16px 16px; }
.theme-eucalyptus .tile { border-left: 4px solid var(--accent); }
.theme-glamour .guest-names { color: #e8c55a; }

/* Ciemne szaty (dodatkowo) */
.theme-neon .theme-preview, .ui-glamour .theme-preview.theme-neon, .ui-glamour .qr-themed.theme-neon { --on-accent: #0d0b1e; color-scheme: dark; }
.theme-preview { --tp-radius: var(--radius); }
.theme-preview.theme-fiesta .tp-tile:nth-child(3n+2), .theme-preview.theme-pastel .tp-tile:nth-child(3n+2) { background: #2d6cdf; color: #fff; border-color: transparent; }
.theme-preview.theme-pastel .tp-tile:nth-child(3n+2) { background: #dff7ef; color: var(--text); }
.theme-preview.theme-fiesta .tp-tile:nth-child(3n+3) { background: #ffb000; border-color: transparent; }
.theme-preview.theme-pastel .tp-tile:nth-child(3n+3) { background: #ffe6d9; border-color: transparent; }
.theme-preview.theme-modern .tp-tile { border: 2px solid #111; border-radius: 0; box-shadow: 3px 3px 0 #111; }
.theme-preview.theme-neon .tp-names { color: #fff; text-shadow: 0 0 8px #ff3db8; }
.theme-preview.theme-sunset .tp-names, .theme-preview.theme-royal .tp-names, .theme-preview.theme-royal .tp-orn { color: #fff; }
.theme-preview.theme-glass .tp-tile { background: rgba(255, 255, 255, .55); }


/* ===== Szaty gości – runda 2 (2026-10) ===== */

/* Aksamitne bordo – ciemna, złote litery i ramki */
.theme-velvet {
  --bg: #2a0e16; --surface: #3a1520; --surface-2: #4a1b29; --text: #f5e6dc; --muted: #d1b3a8; --line: #5c2636;
  --accent: #d6b46a; --accent-strong: #ecd08f; --accent-soft: #4a2a22; --on-accent: #2a0e16;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 10px; --shadow: 0 10px 30px rgba(0,0,0,.45); --ornament: "❖";
  --pattern: radial-gradient(circle at 20% 10%, rgba(255,255,255,.05), transparent 40%), radial-gradient(circle at 80% 90%, rgba(0,0,0,.25), transparent 50%);
  --hero: linear-gradient(180deg, #4a1424, #2a0e16);
  --ok-soft: #2f3a24; --warn-soft: #4a3a1c; --danger-soft: #4a1c22; --ok: #b9d79a; --warn: #f0c870; --danger: #f29a9a;
}
.theme-velvet .guest-names { background: linear-gradient(110deg, #b8923f, #f6e3a4 45%, #c9a24c 60%, #f2dc9a); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-velvet .card, .theme-velvet .tile { border: 1px solid #d6b46a55; }
.theme-velvet .tile-accent { background: linear-gradient(135deg, #b8923f, #e8cf87); color: #2a0e16; }
.theme-velvet .tile-accent .tile-icon { color: #2a0e16; }

/* Gwiezdna noc */
.theme-midnight {
  --bg: #0f1733; --surface: #17214a; --surface-2: #1e2a5c; --text: #eef1ff; --muted: #aab3d9; --line: #2b3a75;
  --accent: #e7c873; --accent-strong: #f5dc94; --accent-soft: #2a2f4a; --on-accent: #0f1733;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 18px; --shadow: 0 10px 30px rgba(0,0,0,.4); --ornament: "☾ ✦ ✧";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%23fff'%3E%3Ccircle cx='10' cy='14' r='1.2' fill-opacity='.7'/%3E%3Ccircle cx='70' cy='30' r='.8' fill-opacity='.5'/%3E%3Ccircle cx='100' cy='90' r='1.4' fill-opacity='.6'/%3E%3Ccircle cx='40' cy='80' r='.9' fill-opacity='.4'/%3E%3Cpath d='M90 10l1.2 3 3 1.2-3 1.2L90 18.6l-1.2-3.2-3-1.2 3-1.2z' fill='%23e7c873' fill-opacity='.7'/%3E%3C/g%3E%3C/svg%3E");
  --hero: radial-gradient(120% 100% at 50% 0%, #2a3a7a, #0f1733);
  --ok-soft: #1c3a32; --warn-soft: #3a3320; --danger-soft: #3d1f2a; --ok: #8fd6b4; --warn: #f0c870; --danger: #f29aac;
}
.theme-midnight .guest-header::after { color: #e7c873; text-shadow: 0 0 10px rgba(231,200,115,.6); }
.theme-midnight .tile-accent { background: linear-gradient(135deg, #e7c873, #fff1c2); color: #0f1733; }
.theme-midnight .tile-accent .tile-icon { color: #0f1733; }
.theme-midnight .tile .tile-icon { color: #e7c873; }

/* Papier i atrament – redakcyjny */
.theme-ink {
  --bg: #f7f3ea; --surface: #fffdf7; --surface-2: #efe9db; --text: #1a1a1a; --muted: #5d584e; --line: #1a1a1a;
  --accent: #1a1a1a; --accent-strong: #000; --accent-soft: #ebe5d6; --on-accent: #f7f3ea;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Playfair Display", Georgia, serif;
  --radius: 0px; --shadow: none; --ornament: "※";
  --hero: #f7f3ea;
}
.theme-ink .guest-header { border-bottom: 1px solid #1a1a1a; text-align: left; padding: 1.8rem 1.25rem 1rem; }
.theme-ink .guest-names { font-style: italic; font-size: 2.6rem; }
.theme-ink .guest-names .amp { color: #b23a2b; }
.theme-ink .guest-header::after { color: #b23a2b; text-align: left; }
.theme-ink .tile { border: 1px solid #1a1a1a; align-items: flex-start; text-align: left; font-family: "Playfair Display", serif; font-weight: 600; }
.theme-ink .tile-accent { background: #1a1a1a; color: #f7f3ea; }
.theme-ink .tile .tile-icon { color: #b23a2b; }
.theme-ink .tile-accent .tile-icon { color: #f7f3ea; }
.theme-ink h1, .theme-ink h2 { font-style: italic; }

/* Pop art – komiks */
.theme-popart {
  --bg: #fff35c; --surface: #ffffff; --surface-2: #fff9c7; --text: #111111; --muted: #333333; --line: #111111;
  --accent: #ff2e88; --accent-strong: #d4005f; --accent-soft: #ffd3e6; --on-accent: #ffffff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 14px; --shadow: 4px 4px 0 #111; --ornament: "POW!";
  --pattern: radial-gradient(#ff2e8833 2px, transparent 2.5px);
  --hero: radial-gradient(circle, #1a6dff 0 2px, transparent 2.5px) 0 0 / 14px 14px, #7fb2ff;
}
body.theme-popart { background-size: 16px 16px; }
.theme-popart .guest-header { border-bottom: 4px solid #111; }
.theme-popart .guest-names { font-weight: 600; text-transform: uppercase; color: #fff; -webkit-text-stroke: 1.5px #111; text-shadow: 4px 4px 0 #111; font-size: 2.6rem; }
.theme-popart .guest-names .amp { color: #fff35c; }
.theme-popart .guest-header::after { color: #ff2e88; font-weight: 800; letter-spacing: .1em; text-shadow: 2px 2px 0 #111; }
.theme-popart .card, .theme-popart .tile { border: 3px solid #111; }
.theme-popart .tile:nth-child(3n+1) { background: #ff2e88; color: #fff; }
.theme-popart .tile:nth-child(3n+2) { background: #1a6dff; color: #fff; }
.theme-popart .tile:nth-child(3n+1) .tile-icon, .theme-popart .tile:nth-child(3n+2) .tile-icon, .theme-popart .tile:nth-child(3n+1) small, .theme-popart .tile:nth-child(3n+2) small { color: #fff; }
.theme-popart .btn { border: 3px solid #111; box-shadow: 3px 3px 0 #111; font-weight: 700; }

/* Retro lata 70. – falujące pasy */
.theme-retro {
  --bg: #fbf0d9; --surface: #fffaf0; --surface-2: #f5e3bf; --text: #4a2a16; --muted: #7d5a3e; --line: #e8cfa0;
  --accent: #e0762c; --accent-strong: #b85818; --accent-soft: #f8dcc0;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Josefin Sans", sans-serif; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 999px; --ornament: "☀";
  --hero: repeating-radial-gradient(circle at 50% 140%, #6b3a1e 0 18px, #e0762c 18px 36px, #f2a93b 36px 54px, #f6d27a 54px 72px, #fbf0d9 72px 90px);
}
.theme-retro .guest-header { color: #fffaf0; padding-bottom: 2.4rem; }
.theme-retro .guest-names { color: #fffaf0; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; text-shadow: 0 2px 0 #6b3a1e; }
.theme-retro .guest-names .amp, .theme-retro .guest-header::after, .theme-retro .guest-date { color: #fffaf0; }
.theme-retro .tile { border-radius: 28px; border: 2px solid #e0762c; }
.theme-retro .tile-accent { background: linear-gradient(90deg, #e0762c, #f2a93b); border: 0; color: #fffaf0; }
.theme-retro .tile-accent .tile-icon { color: #fffaf0; }
.theme-retro .card { border-radius: 24px; }

/* Śródziemnomorski – kafle azulejo */
.theme-azulejo {
  --bg: #f5f8fc; --surface: #ffffff; --surface-2: #e9f0fa; --text: #122a55; --muted: #4c5f80; --line: #cfdcef;
  --accent: #1f4fa3; --accent-strong: #163b7c; --accent-soft: #dde8f8;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 6px; --ornament: "✺ 🍋 ✺";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cg fill='none' stroke='%231f4fa3' stroke-opacity='.12' stroke-width='1.5'%3E%3Cpath d='M30 4 L56 30 L30 56 L4 30Z'/%3E%3Ccircle cx='30' cy='30' r='8'/%3E%3Cpath d='M0 0 Q15 15 0 30 M60 0 Q45 15 60 30 M0 60 Q15 45 0 30 M60 60 Q45 45 60 30'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #1f4fa3, #3c6fc4);
}
.theme-azulejo .guest-header { color: #fff; border-bottom: 6px solid #f2c230; }
.theme-azulejo .guest-names, .theme-azulejo .guest-date, .theme-azulejo .guest-header::after { color: #fff; }
.theme-azulejo .guest-names .amp { color: #f2c230; }
.theme-azulejo .tile { border: 2px solid #1f4fa3; box-shadow: inset 0 0 0 4px #fff, inset 0 0 0 5px #1f4fa333; }
.theme-azulejo .tile-accent { background: #f2c230; color: #122a55; border-color: #f2c230; }
.theme-azulejo .tile-accent .tile-icon { color: #122a55; }

/* Garden party – kratka vichy */
.theme-garden {
  --bg: #fbfaf2; --surface: #ffffff; --surface-2: #f3f0e0; --text: #3b3a2e; --muted: #6f6c58; --line: #e6e1c9;
  --accent: #e86f8f; --accent-strong: #c94f71; --accent-soft: #fbe1e8;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 20px; --ornament: "🌼 🌷 🌼";
  --pattern: linear-gradient(90deg, rgba(127,183,126,.12) 50%, transparent 50%), linear-gradient(rgba(127,183,126,.12) 50%, transparent 50%);
  --hero: radial-gradient(circle at 15% 30%, #fbd3de 0 46px, transparent 47px), radial-gradient(circle at 85% 25%, #d7ecd3 0 60px, transparent 61px), linear-gradient(180deg, #fdf5e6, #fbfaf2);
}
body.theme-garden { background-size: 26px 26px; }
.theme-garden .tile { border: 2px dashed #7fb77e; }
.theme-garden .tile-accent { background: #e86f8f; border: 0; color: #fff; }
.theme-garden .tile-accent .tile-icon { color: #fff; }
.theme-garden .tile .tile-icon { color: #7fb77e; }

/* Sakura – kwiat wiśni */
.theme-sakura {
  --bg: #fff6f8; --surface: #ffffff; --surface-2: #fdebf0; --text: #5a3d46; --muted: #8c6f78; --line: #f5dbe3;
  --accent: #e38aa4; --accent-strong: #c96886; --accent-soft: #fde4ec;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 4px 22px 4px 22px; --ornament: "🌸";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='110' height='110'%3E%3Cg fill='%23e38aa4' fill-opacity='.14'%3E%3Cpath d='M20 20c3-6 9-6 9 0-6 0-6 6 0 9-6 3-9-3-9 0 0-6-6-6-9 0 0-3-3-9 0-9-3-6 3-9 9 0z'/%3E%3Cpath d='M80 75c2-4 6-4 6 0-4 0-4 4 0 6-4 2-6-2-6 0 0-4-4-4-6 0 0-2-2-6 0-6-2-4 2-6 6 0z'/%3E%3C/g%3E%3Cpath d='M0 60 Q 40 50 70 30' fill='none' stroke='%235a3d46' stroke-opacity='.08' stroke-width='1.5'/%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #fde4ec, #fff6f8);
}
.theme-sakura .guest-header { border-bottom: 1px solid #f5dbe3; }
.theme-sakura .tile { border-color: #f5dbe3; }
.theme-sakura .tile-accent { background: linear-gradient(135deg, #f2b3c5, #e38aa4); border: 0; color: #fff; }
.theme-sakura .tile-accent .tile-icon { color: #fff; }

/* Zimowa baśń */
.theme-winter {
  --bg: #f0f6fb; --surface: rgba(255,255,255,.85); --surface-2: #e2edf7; --text: #22364a; --muted: #5d7186; --line: #d3e2ef;
  --accent: #6b9ac4; --accent-strong: #4a7aa6; --accent-soft: #dde9f5;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 18px; --ornament: "❄ ❅ ❆";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cg stroke='%236b9ac4' stroke-opacity='.18' stroke-width='1.3' stroke-linecap='round'%3E%3Cpath d='M20 12v16M12 20h16M14 14l12 12M26 14L14 26'/%3E%3Cpath d='M75 65v10M70 70h10M71.5 66.5l7 7M78.5 66.5l-7 7'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #d6e7f5, #f0f6fb);
}
.theme-winter .card, .theme-winter .tile { backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-color: #c7dbec; }
.theme-winter .tile-accent { background: linear-gradient(135deg, #8fb6da, #c7ddf0); color: #22364a; border: 0; }
.theme-winter .tile-accent .tile-icon { color: #22364a; }
.theme-winter .guest-names { color: #3d5f80; }

/* Oliwkowy gaj */
.theme-olive {
  --bg: #f6f4ea; --surface: #fcfbf5; --surface-2: #ece9d8; --text: #3a3a24; --muted: #6c6c4e; --line: #ddd9c0;
  --accent: #6f7a3a; --accent-strong: #555f28; --accent-soft: #e6e8cf;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 14px; --ornament: "❧";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cg fill='%236f7a3a' fill-opacity='.1'%3E%3Cellipse cx='30' cy='30' rx='10' ry='4' transform='rotate(-30 30 30)'/%3E%3Cellipse cx='42' cy='38' rx='10' ry='4' transform='rotate(25 42 38)'/%3E%3Ccircle cx='36' cy='48' r='4' fill='%233a3a24' fill-opacity='.12'/%3E%3Cellipse cx='90' cy='86' rx='9' ry='3.5' transform='rotate(-20 90 86)'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #e3e3c6, #f6f4ea);
}
.theme-olive .tile { border-bottom: 3px solid #6f7a3a; }
.theme-olive .tile-accent { background: #6f7a3a; color: #f6f4ea; }
.theme-olive .tile-accent .tile-icon { color: #f6f4ea; }

/* Ciemne szaty – podgląd w panelu */
.ui-glamour .theme-preview.theme-velvet, .ui-glamour .theme-preview.theme-midnight, .ui-glamour .qr-themed.theme-velvet, .ui-glamour .qr-themed.theme-midnight { color-scheme: dark; }
.theme-preview.theme-popart .tp-tile { border: 2px solid #111; box-shadow: 2px 2px 0 #111; }
.theme-preview.theme-popart .tp-names { color: #fff; -webkit-text-stroke: 1px #111; text-shadow: 2px 2px 0 #111; }
.theme-preview.theme-retro .tp-names, .theme-preview.theme-retro .tp-orn, .theme-preview.theme-azulejo .tp-names, .theme-preview.theme-azulejo .tp-orn { color: #fff; }
.theme-preview.theme-velvet .tp-names { color: #e8cf87; }

/* Szaty działają w panelu pary i gościa; podgląd w wyborze szaty używa tych samych klas */
.theme-preview { background: var(--bg); background-image: var(--pattern, none); color: var(--text); font-family: var(--font-body); border-radius: 14px; overflow: hidden; border: 1px solid var(--line); }
.theme-preview .tp-hero { background: var(--hero, linear-gradient(180deg, var(--accent-soft), var(--bg))); text-align: center; padding: 1rem .5rem .6rem; }
.theme-preview .tp-names { font-family: var(--font-script); font-size: 1.6rem; line-height: 1.1; }
.theme-preview .tp-names span { color: var(--accent); }
.theme-preview .tp-orn { color: var(--accent); font-size: .8rem; letter-spacing: .3em; }
.theme-preview .tp-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; padding: .6rem; }
.theme-preview .tp-tile { background: var(--surface); border: 1px solid var(--line); border-radius: min(var(--radius), 10px); padding: .5rem .3rem; text-align: center; font-size: .72rem; font-weight: 600; }
.theme-preview .tp-tile.accent { grid-column: 1 / -1; background: var(--accent); color: var(--bg); border-color: var(--accent); }
.theme-preview .tp-title { font-family: var(--font-display); font-size: 1.05rem; padding: 0 .6rem .6rem; }

/* Ciemne szaty: stonowane tła komunikatów i znaczników */
.theme-glamour, .theme-artdeco {
  --ok-soft: color-mix(in srgb, #4f7a5a 25%, var(--surface));
  --warn-soft: color-mix(in srgb, #a8732a 25%, var(--surface));
  --danger-soft: color-mix(in srgb, #b0473f 25%, var(--surface));
  --ok: #8cc49a; --warn: #e0b060; --danger: #ef8a80;
}


/* ===== Szaty gości – runda 3 (2026-10) ===== */
.theme-champagne {
  --bg: #fbf6ea; --surface: #fffdf7; --surface-2: #f6eedb; --text: #3a3022; --muted: #7d6f58; --line: #ecdfc2;
  --accent: #c8a45a; --accent-strong: #a7843f; --accent-soft: #f5ead0; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 18px; --ornament: "✧ ❦ ✧";
  --pattern: radial-gradient(circle at 30% 30%, rgba(200,164,90,.22) 0 2px, transparent 3px), radial-gradient(circle at 70% 60%, rgba(200,164,90,.16) 0 3px, transparent 4px);
  --hero: radial-gradient(circle at 20% 80%, rgba(255,255,255,.7) 0 3px, transparent 4px) 0 0 / 46px 46px, radial-gradient(circle at 70% 30%, rgba(255,255,255,.6) 0 2px, transparent 3px) 0 0 / 30px 30px, linear-gradient(180deg, #f1dfb2, #fbf6ea);
}
.theme-champagne .guest-names { background: linear-gradient(110deg, #9c7a3c, #e6cb86 45%, #a7843f 60%, #f0d9a0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-champagne .tile-accent { background: linear-gradient(135deg, #d9bb73, #b08d48); border: 0; color: #fff; }
.theme-champagne .tile-accent .tile-icon { color: #fff; }

.theme-marble {
  --bg: #fbfaf8; --surface: #ffffff; --surface-2: #f3f1ed; --text: #2f2b28; --muted: #7a736b; --line: #e8e4de;
  --accent: #b89650; --accent-strong: #967532; --accent-soft: #f3ecdc; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 4px; --ornament: "◆";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cg fill='none' stroke='%23a59c91' stroke-opacity='.22'%3E%3Cpath d='M-10 60 C 50 40 90 110 150 90 S 250 30 310 70'/%3E%3Cpath d='M-10 210 C 60 190 110 260 180 230 S 260 180 310 200' stroke-width='.7'/%3E%3Cpath d='M120 -10 C 140 60 100 120 150 180' stroke-width='.5'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #f0ede8, #fbfaf8);
}
.theme-marble .guest-names { background: linear-gradient(120deg, #9c7a3c, #e2c47a 45%, #a7843f 60%, #f0d9a0); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-marble .card, .theme-marble .tile { border: 1px solid #e3dccf; box-shadow: 0 10px 24px -18px rgba(60, 50, 30, .4); }
.theme-marble .tile-accent { background: #2f2b28; color: #f0d9a0; border: 0; }
.theme-marble .tile-accent .tile-icon { color: #e2c47a; }

.theme-aurora {
  color-scheme: dark;
  --bg: #0b1426; --surface: #111d36; --surface-2: #172647; --text: #e8f2ff; --muted: #9fb2d1; --line: #22345c;
  --accent: #5ef0c4; --accent-strong: #9af7db; --accent-soft: #143a3e; --on-accent: #062019;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Great Vibes", cursive; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 20px; --shadow: 0 14px 36px rgba(0,0,0,.45); --ornament: "✦";
  --hero: radial-gradient(80% 60% at 20% 20%, rgba(94,240,196,.45), transparent 70%), radial-gradient(70% 60% at 80% 30%, rgba(180,140,255,.45), transparent 70%), linear-gradient(180deg, #13244a, #0b1426);
  --ok-soft: #12332b; --warn-soft: #3a3320; --danger-soft: #3d1f2a; --ok: #8ff0c8; --warn: #f0c870; --danger: #ff9fb0;
}
.theme-aurora .guest-names { background: linear-gradient(90deg, #5ef0c4, #8ad3ff 50%, #b48cff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-aurora .card, .theme-aurora .tile { background: rgba(17, 29, 54, .72); border: 1px solid rgba(94, 240, 196, .18); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.theme-aurora .tile-accent { background: linear-gradient(135deg, #5ef0c4, #b48cff); color: #0b1426; border: 0; }
.theme-aurora .tile-accent .tile-icon { color: #0b1426; }

.theme-mono {
  --bg: #ffffff; --surface: #ffffff; --surface-2: #f2f2f2; --text: #000000; --muted: #555555; --line: #000000;
  --accent: #000000; --accent-strong: #000000; --accent-soft: #eeeeee; --on-accent: #ffffff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 0px; --shadow: none; --ornament: "■";
  --pattern: linear-gradient(rgba(0,0,0,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.05) 1px, transparent 1px);
  --hero: #000;
}
body.theme-mono { background-size: 32px 32px; }
.theme-mono .guest-header { color: #fff; }
.theme-mono .guest-names { color: #fff; text-transform: uppercase; font-weight: 800; letter-spacing: -.02em; font-size: 2.6rem; }
.theme-mono .guest-names .amp, .theme-mono .guest-date, .theme-mono .guest-header::after { color: #fff; }
.theme-mono .card, .theme-mono .tile { border: 2px solid #000; }
.theme-mono .tile { text-transform: uppercase; font-weight: 700; letter-spacing: .04em; }
.theme-mono .tile-accent { background: #000; color: #fff; }
.theme-mono .tile-accent .tile-icon { color: #fff; }
.theme-mono .btn { border-radius: 0; text-transform: uppercase; letter-spacing: .06em; }

.theme-folk {
  --bg: #fffaf0; --surface: #ffffff; --surface-2: #fff1dd; --text: #1f2a44; --muted: #5a6380; --line: #f1dfc4;
  --accent: #d62839; --accent-strong: #ad1a2a; --accent-soft: #fde2e2; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Dancing Script", cursive; --font-body: "Josefin Sans", "Inter", sans-serif;
  --radius: 16px; --ornament: "✿ ❀ ✿";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cg fill-opacity='.13'%3E%3Ccircle cx='20' cy='20' r='5' fill='%23d62839'/%3E%3Ccircle cx='20' cy='11' r='3.5' fill='%231f6f4a'/%3E%3Ccircle cx='20' cy='29' r='3.5' fill='%231f6f4a'/%3E%3Ccircle cx='11' cy='20' r='3.5' fill='%23f2a900'/%3E%3Ccircle cx='29' cy='20' r='3.5' fill='%23f2a900'/%3E%3Ccircle cx='60' cy='60' r='4' fill='%232b4fa8'/%3E%3Cpath d='M60 48 L63 56 L60 54 L57 56Z M60 72 L63 64 L60 66 L57 64Z' fill='%23d62839'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #d62839, #b51d2d);
}
.theme-folk .guest-header { color: #fffaf0; border-bottom: 6px solid; border-image: repeating-linear-gradient(90deg, #1f6f4a 0 14px, #f2a900 14px 28px, #2b4fa8 28px 42px, #fffaf0 42px 56px) 6; }
.theme-folk .guest-names, .theme-folk .guest-names .amp, .theme-folk .guest-date, .theme-folk .guest-header::after { color: #fffaf0; }
.theme-folk .guest-names { font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.theme-folk .tile:nth-child(4n+1) { border-top: 5px solid #d62839; } .theme-folk .tile:nth-child(4n+2) { border-top: 5px solid #1f6f4a; }
.theme-folk .tile:nth-child(4n+3) { border-top: 5px solid #f2a900; } .theme-folk .tile:nth-child(4n+4) { border-top: 5px solid #2b4fa8; }
.theme-folk .tile-accent { background: #1f2a44; color: #fffaf0; }
.theme-folk .tile-accent .tile-icon { color: #f2a900; }

.theme-lemon {
  --bg: #fffdf0; --surface: #ffffff; --surface-2: #fff7c9; --text: #2a3a2f; --muted: #66755f; --line: #f3e9a8;
  --accent: #3aa58a; --accent-strong: #23806a; --accent-soft: #dcf3ea; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Dancing Script", cursive;
  --radius: 24px; --ornament: "🍋";
  --pattern: radial-gradient(circle at 25% 25%, rgba(242,194,48,.18) 0 6px, transparent 7px), radial-gradient(circle at 75% 75%, rgba(58,165,138,.12) 0 4px, transparent 5px);
  --hero: linear-gradient(160deg, #fff3a6, #ffe066 55%, #f2c230);
}
.theme-lemon .guest-names .amp { color: #3aa58a; }
.theme-lemon .tile:nth-child(odd) { background: #fff9d6; }
.theme-lemon .tile-accent { background: linear-gradient(135deg, #3aa58a, #7fd1b6); color: #fff; border: 0; }
.theme-lemon .tile-accent .tile-icon { color: #fff; }
.theme-lemon .btn { border-radius: 999px; }

.theme-peony {
  --bg: #fff7f9; --surface: #ffffff; --surface-2: #fdeaf0; --text: #4a2a35; --muted: #8f6a77; --line: #f6d6e0;
  --accent: #d46a8c; --accent-strong: #b44a6e; --accent-soft: #fde1ea; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 22px; --ornament: "❀";
  --pattern: radial-gradient(circle at 0 0, rgba(212,106,140,.12) 0 30px, transparent 31px), radial-gradient(circle at 100% 100%, rgba(212,106,140,.08) 0 24px, transparent 25px);
  --hero: radial-gradient(60% 70% at 0% 0%, #f6b8cb, transparent 70%), radial-gradient(55% 65% at 100% 10%, #f9cbd8, transparent 70%), linear-gradient(180deg, #fde6ed, #fff7f9);
}
.theme-peony .guest-names { color: #b44a6e; }
.theme-peony .card { border-radius: 28px; }
.theme-peony .tile { border-radius: 40px 14px 40px 14px; }
.theme-peony .tile-accent { background: linear-gradient(135deg, #e88aa8, #c9567c); color: #fff; border: 0; }
.theme-peony .tile-accent .tile-icon { color: #fff; }

.theme-meadow {
  --bg: #fbfaf3; --surface: #ffffff; --surface-2: #f2f3e4; --text: #2f3a2a; --muted: #6a735f; --line: #e5e8d2;
  --accent: #d9412b; --accent-strong: #b52e1b; --accent-soft: #fbe2dc; --on-accent: #fff;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 14px; --ornament: "✿ ❁ ✿";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cg fill-opacity='.16'%3E%3Ccircle cx='18' cy='20' r='5' fill='%23d9412b'/%3E%3Ccircle cx='18' cy='20' r='1.6' fill='%23222'/%3E%3Ccircle cx='66' cy='54' r='4' fill='%233b5fae'/%3E%3Ccircle cx='40' cy='76' r='3.5' fill='%23fff' stroke='%23e8c13a'/%3E%3Cpath d='M18 25 v14 M66 58 v12' stroke='%235b7a3a' stroke-opacity='.4'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #eaf1d8, #fbfaf3);
}
.theme-meadow .guest-names .amp { color: #3b5fae; }
.theme-meadow .tile .tile-icon { color: #d9412b; }
.theme-meadow .tile:nth-child(3n+2) .tile-icon { color: #3b5fae; }
.theme-meadow .tile:nth-child(3n) .tile-icon { color: #5b7a3a; }
.theme-meadow .tile-accent { background: #d9412b; color: #fff; border: 0; }
.theme-meadow .tile-accent .tile-icon { color: #fff; }

.theme-forest {
  color-scheme: dark;
  --bg: #16241c; --surface: #1d2e24; --surface-2: #24382c; --text: #e9efe6; --muted: #a9b9aa; --line: #2f4637;
  --accent: #d2b46a; --accent-strong: #e8cf8c; --accent-soft: #2f3a26; --on-accent: #16241c;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 14px; --shadow: 0 12px 30px rgba(0,0,0,.4); --ornament: "❧";
  --pattern: radial-gradient(circle at 15% 20%, rgba(210,180,106,.08), transparent 35%), radial-gradient(circle at 85% 80%, rgba(120,170,120,.08), transparent 40%);
  --hero: radial-gradient(70% 80% at 50% 0%, rgba(210,180,106,.25), transparent 70%), linear-gradient(180deg, #24382c, #16241c);
  --ok-soft: #22392a; --warn-soft: #3a3320; --danger-soft: #3d2222; --ok: #a8dca0; --warn: #f0c870; --danger: #f2a39a;
}
.theme-forest .guest-names { color: #e8cf8c; }
.theme-forest .card, .theme-forest .tile { border: 1px solid #3a5544; }
.theme-forest .tile .tile-icon { color: #d2b46a; }
.theme-forest .tile-accent { background: linear-gradient(135deg, #d2b46a, #b0924c); color: #16241c; border: 0; }
.theme-forest .tile-accent .tile-icon { color: #16241c; }

.theme-desert {
  --bg: #f8efe4; --surface: #fffaf4; --surface-2: #f2e3d1; --text: #4a3324; --muted: #8a6f5b; --line: #ead8c2;
  --accent: #c9714a; --accent-strong: #a6532f; --accent-soft: #f6dccd; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Dancing Script", cursive;
  --radius: 999px; --ornament: "☀ 🌵 ☀";
  --hero: radial-gradient(circle at 50% 115%, #f6c27a 0 22%, transparent 23%), linear-gradient(180deg, #e7a07a, #f4cfa8 60%, #f8efe4);
}
.theme-desert .guest-names { color: #fffaf4; text-transform: uppercase; letter-spacing: .08em; text-shadow: 0 2px 0 rgba(120, 60, 30, .35); }
.theme-desert .guest-names .amp, .theme-desert .guest-date, .theme-desert .guest-header::after { color: #fffaf4; }
.theme-desert .tile { border-radius: 26px; }
.theme-desert .card { border-radius: 22px; }
.theme-desert .tile:nth-child(even) .tile-icon { color: #6f8a5a; }
.theme-desert .tile-accent { background: linear-gradient(135deg, #d98a5f, #c9714a); color: #fff; border: 0; }
.theme-desert .tile-accent .tile-icon { color: #fff; }
.ui-glamour .theme-preview.theme-aurora, .ui-glamour .theme-preview.theme-forest, .ui-glamour .qr-themed.theme-aurora, .ui-glamour .qr-themed.theme-forest { color-scheme: dark; }
.theme-preview.theme-mono .tp-names, .theme-preview.theme-folk .tp-names, .theme-preview.theme-desert .tp-names { color: #fff; }
.theme-preview.theme-champagne .tp-names, .theme-preview.theme-forest .tp-names { color: var(--accent-strong); }

/* ===== Szaty gości – runda 4 (2026-10) ===== */
.theme-porcelain {
  --bg: #fbfcff; --surface: #ffffff; --surface-2: #eef2fb; --text: #16264d; --muted: #56648a; --line: #d8e1f3;
  --accent: #24489c; --accent-strong: #19357a; --accent-soft: #e2e9f8; --on-accent: #fff;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 14px; --ornament: "❁";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='70'%3E%3Cg fill='none' stroke='%2324489c' stroke-opacity='.12'%3E%3Ccircle cx='35' cy='35' r='10'/%3E%3Cpath d='M35 15c4 6 4 14 0 20-4-6-4-14 0-20zM35 55c4-6 4-14 0-20-4 6-4 14 0 20zM15 35c6-4 14-4 20 0-6 4-14 4-20 0zM55 35c-6-4-14-4-20 0 6 4 14 4 20 0z'/%3E%3C/g%3E%3C/svg%3E");
  --hero: linear-gradient(180deg, #e2e9f8, #fbfcff);
}
.theme-porcelain .guest-names { color: #24489c; font-style: italic; }
.theme-porcelain .card, .theme-porcelain .tile { border: 1px solid #c9d6f0; }
.theme-porcelain .tile { outline: 1px solid #24489c22; outline-offset: -6px; }
.theme-porcelain .tile-accent { background: #24489c; color: #fff; border: 0; }
.theme-porcelain .tile-accent .tile-icon { color: #fff; }

.theme-rosegold {
  --bg: #fdf3f1; --surface: #fffaf9; --surface-2: #fae8e4; --text: #4a2c30; --muted: #8e6a6e; --line: #f1d6d0;
  --accent: #b76e79; --accent-strong: #965360; --accent-soft: #f8e0e0; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Great Vibes", cursive;
  --radius: 20px; --ornament: "✧ ♥ ✧";
  --pattern: radial-gradient(circle at 20% 30%, rgba(183,110,121,.10) 0 2px, transparent 3px);
  --hero: radial-gradient(80% 90% at 50% 0%, #f2c9c2, transparent 70%), linear-gradient(180deg, #fbe5e1, #fdf3f1);
}
.theme-rosegold .guest-names { background: linear-gradient(110deg, #a35d68, #f0c4b8 45%, #b76e79 60%, #f6d3c9); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-rosegold .tile-accent { background: linear-gradient(135deg, #d6949a, #b76e79); color: #fff; border: 0; }
.theme-rosegold .tile-accent .tile-icon { color: #fff; }
.theme-rosegold .btn { border-radius: 999px; }

.theme-terrazzo {
  --bg: #f6f2ec; --surface: #ffffff; --surface-2: #efe9e0; --text: #2a2622; --muted: #6d655c; --line: #e3dbcf;
  --accent: #2f6f73; --accent-strong: #1f5357; --accent-soft: #dcebeb; --on-accent: #fff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 22px; --ornament: "●  ▲  ■";
  --pattern: radial-gradient(circle at 12% 18%, #e06c4f40 0 5px, transparent 6px), radial-gradient(circle at 70% 30%, #2f6f7340 0 4px, transparent 5px), radial-gradient(circle at 40% 75%, #f2b84b50 0 6px, transparent 7px), radial-gradient(circle at 85% 80%, #e06c4f30 0 3px, transparent 4px);
  --hero: radial-gradient(circle at 15% 30%, #e06c4f 0 14px, transparent 15px), radial-gradient(circle at 80% 25%, #f2b84b 0 10px, transparent 11px), radial-gradient(circle at 65% 80%, #2f6f73 0 12px, transparent 13px), radial-gradient(circle at 30% 85%, #e9b6a3 0 8px, transparent 9px), #efe6da;
}
body.theme-terrazzo { background-size: 140px 140px; }
.theme-terrazzo .guest-names { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.theme-terrazzo .guest-names .amp { color: #e06c4f; }
.theme-terrazzo .tile:nth-child(3n+1) .tile-icon { color: #e06c4f; } .theme-terrazzo .tile:nth-child(3n+2) .tile-icon { color: #2f6f73; } .theme-terrazzo .tile:nth-child(3n) .tile-icon { color: #c8952f; }
.theme-terrazzo .tile-accent { background: #2f6f73; color: #fff; border: 0; }
.theme-terrazzo .tile-accent .tile-icon { color: #f2b84b; }

.theme-onyx {
  color-scheme: dark;
  --bg: #121212; --surface: #1b1b1b; --surface-2: #232323; --text: #f2ede4; --muted: #a8a196; --line: #2e2e2e;
  --accent: #c9a45c; --accent-strong: #e2c27f; --accent-soft: #2a251b; --on-accent: #121212;
  --font-display: "Poiret One", "Josefin Sans", sans-serif; --font-script: "Great Vibes", cursive;
  --radius: 4px; --shadow: 0 12px 30px rgba(0,0,0,.5); --ornament: "◇";
  --pattern: linear-gradient(135deg, rgba(201,164,92,.05) 25%, transparent 25%) 0 0 / 40px 40px;
  --hero: linear-gradient(180deg, #1d1d1d, #121212);
  --ok-soft: #1f2b1f; --warn-soft: #2e2716; --danger-soft: #331b1b; --ok: #a8d49a; --warn: #f0c870; --danger: #f29a9a;
}
.theme-onyx .guest-names { color: #e2c27f; letter-spacing: .08em; }
.theme-onyx .card, .theme-onyx .tile { border: 1px solid #c9a45c44; }
.theme-onyx .tile-accent { background: linear-gradient(135deg, #c9a45c, #e2c27f); color: #121212; border: 0; }
.theme-onyx .tile-accent .tile-icon { color: #121212; }

.theme-disco {
  color-scheme: dark;
  --bg: #1a1033; --surface: #24174a; --surface-2: #2e1f5c; --text: #f6eaff; --muted: #bba9e0; --line: #3b2a72;
  --accent: #ff4fd8; --accent-strong: #ff86e6; --accent-soft: #3d1f58; --on-accent: #1a1033;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Dancing Script", cursive; --font-body: "Montserrat", "Inter", sans-serif;
  --radius: 18px; --shadow: 0 14px 36px rgba(0,0,0,.45); --ornament: "🪩";
  --pattern: radial-gradient(circle, rgba(255,255,255,.18) 0 1px, transparent 1.5px);
  --hero: conic-gradient(from 0deg at 50% 0%, #ff4fd8, #7c5cff, #38e1ff, #ffd36e, #ff4fd8);
  --ok-soft: #1c3a32; --warn-soft: #3a3320; --danger-soft: #3d1f2a; --ok: #8ff0c8; --warn: #ffd36e; --danger: #ff9fb0;
}
body.theme-disco { background-size: 18px 18px; }
.theme-disco .guest-names { color: #fff; text-transform: uppercase; font-weight: 800; text-shadow: 0 2px 0 #7c5cff, 0 0 18px rgba(255,79,216,.6); }
.theme-disco .guest-names .amp, .theme-disco .guest-date, .theme-disco .guest-header::after { color: #fff; }
.theme-disco .tile:nth-child(3n+1) { border: 1px solid #ff4fd8; } .theme-disco .tile:nth-child(3n+2) { border: 1px solid #38e1ff; } .theme-disco .tile:nth-child(3n) { border: 1px solid #ffd36e; }
.theme-disco .tile-accent { background: linear-gradient(120deg, #ff4fd8, #7c5cff); color: #fff; border: 0; }
.theme-disco .tile-accent .tile-icon { color: #fff; }

.theme-riviera {
  --bg: #f3fbfb; --surface: #ffffff; --surface-2: #e4f5f5; --text: #173236; --muted: #577477; --line: #d3ecec;
  --accent: #0aa5a8; --accent-strong: #077f82; --accent-soft: #d8f2f2; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Dancing Script", cursive;
  --radius: 16px; --ornament: "☀";
  --hero: repeating-linear-gradient(90deg, #0aa5a8 0 26px, #f3fbfb 26px 52px);
}
.theme-riviera .guest-header { color: #173236; }
.theme-riviera .guest-names { background: #ffffffee; color: #0aa5a8; display: inline-block; padding: .1em .5em; border-radius: 12px; font-weight: 700; }
.theme-riviera .guest-date { background: #f6c445; color: #173236; display: inline-block; padding: .15em .7em; border-radius: 999px; }
.theme-riviera .tile:nth-child(odd) .tile-icon { color: #f2a900; }
.theme-riviera .tile-accent { background: #0aa5a8; color: #fff; border: 0; }
.theme-riviera .tile-accent .tile-icon { color: #f6c445; }

.theme-tuscany {
  --bg: #f8f0e3; --surface: #fffaf2; --surface-2: #f1e4cf; --text: #3f2e1c; --muted: #7f6a52; --line: #ead9bd;
  --accent: #b5762f; --accent-strong: #8f5a1f; --accent-soft: #f4e2c7; --on-accent: #fff;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 12px; --ornament: "❦ 🍇 ❦";
  --pattern: radial-gradient(rgba(181,118,47,.08) 1px, transparent 1.5px);
  --hero: radial-gradient(90% 70% at 50% 0%, #f2c886, transparent 70%), linear-gradient(180deg, #edd3a6, #f8f0e3);
}
.theme-tuscany .guest-names { font-style: italic; color: #8f5a1f; }
.theme-tuscany .tile:nth-child(even) .tile-icon { color: #6f7a3a; }
.theme-tuscany .tile-accent { background: linear-gradient(135deg, #c98a42, #a3672a); color: #fff; border: 0; }
.theme-tuscany .tile-accent .tile-icon { color: #fff; }

.theme-jungle {
  color-scheme: dark;
  --bg: #0f2a22; --surface: #15362c; --surface-2: #1b4236; --text: #eaf3ee; --muted: #a8c3b6; --line: #24503f;
  --accent: #e3b85b; --accent-strong: #f2d184; --accent-soft: #2c3b25; --on-accent: #0f2a22;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 18px; --shadow: 0 12px 30px rgba(0,0,0,.4); --ornament: "🌿";
  --pattern: radial-gradient(ellipse 30px 14px at 20% 30%, rgba(80,160,110,.10), transparent), radial-gradient(ellipse 26px 12px at 75% 70%, rgba(80,160,110,.08), transparent);
  --hero: radial-gradient(ellipse 60% 40% at 0% 0%, #2f6b4f, transparent), radial-gradient(ellipse 55% 40% at 100% 10%, #24573f, transparent), linear-gradient(180deg, #16382d, #0f2a22);
  --ok-soft: #1d3a2c; --warn-soft: #3a3320; --danger-soft: #3d2222; --ok: #a8dca0; --warn: #f0c870; --danger: #f2a39a;
}
.theme-jungle .guest-names { color: #f2d184; }
.theme-jungle .card, .theme-jungle .tile { border: 1px solid #2f6b4f; }
.theme-jungle .tile .tile-icon { color: #e3b85b; }
.theme-jungle .tile-accent { background: linear-gradient(135deg, #e3b85b, #c79a3f); color: #0f2a22; border: 0; }
.theme-jungle .tile-accent .tile-icon { color: #0f2a22; }
.ui-glamour .theme-preview.theme-onyx, .ui-glamour .theme-preview.theme-disco, .ui-glamour .theme-preview.theme-jungle,
.ui-glamour .qr-themed.theme-onyx, .ui-glamour .qr-themed.theme-disco, .ui-glamour .qr-themed.theme-jungle { color-scheme: dark; }
/* ---------- Szaty 2026: japandi, bauhaus, tablica kredowa, mroczny romans, perła, witraż, risograf, kino, letterpress, zielnik ---------- */
.theme-japandi {
  --bg: #f5f1ea; --surface: #fbf8f3; --surface-2: #ece5da; --text: #2b2724; --muted: #8a8075; --line: #e2d9cc;
  --accent: #8a7a66; --accent-strong: #5e5244; --accent-soft: #ece3d6; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-script: "Cormorant Garamond", serif;
  --radius: 4px; --ornament: "●";
  --pattern: repeating-linear-gradient(0deg, rgba(43,39,36,.018) 0 1px, transparent 1px 5px);
  --hero: radial-gradient(circle at calc(100% - 24px) 24px, transparent 0 12px, rgba(43,39,36,.7) 13px 16px, transparent 17px), linear-gradient(180deg, #ece5da, #f5f1ea);
}
.theme-japandi .guest-names { font-weight: 300; letter-spacing: .1em; }
.theme-japandi .card, .theme-japandi .tile { box-shadow: none; border-color: var(--line); }
.theme-japandi .tile-accent { background: #2b2724; color: #f5f1ea; border: 0; }
.theme-japandi .tile-accent .tile-icon { color: #f5f1ea; }

.theme-bauhaus {
  --bg: #f7f3ea; --surface: #ffffff; --surface-2: #efe9dc; --text: #1b1b1b; --muted: #5f5f5f; --line: #1b1b1b;
  --accent: #e63946; --accent-strong: #b5202c; --accent-soft: #fbe0e2; --on-accent: #fff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif;
  --radius: 0px; --ornament: "● ▲ ■";
  --hero: radial-gradient(circle at 0 0, #e63946 0 44px, transparent 45px), linear-gradient(#1d3fa8, #1d3fa8) right 0 top 0 / 30px 30px no-repeat, linear-gradient(#f2b705, #f2b705) 0 100% / 100% 8px no-repeat, #f7f3ea;
}
.theme-bauhaus .guest-names { text-transform: uppercase; font-weight: 700; letter-spacing: -.01em; }
.theme-bauhaus .card, .theme-bauhaus .tile { border: 2px solid #1b1b1b; box-shadow: 5px 5px 0 #e63946; }
.theme-bauhaus .tile:nth-child(3n+2) { box-shadow: 5px 5px 0 #1d3fa8; } .theme-bauhaus .tile:nth-child(3n) { box-shadow: 5px 5px 0 #f2b705; }
.theme-bauhaus .tile-accent { background: #1d3fa8; color: #fff; }
.theme-bauhaus .tile-accent .tile-icon { color: #fff; }

.theme-chalk {
  color-scheme: dark;
  --bg: #2f3d36; --surface: #36463e; --surface-2: #3d4e45; --text: #f5f1e6; --muted: #c3cbbf; --line: #51625a;
  --accent: #f6d38a; --accent-strong: #ffe3a8; --accent-soft: #3f4a3c; --on-accent: #2f3d36;
  --font-display: "Amatic SC", "Cormorant Garamond", serif; --font-script: "Amatic SC", cursive;
  --radius: 10px; --ornament: "✿ ❀ ✿"; --shadow: 0 10px 26px rgba(0,0,0,.3);
  --pattern: radial-gradient(rgba(255,255,255,.04) 1px, transparent 1.4px);
  --hero: radial-gradient(120% 80% at 50% 30%, #3e4f46, #2f3d36);
  --ok-soft: #2f4a36; --warn-soft: #4a4430; --danger-soft: #4a3030; --ok: #a8dca0; --warn: #f0c870; --danger: #f2a39a;
}
.theme-chalk .guest-header { border-bottom: 10px solid #7a5232; }
.theme-chalk .guest-names { color: #f5f1e6; font-weight: 700; letter-spacing: .03em; }
.theme-chalk .card, .theme-chalk .tile { border: 2px dashed rgba(245,241,230,.32); }
.theme-chalk .tile .tile-icon { color: var(--accent); }
.theme-chalk .tile-accent { background: rgba(246,211,138,.16); border: 2px solid var(--accent); }

.theme-moody {
  color-scheme: dark;
  --bg: #1a0d12; --surface: #24131a; --surface-2: #2e1820; --text: #f3e6dd; --muted: #c3a99e; --line: #43242e;
  --accent: #d9b26f; --accent-strong: #ecc98a; --accent-soft: #3a2620; --on-accent: #1a0d12;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 14px; --ornament: "🥀"; --shadow: 0 12px 30px rgba(0,0,0,.45);
  --hero: radial-gradient(circle at 0 0, #8e1b35 0 46px, #5a0d1e 47px 84px, transparent 85px), radial-gradient(circle at 100% 0, #b0304e 0 38px, #6b0f24 39px 70px, transparent 71px), linear-gradient(180deg, #2a1119, #1a0d12);
  --ok-soft: #2a3324; --warn-soft: #3d3320; --danger-soft: #3d2222; --ok: #a8dca0; --warn: #f0c870; --danger: #f2a39a;
}
.theme-moody .guest-names { color: var(--accent); font-style: italic; }
.theme-moody .card, .theme-moody .tile { border: 1px solid #4a2731; }
.theme-moody .tile .tile-icon { color: var(--accent); }
.theme-moody .tile-accent { background: linear-gradient(135deg, #8e1b35, #5a0d1e); color: #f3e6dd; border: 0; }
.theme-moody .tile-accent .tile-icon { color: var(--accent); }

.theme-pearl {
  --bg: #fbf9fd; --surface: #ffffff; --surface-2: #f3eef9; --text: #3b3448; --muted: #7f7690; --line: #e7dff2;
  --accent: #a78bcb; --accent-strong: #7d61a6; --accent-soft: #efe7f8; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 24px; --ornament: "◦ ● ◦";
  --hero: linear-gradient(135deg, #fdf7ff, #e6f1ff 35%, #ffeef4 65%, #eafff4);
}
.theme-pearl .guest-names { background: linear-gradient(100deg, #9b7cc4, #6fb3d9 35%, #e58aac 65%, #78c9a6); -webkit-background-clip: text; background-clip: text; color: transparent; }
.theme-pearl .guest-names .amp { color: #9b7cc4; -webkit-text-fill-color: #9b7cc4; }
.theme-pearl .card, .theme-pearl .tile { box-shadow: inset 0 1px 0 #fff, 0 10px 26px -14px rgba(125,97,166,.35); }
.theme-pearl .tile-accent { background: linear-gradient(135deg, #e9dcf7, #dcecfb 50%, #fbe2ec); color: #3b3448; border: 0; }

.theme-stained {
  --bg: #fbf8f1; --surface: #ffffff; --surface-2: #f1ece0; --text: #1f2033; --muted: #5d5f73; --line: #d8d3c4;
  --accent: #2b4fa8; --accent-strong: #1d3a85; --accent-soft: #e3e9f7; --on-accent: #fff;
  --font-display: "Playfair Display", Georgia, serif; --font-script: "Dancing Script", cursive;
  --radius: 16px; --ornament: "✚";
  --hero: repeating-conic-gradient(from -90deg at 50% 100%, #c62828 0 14deg, #1f2033 14deg 15deg, #2b4fa8 15deg 29deg, #1f2033 29deg 30deg, #f2a900 30deg 44deg, #1f2033 44deg 45deg, #1f6f4a 45deg 59deg, #1f2033 59deg 60deg);
}
.theme-stained .guest-names, .theme-stained .guest-names .amp, .theme-stained .guest-date, .theme-stained .guest-header::after { color: #fff; text-shadow: 0 2px 10px rgba(0,0,0,.55), 0 0 2px #1f2033; }
.theme-stained .card, .theme-stained .tile { border: 2px solid #1f2033; }
.theme-stained .tile:nth-child(4n+1) .tile-icon { color: #c62828; } .theme-stained .tile:nth-child(4n+2) .tile-icon { color: #2b4fa8; }
.theme-stained .tile:nth-child(4n+3) .tile-icon { color: #d39100; } .theme-stained .tile:nth-child(4n) .tile-icon { color: #1f6f4a; }
.theme-stained .tile-accent { background: #2b4fa8; color: #fff; } .theme-stained .tile-accent .tile-icon { color: #fff !important; }
.theme-preview.theme-stained .tp-names { color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,.6); }

.theme-riso {
  --bg: #f6f1e7; --surface: #fffcf5; --surface-2: #efe7d8; --text: #0b5f97; --muted: #4f86ad; --line: #cfdbe6;
  --accent: #ff48b0; --accent-strong: #d81b86; --accent-soft: #ffe0f1; --on-accent: #fff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif;
  --radius: 0px; --ornament: "✦";
  --pattern: radial-gradient(rgba(0,0,0,.05) 1px, transparent 1.3px);
  --hero: radial-gradient(circle at 100% 0, rgba(255,72,176,.85) 0 46px, transparent 47px), radial-gradient(circle at 0 100%, rgba(0,120,191,.5) 0 34px, transparent 35px), #f6f1e7;
}
.theme-riso .guest-names { text-transform: uppercase; font-weight: 700; text-shadow: 3px 2px 0 rgba(255,72,176,.75); }
.theme-riso .card, .theme-riso .tile { border: 2px solid #0b5f97; box-shadow: 5px 5px 0 #ff48b0; }
.theme-riso .tile-accent { background: #ff48b0; color: #fff; border-color: #0b5f97; } .theme-riso .tile-accent .tile-icon { color: #fff; }

.theme-cinema {
  color-scheme: dark;
  --bg: #111111; --surface: #1b1b1b; --surface-2: #232323; --text: #f4f4f4; --muted: #b5b5b5; --line: #333333;
  --accent: #f5c518; --accent-strong: #ffd84a; --accent-soft: #2e2a14; --on-accent: #111111;
  --font-display: "Montserrat", "Inter", sans-serif; --font-script: "Montserrat", sans-serif;
  --radius: 6px; --ornament: "🎬"; --shadow: 0 12px 30px rgba(0,0,0,.5);
  --hero: repeating-linear-gradient(180deg, transparent 0 8px, rgba(255,255,255,.85) 8px 18px, transparent 18px 26px) 7px 0 / 12px 100% no-repeat,
    repeating-linear-gradient(180deg, transparent 0 8px, rgba(255,255,255,.85) 8px 18px, transparent 18px 26px) right 7px top 0 / 12px 100% no-repeat,
    linear-gradient(90deg, #000 0 26px, #1c1c1c 26px calc(100% - 26px), #000 calc(100% - 26px));
  --ok-soft: #22331f; --warn-soft: #3a3320; --danger-soft: #3d2222; --ok: #a8dca0; --warn: #f0c870; --danger: #f2a39a;
}
.theme-cinema .guest-names { text-transform: uppercase; font-weight: 600; letter-spacing: .04em; }
.theme-cinema .card, .theme-cinema .tile { border: 1px solid #2c2c2c; }
.theme-cinema .tile .tile-icon { color: var(--accent); }
.theme-cinema .tile-accent { background: var(--accent); color: #111; border: 0; } .theme-cinema .tile-accent .tile-icon { color: #111; }

.theme-letterpress {
  --bg: #f4f0e8; --surface: #f8f5ef; --surface-2: #ece6da; --text: #2f2a24; --muted: #7a6f62; --line: #ddd4c5;
  --accent: #9a7b4f; --accent-strong: #7a5f38; --accent-soft: #ece2d2; --on-accent: #fff;
  --font-display: "Cormorant Garamond", Georgia, serif; --font-script: "Cormorant Garamond", serif;
  --radius: 4px; --ornament: "❦";
  --pattern: radial-gradient(rgba(120,100,70,.06) 1px, transparent 1.4px);
  --hero: linear-gradient(180deg, #ebe4d6, #f4f0e8);
}
.theme-letterpress .guest-names { color: color-mix(in srgb, #2f2a24 82%, #f4f0e8); text-shadow: 0 1px 0 rgba(255,255,255,.85), 0 -1px 0 rgba(0,0,0,.18); font-weight: 600; }
.theme-letterpress .card, .theme-letterpress .tile { border: 0; box-shadow: inset 1px 1px 3px rgba(0,0,0,.09), inset -1px -1px 1px rgba(255,255,255,.9); background: var(--surface); }
.theme-letterpress .tile-accent { background: var(--accent-soft); color: var(--text); }

.theme-herbarium {
  --bg: #fbf7ef; --surface: #fffdf8; --surface-2: #f2ebdd; --text: #3d3328; --muted: #7f705f; --line: #e6dccb;
  --accent: #b5677b; --accent-strong: #8f4a5c; --accent-soft: #f3e1e5; --on-accent: #fff;
  --font-display: "Dancing Script", cursive; --font-script: "Dancing Script", cursive;
  --radius: 16px; --ornament: "✿";
  --hero: radial-gradient(circle at 14% 30%, #d98fa3 0 7px, transparent 8px), radial-gradient(circle at 18% 22%, #e8b84d 0 3px, transparent 4px), radial-gradient(circle at 86% 26%, #a8b7d8 0 7px, transparent 8px), radial-gradient(circle at 90% 34%, #f0b67f 0 5px, transparent 6px), radial-gradient(ellipse 4px 10px at 12% 44%, #9aa86f 98%, transparent), radial-gradient(ellipse 4px 10px at 88% 46%, #9aa86f 98%, transparent), linear-gradient(180deg, #f3ead9, #fbf7ef);
}
.theme-herbarium .guest-names { color: var(--accent-strong); }
.theme-herbarium .card, .theme-herbarium .tile { border: 1px dashed #d8cbb4; }
.theme-herbarium .tile:nth-child(even) .tile-icon { color: #7d8a5a; }
.theme-herbarium .tile-accent { background: linear-gradient(135deg, #d78fa2, #b5677b); color: #fff; border: 0; } .theme-herbarium .tile-accent .tile-icon { color: #fff; }
.ui-glamour .theme-preview.theme-chalk, .ui-glamour .theme-preview.theme-moody, .ui-glamour .theme-preview.theme-cinema,
.ui-glamour .qr-themed.theme-chalk, .ui-glamour .qr-themed.theme-moody, .ui-glamour .qr-themed.theme-cinema { color-scheme: dark; }

/* ===== 2026-10-22: nowoczesne szaty z własnym układem przycisków ===== */
/* Memphis – lata 80., zygzaki i groszki (układ: bąbelki) */
.theme-memphis {
  --bg: #fff7ec; --surface: #ffffff; --surface-2: #fff0dc; --text: #1d1b3a; --muted: #5d5a7c; --line: #1d1b3a;
  --accent: #ff4d6d; --accent-strong: #e0304f; --accent-soft: #ffe1e7; --on-accent: #fff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-body: "Montserrat", "Inter", sans-serif; --radius: 14px; --ornament: "◆ ● ▲";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cpath d='M10 20 l8 -8 l8 8 l8 -8 l8 8' fill='none' stroke='%2300b3a4' stroke-width='3' stroke-opacity='.35'/%3E%3Ccircle cx='90' cy='30' r='5' fill='%23ffc23d' fill-opacity='.55'/%3E%3Ccircle cx='30' cy='90' r='3' fill='%23ff4d6d' fill-opacity='.45'/%3E%3Cpath d='M80 85 l10 18 l-20 0 z' fill='%237a5cff' fill-opacity='.3'/%3E%3C/svg%3E");
  --hero: #fff0dc;
}
.theme-memphis h1, .theme-memphis .gh-hello { font-weight: 800; letter-spacing: -.01em; }
.theme-memphis .card, .theme-memphis .tile { border: 2px solid #1d1b3a; box-shadow: 4px 4px 0 #1d1b3a; }
.theme-memphis .gh-tile:nth-child(4n+1) .gh-ic { background: #ffc23d; color: #1d1b3a; }
.theme-memphis .gh-tile:nth-child(4n+2) .gh-ic { background: #00b3a4; color: #fff; }
.theme-memphis .gh-tile:nth-child(4n+3) .gh-ic { background: #7a5cff; color: #fff; }
.theme-memphis .gh-tile:nth-child(4n+4) .gh-ic { background: #ff4d6d; color: #fff; }

/* Plastelina – miękkie, wypukłe pastele (układ: karty) */
.theme-clay {
  --bg: #f1ece6; --surface: #f7f4f0; --surface-2: #ece6df; --text: #2f2a3d; --muted: #6f6880; --line: #e3dcd3;
  --accent: #7a6ff0; --accent-strong: #5b50d6; --accent-soft: #e6e3ff; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-body: "Josefin Sans", "Inter", sans-serif; --radius: 26px; --ornament: "● ● ●";
  --hero: #ece6df;
}
.theme-clay .card, .theme-clay .tile { border: 0; border-radius: 26px; box-shadow: 8px 8px 18px #d9d2c8, -8px -8px 18px #ffffff; }
.theme-clay .gh-tile:nth-child(4n+1) { background: #e8f0ff; } .theme-clay .gh-tile:nth-child(4n+2) { background: #fde9e4; }
.theme-clay .gh-tile:nth-child(4n+3) { background: #e5f5ec; } .theme-clay .gh-tile:nth-child(4n+4) { background: #fbf1d9; }
.theme-clay .gh-grid .gh-ic { border-radius: 50%; background: #fff; box-shadow: inset 3px 3px 6px #e2ddd5, inset -3px -3px 6px #fff; }

/* Podróż poślubna – karty pokładowe (układ: bilety) */
.theme-boarding {
  --bg: #eef3f6; --surface: #ffffff; --surface-2: #e4edf2; --text: #1b2a36; --muted: #5c6f7d; --line: #cddbe4;
  --accent: #1f5f8b; --accent-strong: #154a6e; --accent-soft: #dceaf3; --on-accent: #fff;
  --font-display: "Montserrat", "Inter", sans-serif; --font-body: "Inter", sans-serif; --radius: 12px; --ornament: "✈ · · · · ✈";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cpath d='M0 120 Q 40 80 80 110 T 160 90' fill='none' stroke='%231f5f8b' stroke-opacity='.08' stroke-dasharray='4 6'/%3E%3C/svg%3E");
  --hero: #dceaf3;
}
.theme-boarding h1 { text-transform: uppercase; letter-spacing: .08em; font-size: 1.6rem; }
.theme-boarding .gh-tile .gh-t small::before { content: "→ "; }

/* Gazeta weselna – szpalty i nagłówki (układ: bilety) */
.theme-gazette {
  --bg: #f3efe6; --surface: #f8f5ee; --surface-2: #ece6d8; --text: #1c1c1c; --muted: #5a554c; --line: #1c1c1c;
  --accent: #1c1c1c; --accent-strong: #000; --accent-soft: #e5dfd0; --on-accent: #f8f5ee;
  --font-display: "Playfair Display", Georgia, serif; --font-body: "Cormorant Garamond", Georgia, serif; --radius: 0; --ornament: "— WYDANIE SPECJALNE —";
  --pattern: repeating-linear-gradient(0deg, rgba(0,0,0,.025) 0 1px, transparent 1px 4px);
  --hero: #ece6d8;
}
.theme-gazette .guest-header::after { font-size: .7rem; letter-spacing: .3em; }
.theme-gazette .card { border-radius: 0; box-shadow: none; }
.theme-gazette .gh-sec { border-bottom: 3px double #1c1c1c; padding-bottom: .3rem; color: #1c1c1c; }
.theme-gazette .gh-ic { border-radius: 0; background: #1c1c1c; color: #f8f5ee; }

/* Skandynawski – len i jasne drewno (układ: ikony) */
.theme-scandi {
  --bg: #f4f1ec; --surface: #fbfaf7; --surface-2: #ece7df; --text: #2c2f2c; --muted: #737771; --line: #e2ddd4;
  --accent: #5b7a6a; --accent-strong: #456051; --accent-soft: #e2eae5; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-body: "Inter", sans-serif; --radius: 14px; --ornament: "—";
  --hero: #ece7df;
}
.theme-scandi h1, .theme-scandi .gh-hello { font-weight: 400; letter-spacing: .04em; }
.theme-scandi.gl-icons .gh-grid .gh-ic { border-radius: 20px; background: #e8e2d8; border: 0; }

/* Secesja – płynne linie i złoto (układ: lista) */
.theme-nouveau {
  --bg: #f3efe2; --surface: #fbf8ef; --surface-2: #ece6d2; --text: #24433c; --muted: #6b766a; --line: #d9cfae;
  --accent: #2f6b5e; --accent-strong: #24564b; --accent-soft: #dfe9df; --on-accent: #fbf8ef;
  --font-display: "Poiret One", "Josefin Sans", sans-serif; --font-script: "Great Vibes", cursive; --radius: 22px; --ornament: "❧ ❦ ☙";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='90'%3E%3Cpath d='M45 5 C 70 25 70 65 45 85 C 20 65 20 25 45 5' fill='none' stroke='%23b08d3c' stroke-opacity='.12'/%3E%3C/svg%3E");
  --hero: #ece6d2;
}
.theme-nouveau .card, .theme-nouveau .tile { border: 1px solid #b08d3c88; border-radius: 30px 6px 30px 6px; }
.theme-nouveau .gh-ic { border-radius: 50% 50% 50% 8px; color: #b08d3c; }

/* Album ze zdjęciami – polaroidy na taśmie (układ: polaroidy) */
.theme-album {
  --bg: #efe9df; --surface: #faf6ef; --surface-2: #ebe3d6; --text: #33291f; --muted: #7b6d5f; --line: #ddd2c2;
  --accent: #b5534a; --accent-strong: #94413a; --accent-soft: #f1dcd7; --on-accent: #fff;
  --font-display: "Dancing Script", cursive; --font-script: "Dancing Script", cursive; --font-body: "Inter", sans-serif; --radius: 4px; --ornament: "✿";
  --pattern: repeating-linear-gradient(0deg, rgba(51,41,31,.035) 0 1px, transparent 1px 28px);
  --hero: #e6dccd;
}
.theme-album .gh-grid .gh-tile { position: relative; overflow: visible; }
.theme-album .gh-grid .gh-tile::after { content: ""; position: absolute; top: -8px; left: 50%; width: 54px; height: 16px; margin-left: -27px; background: rgba(255, 238, 180, .8); transform: rotate(-3deg); }
.theme-album .gh-grid .gh-ic { background: #e9dfd0; }

/* Neobrutalizm – grube kontury i twarde cienie (układ: mozaika) */
.theme-brutal {
  --bg: #fffdf2; --surface: #ffffff; --surface-2: #fff6c7; --text: #111; --muted: #444; --line: #111;
  --accent: #111; --accent-strong: #000; --accent-soft: #ffe14d; --on-accent: #ffe14d;
  --font-display: "Montserrat", "Inter", sans-serif; --font-body: "Montserrat", "Inter", sans-serif; --radius: 10px; --ornament: "★";
  --hero: #ffe14d;
}
.theme-brutal h1, .theme-brutal .gh-hello { font-weight: 800; text-transform: uppercase; letter-spacing: -.01em; }
.theme-brutal .card, .theme-brutal .tile { border: 3px solid #111; box-shadow: 5px 5px 0 #111; }
.theme-brutal .tile:active { transform: translate(3px, 3px); box-shadow: 2px 2px 0 #111; }
.theme-brutal .gh-grid .gh-tile:nth-child(3n+1) { background: #a7f3d0; } .theme-brutal .gh-grid .gh-tile:nth-child(3n+2) { background: #c4b5fd; } .theme-brutal .gh-grid .gh-tile:nth-child(3n+3) { background: #fda4af; }
.theme-brutal .gh-ic { background: #fff; border: 2px solid #111; color: #111; }

/* Wiejski ogródek – łączka i haft (układ: polaroidy) */
.theme-cottage {
  --bg: #f6f1e7; --surface: #fffcf5; --surface-2: #efe7d6; --text: #3a3229; --muted: #7e7265; --line: #e3d7c2;
  --accent: #b5677a; --accent-strong: #97505f; --accent-soft: #f3dfe3; --on-accent: #fff;
  --font-display: "Dancing Script", cursive; --font-script: "Dancing Script", cursive; --font-body: "Josefin Sans", "Inter", sans-serif; --radius: 12px; --ornament: "✿ ❀ ✿";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M4 4l4 4M8 4l-4 4' stroke='%23b5677a' stroke-opacity='.12'/%3E%3C/svg%3E");
  --hero: #efe7d6;
}
.theme-cottage .gh-grid .gh-tile { border: 1px dashed #b5677a66; }

/* Winyl – czarne płyty i etykiety (układ: ikony) */
.theme-vinyl {
  --bg: #151515; --surface: #1f1f1f; --surface-2: #2a2a2a; --text: #f4efe6; --muted: #b1aa9e; --line: #343434;
  --accent: #ff8a3d; --accent-strong: #ffa364; --accent-soft: #3a2a1f; --on-accent: #151515;
  --font-display: "Montserrat", "Inter", sans-serif; --font-body: "Inter", sans-serif; --radius: 14px; --ornament: "◉ ◉ ◉";
  --hero: #1f1f1f; color-scheme: dark;
}
.theme-vinyl.gl-icons .gh-grid .gh-ic { background: repeating-radial-gradient(circle, #111 0 3px, #1c1c1c 3px 5px); border: 2px solid #333; }
.theme-vinyl.gl-icons .gh-grid .gh-ic .tile-icon { width: 20px !important; height: 20px !important; padding: 5px; box-sizing: content-box; border-radius: 50%; background: #ff8a3d; color: #151515; }
.theme-vinyl .gh-grid .gh-tile:hover .gh-ic { transform: rotate(40deg); transition: transform .5s; }

/* Głębia oceanu – turkus i bąbelki (układ: ikony) */
.theme-deepsea {
  --bg: #0d2b33; --surface: #12363f; --surface-2: #184550; --text: #e6f6f4; --muted: #9cc4c0; --line: #22525c;
  --accent: #3fd0c9; --accent-strong: #6ee0da; --accent-soft: #154a52; --on-accent: #0d2b33;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-body: "Inter", sans-serif; --radius: 18px; --ornament: "° ○ ° ○ °";
  --pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='120'%3E%3Ccircle cx='20' cy='30' r='4' fill='none' stroke='%233fd0c9' stroke-opacity='.18'/%3E%3Ccircle cx='60' cy='90' r='7' fill='none' stroke='%233fd0c9' stroke-opacity='.12'/%3E%3Ccircle cx='50' cy='50' r='2' fill='%233fd0c9' fill-opacity='.18'/%3E%3C/svg%3E");
  --hero: #12363f; color-scheme: dark;
}
.theme-deepsea.gl-icons .gh-grid .gh-ic { border-color: #3fd0c955; background: #12363f; }

/* Origami – papier i zagięcia (układ: mozaika) */
.theme-origami {
  --bg: #f6f3ee; --surface: #ffffff; --surface-2: #f0ebe3; --text: #26282b; --muted: #6d7075; --line: #e4ded4;
  --accent: #e2574c; --accent-strong: #c8443a; --accent-soft: #fbe2df; --on-accent: #fff;
  --font-display: "Josefin Sans", "Inter", sans-serif; --font-body: "Inter", sans-serif; --radius: 4px; --ornament: "◤ ◢";
  --hero: #f0ebe3;
}
.theme-origami .gh-grid .gh-tile { position: relative; border-radius: 4px; overflow: hidden; }
.theme-origami .gh-grid .gh-tile::after { content: ""; position: absolute; right: 0; bottom: 0; width: 22px; height: 22px; background: #e9e3d9; clip-path: polygon(100% 0, 0 100%, 100% 100%); }
.theme-origami .gh-tile:nth-child(4n+1) .gh-ic { background: #e2574c; color: #fff; } .theme-origami .gh-tile:nth-child(4n+2) .gh-ic { background: #2f6fb5; color: #fff; }
.theme-origami .gh-tile:nth-child(4n+3) .gh-ic { background: #f2b33d; color: #26282b; } .theme-origami .gh-tile:nth-child(4n+4) .gh-ic { background: #3d9a74; color: #fff; }
.theme-origami .gh-ic { border-radius: 2px; clip-path: polygon(0 0, 100% 0, 100% 70%, 70% 100%, 0 100%); }
