
:root{--green:#244d39;--green2:#173526;--cream:#f8f4eb;--line:#e5dfd3;--text:#24231f;--muted:#77736b;--gold:#b78a50;--danger:#b84343}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fcfbf8;color:var(--text);font-family:"DM Sans",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.site-header{height:74px;padding:0 3vw;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.brand{font-family:"Playfair Display",serif;font-size:28px;color:#1d1d1b;text-decoration:none}.site-header nav{display:flex;gap:28px}.site-header nav a{color:#373631;text-decoration:none;font-size:14px}.btn{border:0;border-radius:8px;padding:11px 18px;font-weight:600}.btn-primary{background:var(--green);color:white}.btn-primary:hover{background:var(--green2)}.btn-light{background:#fff;border:1px solid var(--line);color:#333}.btn-danger{background:#fff;border:1px solid #e6b4b4;color:var(--danger)}.btn-large{padding:15px 24px}.full{width:100%}.hero{text-align:center;padding:74px 20px 52px;max-width:980px;margin:auto}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:700;color:var(--green)}h1,h2{font-family:"Playfair Display",serif;font-weight:600;margin:14px 0}h1{font-size:clamp(42px,5vw,70px);line-height:1.07}h2{font-size:42px}.hero p{max-width:740px;margin:18px auto 28px;color:var(--muted);font-size:18px;line-height:1.7}.hero-actions{display:flex;justify-content:center;gap:12px}.creator-shell{max-width:1520px;margin:0 auto 70px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(65,57,44,.08);overflow:hidden}.toolbar{display:flex;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfaf7}.toolbar-group{display:flex;align-items:center;gap:8px}.tool{background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:8px}.tool-accent{background:var(--green);color:#fff}.creator-grid{display:grid;grid-template-columns:350px 1fr;min-height:900px}.panel{padding:18px;border-right:1px solid var(--line);max-height:900px;overflow:auto}.panel-tabs{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--line);margin:-4px -4px 18px;position:sticky;top:-18px;background:#fff;z-index:5}.tab{border:0;background:transparent;padding:11px 4px;border-bottom:2px solid transparent;font-size:11px}.tab.active{color:var(--green);border-bottom-color:var(--green);font-weight:700}.tab-content{display:none}.tab-content.active{display:block}.panel h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin:20px 0 11px}.element-grid,.decor-grid,.pattern-grid,.style-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.element-grid button,.decor-grid button,.pattern-grid button,.style-grid button{min-height:88px;border:1px solid var(--line);border-radius:10px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-size:11px;padding:8px}.decor-grid button span{font-size:34px}.pattern-grid button{min-height:64px}.pattern-grid button span{width:100%;height:35px;border-radius:6px}.style-grid button{align-items:flex-start;text-align:left;padding:12px}.style-grid strong{font-family:"Playfair Display",serif;font-size:17px}.style-swatch{height:28px!important;width:100%!important;border-radius:6px}.shape{display:block;border:2px solid var(--gold)}.shape.round{width:42px;height:42px;border-radius:50%}.shape.rect{width:56px;height:32px}.shape.long{width:72px;height:26px}.text-shape{font-family:serif;font-size:34px;color:#777}.empty-state{padding:16px;background:#f8f6f1;border-radius:9px;color:var(--muted);font-size:13px;line-height:1.5}.selection-controls label,.tab-content label,.order-section label{display:block;font-size:12px;font-weight:600;margin:11px 0}.selection-controls input,.selection-controls select,.tab-content input,.tab-content select,.tab-content textarea,.order-section input,.order-section select,.order-section textarea{width:100%;margin-top:6px;border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff}.selection-controls input[type=range],.tab-content input[type=range]{padding:0}.selection-controls input[type=color],.tab-content input[type=color]{height:42px;padding:4px}.row,.color-row{display:flex;gap:8px;margin-top:14px}.row .btn{flex:1}.color-row input{flex:1}.hidden{display:none!important}.muted{font-size:12px;color:var(--muted);line-height:1.5}.workspace-wrap{background:#ece9e3;padding:22px;overflow:auto}.workspace-stage{min-width:700px;display:flex;justify-content:center;align-items:flex-start}.workspace{width:700px;height:1000px;position:relative;transform-origin:top center;box-shadow:0 8px 30px rgba(0,0,0,.13);overflow:hidden;background:#fffaf0}.pattern-layer,.custom-bg-layer{position:absolute;inset:0;pointer-events:none}.pattern-layer{z-index:0}.custom-bg-layer{z-index:1;background-position:center;background-repeat:no-repeat}.project-heading{position:absolute;z-index:3;top:48px;left:55px;right:55px;text-align:center;pointer-events:none}.project-heading>div:first-child{font-family:"Playfair Display",serif;font-size:38px;letter-spacing:.25em}.project-heading>div:nth-child(2){font-family:"Great Vibes",cursive;font-size:58px;color:var(--gold);margin:8px}.project-heading>div:last-child{letter-spacing:.18em}.canvas-item{position:absolute;z-index:4;display:flex;align-items:center;justify-content:center;user-select:none;touch-action:none;border:1.5px solid var(--gold);background:rgba(255,255,255,.82);color:#242422;text-align:center;padding:10px;overflow:hidden;transform-origin:center}.canvas-item.round{border-radius:50%}.canvas-item.text{border:none;background:transparent}.canvas-item.decor{border:none;background:transparent;padding:0;font-size:54px}.canvas-item.selected{outline:3px solid rgba(36,77,57,.32);outline-offset:4px}.canvas-item .table-content{font-size:12px;line-height:1.35;max-height:100%;overflow:hidden;width:100%}.canvas-item .table-title{font-size:21px;margin-bottom:6px}.workspace-tip{text-align:center;color:#777;font-size:12px;margin-top:18px}.section{max-width:1240px;margin:0 auto;padding:85px 24px}.showcase{text-align:center}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}.cards article{background:#fff;border:1px solid var(--line);padding:28px;border-radius:14px;text-align:left}.cards p{color:var(--muted);line-height:1.6}.print-section{display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}.print-section p{color:var(--muted);line-height:1.7}.price-card{background:var(--green);color:#fff;padding:45px;border-radius:18px;display:flex;flex-direction:column}.price-card strong{font-size:42px;margin:12px 0}.price-card small{opacity:.75}.order-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.order-section form{background:#fff;border:1px solid var(--line);padding:30px;border-radius:16px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-message{margin-top:14px;color:var(--green);font-weight:600}footer{padding:40px 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;color:var(--muted)}
@media(max-width:1000px){.site-header nav{display:none}.creator-grid{grid-template-columns:1fr}.panel{border-right:0;border-bottom:1px solid var(--line);max-height:none}.cards{grid-template-columns:1fr 1fr}.print-section,.order-section{grid-template-columns:1fr}.toolbar{overflow:auto;gap:20px}.form-grid{grid-template-columns:1fr}}@media(max-width:620px){.site-header .btn{display:none}.hero-actions{flex-direction:column}.cards{grid-template-columns:1fr}h2{font-size:34px}footer{flex-direction:column;gap:10px}.creator-shell{border-radius:0;border-left:0;border-right:0}.panel-tabs{grid-template-columns:repeat(3,1fr)}}
@media print{body *{visibility:hidden}.workspace,.workspace *{visibility:visible}.workspace{position:absolute;left:0;top:0;box-shadow:none}.site-header{display:none}}

.order-cta-card{background:#fff;border:1px solid var(--line);padding:34px;border-radius:16px}.modal-backdrop{position:fixed;inset:0;background:rgba(20,25,22,.72);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.order-modal{position:relative;width:min(920px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;padding:34px}.modal-close{position:absolute;right:18px;top:12px;border:0;background:none;font-size:32px}.order-step{display:none}.order-step.active{display:block}.consent{display:flex!important;gap:10px}.consent input{width:auto!important}.order-total{display:flex;justify-content:space-between;align-items:center;padding:20px 0}.order-total strong{font-size:30px}.order-review,.success-box,.bank-details{padding:18px;border-radius:12px;background:#f6f4ef;margin:18px 0;line-height:1.7}.bank-details{background:#fff9ed}.preview-box{text-align:center;background:#ece9e3;padding:18px;border-radius:12px;margin-bottom:18px}.preview-box img{max-width:100%;max-height:460px;box-shadow:0 8px 25px rgba(0,0,0,.18)}.decor-grid button svg{width:52px;height:52px}.canvas-item.decor svg{width:100%;height:100%}
.order-modal{background:linear-gradient(180deg,#fff 0%,#fcfaf6 100%)}
.order-modal h2{margin-bottom:8px}
.form-intro{background:#f3f6f2;border:1px solid #dfe8de;border-radius:12px;padding:14px 16px;margin:0 0 22px}
.form-intro strong{display:block;color:var(--green);margin-bottom:4px}
.form-intro p{margin:0;color:var(--muted);font-size:13px}
.optional-label{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:#f0ece4;color:#7b7468;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;vertical-align:1px}
#customerForm .form-grid{gap:16px 18px}
#customerForm label{margin:0;font-size:13px;color:#2d2c28}
#customerForm input,#customerForm select,#customerForm textarea{border:1px solid #d9d3c8;background:#fff;min-height:46px;transition:border-color .2s,box-shadow .2s,background .2s}
#customerForm textarea{min-height:110px;resize:vertical}
#customerForm input::placeholder,#customerForm textarea::placeholder{color:#aaa398}
#customerForm input:focus,#customerForm select:focus,#customerForm textarea:focus{outline:none;border-color:#6e907a;box-shadow:0 0 0 4px rgba(36,77,57,.10)}
#customerForm .consent{background:#f8f5ef;border:1px solid #e4ddd1;border-radius:10px;padding:13px 14px;margin-top:18px}
#customerForm .consent input{min-height:auto;accent-color:var(--green)}
.order-total{background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px 18px}
.order-step .btn + .btn{margin-top:10px}
@media(max-width:680px){.order-modal{padding:24px 18px}#customerForm .form-grid{grid-template-columns:1fr}}

/* Formularz zamówienia v7.2 */
.modal-backdrop{
  backdrop-filter:blur(5px);
  overflow-y:auto;
}
.order-modal{
  width:min(960px,calc(100% - 24px));
  max-height:none;
  margin:auto;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 28px 90px rgba(15,25,19,.36);
}
.order-modal-header{
  padding:34px 38px 24px;
  background:linear-gradient(135deg,#f5f8f4 0%,#fffaf1 100%);
  border-bottom:1px solid #e7e1d6;
}
.order-modal-header h2{font-size:38px;margin:8px 0 6px}
.order-modal-header p{margin:0;color:var(--muted);line-height:1.6}
.modal-close{
  z-index:3;
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  border:1px solid #ded8cd;
  color:#4c4942;
  line-height:1;
}
.modal-close:hover{background:#fff;color:#111}
.customer-form{padding:26px 38px 34px}
.form-section{
  border:1px solid #e4ded3;
  border-radius:14px;
  padding:20px;
  margin:0 0 18px;
  background:#fff;
}
.form-section legend{
  padding:0 9px;
  color:var(--green);
  font-size:13px;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
}
#customerForm .form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:17px 18px;
}
#customerForm .field{
  display:block;
  margin:0;
  min-width:0;
}
#customerForm .field-wide{grid-column:1/-1}
#customerForm .field>span{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 0 7px;
  color:#34332f;
  font-size:13px;
  font-weight:700;
}
#customerForm .field b,.required-info b,.consent b{color:#b74d4d}
#customerForm .field em{
  margin-left:auto;
  padding:3px 7px;
  border-radius:999px;
  background:#f1eee7;
  color:#817a70;
  font-size:9px;
  font-style:normal;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#customerForm input,
#customerForm select,
#customerForm textarea{
  display:block;
  width:100%;
  margin:0;
  min-height:48px;
  border:1px solid #d8d1c5;
  border-radius:9px;
  padding:11px 13px;
  color:#25241f;
  background:#fff;
  box-shadow:0 1px 0 rgba(0,0,0,.02);
}
#customerForm select{
  appearance:auto;
  cursor:pointer;
}
#customerForm textarea{min-height:104px;resize:vertical;line-height:1.5}
#customerForm input:hover,#customerForm select:hover,#customerForm textarea:hover{border-color:#bcb3a5}
#customerForm input:focus,#customerForm select:focus,#customerForm textarea:focus{
  border-color:#557965;
  box-shadow:0 0 0 4px rgba(36,77,57,.11);
}
.field-notes{margin-top:17px!important}
.consent{
  display:flex!important;
  align-items:flex-start;
  gap:11px;
  margin:5px 0 18px!important;
  padding:15px 16px!important;
  border-radius:11px;
  background:#f7f5f0!important;
  border:1px solid #e2ddd3!important;
  color:#48453f;
  font-size:13px!important;
  line-height:1.5;
}
.consent input{
  width:18px!important;
  height:18px;
  flex:0 0 18px;
  margin:1px 0 0!important;
}
.order-total{
  margin:0 0 18px;
  padding:17px 19px!important;
  border:1px solid #dfe6df;
  background:#f4f8f4;
}
.order-total div{display:flex;flex-direction:column;gap:2px}
.order-total small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.order-total span{font-size:13px;color:#484c47}
.order-total strong{color:var(--green);font-size:31px}
.order-submit{min-height:54px}
.required-info{text-align:center;margin:11px 0 0;color:#8a857b;font-size:11px}
.order-step[data-step="2"],.order-step[data-step="3"]{padding-bottom:34px}
.order-step[data-step="2"]> :not(.order-modal-header),
.order-step[data-step="3"]> :not(.order-modal-header){margin-left:38px;margin-right:38px}
.order-step[data-step="2"]>.order-review{margin-top:24px}
.order-step[data-step="3"]>.success-box{margin-top:24px}

/* Mniejsze podpisy dekoracji */
.decor-grid button{
  min-height:82px;
  padding:9px 7px;
  gap:5px;
}
.decor-grid button svg{
  width:45px;
  height:45px;
  flex:0 0 45px;
}
.decor-grid button>span{
  width:100%;
  height:auto;
  font-family:"DM Sans",sans-serif!important;
  font-size:9.5px!important;
  line-height:1.15;
  font-weight:600;
  color:#5d5951;
  text-align:center;
  overflow-wrap:anywhere;
}

/* Więcej miejsca i czytelniejsze gotowe style */
.style-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.style-grid button{
  min-height:112px;
  overflow:hidden;
}
.style-grid strong{font-size:14px}
.style-grid small{
  display:block;
  max-width:100%;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.style-swatch{
  height:37px!important;
  background-image:linear-gradient(110deg,transparent 0 45%,rgba(255,255,255,.5) 46% 54%,transparent 55%)!important;
}

@media(max-width:700px){
  .order-modal{width:100%;border-radius:14px}
  .order-modal-header{padding:28px 20px 20px}
  .order-modal-header h2{font-size:31px}
  .customer-form{padding:20px}
  #customerForm .form-grid{grid-template-columns:1fr}
  #customerForm .field-wide{grid-column:auto}
  .order-step[data-step="2"]> :not(.order-modal-header),
  .order-step[data-step="3"]> :not(.order-modal-header){margin-left:20px;margin-right:20px}
}

/* Podglądy styli pokazują teraz rzeczywisty deseń */
.style-swatch{
  background-repeat:repeat!important;
  background-position:center!important;
  background-blend-mode:multiply;
}

/* Smart layout v8 */
.guide-layer{
  position:absolute;
  inset:0;
  z-index:20;
  pointer-events:none;
}
.smart-guide{
  position:absolute;
  background:#e24d4d;
  opacity:.9;
  box-shadow:0 0 0 1px rgba(255,255,255,.65);
}
.smart-guide.vertical{top:0;bottom:0;width:1px}
.smart-guide.horizontal{left:0;right:0;height:1px}
.switch-row{
  display:flex!important;
  align-items:center;
  gap:9px;
  padding:9px 0;
}
.switch-row input{
  width:17px!important;
  height:17px;
  margin:0!important;
  accent-color:var(--green);
}
.canvas-item.snap-active{
  outline:2px dashed rgba(226,77,77,.75);
  outline-offset:3px;
}

/* Przesuwalne tytuł, imiona i data */
.project-heading{
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
}
.project-heading .heading-item{
  position:absolute;
  left:50%;
  width:max-content;
  max-width:620px;
  transform:translateX(-50%);
  pointer-events:auto;
  cursor:grab;
  user-select:none;
  touch-action:none;
  padding:4px 8px;
  border-radius:5px;
  white-space:nowrap;
}
.project-heading .heading-item:active{cursor:grabbing}
.project-heading .heading-item.heading-selected{
  outline:2px dashed rgba(36,77,57,.55);
  outline-offset:3px;
  background:rgba(255,255,255,.18);
}
#canvasTitle{top:48px}
#canvasSubtitle{top:96px}
#canvasDate{top:158px}

.format-products{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:26px}.format-products article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}.format-products h3{font-family:"Playfair Display",serif;font-size:28px;margin:8px 0}.format-products p{margin:0;color:var(--muted)}.format-badge{display:inline-block;padding:5px 9px;border-radius:999px;background:#edf3ee;color:var(--green);font-size:11px;font-weight:700}.format-note{margin-top:8px;padding:10px 12px;border-radius:9px;background:#f6f3ed;color:var(--muted);font-size:12px;line-height:1.45}@media(max-width:700px){.format-products{grid-template-columns:1fr}}


/* Przyciski w popupie zamówienia */
.order-modal-actions{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:12px;
  margin-top:22px;
  flex-wrap:wrap;
}

.order-modal-actions-center{
  justify-content:center;
}

.order-modal-actions .btn{
  width:auto!important;
  min-width:160px;
  max-width:280px;
  padding:13px 26px;
}

.order-modal-actions #confirmOrder{
  min-width:230px;
}

.order-modal-actions #finishOrder{
  min-width:170px;
}

@media(max-width:620px){
  .order-modal-actions{
    flex-direction:column;
    align-items:stretch;
  }

  .order-modal-actions .btn{
    width:100%!important;
    max-width:none;
  }
}


/* Logo Plan Stołów */
.brand-logo{
  display:flex;
  align-items:center;
  text-decoration:none;
  line-height:0;
}

.brand-logo img{
  display:block;
  width:auto;
  height:54px;
  max-width:310px;
  object-fit:contain;
}

.site-header .brand-logo{
  flex:0 0 auto;
}

.footer-logo img{
  height:64px;
  max-width:340px;
}

@media(max-width:900px){
  .brand-logo img{
    height:46px;
    max-width:250px;
  }
}

@media(max-width:560px){
  .brand-logo img{
    height:38px;
    max-width:205px;
  }

  .footer-logo img{
    height:48px;
  }
}


/* Poprawki motywów florystycznych */
.style-grid button[data-style="eucalyptusWedding"],
.style-grid button[data-style="eucalyptusClassic"],
.style-grid button[data-style="botanicalWhite"],
.style-grid button[data-style="greeneryWelcome"],
.style-grid button[data-style="sageEucalyptus"],
.style-grid button[data-style="eucalyptusMinimal"],
.style-grid button[data-style="botanicalColumns"]{
  border-color:#9fb8ab;
  background:linear-gradient(180deg,#ffffff,#f4f8f5);
}

.style-grid button[data-style="eucalyptusWedding"]::after,
.style-grid button[data-style="greeneryWelcome"]::after{
  content:"NOWY";
  align-self:flex-end;
  margin-top:-21px;
  padding:2px 6px;
  border-radius:999px;
  background:#315b4b;
  color:#fff;
  font-size:8px;
  font-weight:800;
  letter-spacing:.08em;
}


/* Kształty i własne obrazy */
.shape-library button{
  min-height:82px;
}

.shape-preview{
  display:block;
  width:48px;
  height:34px;
  border:2px solid #365a4d;
  background:#dfeae4;
}

.shape-preview-rounded{
  border-radius:12px;
}

.shape-preview-circle{
  width:38px;
  height:38px;
  border-radius:50%;
}

.shape-preview-ellipse{
  width:52px;
  height:30px;
  border-radius:50%;
}

.shape-preview-triangle{
  width:0;
  height:0;
  border-left:24px solid transparent;
  border-right:24px solid transparent;
  border-bottom:40px solid #7fa08e;
  background:transparent;
  border-top:0;
}

.shape-preview-diamond{
  width:34px;
  height:34px;
  transform:rotate(45deg);
}

.shape-preview-line{
  width:54px;
  height:0;
  border:0;
  border-top:4px solid #365a4d;
  background:transparent;
}

.shape-preview-star{
  width:auto;
  height:auto;
  border:0;
  background:transparent;
  color:#7b9b89;
  font-size:42px;
  line-height:1;
}

.file-upload-box{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:106px;
  margin:0!important;
  padding:18px;
  border:1.5px dashed #aabdb1;
  border-radius:12px;
  background:#f5f8f5;
  color:#355244;
  text-align:center;
  cursor:pointer;
  transition:border-color .2s,background .2s,transform .2s;
}

.file-upload-box:hover{
  border-color:#527765;
  background:#edf4ef;
  transform:translateY(-1px);
}

.file-upload-box strong{
  font-size:13px;
}

.file-upload-box span{
  color:#747d77;
  font-size:11px;
  line-height:1.4;
}

.file-upload-box input{
  display:none;
}

.upload-status{
  min-height:18px;
  margin-top:7px;
  color:#4a6c5b;
  font-size:11px;
  line-height:1.4;
}

.conditional-controls{
  margin:13px 0;
  padding:12px;
  border:1px solid #e2ddd3;
  border-radius:10px;
  background:#faf8f3;
}

.canvas-item.shape,
.canvas-item.image{
  border:0;
  padding:0;
  background:transparent;
  overflow:visible;
}

.canvas-item.shape svg{
  display:block;
  width:100%;
  height:100%;
  overflow:visible;
}

.canvas-item.image{
  overflow:hidden;
}

.canvas-item.image img{
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  user-select:none;
}

.canvas-item.shape.selected,
.canvas-item.image.selected{
  outline:3px solid rgba(36,77,57,.32);
  outline-offset:4px;
}


/* Biblioteka grafik z katalogu /uploads */
.asset-library-panel{
  margin-top:8px;
}

.asset-library-filters{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  margin-bottom:10px;
}

.asset-library-filters input,
.asset-library-filters select{
  width:100%;
  margin:0;
}

.asset-refresh-btn{
  width:100%;
  padding:9px 12px;
}

.asset-library-summary{
  min-height:18px;
  margin:7px 0 9px;
  color:#77736b;
  font-size:11px;
  line-height:1.4;
}

.asset-library-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}

.asset-library-card{
  min-width:0;
  padding:0;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  text-align:left;
  transition:transform .18s,border-color .18s,box-shadow .18s;
}

.asset-library-card:hover{
  transform:translateY(-2px);
  border-color:#9db2a5;
  box-shadow:0 7px 18px rgba(45,66,54,.10);
}

.asset-library-thumb{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:
    linear-gradient(45deg,#f0eee9 25%,transparent 25%),
    linear-gradient(-45deg,#f0eee9 25%,transparent 25%),
    linear-gradient(45deg,transparent 75%,#f0eee9 75%),
    linear-gradient(-45deg,transparent 75%,#f0eee9 75%);
  background-position:0 0,0 7px,7px -7px,-7px 0;
  background-size:14px 14px;
}

.asset-library-thumb img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

.asset-library-card-info{
  display:block;
  padding:8px 9px 9px;
}

.asset-library-name{
  display:block;
  max-width:100%;
  overflow:hidden;
  color:#35342f;
  font-size:10px;
  font-weight:700;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.asset-library-category{
  display:block;
  max-width:100%;
  margin-top:3px;
  overflow:hidden;
  color:#8a857b;
  font-size:9px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.asset-library-message{
  padding:14px 12px;
  border:1px solid #e5dfd3;
  border-radius:9px;
  background:#f8f6f1;
  color:#6f6a62;
  font-size:11px;
  line-height:1.5;
  text-align:center;
}

.asset-library-message.is-error{
  border-color:#e6baba;
  background:#fff5f5;
  color:#a34646;
}

.asset-library-sentinel{
  width:100%;
  height:2px;
  margin-top:8px;
}

.asset-library-loading{
  position:relative;
  min-height:88px;
}

.asset-library-loading::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:22px;
  margin:-11px;
  border:3px solid #dfe5e0;
  border-top-color:#315b4b;
  border-radius:50%;
  animation:asset-library-spin .8s linear infinite;
}

@keyframes asset-library-spin{
  to{transform:rotate(360deg)}
}

.asset-library-card:focus-visible{
  outline:3px solid rgba(36,77,57,.24);
  outline-offset:2px;
}

@media(max-width:380px){
  .asset-library-grid{
    grid-template-columns:1fr;
  }
}


/* Swobodne przeciąganie elementów */
.canvas-item{
  touch-action:none;
  user-select:none;
  cursor:grab;
}

.canvas-item:active{
  cursor:grabbing;
}

.workspace-stage,
.workspace-wrap{
  overflow:visible;
}


/* Widoczne zaznaczenie aktywnego desenia */
.pattern-grid button{
  position:relative;
  transition:
    border-color .18s,
    box-shadow .18s,
    background .18s,
    transform .18s;
}

.pattern-grid button:hover{
  transform:translateY(-1px);
  border-color:#9daf9f;
}

.pattern-grid button.active,
.pattern-grid button[aria-pressed="true"]{
  border-color:#244d39!important;
  background:#eef5f0;
  box-shadow:
    0 0 0 2px rgba(36,77,57,.16),
    0 7px 16px rgba(36,77,57,.10);
}

.pattern-grid button.active::after,
.pattern-grid button[aria-pressed="true"]::after{
  content:"✓";
  position:absolute;
  right:6px;
  top:6px;
  display:grid;
  place-items:center;
  width:20px;
  height:20px;
  border-radius:50%;
  background:#244d39;
  color:#fff;
  font-size:12px;
  font-weight:800;
  line-height:1;
}

.pattern-grid button.active span,
.pattern-grid button[aria-pressed="true"] span{
  outline:2px solid rgba(36,77,57,.28);
  outline-offset:1px;
}


/* Miniatury desenia generowane tym samym silnikiem co projekt */
.pattern-grid button .pattern-raster-preview{
  display:block;
  width:100%;
  height:52px;
  border:1px solid rgba(54,74,62,.15);
  border-radius:7px;
  background-color:#f8f2e8;
  image-rendering:auto;
}

.pattern-grid button .pattern-raster-preview.pattern-preview-none{
  background-image:
    linear-gradient(
      135deg,
      transparent 46%,
      rgba(90,90,90,.22) 47%,
      rgba(90,90,90,.22) 53%,
      transparent 54%
    )!important;
  background-size:18px 18px!important;
  background-repeat:repeat!important;
}

.pattern-grid button.active .pattern-raster-preview,
.pattern-grid button[aria-pressed="true"] .pattern-raster-preview{
  border-color:rgba(36,77,57,.42);
}


#quickTableType{
  min-width:190px;
}

.canvas-item.plain-table{
  border:none!important;
  background:transparent!important;
  box-shadow:none!important;
  outline:none;
  padding:0;
}

.canvas-item.plain-table .table-content{
  border:none!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0 4px;
}

.canvas-item.plain-table .table-title{
  margin-bottom:8px;
}

.canvas-item.plain-table.selected{
  outline:2px dashed rgba(36,77,57,.34);
  outline-offset:5px;
}


/* Presety minimalistycznych tablic i układów listowych */
.plain-layout-panel{
  margin-top:18px;
  padding:14px;
  border:1px solid #ddd8ce;
  border-radius:12px;
  background:linear-gradient(180deg,#fff,#faf8f3);
}

.plain-layout-panel h3{
  margin-top:0;
}

.plain-layout-panel .btn + .btn{
  margin-top:8px;
}

.canvas-item.plain-table{
  overflow:visible;
}

.canvas-item.plain-table .table-content{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.canvas-item.plain-table .table-title{
  flex:0 0 auto;
}

.canvas-item.plain-table .guest-list{
  flex:1 1 auto;
}

.minimal-board-active .project-heading{
  pointer-events:auto;
}


/* Poprawione zaznaczanie i przeciąganie niewidocznych stołów */
.canvas-item.plain-table{
  position:absolute;
  pointer-events:auto!important;
  cursor:grab!important;
  overflow:visible!important;
  background:rgba(255,255,255,.001)!important;
  isolation:isolate;
}

.canvas-item.plain-table:active{
  cursor:grabbing!important;
}

.canvas-item.plain-table::before{
  content:"";
  position:absolute;
  inset:-7px;
  z-index:0;
  border-radius:4px;
  background:rgba(255,255,255,.001);
  pointer-events:auto;
}

.canvas-item.plain-table .table-content{
  position:relative;
  z-index:1;
  overflow:visible!important;
  pointer-events:none!important;
}

.canvas-item.plain-table .table-content *{
  pointer-events:none!important;
}

.canvas-item.plain-table.selected{
  z-index:20!important;
  outline:2px dashed rgba(36,77,57,.55)!important;
  outline-offset:6px;
}

/* Generator winietek */
.placecard-section{
  max-width:1420px;
}

.placecard-section-heading{
  max-width:760px;
  margin:0 auto 34px;
  text-align:center;
}

.placecard-section-heading p{
  color:var(--muted);
  font-size:16px;
  line-height:1.7;
}

.placecard-generator{
  display:grid;
  grid-template-columns:390px minmax(0,1fr);
  gap:28px;
  align-items:start;
}

.placecard-controls,
.placecard-output{
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  box-shadow:0 12px 34px rgba(65,57,44,.07);
}

.placecard-controls{
  padding:22px;
}

.placecard-controls h3{
  margin:20px 0 10px;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.placecard-controls h3:first-child{
  margin-top:0;
}

.placecard-controls label{
  display:block;
  margin:11px 0;
  font-size:12px;
  font-weight:700;
}

.placecard-controls input,
.placecard-controls select,
.placecard-controls textarea{
  width:100%;
  margin-top:6px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
}

.placecard-controls input[type="color"]{
  height:42px;
  padding:4px;
}

.placecard-controls input[type="range"]{
  padding:0;
}

.placecard-two-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.placecard-actions{
  display:grid;
  gap:8px;
  margin-top:18px;
}

.placecard-status{
  min-height:18px;
  margin-top:10px;
  color:var(--green);
  font-size:12px;
  font-weight:600;
  line-height:1.5;
}

.placecard-output{
  min-height:650px;
  padding:24px;
  background:#f3f0ea;
}

.placecard-output-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:20px;
}

.placecard-output-header h3{
  margin:5px 0 0;
  font-family:"Playfair Display",serif;
  font-size:28px;
}

.placecard-count{
  padding:7px 11px;
  border-radius:999px;
  background:#fff;
  color:#5d5a53;
  font-size:11px;
  font-weight:700;
}

.placecard-preview-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.placecard-preview-item{
  overflow:hidden;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 24px rgba(40,35,28,.12);
}

.placecard-preview-item img{
  display:block;
  width:100%;
  height:auto;
}

.placecard-preview-caption{
  padding:8px 10px;
  overflow:hidden;
  color:#6e6961;
  font-size:10px;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.placecard-print-note{
  margin-top:20px;
  padding:16px;
  border:1px solid #ddd7cb;
  border-radius:12px;
  background:#fff;
  color:#625e56;
  font-size:12px;
  line-height:1.6;
}

.placecard-print-note p{
  margin:5px 0 0;
}

@media(max-width:980px){
  .placecard-generator{
    grid-template-columns:1fr;
  }
}

@media(max-width:620px){
  .placecard-preview-grid,
  .placecard-two-cols{
    grid-template-columns:1fr;
  }
}


.placecard-import-guests{
  margin-top:-2px;
}

.placecard-import-note{
  margin:7px 0 15px!important;
  font-size:11px!important;
  line-height:1.45!important;
}


/* Uproszczona stopka z zachowanymi linkami prawnymi */
.site-footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
}

.site-footer .footer-site-name{
  color:inherit;
  font-weight:700;
  text-decoration:none;
}

.site-footer .footer-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  flex-wrap:wrap;
}

.site-footer .footer-links a{
  color:inherit;
  font-size:13px;
  text-decoration:none;
  opacity:.78;
}

.site-footer .footer-links a:hover{
  opacity:1;
  text-decoration:underline;
}

@media(max-width:620px){
  .site-footer{
    justify-content:center;
    text-align:center;
  }

  .site-footer .footer-links{
    justify-content:center;
    width:100%;
  }
}


.placecard-theme-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-top:10px;
}

.placecard-theme-note{
  margin:9px 0 14px!important;
  font-size:11px!important;
  line-height:1.45!important;
}

@media(max-width:620px){
  .placecard-theme-actions{
    grid-template-columns:1fr;
  }
}
