/* GrowExpand — panel admina (iframe Shopera). Język wizualny benchmarku rodziny: CSV Power Tools
   (paleta stone, akcent teal, kolorowe kafelki ikon, numeracja 01–04, ciemny wybór). Prefiks ge- — widżet używa gx-clamp. */
:root{
  --ge-bg:#efefed; --ge-card:#fff; --ge-inset:#f5f5f4;
  --ge-ink:#1c1917; --ge-text:#1c1917; --ge-body:#44403c; --ge-muted:#6b645f; --ge-faint:#a8a29e;
  --ge-line:#e7e5e4; --ge-line-strong:#d6d3d1;
  --ge-action:#0f766e; --ge-action-hover:#115e59; --ge-action-soft:#f0fdfa;
  --ge-ok:#047857; --ge-ok-soft:#ecfdf5; --ge-ok-line:#a7f3d0;
  --ge-warn:#b45309; --ge-warn-soft:#fffbeb; --ge-warn-line:#fde68a;
  --ge-danger:#b91c1c; --ge-danger-soft:#fef2f2;
  --ge-shadow:0 1px 2px rgba(28,25,23,.05),0 6px 20px -8px rgba(28,25,23,.10);
  --ge-font:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --t-blue-bg:#dbeafe; --t-blue:#2563eb; --t-emerald-bg:#d1fae5; --t-emerald:#059669;
  --t-amber-bg:#fef3c7; --t-amber:#d97706; --t-rose-bg:#ffe4e6; --t-rose:#e11d48;
  --t-violet-bg:#ede9fe; --t-violet:#7c3aed; --t-stone-bg:#f5f5f4; --t-stone:#57534e;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html,body{margin:0;padding:0}
body{background:var(--ge-bg);color:var(--ge-body);font:14px/1.5 var(--ge-font);-webkit-font-smoothing:antialiased}
h1,h2,h3,p{margin:0}
h1,h2,h3{color:var(--ge-text)}
button,input,select{font:inherit;color:inherit}
img{display:block;max-width:100%}
a{color:var(--ge-action)}
:focus-visible{outline:2px solid var(--ge-action);outline-offset:2px}

.ge-sprite{position:absolute;width:0;height:0;overflow:hidden}
.ge-ico{width:16px;height:16px;flex:none;vertical-align:-3px}
.ge-shell{max-width:1400px;margin:0 auto;padding:20px 24px 32px}

/* Nagłówek */
.ge-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.ge-brand{display:flex;align-items:center;gap:12px;min-width:0}
.ge-brand__icon{width:40px;height:40px;border-radius:12px;flex:none}
.ge-brand__name{font-size:16px;font-weight:650;line-height:1.25}
.ge-brand__sub{font-size:12px;color:var(--ge-muted)}
.ge-top__side{display:flex;align-items:center;gap:8px}
.ge-guide{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:10px;color:var(--ge-body);text-decoration:none;font-weight:500}
.ge-guide:hover{background:#e7e5e4}
.ge-plan{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--ge-ok-line);background:var(--ge-ok-soft);color:var(--ge-ok);font-size:12px;font-weight:600}
.ge-plan[data-tone="warn"]{border-color:var(--ge-warn-line);background:var(--ge-warn-soft);color:var(--ge-warn)}
.ge-plan[data-tone="locked"]{border-color:var(--ge-line-strong);background:var(--ge-inset);color:var(--ge-muted)}

/* Karty */
.ge-card{background:var(--ge-card);border:1px solid var(--ge-line);border-radius:16px;box-shadow:var(--ge-shadow);padding:22px 24px;margin-bottom:16px}
.ge-cardhead{display:flex;gap:14px;align-items:flex-start;margin-bottom:16px}
.ge-cardhead > div{flex:1;min-width:0}
.ge-cardhead h2{font-size:16px;font-weight:650}
.ge-cardhead p{color:var(--ge-muted);font-size:13px;margin-top:2px}
.ge-num{font-size:12px;font-weight:700;color:var(--ge-faint);font-variant-numeric:tabular-nums}
.ge-tile{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;flex:none;background:var(--t-blue-bg);color:var(--t-blue)}
.ge-tile .ge-ico{width:20px;height:20px}
.ge-tile--lg{width:48px;height:48px;border-radius:14px}
.ge-tile--lg .ge-ico{width:24px;height:24px}
.ge-tile--blue{background:var(--t-blue-bg);color:var(--t-blue)}
.ge-tile--emerald{background:var(--t-emerald-bg);color:var(--t-emerald)}
.ge-tile--amber{background:var(--t-amber-bg);color:var(--t-amber)}
.ge-tile--rose{background:var(--t-rose-bg);color:var(--t-rose)}
.ge-tile--violet{background:var(--t-violet-bg);color:var(--t-violet)}
.ge-tile--stone{background:var(--t-stone-bg);color:var(--t-stone)}

/* Publikacja */
.ge-publish__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ge-publish__text{flex:1 1 320px;min-width:0}
.ge-publish__title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ge-publish__title h2{font-size:18px;font-weight:700}
.ge-publish__text p{margin-top:4px;max-width:70ch}
#publish-tile{background:var(--t-stone-bg);color:var(--t-stone)}
.ge-publish[data-live="true"] #publish-tile{background:var(--t-emerald-bg);color:var(--t-emerald)}
.ge-badge{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--ge-inset);color:var(--ge-muted);border:1px solid var(--ge-line)}
.ge-badge[data-tone="live"]{background:var(--ge-ok-soft);color:var(--ge-ok);border-color:var(--ge-ok-line)}
.ge-badge--draft{background:var(--ge-warn-soft);color:var(--ge-warn);border-color:var(--ge-warn-line)}
.ge-lock{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--ge-warn-soft);border:1px solid var(--ge-warn-line);color:#78350f}
.ge-lock .ge-ico{margin-top:2px}

