:root{
  --bg:#f3f6fb;
  --panel:#ffffff;
  --text:#172033;
  --muted:#6b7280;
  --line:#d9e1ec;
  --accent:#6256e8;
  --accent-dark:#4f46c7;
  --accent-2:#0ea5e9;
  --accent-3:#f59e0b;
  --soft:#eef0ff;
  --shadow:0 18px 55px rgba(26,37,60,.12);
  --hero-shadow:0 28px 70px rgba(35,46,90,.18);
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
body{margin:0;color:var(--text);background:
radial-gradient(circle at 8% 10%, rgba(99,102,241,.15), transparent 20%),
radial-gradient(circle at 92% 12%, rgba(14,165,233,.14), transparent 18%),
radial-gradient(circle at 78% 78%, rgba(245,158,11,.12), transparent 18%),
linear-gradient(180deg,#eef2ff 0,#f7f9fc 280px,#f3f6fb 100%);position:relative;overflow-x:hidden}
body::before, body::after{content:"";position:fixed;inset:auto;pointer-events:none;z-index:-1;border-radius:999px;filter:blur(10px);opacity:.65}
body::before{width:320px;height:320px;left:-90px;top:120px;background:radial-gradient(circle, rgba(168,85,247,.18), rgba(168,85,247,0));}
body::after{width:360px;height:360px;right:-110px;bottom:50px;background:radial-gradient(circle, rgba(14,165,233,.16), rgba(14,165,233,0));}
button,input,select,textarea{font:inherit}
.topbar{max-width:1500px;margin:0 auto;padding:28px 28px 8px}
.topbar-shell{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(320px,.9fr);gap:28px;align-items:center;background:linear-gradient(135deg, rgba(255,255,255,.88), rgba(255,255,255,.7));border:1px solid rgba(255,255,255,.75);box-shadow:var(--hero-shadow);border-radius:30px;padding:28px;backdrop-filter:blur(6px);position:relative;overflow:hidden}
.topbar-shell::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg, rgba(99,102,241,.08), rgba(14,165,233,.06) 45%, rgba(245,158,11,.08));pointer-events:none}
.hero-copy,.hero-visual{position:relative;z-index:1}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:900;letter-spacing:.11em;text-transform:uppercase;color:var(--accent);padding:8px 12px;border-radius:999px;background:rgba(99,102,241,.1);box-shadow:inset 0 0 0 1px rgba(99,102,241,.12)}
h1{margin:.8rem 0 .7rem;font-size:clamp(2rem,4vw,3.5rem);line-height:1.02;letter-spacing:-.03em;background:linear-gradient(135deg,#1e293b 0%, #4f46e5 38%, #0f766e 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.topbar p{margin:0;color:#475569;max-width:760px;font-size:1.03rem;line-height:1.7}
.hero-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.hero-tags span{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:#fff;color:#334155;font-size:.85rem;font-weight:800;box-shadow:0 10px 24px rgba(15,23,42,.08)}
.hero-visual{min-height:280px;display:flex;align-items:center;justify-content:center;padding:8px 0}
.hero-glow{position:absolute;border-radius:999px;filter:blur(6px)}
.hero-glow-1{width:220px;height:220px;background:radial-gradient(circle, rgba(129,140,248,.28), rgba(129,140,248,0));left:10%;top:12%}
.hero-glow-2{width:180px;height:180px;background:radial-gradient(circle, rgba(34,211,238,.26), rgba(34,211,238,0));right:4%;bottom:10%}
.hero-card{border-radius:28px;position:absolute;box-shadow:0 20px 45px rgba(15,23,42,.16)}
.hero-card-back{width:74%;height:72%;background:linear-gradient(135deg, rgba(99,102,241,.2), rgba(14,165,233,.18));transform:rotate(-8deg) translate(-10px, 12px);opacity:.9}
.hero-card-front{position:relative;width:min(460px,92%);min-height:250px;background:linear-gradient(180deg,#ffffff,#f8fbff);border:1px solid rgba(203,213,225,.8);padding:18px 18px 20px;transform:rotate(3deg)}
.hero-toolbar{display:flex;gap:8px;margin-bottom:16px}
.hero-toolbar span{width:11px;height:11px;border-radius:50%;background:#cbd5e1}
.hero-toolbar span:nth-child(1){background:#fda4af}.hero-toolbar span:nth-child(2){background:#fcd34d}.hero-toolbar span:nth-child(3){background:#86efac}
.hero-banner-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}
.hero-banner{aspect-ratio:3/4;border-radius:18px 18px 22px 22px;color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Fredoka',sans-serif;font-weight:900;font-size:clamp(2.2rem,4vw,3.4rem);position:relative;text-shadow:0 4px 14px rgba(0,0,0,.18);box-shadow:0 12px 24px rgba(15,23,42,.12);clip-path:polygon(0 0,100% 0,100% 84%,50% 100%,0 84%)}
.hero-banner::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at top right, rgba(255,255,255,.28), transparent 32%)}
.hero-banner-a{background:linear-gradient(180deg,#f97316,#facc15)}
.hero-banner-b{background:linear-gradient(180deg,#14b8a6,#0ea5e9)}
.hero-banner-c{background:linear-gradient(180deg,#8b5cf6,#ec4899)}
.hero-tools-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.hero-tool{padding:10px 14px;border-radius:14px;font-size:.84rem;font-weight:800;color:#1e293b;box-shadow:0 12px 20px rgba(15,23,42,.08)}
.pill-purple{background:rgba(99,102,241,.12)}.pill-blue{background:rgba(14,165,233,.12)}.pill-gold{background:rgba(245,158,11,.15)}
.hero-sticker{position:absolute;display:grid;place-items:center;border-radius:50%;color:#fff;font-weight:900;box-shadow:0 14px 26px rgba(15,23,42,.16)}
.hero-sticker-star{width:54px;height:54px;background:linear-gradient(135deg,#f59e0b,#f97316);top:8%;right:6%;font-size:1.4rem}
.hero-sticker-heart{width:48px;height:48px;background:linear-gradient(135deg,#ec4899,#ef4444);left:4%;bottom:18%;font-size:1.1rem}
.hero-sticker-pencil{width:58px;height:58px;background:linear-gradient(135deg,#22c55e,#0ea5e9);right:11%;bottom:4%;font-size:1.25rem}
.app-shell{max-width:1500px;margin:0 auto;padding:18px 28px 48px;display:grid;grid-template-columns:minmax(360px,560px) minmax(460px,1fr);gap:26px;align-items:start}
.panel{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.94));border:1px solid rgba(217,225,236,.9);border-radius:22px;box-shadow:var(--shadow);backdrop-filter:blur(4px)}
.controls{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:16px}
.full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:8px}
.field label{font-weight:700;font-size:.9rem}
.field small{color:var(--muted);font-size:.78rem;line-height:1.35}
textarea,select,input[type="text"],input[type="file"]{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text)}
textarea,select,input[type="text"]{padding:11px 12px}
textarea{resize:vertical;min-height:82px}
input[type="file"]{padding:8px}
input[type="range"]{width:100%;accent-color:var(--accent)}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:#f3f4f6;border-radius:12px;padding:4px;gap:4px}
.seg{border:0;background:transparent;padding:10px 12px;border-radius:9px;font-weight:800;cursor:pointer;color:#5d6472}
.seg.active{background:#fff;color:var(--accent);box-shadow:0 2px 8px rgba(25,35,50,.08)}
.group{display:grid;grid-template-columns:1fr;gap:14px}
.hidden{display:none!important}
.section-title{font-size:.82rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#495268;padding-top:6px;border-top:1px solid #edf0f4;padding-top:16px}
.pattern-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.pattern-card{border:2px solid transparent;background:#f6f7fb;border-radius:12px;padding:5px;cursor:pointer;transition:.18s ease}
.pattern-card:hover{transform:translateY(-2px)}
.pattern-card.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(98,86,232,.12)}
.pattern-card canvas{display:block;width:100%;aspect-ratio:210/297;border-radius:8px;background:#fff}
.toggle-row{display:flex;gap:8px}
.toggle{width:44px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer}
.toggle.active{border-color:var(--accent);background:var(--soft);color:var(--accent)}
.color-row{display:grid;grid-template-columns:48px 1fr;gap:8px}
input[type="color"]{width:48px;height:42px;border:1px solid var(--line);border-radius:10px;padding:3px;background:#fff}
.checkbox-field{justify-content:end}
.checkbox-field label{font-weight:600;display:flex;align-items:center;gap:8px;min-height:42px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}
.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:850;cursor:pointer;transition:.18s ease}
.btn.primary{background:var(--accent);color:#fff;box-shadow:0 7px 20px rgba(98,86,232,.26)}
.btn.primary:hover{background:var(--accent-dark)}
.btn.secondary{background:#edf0f6;color:#2e3749}
.btn.small{align-self:flex-start;padding:8px 10px;font-size:.82rem}
.preview-panel{padding:20px;position:sticky;top:16px;background:linear-gradient(180deg,#ffffff 0,#f8fbff 100%)}
.preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.preview-head h2{font-size:1.05rem;margin:.22rem 0 0}
.nav-buttons{display:flex;gap:8px}
.icon-btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.25rem}
.canvas-wrap{background:linear-gradient(135deg,#dbe6ff,#edf5ff 58%,#e8eef8);border-radius:22px;padding:18px;display:flex;justify-content:center;overflow:auto;position:relative}
#previewCanvas{display:block;max-width:100%;width:auto;height:min(72vh,850px);aspect-ratio:210/297;background:#fff;box-shadow:0 14px 35px rgba(31,41,55,.2)}
.preview-footer{display:flex;justify-content:space-between;color:var(--muted);font-size:.82rem;padding-top:12px}
.preview-footer #currentChar{font-weight:900;color:var(--accent);font-size:1rem}
.toast{position:fixed;right:20px;bottom:20px;background:#101827;color:white;padding:12px 16px;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.22);opacity:0;pointer-events:none;transform:translateY(10px);transition:.2s ease;z-index:50;max-width:360px}
.toast.show{opacity:1;transform:translateY(0)}
.print-area{display:none}

.decor-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.decor-card{border:2px solid transparent;background:#f6f7fb;border-radius:12px;padding:5px;cursor:pointer;transition:.18s ease;min-width:0}
.decor-card:hover{transform:translateY(-2px);background:#f0f2f8}
.decor-card.active{border-color:var(--accent);box-shadow:0 0 0 3px rgba(98,86,232,.12)}
.decor-card canvas{display:block;width:100%;aspect-ratio:1/1;border-radius:8px;background:#fff}
.decor-card span{display:block;font-size:.68rem;font-weight:800;color:#566074;text-align:center;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:640px){.decor-grid{grid-template-columns:repeat(4,1fr)}}

@media(max-width:1050px){.app-shell{grid-template-columns:1fr}.preview-panel{position:static}.preview-panel{order:-1}#previewCanvas{height:min(66vh,700px)}}
@media(max-width:640px){.topbar,.app-shell{padding-left:14px;padding-right:14px}.controls{grid-template-columns:1fr}.field,.full,.section-title,.actions,.group{grid-column:1}.pattern-grid{grid-template-columns:repeat(3,1fr)}.segmented{grid-template-columns:1fr}.canvas-wrap{padding:10px}.preview-panel{padding:12px}}
@media print{
  body>*:not(.print-area){display:none!important}
  .print-area{display:block!important}
  .print-page{page-break-after:always;width:210mm;height:297mm;margin:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
  .print-page:last-child{page-break-after:auto}
  .print-page img{width:210mm;height:297mm;object-fit:cover;display:block}
  @page{size:A4 portrait;margin:0}
}


.image-decor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px}
.image-decor-card{border:2px solid transparent;background:#f6f7fb;border-radius:14px;padding:6px;cursor:pointer;transition:.18s ease;display:flex;flex-direction:column;gap:8px;align-items:stretch}
.image-decor-card:hover{transform:translateY(-2px)}
.image-decor-card.active{border-color:var(--accent);box-shadow:0 10px 18px rgba(98,86,232,.18);background:#fff}
.image-decor-card img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:10px;display:block;background:#e5e7eb}
.image-decor-card span{font-size:.78rem;font-weight:700;line-height:1.2;color:#334155;text-align:center}
.mini-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}

#imageDecorCategory{max-width:100%}


.pdf-loading-overlay{position:fixed;inset:0;background:rgba(15,23,42,.58);display:none;align-items:center;justify-content:center;z-index:9999;padding:20px;backdrop-filter:blur(2px)}
.pdf-loading-overlay.show{display:flex}
.pdf-loading-box{width:min(420px,92vw);background:#fff;border-radius:20px;padding:28px 24px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.28)}
.pdf-loading-box h3{margin:14px 0 8px;font-size:1.35rem;color:#0f172a}
.pdf-loading-box p{margin:0;color:#475569;line-height:1.5}
.pdf-spinner{width:52px;height:52px;border:5px solid #e2e8f0;border-top-color:#6256e8;border-radius:50%;margin:0 auto;animation:pdfSpin .85s linear infinite}
@keyframes pdfSpin{to{transform:rotate(360deg)}}


.license-note{
  margin:10px 0 8px;
  padding:10px 12px;
  border-radius:10px;
  background:#fff7ed;
  border:1px solid #fdba74;
  color:#9a3412;
  font-size:.88rem;
  line-height:1.45;
  font-weight:600;
}

@media(max-width:1050px){.topbar-shell{grid-template-columns:1fr;}.hero-visual{min-height:240px;order:-1}}
@media(max-width:640px){.topbar{padding-left:14px;padding-right:14px}.topbar-shell{padding:18px;border-radius:22px}.hero-tags span{font-size:.78rem;padding:8px 12px}.hero-card-front{width:100%;min-height:220px;padding:14px}.hero-banner-row{gap:10px}.hero-tools-row{gap:8px}.hero-tool{font-size:.76rem;padding:8px 10px}}

/* v58 — treść SEO i stopka */
.seo-intro{max-width:1180px;margin:10px auto 0;padding:34px 24px;color:#334155;line-height:1.7}
.seo-intro h2{color:#0f172a;font-size:clamp(1.45rem,3vw,2rem);margin:0 0 14px}
.seo-intro p{max-width:1000px;margin:0 0 12px}
.site-footer{background:#111827;color:#cbd5e1;margin-top:26px}
.footer-inner{max-width:1180px;margin:auto;padding:34px 24px}
.footer-inner h2{color:#fff;font-size:1rem;margin:0 0 16px}
.footer-links{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px 18px}
.footer-links a{color:#e0e7ff;text-decoration:none;font-size:.88rem;line-height:1.35}
.footer-links a:hover{text-decoration:underline;color:#fff}
.footer-copy{font-size:.8rem;color:#94a3b8;margin:22px 0 0}
@media(max-width:900px){.footer-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.footer-links{grid-template-columns:1fr}}
