/* MotoPatent · panel akceptacji kreacji · v4.4.0
   Jeden spójny arkusz (zastępuje warstwy v2–v4.2.2). !important tylko tam, gdzie celowo musi wygrać. */

/* ---------- Tokeny ---------- */
:root{
  --bg:#0b0b0d;
  --panel:#121216;
  --panel-2:#17171c;
  --panel-3:#202026;
  --sunken:#101014;
  --field:#0b0b0e;
  --line:#2c2c34;
  --line-soft:#232329;
  --line-strong:#32323a;
  --line-hover:#4a4a54;
  --text:#f5f5f6;
  --muted:#a7a7b0;
  --muted-2:#777781;
  --red:#ee2d26;
  --red-hover:#f33a32;
  --red-soft:#ff5b55;
  --green:#27c47d;
  --amber:#f2a735;
  --shadow:0 18px 50px rgba(0,0,0,.28);
  --radius:18px;
  --shell:1480px;
  --header-h:78px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* ---------- Baza ---------- */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 14px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.45;-webkit-font-smoothing:antialiased;padding-bottom:92px}
body.modal-open{overflow:hidden}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
[hidden]{display:none!important} /* jedyny wyjątek: atrybut hidden musi wygrać z display komponentów */
ul,ol{margin:0;padding:0;list-style:none}
figure{margin:0}
kbd{font:inherit;font-size:10px;border:1px solid rgba(255,255,255,.25);border-radius:4px;padding:0 4px;margin-left:4px;color:#c8c8cf}
:focus-visible{outline:2px solid rgba(238,45,38,.95);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.shell{width:min(calc(100% - 40px),var(--shell));margin-inline:auto}
.skip-link{position:fixed;left:16px;top:-80px;z-index:9999;background:#fff;color:#000;padding:10px 14px;border-radius:8px}
.skip-link:focus{top:16px}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-2)}
.eyebrow.red{color:#ff625c}
.noscript,.load-error{padding:24px;color:var(--muted)}

/* ---------- Przyciski ---------- */
.btn{border:1px solid var(--line);border-radius:11px;padding:12px 16px;font-weight:700;color:#fff;background:transparent;transition:border-color .18s,background-color .18s,box-shadow .18s,transform .18s}
.btn:hover{border-color:#5a5a64;background:#1d1d22}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--red);border-color:var(--red)}
.btn-primary:hover{background:var(--red-hover);border-color:var(--red-hover);box-shadow:0 8px 24px rgba(238,45,38,.16)}
.btn-secondary{background:var(--panel-2)}
.btn.small{padding:10px 13px;font-size:13px}
.link-btn{border:0;background:none;padding:0;color:var(--red-soft);font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ---------- Nagłówek ---------- */
.site-header{position:sticky;top:0;z-index:80;background:rgba(11,11,13,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.08)}
.header-inner{height:var(--header-h);display:grid;grid-template-columns:190px 1fr auto;gap:26px;align-items:center}
.brand img{width:156px;height:auto}
.header-meta{display:flex;flex-direction:column;gap:3px;min-width:0}
.header-meta strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.header-side{display:flex;align-items:center;gap:22px}
.header-progress{width:220px;font-size:12px;color:var(--muted);text-align:right}
.progress-track{height:4px;background:var(--panel-3);border-radius:99px;overflow:hidden;margin-top:8px}
.progress-track span{display:block;height:100%;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}

/* Wskaźnik zapisu */
.sync-indicator{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--muted);white-space:nowrap}
.sync-dot{width:7px;height:7px;border-radius:50%;background:#666670;flex:0 0 auto}
.sync-indicator[data-state="online"] .sync-dot{background:var(--green)}
.sync-indicator[data-state="online"]{color:#a7f0c8}
.sync-indicator[data-state="connecting"] .sync-dot,
.sync-indicator[data-state="saving"] .sync-dot,
.sync-indicator[data-state="pending"] .sync-dot{background:var(--amber);animation:pulse 1.1s ease-in-out infinite}
.sync-indicator[data-state="offline"] .sync-dot,
.sync-indicator[data-state="error"] .sync-dot{background:var(--amber)}
.sync-indicator[data-state="offline"],
.sync-indicator[data-state="error"]{color:#ffd498}
.sync-indicator[data-state="invalid"] .sync-dot{background:var(--red)}
.sync-indicator[data-state="invalid"]{color:#ffaaa6}
@keyframes pulse{50%{opacity:.35}}

.sync-banner{position:sticky;top:var(--header-h);z-index:75;background:#2a1d0c;border-bottom:1px solid rgba(242,167,53,.35)}
.sync-banner-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0}
.sync-banner p{margin:0;font-size:13px;color:#ffe0b0}

/* ---------- Hero ---------- */
.hero{padding:72px 0 62px;background:radial-gradient(900px 420px at 10% 0%,rgba(238,45,38,.14),transparent 65%),linear-gradient(180deg,#0d0d10 0%,var(--bg) 100%);border-bottom:1px solid var(--line-soft)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:70px;align-items:end}
.hero h1{font-size:clamp(38px,4.8vw,72px);line-height:.98;letter-spacing:-.04em;margin:12px 0 24px;max-width:980px}
.hero-copy{font-size:18px;line-height:1.6;color:#c6c6cc;max-width:820px;margin:0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.campaign-card{background:linear-gradient(180deg,#17171c,#111115);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.campaign-card-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px}
.campaign-card-head span{color:var(--muted);font-size:12px}
.campaign-card-head b{font-size:13px}
.campaign-facts{margin:0;padding:8px 22px 14px}
.campaign-facts div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.campaign-facts div:last-child{border-bottom:0}
.campaign-facts dt{color:var(--muted);font-size:12px}
.campaign-facts dd{margin:0;font-size:12px;text-align:right;font-weight:700}

/* ---------- Układ przeglądu ---------- */
.review-shell{display:grid;grid-template-columns:225px minmax(0,1fr);gap:34px;padding-top:38px}
.review-nav{min-width:0}
.nav-sticky{position:sticky;top:calc(var(--header-h) + 34px)}
.nav-title{font-size:10px;color:var(--muted-2);font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px}
.nav-divider{height:1px;background:var(--line-soft);margin:20px 0}
.review-content{min-width:0}
.filter-empty{color:var(--muted);font-size:14px;padding:30px 0}

/* Nawigacja: modele */
.model-nav{display:flex;flex-direction:column;gap:12px}
.model-nav-group{display:grid;gap:4px}
.model-toggle{position:relative;width:100%;min-height:36px;padding:8px 9px 8px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#bdbdc5;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;font-size:14px;font-weight:700;transition:background-color .16s,border-color .16s,color .16s}
.model-toggle:hover{background:#151519;border-color:#25252c;color:#fff}
.model-toggle.active{background:var(--panel-2);border-color:#303038;color:#fff}
.model-toggle.active::before{content:'';position:absolute;left:-1px;top:7px;bottom:7px;width:2px;border-radius:2px;background:var(--red)}
.model-toggle:focus-visible{outline:1px solid rgba(238,45,38,.9);outline-offset:2px}
.model-toggle-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}
.model-toggle-meta{flex:0 0 auto;display:flex;align-items:center;gap:4px;border-radius:99px;background:#28282f;padding:2px 6px}
.model-count{min-width:14px;text-align:center;color:#c7c7ce;font-size:10px;font-weight:700;line-height:1}
.model-chevron{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:#777781;transition:transform .2s ease,color .16s}
.model-toggle:hover .model-chevron,.model-toggle.active .model-chevron{color:#bdbdc5}
.model-toggle[aria-expanded="false"] .model-chevron{transform:rotate(-90deg)}

/* Nawigacja: koncepty */
.concept-nav-list{display:grid;gap:2px;overflow:hidden;max-height:132px;opacity:1;padding:1px 0 2px 7px;transition:max-height .22s cubic-bezier(.2,.7,.2,1),opacity .15s,padding .2s}
.concept-nav-list[data-collapsed]{max-height:0;opacity:0;padding-block:0;visibility:hidden;transition:max-height .22s cubic-bezier(.2,.7,.2,1),opacity .15s,padding .2s,visibility 0s .22s}
.concept-nav-link{display:flex;align-items:center;gap:8px;min-height:30px;padding:7px 8px;border-radius:7px;color:#93939d;font-size:11px;line-height:1;transition:color .16s}
.concept-nav-link:hover{color:#ff6a64}
.concept-nav-link.active{color:var(--red-soft);font-weight:700}
.concept-nav-link:focus-visible{outline:1px solid rgba(238,45,38,.7);outline-offset:1px}

.status-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;background:#666670;box-shadow:0 0 0 2px rgba(255,255,255,.025)}
.status-dot[data-status="approved"]{background:var(--green)}
.status-dot[data-status="changes"]{background:var(--red)}
.status-dot[data-status="discuss"]{background:var(--amber)}
.concept-nav-link:hover .status-dot,.concept-nav-link.active .status-dot{background:var(--red);box-shadow:0 0 0 2px rgba(238,45,38,.10)}

/* Filtr statusu */
.filter-stack{display:flex;flex-direction:column;gap:5px}
.filter-chip{width:100%;border:1px solid transparent;background:transparent;color:#bdbdc5;padding:10px 11px;border-radius:10px;text-align:left;font-size:13px;display:flex;align-items:center;justify-content:space-between;gap:10px;transition:background-color .16s,border-color .16s,color .16s}
.filter-chip:hover{background:#1a1a1f;border-color:#303038;color:#fff}
.filter-chip.active{background:var(--panel-2);border-color:var(--line);color:#fff;box-shadow:inset 2px 0 0 var(--red)}
.filter-chip span{min-width:23px;text-align:center;border-radius:99px;background:#28282f;color:#c7c7ce;padding:2px 6px;font-size:10px}
.mobile-filter-row{display:none}

/* ---------- Model ---------- */
.model-section{scroll-margin-top:100px;margin-bottom:66px}
.model-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.model-head h2{font-size:28px;letter-spacing:-.025em;margin:3px 0 0}
.model-offer{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.offer-pill{background:#151519;border:1px solid var(--line);border-radius:99px;color:#c8c8ce;font-size:11px;padding:7px 10px}
.offer-pill strong{color:#fff}

/* ---------- Karta konceptu ---------- */
.concept-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:26px;box-shadow:0 10px 35px rgba(0,0,0,.12);scroll-margin-top:100px}
.concept-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 18px;border-bottom:1px solid var(--line)}
.concept-id{display:flex;gap:12px;align-items:center}
.concept-number{width:34px;height:34px;border-radius:9px;background:#24242a;display:grid;place-items:center;font-weight:800;font-size:13px}
.concept-title h3{margin:0;font-size:15px}
.concept-title span{display:block;color:var(--muted);font-size:11px;margin-top:2px}

.status-badge{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:99px;padding:6px 9px;border:1px solid var(--line);color:var(--muted)}
.status-badge[data-status="approved"]{color:#94f1bf;border-color:rgba(39,196,125,.35);background:rgba(39,196,125,.09)}
.status-badge[data-status="changes"]{color:#ff9e99;border-color:rgba(238,45,38,.4);background:rgba(238,45,38,.1)}
.status-badge[data-status="discuss"]{color:#ffd18b;border-color:rgba(242,167,53,.4);background:rgba(242,167,53,.1)}

.concept-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(330px,.5fr);align-items:start}
.visual-panel{padding:18px;border-right:1px solid var(--line)}

/* Galeria: kolumny proporcjonalne do formatu, więc wszystkie kafle mają równą wysokość i nic nie jest przycinane. */
.gallery-grid{display:grid;gap:12px;align-items:start;grid-template-columns:.8fr .5625fr .5625fr}
.gallery-grid[data-tiles="2"]{grid-template-columns:.8fr .5625fr}
.placement-card{min-width:0;display:grid;gap:8px}
.image-open{position:relative;display:block;width:100%;padding:0;border:1px solid var(--line);border-radius:14px;background:var(--bg);overflow:hidden;isolation:isolate;transition:border-color .24s,box-shadow .24s}
.placement-feed .image-open{aspect-ratio:4/5}
.placement-vertical .image-open{aspect-ratio:9/16}
.image-open img{width:100%;height:100%;object-fit:cover;filter:brightness(1) saturate(1);transition:filter .24s ease}
.image-open::before{content:'';position:absolute;top:-8%;bottom:-8%;left:-62%;width:42%;z-index:2;pointer-events:none;opacity:0;transform:skewX(-18deg);background:linear-gradient(110deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.05) 28%,rgba(255,255,255,.24) 48%,rgba(255,255,255,.09) 60%,rgba(255,255,255,0) 100%)}
.image-open::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:linear-gradient(180deg,rgba(255,255,255,.03) 0%,rgba(255,255,255,0) 35%,rgba(238,45,38,.08) 100%);transition:opacity .24s ease}
.image-open:hover{border-color:#4c4c56;box-shadow:0 12px 30px rgba(0,0,0,.24)}
.image-open:hover img{filter:brightness(1.035) saturate(1.03)}
.image-open:hover::before{opacity:1;animation:sheen .82s var(--ease) 1}
.image-open:hover::after{opacity:1}
.image-open:focus-visible{outline:2px solid rgba(238,45,38,.95);outline-offset:2px}
@keyframes sheen{0%{left:-62%;opacity:0}18%{opacity:1}100%{left:126%;opacity:0}}

.placement-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 2px;color:#fff}
.placement-label b{font-size:11px}
.placement-label span{font-size:10px;color:var(--muted-2);text-align:right}

/* Treści reklamowe */
.copy-panel{padding:18px;min-width:0}
.copy-panel-title{margin:0 0 12px;font-size:13px}
.copy-accordion{border-top:1px solid #292930;border-bottom:1px solid #292930}
.copy-section + .copy-section{border-top:1px solid #292930}
.copy-section-toggle{width:100%;min-height:48px;border:0;background:transparent;color:#cfcfd5;padding:11px 8px;display:grid;grid-template-columns:minmax(0,1fr) auto 24px;align-items:center;gap:8px;text-align:left;font-size:11px;font-weight:700;transition:background-color .16s,color .16s}
.copy-section-toggle:hover,.copy-section-toggle[aria-expanded="true"]{background:var(--panel-2);color:#fff}
.copy-section-toggle:focus-visible{position:relative;z-index:2;outline:1px solid rgba(238,45,38,.95);outline-offset:-1px}
.copy-section-count{font-size:11px;color:#eeeef1;text-align:center;min-width:12px}
.copy-section-symbol{position:relative;width:24px;height:24px;border:1px solid #3a3a43;border-radius:6px;color:#b6b6bf;transition:background-color .16s,border-color .16s,color .16s}
.copy-section-symbol::before,.copy-section-symbol::after{content:'';position:absolute;left:50%;top:50%;width:9px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.copy-section-symbol::after{transform:translate(-50%,-50%) rotate(90deg);transition:transform .18s ease}
.copy-section-toggle[aria-expanded="true"] .copy-section-symbol::after{transform:translate(-50%,-50%) rotate(0deg)}
.copy-section-toggle:hover .copy-section-symbol,.copy-section-toggle[aria-expanded="true"] .copy-section-symbol{background:#222228;border-color:#555560;color:#fff}
.copy-section-panel{padding:10px 0 12px}
.copy-list{display:grid;gap:8px}
.copy-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;background:#0f0f13;border:1px solid #23232a;border-radius:10px;padding:10px 6px 10px 10px;color:#bdbdc6;font-size:11px;line-height:1.48}
.copy-body{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;row-gap:6px;align-items:start}
.copy-index{grid-row:1;min-width:18px;height:18px;border-radius:5px;background:#202027;color:#9d9da6;font-size:10px;font-weight:700;display:grid;place-items:center}
.copy-text{grid-column:2;white-space:pre-line}
.copy-body:not(:has(.copy-index)) .copy-text,.copy-body:not(:has(.copy-index)) .copy-meta{grid-column:1/-1}
.copy-meta{grid-column:2;font-size:10px;color:#6f6f79}
.copy-meta[data-over="true"]{color:#c9a56b}
.copy-actions{display:flex;flex-direction:column;gap:5px}
.copy-btn{position:relative;width:26px;height:26px;display:grid;place-items:center;padding:0;border:1px solid #303038;border-radius:7px;background:#18181d;color:#cfcfd5;transition:background-color .16s,border-color .16s,color .16s}
.copy-btn:hover{background:#222228;border-color:#555560;color:#fff}
.copy-btn:active{transform:translateY(1px)}
.copy-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Ocena */
.feedback-panel{border-top:1px solid var(--line);padding:17px 18px;background:var(--sunken)}
.feedback-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:11px}
.feedback-top strong{font-size:12px}
.save-state{font-size:10px;color:var(--muted-2)}
.save-state[data-state="saved"]{color:#7fd7a8}
.save-state[data-state="pending"],.save-state[data-state="saving"]{color:#e6b56a}
.status-control{display:flex;gap:7px;flex-wrap:wrap}
.status-btn{min-width:100px;border:1px solid var(--line-strong);background:var(--panel-2);color:#b9b9c0;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:700;transition:background-color .16s,border-color .16s,color .16s}
.status-btn:hover{background:#1c1c21;border-color:var(--line-hover);color:#fff}
.status-btn:active{transform:translateY(1px)}
.status-btn:focus-visible{outline:1px solid rgba(238,45,38,.92);outline-offset:2px}
.status-btn[data-status-btn="approved"][aria-pressed="true"]{background:rgba(39,196,125,.15);border-color:rgba(39,196,125,.72);color:#a7f0c8}
.status-btn[data-status-btn="changes"][aria-pressed="true"]{background:rgba(238,45,38,.15);border-color:rgba(238,45,38,.78);color:#ffaaa6}
.status-btn[data-status-btn="discuss"][aria-pressed="true"]{background:rgba(242,167,53,.15);border-color:rgba(242,167,53,.78);color:#ffd498}

.comment-box{margin-top:11px}
.comment-box textarea{
  --tone:#f2f2f5;--edge:var(--line-strong);--edge-hover:#464651;--edge-focus:rgba(238,45,38,.8);--ring:rgba(238,45,38,.10);--ph:#686872;
  display:block;width:100%;min-height:90px;max-height:340px;field-sizing:content;resize:vertical;border:1px solid var(--edge);border-radius:11px;background:var(--field);color:var(--tone);caret-color:var(--tone);padding:11px 12px;outline:none;font-size:12px;line-height:1.5;
  transition:border-color .18s,box-shadow .18s,background-color .18s}
.comment-box textarea::placeholder{color:var(--ph)}
.comment-box textarea:hover{border-color:var(--edge-hover)}
.comment-box textarea:focus{background:#0d0d10;border-color:var(--edge-focus);box-shadow:0 0 0 3px var(--ring)}
.concept-card[data-status="approved"] textarea{--tone:#a7f0c8;--edge:rgba(39,196,125,.34);--edge-hover:rgba(39,196,125,.52);--edge-focus:rgba(39,196,125,.86);--ring:rgba(39,196,125,.12);--ph:rgba(167,240,200,.42)}
.concept-card[data-status="changes"] textarea{--tone:#ffaaa6;--edge:rgba(238,45,38,.34);--edge-hover:rgba(238,45,38,.56);--edge-focus:rgba(238,45,38,.86);--ring:rgba(238,45,38,.12);--ph:rgba(255,170,166,.42)}
.concept-card[data-status="discuss"] textarea{--tone:#ffd498;--edge:rgba(242,167,53,.36);--edge-hover:rgba(242,167,53,.58);--edge-focus:rgba(242,167,53,.88);--ring:rgba(242,167,53,.14);--ph:rgba(255,212,152,.44)}

/* ---------- Dolny pasek ---------- */
.feedback-bar{position:fixed;bottom:0;left:0;right:0;z-index:70;border-top:1px solid var(--line);background:rgba(15,15,18,.94);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);padding-bottom:env(safe-area-inset-bottom)}
.feedback-bar-inner{min-height:72px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.feedback-bar strong{display:block;font-size:13px}
.feedback-bar span{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.feedback-actions{display:flex;gap:8px}
.feedback-actions .short{display:none}

/* ---------- Podgląd ---------- */
.image-modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.94);display:grid;grid-template-columns:64px minmax(0,1fr) 64px;grid-template-rows:auto minmax(0,1fr);align-items:center;padding:12px 12px 20px}
.modal-toolbar{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:44px}
.modal-counter{margin-right:auto;font-size:12px;color:var(--muted);padding-left:8px}
.modal-tool{border:1px solid rgba(255,255,255,.18);border-radius:99px;background:rgba(20,20,24,.7);padding:8px 13px;font-size:12px;font-weight:700;color:#e8e8ec}
.modal-tool:hover{border-color:rgba(255,255,255,.35);background:rgba(38,38,44,.92)}
.modal-tool[aria-pressed="true"]{border-color:rgba(238,45,38,.8);background:rgba(238,45,38,.18)}
.modal-close,.modal-nav{border:1px solid rgba(255,255,255,.18);border-radius:99px;background:rgba(20,20,24,.7);color:#fff;line-height:1;transition:border-color .16s,background-color .16s}
.modal-close{width:42px;height:42px;font-size:26px}
.modal-nav{width:48px;height:48px;font-size:28px;justify-self:center}
.modal-close:hover,.modal-nav:hover{border-color:rgba(255,255,255,.35);background:rgba(38,38,44,.92)}
.modal-stage{min-height:0;align-self:stretch;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px}
.image-modal{--chrome:120px}
/* Ramka ma dokładnie proporcje kreacji, więc nakładka stref pokrywa się z obrazem 1:1. */
.modal-frame{position:relative;aspect-ratio:4/5;width:min(100%,calc((100dvh - var(--chrome)) * .8))}
.modal-frame[data-ratio="vertical"]{aspect-ratio:9/16;width:min(100%,calc((100dvh - var(--chrome)) * .5625))}
.modal-frame img{width:100%;height:100%;object-fit:contain;border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.modal-frame.is-loading img{filter:blur(2px)}
.modal-caption{font-size:12px;color:#c8c8cf;text-align:center}

.image-modal.is-post .modal-frame{display:none}
.image-modal.is-post .modal-stage{overflow-y:auto;justify-content:flex-start;padding:4px 0 8px;overscroll-behavior:contain}

/* Makieta posta w feedzie (Facebook, tryb ciemny) */
.post-mock{display:grid;grid-template-columns:minmax(0,470px) 230px;gap:22px;align-items:start;width:min(100%,722px);margin:auto}
.post{background:#242526;color:#e4e6eb;border-radius:10px;overflow:hidden;font-family:Helvetica,Arial,sans-serif;box-shadow:0 30px 90px rgba(0,0,0,.5)}
.post-head{display:flex;align-items:center;gap:9px;padding:12px 14px 8px}
.post-avatar{width:40px;height:40px;border-radius:50%;background:#fff;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}
.post-avatar img{width:34px;height:auto}
.post-who{display:flex;flex-direction:column;font-size:13px;line-height:1.25}
.post-who b{font-size:14px}
.post-who span{color:#b0b3b8;font-size:12px}
.post-text{margin:0;padding:0 14px 10px;font-size:14px;line-height:1.36;white-space:pre-line;overflow-wrap:anywhere}
.post-more{border:0;background:none;padding:0;color:#b0b3b8;font-weight:700}
.post-more:hover{text-decoration:underline}
.post-img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:#18191a}
.post-cta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#3a3b3c}
.post-cta-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.post-form{font-size:11px;color:#b0b3b8;text-transform:uppercase}
.post-cta-text b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#postDesc{font-size:13px;color:#b0b3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.post-btn{flex:0 0 auto;background:#4e4f50;border-radius:6px;padding:8px 12px;font-size:14px;font-weight:700}
.post-variants{display:grid;gap:10px;position:sticky;top:0}
.variant-row{display:grid;grid-template-columns:1fr 36px auto 36px;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 8px 8px 12px}
.variant-label{font-size:12px;font-weight:700;color:#d8d8dd}
.variant-count{font-size:12px;color:var(--muted);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}
.variant-btn{width:36px;height:36px;border:1px solid var(--line-strong);border-radius:9px;background:var(--panel-2);font-size:20px;line-height:1}
.variant-btn:hover{border-color:var(--line-hover);background:#202026}
.post-note{margin:2px 2px 0;font-size:11px;line-height:1.5;color:var(--muted-2)}
.post-note span{color:#c8c8cf}
.post-insert{width:100%}

.safe-zones{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .18s;border-radius:8px;overflow:hidden}
.show-zones .safe-zones{opacity:1}
.sz{position:absolute;background:repeating-linear-gradient(135deg,rgba(238,45,38,.34) 0 8px,rgba(238,45,38,.18) 8px 16px);outline:1px dashed rgba(255,120,115,.9);outline-offset:-1px}
.sz-top{top:0;left:0;right:0;height:var(--sz-top,0)}
.sz-bottom{bottom:0;left:0;right:0;height:var(--sz-bottom,0)}
.sz-left{left:0;top:var(--sz-top,0);bottom:var(--sz-bottom,0);width:var(--sz-side,0)}
.sz-right{right:0;top:var(--sz-top,0);bottom:var(--sz-bottom,0);width:var(--sz-side,0)}

/* ---------- Toast ---------- */
.toast{position:fixed;right:24px;bottom:96px;z-index:300;max-width:min(360px,calc(100vw - 32px));background:#f7f7f8;color:#151518;border:1px solid rgba(0,0,0,.12);border-radius:9px;padding:11px 14px;font-size:12px;font-weight:700;box-shadow:0 14px 40px rgba(0,0,0,.28);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .18s,transform .18s}
.toast.show{opacity:1;transform:translateY(0)}
.toast[data-type="approved"]{border-left:3px solid var(--green)}
.toast[data-type="changes"]{border-left:3px solid var(--red)}
.toast[data-type="discuss"]{border-left:3px solid var(--amber)}
.toast[data-type="pending"]{border-left:3px solid #80808a}

/* ---------- Responsywność ---------- */
@media (max-width:1180px){
  .review-shell{grid-template-columns:190px minmax(0,1fr)}
  .concept-layout{grid-template-columns:1fr}
  .visual-panel{border-right:0;border-bottom:1px solid var(--line)}
  .hero-grid{gap:40px}
  .header-inner{grid-template-columns:170px 1fr auto}
  .header-progress{width:170px}
  .model-toggle{font-size:13.6px}
}
@media (max-width:900px){
  :root{--header-h:68px}
  .post-mock{grid-template-columns:minmax(0,470px);justify-content:center}
  .post-variants{position:static;width:min(100%,470px);justify-self:center}
  body{padding-bottom:108px}
  .shell{width:min(calc(100% - 26px),var(--shell))}
  .header-inner{grid-template-columns:120px 1fr auto;gap:14px}
  .brand img{width:120px}
  .header-meta strong{font-size:12px}
  .header-progress{display:none}
  .hero{padding:46px 0}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .hero h1{font-size:44px}
  .hero-copy{font-size:16px}
  .review-shell{display:block;padding-top:18px}
  .review-nav{display:none}
  .mobile-filter-row{position:sticky;top:var(--header-h);z-index:50;display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px;align-items:center;background:rgba(11,11,13,.96);border-bottom:1px solid var(--line);margin:0 -13px 20px;padding:10px 13px}
  .mobile-filter-row label{font-size:9px;color:var(--muted);font-weight:800;text-transform:uppercase}
  .mobile-filter-row select{min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:8px;font-size:11px}
  .model-head{align-items:flex-start;flex-direction:column}
  .model-offer{justify-content:flex-start}
  .feedback-bar-inner{padding:10px 0;min-height:88px}
  .feedback-bar span{display:none}
  .image-modal{--chrome:190px;grid-template-columns:1fr 1fr;grid-template-rows:auto minmax(0,1fr) auto;gap:10px 16px;padding:8px 8px calc(16px + env(safe-area-inset-bottom))}
  .modal-stage{grid-column:1/-1;grid-row:2}
  .modal-nav{grid-row:3;width:48px;height:48px}
  .modal-nav.prev{grid-column:1;justify-self:end}
  .modal-nav.next{grid-column:2;justify-self:start}
}
@media (max-width:680px){
  .header-meta .eyebrow{display:none}
  .sync-indicator{font-size:10px}
  .hero h1{font-size:36px}
  .hero-copy{font-size:14px}
  .campaign-card{border-radius:15px}
  .mobile-filter-row{grid-template-columns:1fr 1fr}
  .mobile-filter-row label{display:none}
  .model-section{margin-bottom:46px}
  .model-head h2{font-size:23px}
  .concept-card{border-radius:16px;margin-bottom:18px}
  .concept-head{padding:13px}
  .visual-panel{padding:11px}
  .feedback-actions .long{display:none}
  .feedback-actions .short{display:inline}
  .post-mock{gap:12px}
  .gallery-grid,.gallery-grid[data-tiles="2"]{grid-template-columns:1fr 1fr;gap:10px 8px}
  .placement-feed{grid-column:1/-1}
  .gallery-grid[data-tiles="2"] .placement-vertical{grid-column:1/-1;width:62%;justify-self:center}
  .image-open{border-radius:11px}
  .placement-label{flex-direction:column;gap:2px}
  .placement-label span{text-align:left}
  .copy-panel,.feedback-panel{padding:14px}
  .feedback-top{align-items:flex-start;flex-direction:column;gap:4px}
  .status-btn{min-width:0;flex:1 1 31%;padding:9px 7px}
  .feedback-bar-inner>div:first-child{display:none}
  .feedback-actions{width:100%}
  .feedback-actions .btn{flex:1}
  .toast{right:12px;left:12px;bottom:106px;max-width:none;text-align:center}
  .sync-banner p{font-size:12px}
}
@media (max-width:420px){
  .hero-actions{display:grid}
  .hero-actions .btn{text-align:center}
  .offer-pill{font-size:10px}
  .concept-title span{display:none}
  .status-badge{font-size:9px}
  .feedback-actions .btn{font-size:11px;padding:10px 8px}
  .header-meta{display:none}
  .header-inner{grid-template-columns:auto 1fr}
  .header-side{justify-content:flex-end}
}
@media (hover:none){
  kbd{display:none}
  .image-open:hover::before{animation:none;opacity:0}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .image-open:hover::before{opacity:0}
}