/* Przyciski i wyniki */
.ge-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ge-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid var(--ge-line-strong);background:#fff;color:var(--ge-text);font-weight:600;cursor:pointer}
.ge-btn:hover{background:var(--ge-inset)}
.ge-btn:disabled{opacity:.5;cursor:not-allowed}
.ge-btn--primary{background:var(--ge-action);border-color:var(--ge-action);color:#fff}
.ge-btn--primary:hover{background:var(--ge-action-hover)}
.ge-result{display:block;margin-top:10px;font-size:13px;font-weight:500}
.ge-result:empty{display:none}
.ge-result[data-kind="ok"]{color:var(--ge-ok)}
.ge-result[data-kind="err"]{color:var(--ge-danger)}
.ge-result[data-kind="dirty"]{color:var(--ge-warn)}

/* Układ edytor | podgląd (przełącza się przy ≤ 960 px) */
.ge-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,400px);gap:16px;align-items:start}
.ge-editor,.ge-preview-col{min-width:0}

/* Pola */
.ge-field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.ge-field label,.ge-label{font-weight:600;color:var(--ge-text)}
.ge-field input[type="text"],.ge-field input[type="url"]{width:100%;min-height:40px;border:1px solid var(--ge-line-strong);border-radius:10px;background:#fff;padding:0 12px}
.ge-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.ge-help{font-size:13px;color:var(--ge-muted)}
.ge-error{margin-top:8px;font-size:13px;font-weight:600;color:var(--ge-danger)}
.ge-warn{margin-top:8px;font-size:13px;color:var(--ge-warn)}
.ge-check{display:flex;align-items:center;gap:10px;min-height:40px;font-weight:600;color:var(--ge-text);cursor:pointer}
.ge-check input{width:18px;height:18px;accent-color:var(--ge-ink)}
.ge-check--sm{font-weight:500;font-size:13px;margin-top:10px}
.ge-tag{display:inline-block;margin-left:4px;padding:0 6px;border-radius:6px;background:var(--ge-ok-soft);color:var(--ge-ok);font-size:12px;font-style:normal;font-weight:600}

/* Gdzie zwijać */
.ge-places{display:grid;gap:8px}
.ge-place{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--ge-line);border-radius:14px;background:#fafaf9}
.ge-place__name{display:inline-flex;align-items:center;gap:8px;font-weight:650;color:var(--ge-text)}
.ge-place__parts{display:flex;gap:6px;flex-wrap:wrap}
.ge-place[data-on="false"] .ge-place__parts{opacity:.45}
.ge-switch{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer;min-height:40px}
.ge-switch input{position:absolute;opacity:0;width:1px;height:1px}
.ge-switch__track{position:relative;width:40px;height:24px;border-radius:999px;background:var(--ge-line-strong);transition:background .15s;flex:none}
.ge-switch__track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .15s}
.ge-switch input:checked + .ge-switch__track{background:var(--ge-action)}
.ge-switch input:checked + .ge-switch__track::after{transform:translateX(16px)}
.ge-switch input:focus-visible + .ge-switch__track{outline:2px solid var(--ge-action);outline-offset:2px}
.ge-chipcheck{position:relative;cursor:pointer}
.ge-chipcheck input{position:absolute;opacity:0;width:1px;height:1px}
.ge-chipcheck span{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--ge-line-strong);background:#fff;font-size:13px;font-weight:500}
.ge-chipcheck span::before{content:"";width:14px;height:14px;border-radius:4px;border:1.5px solid var(--ge-line-strong);background:#fff}
.ge-chipcheck input:checked + span{border-color:var(--ge-ink);background:var(--ge-ink);color:#fff}
.ge-chipcheck input:checked + span::before{border-color:#fff;background:#fff;box-shadow:inset 0 0 0 3px var(--ge-ink)}
.ge-chipcheck input:focus-visible + span{outline:2px solid var(--ge-action);outline-offset:2px}
.ge-chipcheck input:disabled + span{cursor:not-allowed}

/* Nazwane wybory (wysokość) */
.ge-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ge-choice{position:relative;cursor:pointer}
.ge-choice input{position:absolute;opacity:0;width:1px;height:1px}
.ge-choice__body{display:block;height:100%;padding:12px 14px;border:1px solid var(--ge-line-strong);border-radius:14px;background:#fff}
.ge-choice__body b{display:block;color:var(--ge-text);font-weight:650}
.ge-choice__body > span{display:block;font-size:12px;color:var(--ge-muted);margin-top:2px}
.ge-choice:hover .ge-choice__body{border-color:var(--ge-faint)}
.ge-choice input:checked + .ge-choice__body{border-color:var(--ge-ink);box-shadow:0 0 0 1px var(--ge-ink)}
.ge-choice input:focus-visible + .ge-choice__body{outline:2px solid var(--ge-action);outline-offset:2px}
.ge-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;font-weight:600;color:var(--ge-text)}
.ge-affix{display:inline-flex;align-items:stretch;border:1px solid var(--ge-line-strong);border-radius:10px;overflow:hidden;background:#fff}
.ge-affix input{width:90px;min-height:40px;border:0;padding:0 10px;outline:0}
.ge-affix span{display:inline-flex;align-items:center;padding:0 10px;background:var(--ge-inset);color:var(--ge-muted);border-left:1px solid var(--ge-line)}
.ge-affix:focus-within{outline:2px solid var(--ge-action);outline-offset:1px}
.ge-affix input[aria-invalid="true"]{background:var(--ge-danger-soft)}
.ge-inline .ge-help{font-weight:400}

/* Kolory */
.ge-swatches{display:flex;flex-wrap:wrap;gap:6px}
.ge-swatch{position:relative;cursor:pointer}
.ge-swatch input{position:absolute;opacity:0;width:1px;height:1px}
.ge-swatch span{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px 0 8px;border-radius:999px;border:1px solid var(--ge-line-strong);background:#fff;font-size:13px;font-weight:500}
.ge-swatch input:checked + span{border-color:var(--ge-ink);box-shadow:0 0 0 1px var(--ge-ink);font-weight:650}
.ge-swatch input:focus-visible + span{outline:2px solid var(--ge-action);outline-offset:2px}
.ge-dot{display:inline-block;width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.12)}
.ge-dot--blue{background:#2155d9}.ge-dot--ink{background:#1c1917}.ge-dot--teal{background:#0f766e}.ge-dot--light{background:#f5f5f4}
.ge-colors{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.ge-colors label{display:flex;align-items:center;gap:8px;font-weight:600}
.ge-colors input{width:44px;height:36px;padding:0;border:1px solid var(--ge-line-strong);border-radius:8px;background:#fff;cursor:pointer}

.ge-details{margin-top:4px;padding-top:12px;border-top:1px solid var(--ge-line)}
.ge-details summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;min-height:36px;font-weight:600;color:var(--ge-body);list-style:none}
.ge-details summary::-webkit-details-marker{display:none}
.ge-details[open] summary .ge-ico{transform:rotate(180deg)}
.ge-details > :not(summary){margin-top:12px}

/* Wyjątki */
.ge-addrow{display:flex;gap:8px}
.ge-inputicon{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding-left:12px;border:1px solid var(--ge-line-strong);border-radius:10px;background:#fff;color:var(--ge-muted)}
.ge-inputicon input{flex:1;min-width:0;min-height:40px;border:0 !important;outline:0;padding:0 12px 0 0 !important;color:var(--ge-text)}
.ge-inputicon:focus-within{outline:2px solid var(--ge-action);outline-offset:1px}
.ge-inputicon:has(input[aria-invalid="true"]){border-color:var(--ge-danger);background:var(--ge-danger-soft)}
.ge-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.ge-chips:empty::before{content:"Brak wyjątków — zwijamy na wszystkich zaznaczonych stronach.";font-size:13px;color:var(--ge-muted)}
.ge-chips li{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 4px 0 12px;border-radius:999px;background:var(--ge-inset);border:1px solid var(--ge-line);color:var(--ge-text);font-size:13px}
.ge-chips li small{font-size:12px;color:var(--ge-muted)}
.ge-chips button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:0;border-radius:50%;background:transparent;cursor:pointer;color:var(--ge-muted)}
.ge-chips button:hover{background:#e7e5e4;color:var(--ge-danger)}

/* Podgląd */
.ge-preview__label{margin:14px 0 6px;font-size:13px;font-weight:600;color:var(--ge-text)}
.ge-preview .ge-cardhead{margin-bottom:4px}
.ge-note{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:10px;background:var(--t-violet-bg);color:#5b21b6;font-size:13px}
.shop-preview{background:#fff;border:1px solid var(--ge-line);border-radius:12px;padding:14px;color:#292524;font-family:Georgia,"Times New Roman",serif;font-size:14px;line-height:1.6}
.shop-preview p{margin:0 0 10px}
.shop-preview p:last-child{margin-bottom:0}
.shop-preview .section-description{margin:0;padding:0}
.shop-preview .gx-clamp-btn{font-family:var(--ge-font)}
.gc-category-description__toggle{margin:0 0 8px;min-height:32px;padding:0 12px;border:1px dashed var(--ge-faint);border-radius:8px;background:#fafaf9;font:600 13px var(--ge-font)}

@media (max-width:960px){
  .ge-workspace{grid-template-columns:1fr}
  .ge-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .ge-shell{padding:14px 14px 24px}
  .ge-card{padding:18px 16px}
  .ge-brand__sub{display:none}
  .ge-grid2{grid-template-columns:1fr}
  .ge-publish .ge-actions{width:100%}
  .ge-publish .ge-btn{flex:1 1 auto}
  .ge-btn,.ge-guide,.ge-swatch span,.ge-chipcheck span,.ge-check,.ge-details summary{min-height:44px}
  .ge-affix input,.ge-inputicon input,.ge-field input[type="text"]{min-height:44px}
  .ge-chips button{width:44px;height:44px}
  .ge-addrow{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){*{transition:none !important}}
