/* SmartProgram — iTNET | style.css
   Standards: @layer, CSS custom properties (HSL palette), container queries, clamp() */

@layer reset,tokens,base,components;

/* ══════════════════════════════════════════════════
   RESET
══════════════════════════════════════════════════ */
@layer reset{
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
}

/* ══════════════════════════════════════════════════
   TOKENS — HSL palette system
   Change --p-h/s/l to shift all brand colors
══════════════════════════════════════════════════ */
@layer tokens{
:root{
  /* Brand SmartProgram (logo/sygnet) — pomarańcz zarezerwowany dla brandu, NIE dla przycisków UI */
  --sp-ink:#262F3D;--sp-orange:#F07E22;--sp-orange-soft:#F59A50;--sp-tint:#FBEFE3;
  /* Palette hue/sat/light — Orange (default) */
  --p-h:23;--p-s:53%;--p-l:54%;

  /* Computed brand */
  --brand:hsl(var(--p-h) var(--p-s) var(--p-l));
  --brand-dim:hsl(var(--p-h) var(--p-s) 95%);
  --brand-border:hsl(var(--p-h) var(--p-s) 76%);
  --brand-deep:hsl(var(--p-h) 60% 20%);

  /* Neutrals — light */
  --bg:hsl(var(--p-h) 28% 98%);
  --bg2:hsl(var(--p-h) 20% 93%);
  --bg3:hsl(var(--p-h) 15% 88%);
  --surface:hsl(var(--p-h) 38% 97%);
  --surface2:hsl(var(--p-h) 28% 92%);
  --border:hsl(var(--p-h) 26% 84%);
  --border2:hsl(0 0% 90%);
  --text:hsl(var(--p-h) 58% 10%);
  --text2:hsl(var(--p-h) 20% 40%);
  --text3:hsl(var(--p-h) 12% 65%);
  --hdr-bg:hsl(var(--p-h) 28% 98% / 0.95);
  --title-gradient:linear-gradient(135deg,hsl(var(--p-h) 80% 15%) 0%,hsl(var(--p-h) 60% 35%) 55%,hsl(var(--p-h) var(--p-s) var(--p-l)) 100%);

  /* Stage badges — semantic, not palette-dependent */
  --c-audyt:#8a6200;--c-powy:#0f7a40;--c-oferta:#2a55b0;
  --badge-audyt-bg:rgba(180,130,0,.1);--badge-audyt-fg:#7a5500;--badge-audyt-br:rgba(180,130,0,.28);
  --badge-powy-bg:rgba(20,140,80,.1);--badge-powy-fg:#0a6535;--badge-powy-br:rgba(20,140,80,.28);
  --badge-oferta-bg:rgba(60,110,220,.1);--badge-oferta-fg:#2a55b0;--badge-oferta-br:rgba(60,110,220,.28);
  --del-bg:rgba(190,40,40,.08);--del-fg:#b02828;--del-act:rgba(190,40,40,.18);

  /* Shape & spacing */
  --r:14px;--rs:8px;--rl:20px;
  --sidebar-w:340px;
  --safe-b:env(safe-area-inset-bottom,0px);
}

/* Dark mode — overrides computed tokens using same --p-h */
[data-theme="dark"]{
  --brand-dim:hsl(var(--p-h) var(--p-s) 16%);
  --brand-border:hsl(var(--p-h) var(--p-s) 32%);
  --brand-deep:hsl(var(--p-h) var(--p-s) 70%);
  --bg:hsl(var(--p-h) 18% 7%);
  --bg2:hsl(var(--p-h) 16% 11%);
  --bg3:hsl(var(--p-h) 14% 15%);
  --surface:hsl(var(--p-h) 14% 12%);
  --surface2:hsl(var(--p-h) 12% 17%);
  --border:hsl(var(--p-h) 18% 22%);
  --border2:hsl(0 0% 100% / 0.07);
  --text:hsl(var(--p-h) 20% 94%);
  --text2:hsl(var(--p-h) 10% 58%);
  --text3:hsl(var(--p-h) 8% 38%);
  --hdr-bg:hsl(var(--p-h) 18% 7% / 0.95);
  --title-gradient:linear-gradient(135deg,hsl(var(--p-h) 20% 92%) 0%,hsl(var(--p-h) 40% 68%) 55%,hsl(var(--p-h) var(--p-s) var(--p-l)) 100%);
  --c-audyt:#e8b84b;--c-powy:#4bb87c;--c-oferta:#5b8cdc;
  --badge-audyt-bg:rgba(232,184,75,.18);--badge-audyt-fg:#f0cc6e;--badge-audyt-br:rgba(232,184,75,.3);
  --badge-powy-bg:rgba(75,184,124,.18);--badge-powy-fg:#6ed4a0;--badge-powy-br:rgba(75,184,124,.3);
  --badge-oferta-bg:rgba(91,140,220,.18);--badge-oferta-fg:#8ab0ef;--badge-oferta-br:rgba(91,140,220,.3);
  --del-bg:rgba(232,90,90,.08);--del-fg:#e85b5b;--del-act:rgba(232,90,90,.2);
}

/* Color palettes — only override HSL components */
[data-palette="blue"]  {--p-h:222;--p-s:55%;--p-l:48%}
[data-palette="teal"]  {--p-h:175;--p-s:58%;--p-l:36%}
[data-palette="purple"]{--p-h:270;--p-s:48%;--p-l:45%}
[data-palette="slate"] {--p-h:210;--p-s:24%;--p-l:42%}
}

/* ══════════════════════════════════════════════════
   BASE — layout skeleton
══════════════════════════════════════════════════ */
@layer base{
html,body{height:100%;overflow:hidden;font-family:'Outfit',sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}

#app{display:flex;height:100dvh;overflow:hidden}
#sidebar{display:none;flex-direction:column;width:100%;overflow:hidden;flex-shrink:0}
#main{display:none;flex-direction:column;flex:1;min-width:0;overflow:hidden}

/* Mobile show/hide by screen class */
#app.screen-nav #sidebar{display:flex}
#app:not(.screen-nav) #main{display:flex}

/* Scrollable content area */
.body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}
.body::-webkit-scrollbar{display:none}
/* Standard szerokości treści (2026-07-06): jeden wyśrodkowany kontener dla wszystkich widoków.
   Nagłówek .hdr jest poza .body, więc zostaje pełnoszerokie. Widoki pełnej szerokości: .body--full. */
.body > *{max-width:var(--page-max,1100px);margin-left:auto;margin-right:auto}
.body--full > *{max-width:none}
}

/* Desktop two-panel override */
@media(min-width:1024px){
  #app{flex-direction:row}
  #sidebar{display:flex!important;width:var(--sidebar-w);flex-shrink:0;border-right:1px solid var(--border)}
  #main{display:flex!important}
}

/* ══════════════════════════════════════════════════
   COMPONENTS
══════════════════════════════════════════════════ */
@layer components{

/* ── Header ── */
.hdr{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--hdr-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);flex-shrink:0;min-height:56px}
.hdr-back{width:38px;height:38px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--brand);font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s}
.hdr-back:active{background:var(--surface2)}
.hdr-logo{height:28px;object-fit:contain;flex-shrink:0}
.hdr-logo-ph{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--brand,#2563eb);color:#fff;font-weight:800;font-size:14px;border-radius:7px}
.hdr-info{flex:1;min-width:0}
.hdr-title{font-size:clamp(13px,3.5vw,15px);font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hdr-sub{font-size:clamp(10px,2.5vw,12px);color:var(--text2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sync-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;transition:background .3s}
.sync-dot.saving{background:var(--brand);animation:blink 1s infinite}
.sync-dot.saved{background:var(--c-powy)}
.sync-dot.error{background:#e85b5b}
.sync-dot.offline{background:var(--text3)}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.3}}
.btn-edit-hdr{width:34px;height:34px;border-radius:var(--rs);font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;border:1px solid var(--border);background:var(--surface);color:var(--text2)}
.btn-edit-hdr:active{background:var(--surface2);color:var(--brand)}

/* ── Search bar ── */
.search-bar{display:flex;gap:10px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}
.search-input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:10px 13px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;outline:none}
.search-input::placeholder{color:var(--text3)}
.search-input:focus{border-color:var(--brand)}
.btn-new{background:var(--brand);color:#fff;border:none;border-radius:var(--rs);padding:10px 18px;font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0}
.btn-new:active{opacity:.82}

/* ── Client list ── */
.proj-list{padding:10px 16px 80px;display:flex;flex-direction:column;gap:10px}
.empty{text-align:center;color:var(--text2);padding:55px 20px;font-size:14px;line-height:2}
.empty-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 14px;border-radius:18px;background:var(--surface2);color:var(--text3)}
.empty-icon svg{width:30px;height:30px}

/* ── Client card ── */
.cli-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 15px;cursor:pointer;transition:background .12s,transform .12s,box-shadow .15s}
.cli-card:active{background:var(--surface2);transform:scale(.99)}
.cli-card.active{background:var(--brand-dim);border-color:var(--brand)}
@media(hover:hover){.cli-card:hover{box-shadow:0 4px 20px rgba(0,0,0,.1);transform:translateY(-1px)}}
.cli-card-main{display:flex;align-items:center;gap:12px}
.cli-card-info{flex:1;min-width:0}
.cli-card-info .proj-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cli-card-foot{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;margin-top:10px}
.cli-card-foot .proj-chips{margin:0;flex-wrap:wrap}
.cli-card-foot .proj-date{margin-left:auto;white-space:nowrap;flex-shrink:0}
@media(min-width:540px){.cli-card-foot{padding-left:58px}}
.proj-card-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.client-avatar{width:46px;height:46px;border-radius:50%;background:var(--brand-dim);border:2px solid var(--brand-border);color:var(--brand);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.5px;font-family:'Outfit',sans-serif}
.proj-name{font-size:clamp(14px,4vw,16px);font-weight:600;color:var(--text)}
.proj-num{font-size:12px;color:var(--text2);margin-top:3px}
.proj-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 9px;border-radius:20px;background:var(--brand-dim);color:var(--brand);border:1px solid var(--brand-border)}
.chip-audyt{background:var(--badge-audyt-bg);color:var(--badge-audyt-fg);border-color:var(--badge-audyt-br)}
.chip-oferta{background:var(--badge-oferta-bg);color:var(--badge-oferta-fg);border-color:var(--badge-oferta-br)}
.chip-powy{background:var(--badge-powy-bg);color:var(--badge-powy-fg);border-color:var(--badge-powy-br)}
.proj-date{font-size:11px;color:var(--text3)}
.card-actions{display:flex;flex-direction:row;gap:4px;flex-shrink:0}
.card-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-family:'Outfit',sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap}
.card-btn span{display:none}
.card-btn:active{transform:scale(.95)}
@media(hover:hover){.card-btn-view:hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand-border)}.card-btn-edit:hover{background:var(--badge-audyt-bg);color:var(--badge-audyt-fg);border-color:var(--badge-audyt-br)}.card-btn-del:hover{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-fg)}}
.card-btn-view:active{background:var(--brand-dim);color:var(--brand);border-color:var(--brand-border)}
.card-btn-edit:active{background:var(--badge-audyt-bg);color:var(--badge-audyt-fg);border-color:var(--badge-audyt-br)}
.card-btn-del:active{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-fg)}
@media(min-width:540px){
  .card-actions{flex-direction:row;gap:5px}
  .card-btn{width:auto;height:auto;padding:7px 10px;gap:5px}
  .card-btn span{display:inline}
}

/* ── Tablet: 2-col client grid ── */
@media(min-width:640px) and (max-width:1023px){
  .proj-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:14px 20px 80px}
}

/* ── Form ── */
.form-wrap{padding:20px 16px 80px;display:flex;flex-direction:column;gap:16px;max-width:760px;width:100%;margin:0 auto}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:11px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.field input,.field textarea,.field select{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:13px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:15px;outline:none;width:100%}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--brand)}
.field textarea{min-height:76px;resize:none}
.field-row{display:flex;gap:12px;flex-direction:column}
@media(min-width:540px){.field-row{flex-direction:row}}
.field-row .field{flex:1}
.btn-primary{background:var(--brand);color:#fff;border:none;border-radius:var(--r);padding:16px;width:100%;font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;cursor:pointer}
.btn-primary:active{opacity:.85}
.chk-field{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);cursor:pointer;font-size:14px;color:var(--text)}
.chk-field input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;flex-shrink:0}
.section-divider{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;padding:6px 0 2px;border-bottom:1px solid var(--border)}
.req{color:#ef383b;font-size:13px;line-height:1}
.field-err{display:block;font-size:11px;color:#c0392b;margin-top:3px;min-height:15px;font-weight:500}
.field--error>input,.field--error>select,.field--error .phone-row input,.field--error .phone-row select{border-color:#ef383b!important}
.phone-row{display:flex;gap:8px}
.phone-prefix{width:95px!important;flex-shrink:0;padding-left:8px!important;padding-right:4px!important}
.phone-row input{flex:1;min-width:0}
.chip-lead{background:var(--surface2);color:var(--lead-col);border-color:var(--lead-col)}
.chip-ankieta{background:rgba(123,108,240,.14);color:#7b6cf0;border-color:rgba(123,108,240,.35)}

/* ── „CO JUŻ JEST" — postęp klienta/leada (plakietki, kroki, tagi sekcji) ── */
.pchips{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0 2px}
.client-profile-top .pchips{justify-content:center;max-width:100%}
.pchip{display:inline-flex;align-items:center;gap:4px;font-size:11px;line-height:1.3;padding:3px 9px;border-radius:20px;
  background:color-mix(in srgb,var(--pc,#3b6ef7) 12%,transparent);color:var(--pc,#3b6ef7);
  border:1px solid color-mix(in srgb,var(--pc,#3b6ef7) 32%,transparent)}
.pchip b{font-weight:600;opacity:.75}
.pchip em{font-style:normal;font-weight:700;color:#e0921a}
.pchip.is-wait{background:var(--surface2);color:var(--text2);border-color:var(--border)}
.pchip.is-none{background:transparent;color:var(--text3);border-style:dashed}
.pchips--mini .pchip{font-size:10px;padding:1px 6px;gap:3px}
.psteps{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:11px}
@media(min-width:560px){.psteps{grid-template-columns:1fr 1fr}}
.pstep{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:9px 11px;border-radius:var(--rs);
  border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:'Outfit',sans-serif;transition:all .12s}
.pstep:hover{background:var(--bg2)}
.pstep:active{transform:scale(.99)}
.pstep-ic{display:flex;color:var(--pc,#3b6ef7);flex-shrink:0}
.pstep-tx{display:flex;flex-direction:column;min-width:0;flex:1}
.pstep-tx b{font-size:12.5px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pstep-tx i{font-style:normal;font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pstep-mk{flex-shrink:0;font-size:13px;color:var(--text3);display:flex;align-items:center}
.pstep.is-done{border-color:color-mix(in srgb,#34a853 45%,transparent);background:color-mix(in srgb,#34a853 7%,var(--surface))}
.pstep.is-done .pstep-mk{color:#34a853}
.pstep.is-done .pstep-tx i{color:#2b8a45}
.pstep.is-wait{border-color:color-mix(in srgb,#f59e0b 45%,transparent);background:color-mix(in srgb,#f59e0b 7%,var(--surface))}
.pstep.is-none{border-style:dashed}
.pstep.is-none .pstep-tx b{color:var(--text2);font-weight:500}
.sttag{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;
  padding:2px 7px;border-radius:20px;background:var(--surface2);color:var(--text2);border:1px solid var(--border);vertical-align:middle;margin-left:4px}
.sttag.is-done{background:color-mix(in srgb,#34a853 13%,transparent);color:#2b8a45;border-color:color-mix(in srgb,#34a853 35%,transparent)}
.sttag.is-wait{background:color-mix(in srgb,#f59e0b 15%,transparent);color:#b8770f;border-color:color-mix(in srgb,#f59e0b 38%,transparent)}
.profile-card.is-ready{border-left:3px solid #34a853}

/* ── AUDYT — kreator i edytor dokumentu ── */
.aud-src{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:11px 0}
.aud-src-i{background:var(--surface2);border:1px solid var(--border);border-left:3px solid var(--text3);border-radius:var(--rs);padding:10px 12px}
.aud-src-i b{display:block;font-size:14px;font-weight:700;color:var(--text)}
.aud-src-i span{font-size:11.5px;color:var(--text3)}
.aud-src-i.is-ok{border-left-color:#34a853}
.aud-src-i.is-warn{border-left-color:#e0921a}
.aud-src-i.is-bad{border-left-color:#ef383b}
.aud-bar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.btn-danger-sm{color:#c0392b!important;border-color:rgba(192,57,43,.3)!important}
.aud-views{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);background:var(--surface2);
  border:1px solid var(--border);border-radius:var(--rs);padding:8px 11px;margin-bottom:11px}
.aud-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin-bottom:13px}
.aud-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:11px 13px}
.aud-kpi b{display:block;font-size:18px;font-weight:800;color:var(--brand);line-height:1.2}
.aud-kpi span{font-size:11.5px;color:var(--text3)}
.of-sec-cnt{font-size:11px;font-weight:600;color:var(--text3);margin-left:6px;text-transform:none;letter-spacing:0}
.aud-finds{display:flex;flex-direction:column;gap:9px}
.aud-find{display:flex;gap:10px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--pc,#94a3b8);
  border-radius:var(--r);padding:12px 13px;opacity:.72;transition:opacity .12s,box-shadow .12s}
.aud-find.is-on{opacity:1;box-shadow:0 2px 10px rgba(20,22,40,.06)}
.aud-find-chk{background:none;border:0;color:var(--text3);cursor:pointer;padding:0;flex-shrink:0;height:24px}
.aud-find.is-on .aud-find-chk{color:#34a853}
.aud-find-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px}
.aud-find-top{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.aud-find-title{flex:1;min-width:160px;border:1px solid transparent;background:transparent;font-family:'Outfit',sans-serif;
  font-size:15px;font-weight:700;color:var(--text);padding:4px 6px;border-radius:6px}
.aud-find-title:focus{border-color:var(--border);background:var(--bg2);outline:none}
.aud-find-prio{flex:0 0 auto;font-size:12px;padding:4px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}
.aud-find-tags{display:flex;gap:5px;flex-wrap:wrap}
.aud-find-txt{width:100%;border:1px solid var(--border);border-radius:var(--rs);background:var(--bg2);padding:8px 10px;
  font-family:'Outfit',sans-serif;font-size:13.5px;color:var(--text);resize:vertical}
.aud-find-acts{display:flex;gap:7px;flex-wrap:wrap}
.aud-ck{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 15px}
.aud-ck-area{margin-top:13px}
.aud-ck-area:first-child{margin-top:0}
.aud-ck-area h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:6px}
.aud-ck-row{display:flex;gap:9px;align-items:center;padding:7px 0;border-top:1px solid var(--border);flex-wrap:wrap}
.aud-ck-area .aud-ck-row:first-of-type{border-top:0}
.aud-ck-st{flex:0 0 auto;min-width:92px;font-family:'Outfit',sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;
  letter-spacing:.3px;padding:5px 10px;border-radius:20px;cursor:pointer;color:#fff;background:var(--sc,#94a3b8);border:0}
.aud-ck-tx{flex:1;min-width:150px}
.aud-ck-tx b{font-size:13.5px;font-weight:500;color:var(--text)}
.aud-ck-tx i{display:block;font-style:normal;font-size:11.5px;color:var(--text3)}
.aud-ck-note{flex:1 1 180px;min-width:140px;border:1px solid var(--border);border-radius:var(--rs);background:var(--bg2);
  padding:6px 9px;font-family:'Outfit',sans-serif;font-size:12.5px;color:var(--text)}
.aud-bud{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px}
.aud-bud-c{background:var(--surface);border:1px solid var(--border);border-top:3px solid var(--pc,var(--brand));border-radius:var(--rs);padding:11px 13px}
.aud-bud-c span{display:block;font-size:11.5px;color:var(--text3)}
.aud-bud-c b{font-size:17px;font-weight:800;color:var(--text)}
.aud-bud-c.is-total b{color:var(--brand)}
.aud-pay{display:flex;gap:11px;align-items:flex-end;flex-wrap:wrap}
/* audyt → spis: ostrzeżenie o ustaleniach poza wyceną */
.aud-gap{background:color-mix(in srgb,#e0921a 9%,var(--surface));border:1px solid color-mix(in srgb,#e0921a 34%,transparent);
  border-radius:var(--r);padding:13px 15px;margin:11px 0}
.aud-gap-t{display:flex;align-items:center;gap:7px;font-size:14px;color:#a3690c}
.aud-gap-b{font-size:13px;color:var(--text2);margin-top:5px;line-height:1.5}
.aud-gap-a{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}

/* ── OŚ CZASU (wspólna: klient / urządzenie / realizacja) ── */
.tl-box{margin-top:2px}
.cli-tl-bar{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}
.proj-tl-wrap{padding:16px}
.dev-detail-section .tl-box .ld-act{background:var(--surface2)}
.tl-box .ld-act.is-sys{cursor:default}
.tl-box .ld-act.is-sys[onclick]{cursor:pointer}
@media(hover:hover){.tl-box .ld-act[onclick]:hover{border-color:var(--brand-border);background:var(--bg2)}}

.aud-rules{display:flex;flex-direction:column;gap:2px;margin-top:8px}
.aud-rule-row{display:flex;align-items:center;gap:11px;padding:8px 0;border-top:1px solid var(--border)}
.aud-rule-row:first-child{border-top:0}
.aud-rule-tx{flex:1;min-width:0}
.aud-rule-tx b{display:block;font-size:13.5px;font-weight:600;color:var(--text)}
.aud-rule-tx i{font-style:normal;font-size:11.5px;color:var(--text3)}
.aud-rule-prio{flex:0 0 auto;font-size:12px;padding:4px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}
.aud-rule-sw{position:relative;flex:0 0 auto;width:38px;height:22px;cursor:pointer}
.aud-rule-sw input{position:absolute;opacity:0;width:0;height:0}
.aud-rule-sw span{position:absolute;inset:0;background:var(--border);border-radius:20px;transition:.15s}
.aud-rule-sw span:before{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:.15s}
.aud-rule-sw input:checked+span{background:#34a853}
.aud-rule-sw input:checked+span:before{transform:translateX(16px)}
.aud-rule-edit{flex:0 0 auto;background:none;border:1px solid var(--border);border-radius:8px;padding:5px 7px;color:var(--text2);cursor:pointer;display:flex}
@media(hover:hover){.aud-rule-edit:hover{color:var(--brand);border-color:var(--brand-border)}}
.aud-rule-form{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:12px 13px;margin:2px 0 8px}
.of-audit-link{display:flex;gap:13px;align-items:center;flex-wrap:wrap;background:color-mix(in srgb,#7b6cf0 8%,var(--surface));
  border:1px solid color-mix(in srgb,#7b6cf0 30%,transparent);border-radius:var(--r);padding:13px 15px;margin-top:16px}
.of-audit-link-t{flex:1;min-width:220px;font-size:14px;color:var(--text)}
.of-audit-link-a{display:flex;gap:7px;flex-wrap:wrap}

/* ── Pipeline / client detail ── */
.pipeline{padding:16px 16px 80px;display:grid;grid-template-columns:1fr;gap:13px}
@media(min-width:640px){.pipeline{grid-template-columns:1fr 1fr;padding:20px 20px 80px}}
@media(min-width:1200px){.pipeline{padding:24px 24px 80px}}

.stage-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;container-type:inline-size}
.stage-hdr{display:flex;align-items:center;gap:12px;padding:18px 16px 12px}
.stage-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:10px;background:var(--surface2);color:var(--brand)}
.stage-name{flex:1;font-size:clamp(15px,4vw,17px);font-weight:600;color:var(--text)}
.stage-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px;flex-shrink:0}
.stage-badge.done{background:var(--badge-powy-bg);color:var(--badge-powy-fg);border:1px solid var(--badge-powy-br)}
.stage-badge.warn{background:var(--badge-audyt-bg);color:var(--badge-audyt-fg);border:1px solid var(--badge-audyt-br)}
.stage-badge.empty{background:var(--surface2);color:var(--text3);border:1px solid var(--border)}
.stage-stats{display:flex;gap:16px;padding:0 16px 12px;flex-wrap:wrap}
.stage-stat{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text2)}
.stage-stat strong{color:var(--text);font-weight:600}
.stage-actions{display:flex;gap:8px;padding:0 16px 16px;flex-wrap:wrap}
.btn-stage{flex:1;padding:11px 14px;border-radius:var(--rs);border:none;background:var(--brand);color:#fff;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;min-width:0}
.btn-stage:active{opacity:.82}
.btn-stage:disabled{opacity:.38;cursor:not-allowed}
.btn-stage-sec{flex:1;padding:11px 14px;border-radius:var(--rs);border:1px solid var(--border);background:transparent;color:var(--text2);font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;white-space:nowrap;min-width:0}
.btn-stage-sec:active{background:var(--surface2);color:var(--brand)}
.oferta-ver-list{display:flex;flex-direction:column}
.oferta-item{display:flex;align-items:center;gap:10px;padding:11px 16px;border-top:1px solid var(--border2);cursor:pointer;transition:background .12s}
.oferta-item:active{background:var(--surface2)}
.oferta-ver{font-size:10px;font-weight:700;padding:2px 8px;border-radius:12px;flex-shrink:0;background:var(--badge-oferta-bg);color:var(--badge-oferta-fg);border:1px solid var(--badge-oferta-br)}
.oferta-label{flex:1;font-size:13px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.oferta-pts{font-size:12px;color:var(--text3);flex-shrink:0}

/* ── Tabs ── */
.tabs{display:flex;gap:5px;padding:10px 16px;overflow-x:auto;border-bottom:1px solid var(--border);flex-shrink:0;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{white-space:nowrap;padding:8px 16px;border-radius:20px;font-size:13px;font-weight:500;border:1px solid var(--border);background:transparent;color:var(--text2);flex-shrink:0;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .15s}
.tab.active{background:var(--brand-dim);color:var(--brand);border-color:var(--brand)}
.tab-n{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--brand);color:#fff;font-size:9px;font-weight:700;margin-left:5px}
.tab-add{white-space:nowrap;padding:8px 14px;border-radius:20px;font-size:16px;border:1px dashed var(--border);background:transparent;color:var(--text3);flex-shrink:0;cursor:pointer;font-family:'Outfit',sans-serif;transition:all .15s}
.tab-add:active,.tab-add:hover{color:var(--brand);border-color:var(--brand)}
.tab-ico{font-size:10px;margin-left:4px;opacity:.75;pointer-events:auto;vertical-align:middle}

/* ── Rooms ── */
.rooms{padding:10px 16px 110px;display:flex;flex-direction:column;gap:8px}
@media(min-width:1024px){.rooms{padding:12px 20px 110px}}
.room-card{border-radius:var(--r);border:1px solid var(--border);overflow:hidden}
.room-hdr{display:flex;align-items:center;gap:10px;padding:14px 15px;background:var(--surface);cursor:pointer;user-select:none}
.room-hdr:active{background:var(--surface2)}
.room-chevron{color:var(--text3);font-size:16px;transition:transform .22s;flex-shrink:0;line-height:1}
.room-card.open .room-chevron{transform:rotate(90deg)}
.room-name{flex:1;font-size:15px;font-weight:500;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.room-total{font-size:12px;font-weight:600;padding:2px 9px;border-radius:12px;flex-shrink:0;background:var(--brand-dim);color:var(--brand)}
.room-total.zero{background:transparent;color:var(--text3)}
.room-act{width:32px;height:32px;border:none;background:transparent;color:var(--text3);font-size:15px;cursor:pointer;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;touch-action:manipulation}
.room-act:active,.room-act:hover{background:var(--surface2)}
.room-act.danger:active,.room-act.danger:hover{color:#ef4444}
.room-body{max-height:0;overflow:hidden;transition:max-height .28s ease;background:var(--bg2)}
.room-card.open .room-body{max-height:1800px}
.grp-label{font-size:10px;color:var(--text3);font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:12px 16px 4px}
.circ-row{display:flex;align-items:center;gap:10px;padding:9px 16px 3px}
.circ-note{padding:0 16px 8px;border-bottom:1px solid var(--border2)}
.circ-note:last-of-type{border-bottom:none}
.circ-note-in{width:100%;border:none;background:transparent;font-family:'Outfit',sans-serif;font-size:12px;color:var(--text2);padding:2px 0;border-bottom:1px dashed transparent;outline:none}
.circ-note-in::placeholder{color:var(--text3);opacity:.55}
.circ-note-in:focus{border-bottom-color:var(--border)}
.circ-label{flex:1;font-size:13px;color:var(--text2);line-height:1.3}

/* Container query: wider circ row on large stage cards */
@container(min-width:400px){
  .circ-label{font-size:14px}
  .grp-label{font-size:11px}
}

/* ── Stepper ── */
.stepper{display:flex;align-items:center;flex-shrink:0}
.s-btn{width:44px;height:44px;border:none;font-size:22px;font-weight:300;display:flex;align-items:center;justify-content:center;cursor:pointer;background:var(--bg3);color:var(--text2);transition:background .1s,color .1s;user-select:none;touch-action:manipulation}
.s-btn.minus{border-radius:var(--rs) 0 0 var(--rs);border-right:1px solid var(--border2)}
.s-btn.plus{border-radius:0 var(--rs) var(--rs) 0;border-left:1px solid var(--border2)}
.s-btn:active,.s-btn.pressed{background:var(--brand-dim);color:var(--brand)}
.s-val{width:46px;height:44px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;background:var(--bg);color:var(--brand);border-top:1px solid var(--border2);border-bottom:1px solid var(--border2)}
.s-val.zero{color:var(--text3)}

/* ── Notes ── */
.notes-wrap{padding:8px 16px 14px}
.notes-lbl{font-size:10px;color:var(--text3);font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:6px}
.notes-ta{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--rs);padding:10px 12px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13px;resize:none;outline:none;min-height:52px}
.notes-ta:focus{border-color:var(--brand)}

/* ── Add room button ── */
.btn-add{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;border-radius:var(--r);border:1px dashed var(--border);background:transparent;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif;font-size:14px;width:100%;transition:all .15s}
.btn-add:active{border-color:var(--brand);color:var(--brand)}

/* ── Summary ── */
.summary{padding:16px 16px 55px;display:flex;flex-direction:column;gap:13px}
.sum-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(min-width:640px){.sum-stats{grid-template-columns:repeat(4,1fr)}}
.sum-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px 12px;text-align:center}
.sum-stat-val{font-size:clamp(26px,6vw,36px);font-weight:700;color:var(--brand);line-height:1}
.sum-stat-lbl{font-size:10px;color:var(--text2);margin-top:4px;text-transform:uppercase;letter-spacing:.5px}
.sum-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.sum-group-hdr{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:var(--surface2);border-bottom:1px solid var(--border)}
.sum-group-name{font-size:11px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.5px}
.sum-group-total{font-size:12px;font-weight:600;color:var(--brand)}
.sum-row{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-bottom:1px solid var(--border2)}
.sum-row:last-child{border-bottom:none}
.sum-row-lbl{font-size:13px;color:var(--text2)}
.sum-row-val{font-size:14px;font-weight:600;color:var(--text)}
.sum-empty{font-size:12px;color:var(--text3);padding:10px 14px;font-style:italic}
.sum-sec-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--border2)}
.sum-sec-row:last-child{border-bottom:none}
.sum-sec-name{font-size:13px;font-weight:600;color:var(--text);min-width:85px}
.sum-sec-bar{flex:1;height:6px;border-radius:3px;background:var(--border);overflow:hidden}
.sum-sec-fill{height:100%;border-radius:3px;background:var(--brand);transition:width .3s}
.sum-sec-val{font-size:13px;font-weight:600;color:var(--brand);min-width:28px;text-align:right}

/* ── Toast ── */
.toast{position:fixed;bottom:calc(24px + var(--safe-b));left:50%;transform:translateX(-50%) translateY(70px);opacity:0;background:var(--bg3);border:1px solid var(--border);border-radius:24px;padding:10px 22px;font-size:13px;color:var(--text);transition:all .28s;z-index:1000;white-space:nowrap;box-shadow:0 8px 32px rgba(0,0,0,.3);pointer-events:none}
.toast.on{transform:translateX(-50%) translateY(0);opacity:1}

/* ── Modal ── */
.mo-bg{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;display:flex;align-items:flex-end;justify-content:center}
@media(min-width:640px){.mo-bg{align-items:center}}
.mo{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r) var(--r) 0 0;width:100%;max-width:520px;padding:24px 20px calc(28px + var(--safe-b));max-height:calc(100vh - 21px);max-height:calc(100dvh - 21px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
@media(min-width:640px){.mo{border-radius:var(--r);padding:24px 24px 28px;box-shadow:0 20px 60px rgba(0,0,0,.4);max-height:89dvh}}
.mo h3{font-size:17px;font-weight:600;margin-bottom:4px}
.mo p{font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:14px}
.mo-row{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}
.btn-cancel{flex:1;padding:13px;border-radius:var(--rs);border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif;font-size:14px}
.btn-danger{flex:1;padding:13px;border-radius:var(--rs);border:none;background:var(--del-bg);color:var(--del-fg);cursor:pointer;font-family:'Outfit',sans-serif;font-size:14px;font-weight:600}
.btn-danger:active{background:var(--del-act)}
.btn-confirm{flex:1;padding:13px;border-radius:var(--rs);border:none;background:var(--brand);color:#fff;cursor:pointer;font-family:'Outfit',sans-serif;font-size:14px;font-weight:600}
.sec-opts{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.sec-opt{padding:12px 14px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:'Outfit',sans-serif;font-size:14px;text-align:left;transition:all .12s}
.sec-opt.sel{border-color:var(--brand);background:var(--brand-dim);color:var(--brand)}

/* ── Theme FAB — draggable ── */
#theme-fab{position:fixed;z-index:500;user-select:none;touch-action:none}
#theme-fab.dragging .fab-btn{cursor:grabbing}
.fab-btn{width:50px;height:50px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,.22);cursor:grab;font-size:22px;display:flex;align-items:center;justify-content:center;transition:box-shadow .15s;flex-shrink:0}
.fab-btn:active{box-shadow:0 2px 10px rgba(0,0,0,.15)}
.theme-panel{position:absolute;bottom:58px;right:0;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl);padding:14px 16px;box-shadow:0 8px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:11px;min-width:188px;animation:fab-in .2s ease}
@keyframes fab-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.tp-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3)}
.theme-dots{display:flex;gap:8px;align-items:center}
.palette-dot{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:transform .12s,border-color .12s;flex-shrink:0;padding:0}
.palette-dot.active{border-color:var(--text);transform:scale(1.18)}
.palette-dot:not(.active):hover{transform:scale(1.1)}
.mode-toggle{width:100%;padding:9px 13px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-align:left;transition:background .12s;display:flex;align-items:center;gap:8px}
.mode-toggle:active{background:var(--surface2)}

/* ── Welcome (desktop idle) ── */
.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;padding:40px;color:var(--text2);text-align:center}
.welcome-visual{display:flex;align-items:center;justify-content:center;color:var(--brand);opacity:.65}
.welcome h2{font-size:22px;font-weight:700;color:var(--text)}
.welcome p{font-size:14px;line-height:1.8}

/* ── Sidebar navigation ── */
.sidebar-brand{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border);flex-shrink:0}
.sidebar-nav{flex:1;overflow-y:auto;padding:8px 10px 80px;display:flex;flex-direction:column;gap:2px}
.nav-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);padding:10px 12px 4px}
.nav-item{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--rs);border:none;background:transparent;color:var(--text2);font-family:'Outfit',sans-serif;font-size:14px;font-weight:500;cursor:pointer;text-align:left;width:100%;transition:background .12s,color .12s;text-decoration:none}
.nav-item:active{background:var(--surface2)}
@media(hover:hover){.nav-item:hover{background:var(--surface);color:var(--text)}}
.nav-item.active{background:var(--brand-dim);color:var(--brand);font-weight:600}
.nav-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px}
.nav-item-pulpit{font-weight:700}
.nav-sep{height:1px;background:var(--border);margin:8px 4px 10px}
.nav-back{display:flex}
@media(min-width:1024px){.nav-back{display:none!important}}

/* ── Sidebar pulpit link ── */
.sidebar-pulpit{font-size:clamp(13px,3.5vw,15px);font-weight:700;color:var(--text);text-decoration:none;display:block;line-height:1.3;transition:color .15s}
.sidebar-pulpit:hover,.sidebar-pulpit.active{color:var(--brand)}

/* ── Dashboard ── */
.dash-wrap{padding:20px 16px 80px;display:flex;flex-direction:column;gap:20px}
.dash-greeting{padding:8px 4px 4px}
.dash-title{font-size:clamp(24px,6vw,34px);font-weight:700;background:var(--title-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1.2}
.dash-sub{font-size:13px;color:var(--text3);margin-top:4px}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
@media(min-width:600px){.dash-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
@media(min-width:1024px){.dash-grid{grid-template-columns:1fr 1fr;gap:13px}}
@media(min-width:1280px){.dash-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
.hub-tile{position:relative;display:flex;flex-direction:row;align-items:center;gap:14px;padding:18px 16px;border-radius:var(--rl);background:var(--tile-grad);overflow:hidden;cursor:pointer;text-decoration:none;transition:transform .18s,box-shadow .18s;box-shadow:0 4px 24px rgba(0,0,0,.18)}
.hub-tile::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.10);transition:background .18s;pointer-events:none}
.hub-tile::after{content:'';position:absolute;bottom:-30px;right:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.08);pointer-events:none}
@media(hover:hover){.hub-tile:hover{transform:translateY(-3px);box-shadow:0 10px 34px rgba(0,0,0,.28)}.hub-tile:hover::before{background:rgba(0,0,0,.04)}}
.hub-tile:active{transform:scale(.97)}
.hub-tile-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;background:rgba(255,255,255,.2);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.25);color:#fff;flex-shrink:0;position:relative}
.hub-tile-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;position:relative}
.hub-tile-name{font-size:clamp(13px,3.5vw,15px);font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.3);line-height:1.2}
.hub-tile-desc{font-size:10px;color:rgba(255,255,255,.72);line-height:1.4}
.hub-tile-arrow{flex-shrink:0;color:rgba(255,255,255,.55);transition:transform .18s,color .18s;position:relative}
@media(hover:hover){.hub-tile:hover .hub-tile-arrow{transform:translateX(3px);color:rgba(255,255,255,.95)}}

/* ─────────────────────────────────────────────────────────
   CZAS PRACY MODULE
───────────────────────────────────────────────────────── */
/* Employee card */
.work-emp-card{display:flex;align-items:center;gap:13px;padding:14px 16px;background:var(--card);border-radius:var(--rm);border:1px solid var(--border);cursor:pointer;transition:background .15s,box-shadow .15s;margin-bottom:8px}
@media(hover:hover){.work-emp-card:hover{background:var(--bg2);box-shadow:0 2px 13px rgba(0,0,0,.10)}}
.work-emp-card:active{transform:scale(.99)}
.work-emp-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#1ca980,#3bbff7);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:16px;flex-shrink:0;overflow:hidden}
.work-emp-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.work-emp-info{flex:1;min-width:0}
.work-emp-name{font-size:15px;font-weight:600;color:var(--text);line-height:1.3}
.work-emp-role{font-size:12px;color:var(--text3);margin-top:2px}
.work-emp-actions{display:flex;gap:6px}

/* Month navigation */
.work-month-nav{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 16px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5}
.work-month-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--bg);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
@media(hover:hover){.work-month-btn:hover{background:var(--brand-dim);color:var(--brand)}}
.work-month-label{font-size:15px;font-weight:600;color:var(--text);min-width:160px;text-align:center}

/* Stats */
.work-total-wrap{padding:13px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}
.work-reminder{display:flex;align-items:center;gap:11px;background:color-mix(in srgb,#f59e0b 14%,var(--card));border:1px solid color-mix(in srgb,#f59e0b 45%,transparent);border-radius:var(--rm);padding:11px 13px;margin-bottom:13px}
.work-reminder>svg{color:#f59e0b;flex-shrink:0}
.work-reminder-txt{flex:1;font-size:13px;line-height:1.4;color:var(--text)}
.work-stat-row{display:flex;gap:0;border-radius:var(--rm);overflow:hidden;border:1px solid var(--border);background:var(--card)}
.work-stat{flex:1;text-align:center;padding:12px 8px;border-right:1px solid var(--border)}
.work-stat:last-child{border-right:none}
.work-stat-val{font-size:18px;font-weight:700;color:var(--brand);line-height:1.2}
.work-stat-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}
.work-pay-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.work-pay{flex:1;min-width:140px;text-align:center;padding:11px 10px;border-radius:var(--rm);border:1px solid var(--border);background:var(--card)}
.work-pay-val{font-size:17px;font-weight:700;color:var(--text);line-height:1.2}
.work-pay-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-top:3px}
.work-pay--client{border-color:color-mix(in srgb,#d99614 40%,transparent);background:color-mix(in srgb,#d99614 8%,var(--card))}
.work-pay--client .work-pay-val{color:#9a6a00}
[data-theme="dark"] .work-pay--client .work-pay-val{color:#e2b33e}
/* Podsumowanie zarobków — Wypłata + godziny/nadgodziny */
.work-earn{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.work-earn-main{flex:1 1 210px;display:flex;flex-direction:column;justify-content:center;padding:14px 16px;border-radius:var(--rm);border:1px solid color-mix(in srgb,var(--brand) 32%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 15%,var(--card)),var(--card))}
.work-earn-val{font-size:26px;font-weight:800;color:var(--brand);line-height:1.05}
.work-earn-lbl{font-size:11px;color:var(--text2);margin-top:4px}
.work-earn-side{flex:1 1 210px;display:flex;gap:10px}
.work-earn-cell{flex:1;display:flex;flex-direction:column;justify-content:center;gap:3px;text-align:center;padding:12px 8px;border-radius:var(--rm);border:1px solid var(--border);background:var(--card)}
.work-earn-cell span{font-size:18px;font-weight:700;color:var(--text);line-height:1.1}
.work-earn-cell small{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px}
@media(max-width:600px){.work-earn-val{font-size:22px}.work-earn-cell span{font-size:16px}}
/* Zwijane podsumowanie miesiąca */
.work-sum{border:1px solid var(--border);border-radius:var(--rm);background:var(--card);overflow:hidden}
.work-sum-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;user-select:none;font-size:13px;font-weight:600;color:var(--text2)}
.work-sum-bar:hover{background:var(--bg2)}
.work-sum-bar svg{color:var(--brand);flex-shrink:0}
.work-sum-title{flex-shrink:0}
.work-sum-compact{margin-left:auto;font-size:12.5px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-sum-chev{flex-shrink:0;display:flex;align-items:center;transition:transform .2s;margin-left:8px}
.work-sum-chev.open{transform:rotate(90deg)}
.work-sum-body{padding:0 12px 12px}
.work-sum-body .work-stat-row{margin-top:2px}
.work-type-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.work-type-chip{font-size:11px;font-weight:600;padding:3px 10px;border-radius:20px;background:color-mix(in srgb,var(--tc,#1ca980) 13%,transparent);color:var(--tc,#1ca980);border:1px solid color-mix(in srgb,var(--tc,#1ca980) 30%,transparent)}

/* Day block — jeden spójny segment na dzień */
.work-day-block{margin-bottom:8px;border:1px solid var(--border);border-radius:var(--rm);overflow:hidden;background:var(--card)}

/* Entry rows */
.work-date-sep{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;padding:8px 14px 6px;background:var(--bg2);border-bottom:1px solid var(--border)}
.work-entry-row{display:flex;flex-direction:column;gap:6px;padding:11px 14px;background:var(--card);border-bottom:1px solid var(--border)}
.work-entry-row:last-child{border-bottom:none}
.we-main{display:flex;align-items:center;gap:10px}
.we-sub{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-left:19px}
.work-entry-type-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.work-entry-times{display:flex;align-items:center;gap:5px;font-size:14px;font-weight:600;color:var(--text)}
.work-entry-sep{color:var(--text3)}
.work-entry-end{color:var(--text2)}
.work-entry-dur{font-size:13px;font-weight:700;color:var(--brand)}
.work-entry-note{font-size:12px;color:var(--text2);flex:1 1 auto;min-width:0}
.work-entry-proj{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);border-radius:12px;padding:2px 8px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}
.work-entry-proj svg{flex-shrink:0}
/* Podgląd wpisu czasu pracy */
.we-view{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:var(--rm);overflow:hidden;margin:6px 0 14px}
.we-view-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;background:var(--card);border-bottom:1px solid var(--border)}
.we-view-row:last-child{border-bottom:none}
.we-view-lbl{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;flex-shrink:0}
.we-view-val{font-size:14px;font-weight:600;color:var(--text);text-align:right}
/* Propozycja zadań po zapisie czasu */
.we-tasks{display:flex;flex-direction:column;gap:7px;max-height:44vh;overflow-y:auto;margin:8px 0 14px}
.we-task-row{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rm);cursor:pointer}
.we-task-row:hover{border-color:var(--brand)}
.we-task-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.we-task-name{flex:1;font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.we-task-chip{font-size:11px;font-weight:700;padding:2px 9px;border-radius:12px;flex-shrink:0}
.we-task-next{flex-shrink:0;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600;cursor:pointer}
.we-task-next:hover{filter:brightness(1.08)}
.work-entry-acts{display:flex;gap:4px;flex-shrink:0;margin-left:auto}
.work-entry-dur+.work-entry-acts{margin-left:auto}

/* skrócona lista zadań w podglądzie wpisu */
.we-tasks-head{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.3px;margin:4px 0 8px}
.we-tasks-head svg{color:var(--brand)}
.we-tasks-add{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;text-transform:none;letter-spacing:0;color:var(--brand);background:color-mix(in srgb,var(--brand) 12%,transparent);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);border-radius:8px;padding:4px 10px;cursor:pointer}
.we-tasks-add:hover{background:color-mix(in srgb,var(--brand) 20%,transparent)}
.we-tmini-empty{padding:12px;font-size:12.5px;color:var(--text3);text-align:center;background:var(--card)}
.we-tasks-mini{display:flex;flex-direction:column;gap:1px;border:1px solid var(--border);border-radius:var(--rm);overflow:hidden;margin-bottom:14px}
.we-tmini{display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--card);border-bottom:1px solid var(--border)}
.we-tmini:last-child{border-bottom:none}
.we-tmini-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.we-tmini-name{flex:1;font-size:13px;color:var(--text);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.we-tmini-st{font-size:11px;font-weight:700;flex-shrink:0}
.we-tmini-more{padding:8px 12px;font-size:12px;color:var(--text3);text-align:center;background:var(--bg2)}

/* ── Czas pracy — drobne dopasowanie na mobile ── */
@media(max-width:600px){
  .work-entry-row{padding:10px 13px}
  .work-entry-times{font-size:13.5px}
  .work-stat{padding:11px 5px}
  .work-stat-val{font-size:16px}
  .work-pay{min-width:calc(50% - 4px);padding:10px 8px}
  .work-date-sep{padding:7px 13px 5px}
}
@media(max-width:380px){
  .work-pay{min-width:100%}
}

/* Day tasks summary — na dole bloku dnia */
.work-day-tasks{border-top:1px solid var(--border)}
.work-day-tasks-bar{display:flex;align-items:center;gap:6px;padding:7px 14px;font-size:12px;font-weight:600;color:var(--text2);background:color-mix(in srgb,var(--brand) 5%,var(--bg2));cursor:pointer;user-select:none}
.work-day-tasks-bar:hover{background:color-mix(in srgb,var(--brand) 10%,var(--bg2))}
.work-day-tasks-bar svg{color:var(--brand);flex-shrink:0}
.work-day-tasks-bar span:nth-child(2){flex:1}
.work-day-tasks-chevron{transition:transform .2s;display:flex;align-items:center}
.work-day-tasks-chevron.open{transform:rotate(90deg)}
.work-day-tasks-list{border-top:1px solid var(--border)}
.work-day-task-row{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 26px;border-bottom:1px solid var(--border);cursor:pointer;font-size:12px}
.work-day-task-row:hover{background:var(--bg2)}
.work-day-task-row:last-child{border-bottom:none}
.work-day-task-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.work-day-task-name{flex:1;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.work-day-task-proj{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.work-day-task-status{font-size:11px;color:var(--text3);flex-shrink:0}
.proj-task-worklink{cursor:pointer;color:var(--brand)!important;font-weight:600}
.proj-task-worklink:hover{text-decoration:underline}

/* ── Toggle widoku Lista / Kalendarz ── */
.work-view-toggle{display:flex;padding:8px 16px;background:var(--bg2);border-bottom:1px solid var(--border)}
.wv-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px;font-size:13px;font-weight:600;color:var(--text2);background:var(--card);border:1px solid var(--border);cursor:pointer}
.wv-btn:first-child{border-radius:var(--rm) 0 0 var(--rm)}
.wv-btn:last-child{border-radius:0 var(--rm) var(--rm) 0;border-left:none}
.wv-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}
.wv-btn svg{flex-shrink:0}

/* ── FullCalendar — motyw aplikacji ── */
/* Kalendarz firmy — legenda + filtry */
.cal-legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 2px}
.cal-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:20px;padding:5px 12px;cursor:pointer;transition:opacity .12s,background .12s;user-select:none}
.cal-chip:hover{background:var(--bg2)}
.cal-chip-dot{width:10px;height:10px;border-radius:50%;background:var(--cc);flex-shrink:0}
.cal-chip.off{opacity:.45}
.cal-chip.off .cal-chip-dot{background:var(--text3)}
.cal-big{min-height:62vh}
/* delikatna separacja zdarzeń, by sąsiednie bloki się nie zlewały */
/* ramka w kolorze tła = wyraźna szczelina między blokami (też pionowa, między kolumnami) */
.cal-big .fc-timegrid-event,.cal-big .fc-daygrid-event{border:2px solid var(--bg2)!important;border-radius:6px}
.cal-big .fc-timegrid-event{box-shadow:0 0 0 1px var(--bg2)}
.cal-big .fc-timegrid-event .fc-event-main{padding:1px 4px}
.cal-big .fc-event-title{font-weight:600}

.sp-cal{
  --fc-border-color:var(--border);
  --fc-page-bg-color:transparent;
  --fc-neutral-bg-color:var(--bg2);
  --fc-today-bg-color:color-mix(in srgb,var(--brand) 10%,transparent);
  --fc-button-text-color:#fff;
  --fc-button-bg-color:var(--brand);
  --fc-button-border-color:var(--brand);
  --fc-button-hover-bg-color:color-mix(in srgb,var(--brand) 85%,#000);
  --fc-button-hover-border-color:color-mix(in srgb,var(--brand) 85%,#000);
  --fc-button-active-bg-color:color-mix(in srgb,var(--brand) 70%,#000);
  --fc-button-active-border-color:color-mix(in srgb,var(--brand) 70%,#000);
  --fc-now-indicator-color:var(--brand);
  --fc-event-selected-overlay-color:color-mix(in srgb,var(--brand) 20%,transparent);
  padding:13px;font-size:13px;
}
.fc .fc-toolbar.fc-header-toolbar{margin-bottom:13px;gap:8px;flex-wrap:wrap}
.fc .fc-toolbar-title{font-size:16px;font-weight:700;color:var(--text)}
.fc .fc-button{font-weight:600;font-size:12px;text-transform:none;box-shadow:none!important;padding:5px 10px;border-radius:8px}
.fc .fc-button-primary:disabled{opacity:.5}
.fc .fc-col-header-cell-cushion,.fc .fc-daygrid-day-number,.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{color:var(--text2);text-decoration:none}
.fc .fc-col-header-cell-cushion{font-weight:600;padding:8px 2px}
.fc-theme-standard td,.fc-theme-standard th,.fc-theme-standard .fc-scrollgrid{border-color:var(--border)}
.fc .fc-daygrid-day-frame{min-height:55px}
.fc .fc-daygrid-day-frame{cursor:pointer}
.fc .fc-event{cursor:pointer;font-size:12px;padding:1px 4px;border-radius:5px}
.fc .fc-daygrid-event{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc .fc-day-today .fc-daygrid-day-number{color:var(--brand);font-weight:700}
.fc .fc-more-link{color:var(--brand);font-weight:600;font-size:11px}
.fc a{color:inherit}
@media(max-width:768px){
  .sp-cal{padding:6px;font-size:12px}
  /* toolbar: tytuł na górze, pod nim w jednym rzędzie nawigacja + widoki */
  .fc .fc-toolbar.fc-header-toolbar{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:10px}
  .fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap;gap:4px}
  .fc .fc-toolbar-title{font-size:15px;text-align:center}
  .fc .fc-button{padding:6px 9px;font-size:12px}
  .fc .fc-button-group{flex-wrap:wrap}
  /* siatka miesiąca — niższe komórki, mniejsze numery, ukryj wieloliterowe nazwy dni gdy ciasno */
  .fc .fc-daygrid-day-frame{min-height:40px}
  .fc .fc-daygrid-day-number{font-size:12px;padding:2px 4px}
  .fc .fc-col-header-cell-cushion{font-size:11px;padding:6px 1px}
  .fc .fc-event,.fc .fc-daygrid-event{font-size:10px;padding:0 3px;border-radius:4px}
  .fc .fc-daygrid-event-harness{margin-top:1px}
  /* widoki tydzień/dzień — węższa oś czasu */
  .fc .fc-timegrid-slot{height:1.8em}
  .fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{font-size:10px}
  .fc .fc-timegrid-axis{width:38px}
}

/* ── Kolor marki (branding landingów) ── */
.brand-color-row{display:flex;align-items:center;gap:10px}
.brand-color-row input[type=color]{width:46px;height:38px;padding:2px;border:1px solid var(--border);border-radius:9px;background:var(--card);cursor:pointer;flex:none}
.brand-color-row input[type=text]{flex:1;text-transform:lowercase}
.brand-color-prev{display:inline-block;width:20px;height:20px;border-radius:6px;border:1px solid var(--border);flex:none}
.sa-logo-prev{width:52px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:9px;background:var(--card);color:var(--text3);flex:none;overflow:hidden}
.sa-logo-prev img{max-width:100%;max-height:100%;object-fit:contain}

/* ── Integracje ── */
.field-hint{font-weight:400;color:var(--text3);font-size:11px}
.integration-card{border:1px solid var(--border);border-radius:var(--rm);background:var(--card);padding:16px;display:flex;flex-direction:column;gap:12px}
.integration-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.integration-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text)}
.integration-title svg{color:var(--brand)}
.integration-desc{font-size:12px;color:var(--text2);margin:0;line-height:1.5}
.integration-hint{display:flex;align-items:flex-start;gap:6px;font-size:11px;color:var(--text3);background:var(--bg2);border-radius:8px;padding:8px 10px;line-height:1.5}
.integration-hint svg{color:var(--brand);flex-shrink:0;margin-top:1px}
.integration-hint>span{flex:1;min-width:0;overflow-wrap:anywhere}
.integration-hint a{color:var(--brand);font-weight:600}
.int-switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}
.int-switch input{opacity:0;width:0;height:0}
.int-switch-slider{position:absolute;inset:0;cursor:pointer;background:var(--border);border-radius:24px;transition:.2s}
.int-switch-slider::before{content:"";position:absolute;height:18px;width:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.int-switch input:checked+.int-switch-slider{background:var(--brand)}
.int-switch input:checked+.int-switch-slider::before{transform:translateX(18px)}
.int-info-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:none;color:var(--text3);cursor:pointer;border-radius:50%;transition:background .12s,color .12s}
.int-info-btn:hover{background:var(--bg2);color:var(--brand)}
.int-info-btn svg{color:inherit}
.int-info-box{display:none;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:12px 14px;font-size:12.5px;line-height:1.5;color:var(--text2)}
.int-info-box.is-open{display:block;animation:intInfoIn .18s ease}
@keyframes intInfoIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.int-info-box b{color:var(--text);display:block;margin-top:8px}
.int-info-box b:first-child{margin-top:0}
.int-info-box ol{margin:5px 0 8px;padding-left:20px}
.int-info-box li{margin:3px 0}
.int-info-box i{color:var(--text3)}
.int-status{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;padding:8px 12px;border-radius:var(--rs)}
.int-status--ok{color:#1ca980;background:color-mix(in srgb,#1ca980 12%,transparent)}
.int-status--off{color:#f59e0b;background:color-mix(in srgb,#f59e0b 12%,transparent)}
.int-btn-row{display:flex;gap:8px;flex-wrap:wrap}
.chan-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text)}
.chan-row:last-of-type{border-bottom:none}
.chan-row>span:first-child{display:flex;align-items:center;gap:8px}

/* ── Leady: kanban ── */
.leads-body{padding:12px}
.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;align-items:flex-start}
.kb-col{flex:0 0 260px;max-width:260px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rm);display:flex;flex-direction:column;min-height:120px}
.kb-col.kb-over{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 30%,transparent)}
.kb-col-hdr{display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:13px;font-weight:700;color:var(--text);border-bottom:1px solid var(--border)}
.kb-col-dot{width:9px;height:9px;border-radius:50%;background:var(--st);flex-shrink:0}
.kb-col-cnt{margin-left:2px;font-size:11px;font-weight:700;color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:1px 8px}
.kb-col-sum{margin-left:auto;font-size:11px;font-weight:600;color:var(--text3)}
.kb-col-body{padding:8px;display:flex;flex-direction:column;gap:8px;min-height:40px}
.kb-empty{color:var(--text3);font-size:12px;text-align:center;padding:8px}
.kb-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:10px;cursor:pointer;transition:box-shadow .12s,transform .08s}
.kb-card:hover{box-shadow:0 4px 14px rgba(0,0,0,.1)}
.kb-card:active{transform:scale(.99)}
.kb-card-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:4px}
.kb-card-src{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text2);margin-bottom:4px}
.kb-card-next{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text2);background:var(--bg2);border-radius:6px;padding:3px 6px;margin-bottom:5px}
.kb-card-next.is-overdue{color:#ef383b;background:color-mix(in srgb,#ef383b 10%,transparent)}
.kb-card-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--text3)}
.kb-card-owner{font-weight:600;color:var(--text2)}
.kb-card-meta{display:flex;align-items:center;gap:3px;flex-shrink:0}

/* ── Lead — panel detalu ── */
.modal-wide{max-width:680px}
.mo-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){.mo-row2{grid-template-columns:1fr}}
.ld-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ld-badge{font-size:12px;font-weight:700;color:#fff;background:var(--st);border-radius:20px;padding:3px 12px}
.ld-src{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text2)}
.ld-contact{display:flex;flex-wrap:wrap;column-gap:21px;row-gap:4px;font-size:13px;color:var(--text);background:var(--bg2);border-radius:var(--rs);padding:10px 12px;margin-bottom:10px}
.ld-contact>div{display:flex;align-items:center;gap:7px}
.ld-quick{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ld-qa{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);color:var(--brand);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none}
.ld-qa:hover{background:var(--bg2)}
.ld-stages{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.ld-stage-btn{font-size:12px;font-weight:600;padding:6px 12px;border-radius:20px;border:1px solid var(--border);background:transparent;color:var(--text2);cursor:pointer}
.ld-stage-btn.is-on{background:var(--st);border-color:var(--st);color:#fff}
.ld-actions-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.ld-actform{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:12px;margin-bottom:12px;display:flex;flex-direction:column;gap:8px}
.ld-act-list{display:flex;flex-direction:column;gap:8px}
.ld-act{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--border);border-radius:var(--rs);background:var(--surface)}
.ld-act.is-todo{border-left:3px solid #f59e0b}
.ld-act-ic{color:var(--text2);flex-shrink:0;margin-top:1px}
.ld-act-body{flex:1;min-width:0}
.ld-act-title{font-size:13px;font-weight:600;color:var(--text)}
.ld-act-tag{font-size:10px;font-weight:700;color:#f59e0b;background:color-mix(in srgb,#f59e0b 14%,transparent);border-radius:10px;padding:1px 7px;margin-left:6px}
.ld-act-sub{font-size:12px;color:var(--text2);margin-top:2px;white-space:pre-wrap;line-height:1.5}
.ld-act-meta{font-size:11px;color:var(--text3);margin-top:3px}
.ld-act-done{flex-shrink:0;background:none;border:none;color:#34a853;cursor:pointer;padding:2px}
.gcal-send-btn{text-decoration:none;color:var(--brand)!important;border-color:color-mix(in srgb,var(--brand) 40%,var(--border))!important}
.gcal-send-btn:hover{background:color-mix(in srgb,var(--brand) 10%,transparent)}

/* Wide modal for forms with multiple rows */
.mo.mo-wide{max-width:480px;width:100%}
/* Para krótkich pól obok siebie także na mobile (daty, marka/model) */
.field-row--2{flex-direction:row;gap:8px}
@media(min-width:540px){.field-row--2{gap:12px}}

/* ── Zakresy ofert ── */
.of-scope-row td{background:var(--bg2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--brand);padding:9px 10px!important;border-top:1px solid var(--border)}
.of-scope-sub td{font-size:12.5px;color:var(--text2);font-weight:600;background:var(--surface);border-bottom:2px solid var(--border)}
.of-bundle-row{margin-bottom:11px}
.of-bundle-row:last-of-type{margin-bottom:8px}
.of-bundle-title{font-size:13px;font-weight:600;margin-bottom:5px}
.of-bundle-cnt{font-size:11.5px;font-weight:500;color:var(--text3);margin-left:5px}
/* edytor zakresów (Ustawienia → Dane firmy) */
.ofs-prev-meta{display:flex;flex-wrap:wrap;gap:5px;font-size:12px;color:var(--text3);margin-top:3px}
.ofs-prev-meta b{color:var(--text2);font-weight:600}
.ofs-emoji{width:52px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:9px 8px;color:var(--text);font-family:'Outfit',sans-serif;font-size:15px;text-align:center;outline:none}
.ofs-selects{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.ofs-selects label{flex:1;min-width:144px;display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--text2);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.ofs-selects select{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:9px 10px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13.5px;outline:none}
.ofs-keywrap{display:flex;flex-direction:column;gap:6px;margin-top:5px}
.ofs-keygrp{display:flex;gap:8px;align-items:flex-start}
.ofs-keygrp-lbl{flex-shrink:0;width:89px;font-size:10.5px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:.4px;padding-top:6px}
.ofs-keys{display:flex;flex-wrap:wrap;gap:5px}
.ofs-key{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:4px 10px;font-size:11.5px;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif;transition:all .12s}
.ofs-key.is-on{background:var(--brand-dim,rgba(59,110,247,.12));border-color:var(--brand);color:var(--brand);font-weight:600}
@media(max-width:540px){.ofs-keygrp{flex-direction:column;gap:3px}.ofs-keygrp-lbl{width:auto;padding-top:0}}
/* zestawienie białego montażu — przycisk w Σ */
.sum-actions{display:flex;justify-content:flex-end;margin:-4px 0 10px}
/* m² pomieszczenia w nagłówku pokoju */
.room-m2{font-size:11px;font-weight:500;color:var(--text3);margin-left:4px;white-space:nowrap}
/* Karta leada — szerzej na desktopie + formularz zadania
   (selektor .modal.modal--lead: musi wygrać z późniejszą regułą .modal{max-width:520px}) */
@media(min-width:760px){
  .modal.modal--lead,.modal.modal--surv{max-width:820px}
  .modal.modal--lead .ld-actions-bar .btn-sm{gap:6px}
}
.ld-actform{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 15px;margin-top:11px}
/* Leady — widok Zadania + akcje na osi czasu */
.ldt-row{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:11px 13px;margin-top:8px}
.ldt-row.is-late{border-color:rgba(239,56,59,.4)}
.ldt-check{flex-shrink:0;width:34px;height:34px;border-radius:10px;border:1.5px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .13s}
.ldt-check:hover{border-color:#34a853;color:#34a853;background:rgba(52,168,83,.08)}
.ldt-main{flex:1;min-width:0;cursor:pointer}
.ldt-title{font-size:14px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px}
.ldt-sub{font-size:12px;color:var(--text3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ldt-due{flex-shrink:0;font-size:12px;font-weight:600;color:var(--text2);background:var(--bg2);border-radius:8px;padding:4px 9px}
.ldt-due.is-late{color:#ef383b;background:rgba(239,56,59,.09)}
.ld-act-acts{display:flex;flex-direction:column;gap:4px;flex-shrink:0}
.ld-act-mini{width:28px;height:28px;border-radius:8px;border:none;background:transparent;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.ld-act-mini:hover{background:var(--bg2);color:var(--text)}
.ld-act-mini--del:hover{color:#ef383b;background:rgba(239,56,59,.08)}
/* zrobione zadania — skreślone; wpisy systemowe (dziennik) — bez akcji, delikatniejsze */
.ldt-row.is-done .ldt-title,.ld-act.is-done .ld-act-title{text-decoration:line-through;color:var(--text3)}
.ldt-row.is-done{opacity:.72;border-style:dashed}
.ldt-check.is-on{border-color:#34a853;color:#34a853;background:rgba(52,168,83,.1)}
.ld-act.is-done .ld-act-ic{color:#34a853}
.ld-act-tag--ok{background:rgba(52,168,83,.12)!important;color:#1aa251!important}
.ld-act.is-sys{background:transparent;border-style:dashed}
/* checkbox zadania po LEWEJ (standard task-managerów) */
.ld-act-check{flex-shrink:0;width:32px;height:32px;border-radius:10px;border:1.5px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .13s;align-self:flex-start}
.ld-act-check:hover{border-color:#34a853;color:#34a853;background:rgba(52,168,83,.08)}
.ld-act-check.is-on{border-color:#34a853;color:#34a853;background:rgba(52,168,83,.1)}
.ld-act-check--add{border-style:dashed}
.ld-act-check--add:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-dim,rgba(59,110,247,.1))}
.ld-act.is-overdue{border-color:rgba(239,56,59,.45)}
.ld-act.is-orphan{border-style:dashed;border-color:rgba(224,146,26,.5)}
.ld-act-tag--late{background:rgba(239,56,59,.12)!important;color:#ef383b!important}
.ld-act-tag--warn{background:rgba(224,146,26,.14)!important;color:#b46f06!important}
.ld-act-meta b{color:var(--text2);font-weight:600}
.ld-act-acts{flex-direction:row;align-items:flex-start}
/* „Jak poszło?" — wynik + następny krok */
.dm-task{font-size:14px;font-weight:600;color:var(--text);background:var(--bg2);border-radius:var(--rs);padding:10px 13px;display:flex;align-items:center;gap:7px}
.dm-outs{display:flex;flex-wrap:wrap;gap:6px}
.dm-auto{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:12px;color:#2b8a45;
  background:color-mix(in srgb,#34a853 9%,transparent);border:1px solid color-mix(in srgb,#34a853 30%,transparent);
  border-radius:var(--rs);padding:7px 10px}
.dm-out{background:var(--surface);border:1.5px solid var(--border);border-radius:16px;padding:7px 14px;font-size:13px;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif;transition:all .12s}
.dm-out:hover{border-color:var(--brand);color:var(--brand)}
.dm-out.is-on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.dm-next{margin-top:13px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 14px}
.dm-quick{display:flex;gap:6px;flex-wrap:wrap}
.dm-q{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:5px 12px;font-size:12.5px;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif}
.dm-q:hover{border-color:var(--brand);color:var(--brand)}
/* data + godzina rozdzielone — klik w całe pole otwiera widget */
.dt-row input[type=date],.dt-row input[type=time]{cursor:pointer}
.dt-row input[type=date]::-webkit-calendar-picker-indicator,.dt-row input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55}
/* leady bez następnego kroku */
.ldt-row.is-orphan{border-style:dashed;border-color:rgba(224,146,26,.5)}
.ldt-check--add{border-style:dashed}
.ldt-check--add:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-dim,rgba(59,110,247,.1))}
.kb-card-warn{margin-top:6px;font-size:11px;font-weight:600;color:#b46f06;background:rgba(224,146,26,.12);border:1px dashed rgba(224,146,26,.45);border-radius:8px;padding:4px 8px;cursor:pointer}
.kb-card-warn:hover{background:rgba(224,146,26,.2)}
.ld-actform textarea{background:var(--surface2,var(--bg));border:1px solid var(--border);border-radius:var(--rs);padding:11px 13px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;width:100%;outline:none;resize:vertical}
.ld-actform textarea:focus{border-color:var(--brand)}
/* Formularze WWW (leady) — klucz/adres + wymagania w Ustawieniach */
.lf-keys{display:flex;flex-direction:column;gap:6px;margin-top:9px}
.lf-keys .of-link-row{align-items:center}
.lf-key-lbl{flex-shrink:0;width:47px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text3)}
.lf-snippet{background:var(--bg);border:1px solid var(--border);border-radius:var(--rs);padding:11px 13px;margin-top:9px;
  font-family:ui-monospace,Consolas,monospace;font-size:11.5px;line-height:1.55;color:var(--text2);
  white-space:pre-wrap;word-break:break-all;max-height:340px;overflow-y:auto}
/* Podgląd dyktowania — NOWY typ katalogu zaproponowany przez AI (klik = wyłącz) */
.spis-prev-c--new{border:1.5px dashed var(--brand)!important;color:var(--brand)!important;background:rgba(59,110,247,.06)!important;cursor:pointer}
.spis-prev-c--new b{font-weight:700}
.spis-prev-c--new.is-off{border-color:var(--border)!important;color:var(--text3)!important;background:transparent!important;text-decoration:line-through}
/* Ankieta — „Klient proponuje" w panelu */
.surv-prop-list{margin:6px 0 0 21px;display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:var(--text)}
.surv-prop-list li::marker{color:var(--brand);font-weight:700}
/* „Zakresy bez oferty" — podpowiedź dosprzedaży na karcie klienta */
.scope-gap{display:flex;flex-wrap:wrap;align-items:center;gap:6px;background:var(--surface);border:1px dashed var(--border2,var(--border));border-radius:var(--rs);padding:9px 11px;margin-top:8px}
.scope-gap-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);display:inline-flex;align-items:center;gap:4px}
.scope-gap-chip{background:transparent;border:1px solid var(--border);border-radius:14px;padding:4px 11px;font-size:12px;color:var(--text2);cursor:pointer;font-family:'Outfit',sans-serif;transition:all .12s}
.scope-gap-chip:hover{border-color:var(--brand);color:var(--brand)}

/* ── Pull to refresh ── */
#ptr{position:fixed;top:0;left:50%;transform:translateX(-50%) translateY(-55px);width:40px;height:40px;border-radius:50%;background:var(--bg2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;z-index:999;opacity:0;pointer-events:none;transition:transform .2s ease,opacity .2s}
#ptr-spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--brand);border-top-color:transparent}
#ptr.spinning #ptr-spin{animation:ptr-rot .89s linear infinite}
@keyframes ptr-rot{to{transform:rotate(360deg)}}

/* ── Client profile ── */
.client-profile-wrap{padding:20px 16px 80px;display:flex;flex-direction:column;gap:16px}
.client-profile-top{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0 8px}
.client-avatar-lg{width:72px;height:72px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;flex-shrink:0}
.client-profile-name{font-size:clamp(20px,5vw,26px);font-weight:700;color:var(--text1);text-align:center}
.profile-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.profile-sub{display:flex;gap:13px;flex-wrap:wrap;padding:0 16px 13px;margin-top:-5px}
.profile-row{display:flex;align-items:baseline;gap:12px;padding:13px 16px}
.profile-lbl{font-size:12px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.5px;min-width:72px;flex-shrink:0}
.profile-val{font-size:14px;color:var(--text1);word-break:break-word}
.profile-val a{color:var(--brand);text-decoration:none}
.profile-divider{height:1px;background:var(--border);margin:0}

/* ── Offer module items ── */
.offer-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s}
@media(hover:hover){.offer-item:hover{background:var(--bg2)}}
.offer-item:active{background:var(--bg2)}

/* ── Type pick ── */
.type-pick-grid{display:flex;flex-direction:column;gap:13px;padding:4px 0 8px}
.type-pick-btn{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--rl);border:2px solid var(--pick-col,var(--brand));background:transparent;cursor:pointer;transition:background .15s,transform .12s;color:var(--text1);text-align:left;width:100%}
@media(hover:hover){.type-pick-btn:hover{background:color-mix(in srgb,var(--pick-col,var(--brand)) 10%,transparent)}}
.type-pick-btn:active{transform:scale(.98)}
.type-pick-icon{color:var(--pick-col,var(--brand));display:flex;align-items:center;flex-shrink:0}
.type-pick-label{font-size:15px;font-weight:600;color:var(--pick-col,var(--brand))}

/* ── Pick client list ── */
.pick-client-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .15s;color:var(--text1)}
@media(hover:hover){.pick-client-item:hover{background:var(--bg2)}}
.pick-client-item:active{background:var(--bg2)}
.pick-client-add{color:var(--brand);font-size:14px;font-weight:600;border-top:1px solid var(--border);gap:10px}

/* ── Pill filter bar ── */
.pill-bar{display:flex;gap:6px;padding:10px 16px;overflow-x:auto;flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--border)}
.pill-bar::-webkit-scrollbar{display:none}
.pill-btn{white-space:nowrap;font-size:12px;font-weight:600;padding:5px 13px;border-radius:99px;border:1px solid var(--border);background:var(--bg2);color:var(--text2);cursor:pointer;transition:background .12s,color .12s,border-color .12s;flex-shrink:0}
.pill-btn.active{background:var(--brand);color:#fff;border-color:var(--brand)}
@media(hover:hover){.pill-btn:not(.active):hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand-border)}}

/* ── Sidebar sub-navigation ── */
.nav-item-group{display:flex;flex-direction:column}
.nav-chevron{margin-left:auto;display:flex;align-items:center;flex-shrink:0;color:var(--text3);transition:transform .2s}
.nav-chevron.open{transform:rotate(90deg)}
.nav-sub{display:flex;flex-direction:column;gap:1px;padding:2px 0 4px 24px;margin-left:12px;border-left:2px solid var(--border)}
.nav-sub-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--rs);border:none;background:transparent;color:var(--text2);font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-align:left;width:100%;transition:background .12s,color .12s;text-decoration:none}
.nav-sub-item:active{background:var(--surface2)}
@media(hover:hover){.nav-sub-item:hover{background:var(--surface);color:var(--text)}}
.nav-sub-item.active{color:var(--brand);font-weight:600;background:var(--brand-dim)}

/* ── Schedule cards ── */
.sched-card{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;overflow:hidden;transition:box-shadow .15s}
@media(hover:hover){.sched-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}}
.sched-status-bar{width:4px;flex-shrink:0}
.sched-body{flex:1;min-width:0;padding:12px 14px}
.sched-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:3px}
.sched-meta{font-size:12px;color:var(--text2);margin-bottom:6px}
.sched-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sched-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px}
.sched-info{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:3px}
.sched-actions{display:flex;flex-direction:column;justify-content:center;gap:4px;padding:8px;border-left:1px solid var(--border);flex-shrink:0}

/* ── Dashboard ── */
.dash-body{display:flex;flex-direction:column;gap:16px;padding:21px;max-width:1140px;margin:0 auto;width:100%}
/* .body > * daje dzieciom margin:auto — flex item z auto-marginesami kurczy się do zawartości; wymuś pełną szerokość */
/* to samo co przy .sa-detail-body: kontener przewijania zrobiony kolumna flex
   kurczy dzieci zamiast je przewijac, a `.dash-shortcuts` ma `overflow:hidden`,
   wiec jego min-height schodzi do zera i karta potrafi sie sciac. */
.dash-body>*{width:100%;max-width:none;flex-shrink:0}
.dash-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:12px}
@media(max-width:768px){.dash-tiles{grid-template-columns:repeat(2,1fr)}}
.dash-tile-val--sm{font-size:21px}
.dash-tile-sub{font-size:11px;color:var(--text3);margin-top:-2px}
.dash-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:16px;cursor:pointer;transition:box-shadow .15s,transform .1s;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
@media(hover:hover){.dash-tile:hover{box-shadow:0 4px 20px rgba(0,0,0,.1);transform:translateY(-2px)}}
.dash-tile:active{transform:scale(.98)}
.dash-tile-icon{color:var(--tile-col,var(--brand));opacity:.85}
.dash-tile-val{font-size:28px;font-weight:700;color:var(--tile-col,var(--brand));line-height:1}
.dash-tile-label{font-size:12px;color:var(--text2);font-weight:500}
/* „Na skróty" — grupa najczęstszych czynności (ikona + nazwa) */
.dash-shortcuts{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.dash-sc-hdr{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;color:var(--text2);border-bottom:1px solid var(--border);background:var(--bg2)}
.dash-sc-hdr .dash-widget-more{display:inline-flex;align-items:center;gap:5px}
.dash-qa{display:flex;gap:8px;flex-wrap:wrap;padding:13px 16px}
.dash-qa-btn{display:inline-flex;align-items:center;gap:7px;font-family:'Outfit',sans-serif;font-size:13.5px;font-weight:600;
  padding:9px 15px;border-radius:var(--rs);border:1px solid color-mix(in srgb,var(--qa-col,var(--brand)) 26%,transparent);
  background:color-mix(in srgb,var(--qa-col,var(--brand)) 10%,transparent);color:var(--qa-col,var(--brand));
  cursor:pointer;transition:background .12s,transform .08s;flex-shrink:0}
.dash-qa-ic{display:flex;align-items:center}
.dash-qa-btn:active{transform:scale(.97)}
@media(hover:hover){.dash-qa-btn:hover{background:color-mix(in srgb,var(--qa-col,var(--brand)) 20%,transparent)}}
@media(max-width:560px){.dash-qa{display:grid;grid-template-columns:1fr 1fr;gap:7px}.dash-qa-btn{justify-content:center}}
/* wiersz zadania na pulpicie — odhaczenie po lewej (jak w widoku Zadania) */
.dash-task{align-items:flex-start}
.dash-task-chk{background:none;border:0;padding:0;color:var(--text3);cursor:pointer;flex-shrink:0;display:flex;margin-top:1px}
@media(hover:hover){.dash-task-chk:hover{color:#34a853}}
.dash-widget--tasks .dash-list-title svg{opacity:.6;margin-right:2px}
.dash-widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:start}
@media(max-width:768px){.dash-widgets{grid-template-columns:1fr}}
.dash-widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.dash-widget-hdr{display:flex;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;color:var(--text2);border-bottom:1px solid var(--border);background:var(--bg2)}
.dash-widget-more{margin-left:auto;font-size:12px;font-weight:600;color:var(--brand);background:none;border:none;cursor:pointer;padding:0}
.dash-list-row{display:flex;align-items:center;gap:12px;padding:10px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border)}
.dash-list-row:last-child{border-bottom:none}
@media(hover:hover){.dash-list-row:hover{background:var(--bg2)}}
.dash-list-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.dash-list-body{flex:1;min-width:0}
.dash-list-title{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-list-sub{font-size:11px;color:var(--text2);margin-top:2px}
.dash-list-empty{padding:16px;font-size:13px;color:var(--text3);text-align:center}
.dash-list-empty a{color:var(--brand);font-weight:600}

/* ── Marketing: lejek + kampanie ── */
.mk-funnel{padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.mk-funnel-row{display:flex;align-items:center;gap:10px}
.mk-funnel-lbl{font-size:12px;font-weight:600;color:var(--text2);width:78px;flex-shrink:0}
.mk-funnel-bar-wrap{flex:1;height:14px;background:var(--bg2);border-radius:7px;overflow:hidden}
.mk-funnel-bar{height:100%;border-radius:7px;min-width:2px;transition:width .3s}
.mk-funnel-val{font-size:13px;font-weight:700;color:var(--text);width:96px;text-align:right;flex-shrink:0}
.mk-funnel-pct{font-size:11px;font-weight:500;color:var(--text3)}
.mk-funnel-foot{padding:10px 16px;border-top:1px solid var(--border);font-size:12px;color:var(--text2)}
.mk-camps{display:flex;flex-direction:column}
.mk-camp{padding:12px 16px;border-bottom:1px solid var(--border)}
.mk-camp:last-child{border-bottom:none}
.mk-camp-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.mk-camp-name{font-size:13px;font-weight:600;color:var(--text);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-camp-status{font-size:11px;font-weight:600;color:var(--st);background:color-mix(in srgb,var(--st) 14%,transparent);border:1px solid color-mix(in srgb,var(--st) 35%,transparent);border-radius:20px;padding:2px 10px;flex-shrink:0}
.mk-camp-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.mk-camp-stats>div{display:flex;flex-direction:column;gap:2px}
.mk-camp-stats span{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.03em}
.mk-camp-stats b{font-size:13px;color:var(--text);font-weight:700}
@media(max-width:480px){.mk-camp-stats{grid-template-columns:repeat(2,1fr)}}
.mk-src-cnt{font-size:14px;font-weight:700;color:var(--brand);flex-shrink:0}

/* ── Protocol modal + signature ── */
.proto-info{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:12px 16px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px}
.proto-row{display:flex;gap:8px;font-size:13px}
.proto-label{font-weight:600;color:var(--text2);min-width:100px;flex-shrink:0}
.sig-wrap{position:relative;display:inline-block;width:100%}
.sig-canvas{display:block;width:100%;max-width:480px;height:120px;border:1px solid var(--border);border-radius:var(--rs);background:#fff;cursor:crosshair;touch-action:none}
.sig-clear{position:absolute;top:6px;right:6px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:var(--rs);border:1px solid var(--border);background:var(--bg2);color:var(--text2);cursor:pointer}
@media print{.mo-bg,.toast,#theme-fab,#sidebar{display:none!important}}

/* ── Service device cards ── */
.svc-dev-card{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;transition:box-shadow .15s}
@media(hover:hover){.svc-dev-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}}
.svc-dev-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;background:var(--brand-dim);color:var(--brand);flex-shrink:0}
.svc-dev-body{min-width:0}
.svc-dev-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-dev-sub{font-size:12px;color:var(--text2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.svc-dev-serial{font-size:11px;color:var(--text3);font-family:monospace;margin-top:1px}
.svc-dev-client{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text3);white-space:nowrap;flex-shrink:0;padding:0 4px}

/* ── Sidebar bottom (Settings link) ── */
.sidebar-bottom{padding:8px;border-top:1px solid var(--border);margin-top:auto}
/* wiersz menu z ikoną-akcją obok (mic przy Pulpicie, dzwonek przy Ustawieniach)
   nav-item pełna szerokość (krawędzie równo z resztą), ikona absolutnie po prawej i wyśrodkowana */
.nav-row{position:relative}
.nav-row .hdr-mic,.nav-row .hdr-bell{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;margin:0}
.nav-row .hdr-mic{box-shadow:0 2px 7px color-mix(in srgb,#ef383b 40%,transparent)}
.nav-row .hdr-mic:hover{transform:translateY(-50%) scale(1.06)}
.nav-row .hdr-mic:active{transform:translateY(-50%) scale(.94)}

/* ── Search bar scan button ── */
.search-bar{position:relative;display:flex;align-items:center;gap:0}
.search-bar .search-input{border-radius:var(--rs) 0 0 var(--rs);flex:1}
.search-scan-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--border);border-left:none;border-radius:0 var(--rs) var(--rs) 0;background:var(--surface);color:var(--text2);cursor:pointer;transition:background .12s,color .12s}
@media(hover:hover){.search-scan-btn:hover{background:var(--brand-dim);color:var(--brand)}}
.search-scan-btn:active{background:var(--brand-dim)}

/* ── QR Modal ── */
.qr-preview{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);margin-bottom:16px}
.qr-img-wrap{flex-shrink:0}
.qr-img{width:120px;height:120px;display:block;border-radius:6px;background:#fff;padding:4px}
.qr-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.qr-dev-name{font-size:15px;font-weight:700;color:var(--text)}
.qr-dev-sub{font-size:12px;color:var(--text2)}
.qr-dev-serial{font-size:11px;color:var(--text3);font-family:monospace}
.qr-dev-loc{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text3)}
.qr-company-line{font-size:12px;font-weight:600;color:var(--brand);margin-top:4px;padding-top:6px;border-top:1px solid var(--border)}

/* ── QR Scanner ── */
.qr-scan-wrap{position:relative;width:100%;aspect-ratio:1;max-width:300px;margin:0 auto;border-radius:var(--rs);overflow:hidden;background:#000}
#qr-video{width:100%;height:100%;object-fit:cover;display:block}
.qr-scan-aim{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:55%;aspect-ratio:1;border:3px solid var(--brand);border-radius:8px;box-shadow:0 0 0 9999px rgba(0,0,0,.45);pointer-events:none}
.qr-scan-aim::before{content:'';position:absolute;inset:-8px;border:8px solid transparent;border-top-color:var(--brand);border-left-color:var(--brand);border-radius:4px 0 0 0}

/* ── Settings screen ── */
.settings-form{display:flex;flex-direction:column;gap:16px;max-width:640px;width:100%;align-self:center;padding:16px}
.settings-preview{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:16px}
.settings-preview-label{font-size:12px;font-weight:600;color:var(--text2);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}
.qr-sticker-preview{display:flex;align-items:center;gap:10px;background:#fff;border:1px dashed var(--border);border-radius:4px;padding:8px;width:100%;max-width:342px}
.qr-preview-mini-img{width:89px;height:89px;flex-shrink:0;display:block;border-radius:3px}
.qr-preview-mini-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.qr-preview-mini-name{font-size:10px;font-weight:700;color:#111;font-family:Arial,sans-serif}
.qr-preview-mini-sub{font-size:8px;color:#555;font-family:Arial,sans-serif}
.qr-preview-mini-serial{font-size:8px;color:#333;font-family:monospace}
.qr-preview-mini-company{font-size:8px;font-weight:600;color:#111;font-family:Arial,sans-serif;margin-top:4px;padding-top:4px;border-top:1px solid #ddd}
.qr-preview-mini-phone{font-size:9px;font-weight:700;color:#ef383b;font-family:Arial,sans-serif}

/* ── Device Detail ── */
.dev-detail-body{display:flex;flex-direction:column;gap:16px;padding:16px}
.dev-detail-card{display:flex;align-items:flex-start;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:20px}
.dev-detail-icon{display:flex;align-items:center;justify-content:center;width:55px;height:55px;border-radius:13px;background:var(--brand-dim);color:var(--brand);flex-shrink:0}
.dev-detail-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
.dev-detail-row{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.dev-detail-label{font-size:12px;font-weight:600;color:var(--text2);min-width:110px;flex-shrink:0}
.dev-detail-val{font-size:13px;color:var(--text);flex:1;min-width:0;word-break:break-word}
.dev-detail-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.dev-detail-section-hdr{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg2);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text2)}
.dev-detail-section-hdr>span{display:flex;align-items:center;gap:6px}
.dev-hist-list{display:flex;flex-direction:column}
.dev-hist-row{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--border)}
.dev-hist-row:last-child{border-bottom:none}
@media(hover:hover){.dev-hist-row:hover{background:var(--bg2)}}
.dev-hist-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.dev-hist-body{flex:1;min-width:0}
.dev-hist-title{font-size:14px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dev-hist-meta{font-size:12px;color:var(--text2);margin-top:2px}
.dev-hist-empty{padding:20px 16px;font-size:13px;color:var(--text3);text-align:center}

/* ── Auth wrap & card ── */
/* UWAGA: centrowanie przez margin:auto na karcie, NIE align-items:center na wrapie —
   przy karcie wyższej niż ekran (rejestracja na telefonie) flex-center ucina górę poza scroll */
#auth-wrap{position:fixed;inset:0;z-index:800;display:flex;padding:20px;background:var(--bg);overflow-y:auto}
.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--rl);padding:32px 28px;width:100%;max-width:380px;box-shadow:0 24px 80px rgba(0,0,0,.18);display:flex;flex-direction:column;gap:16px;margin:auto;height:fit-content}
.auth-card--wide{max-width:480px}
.auth-logo{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--text);text-align:center;line-height:1}
.auth-logo .sp-mark{color:var(--text)}
/* Logotyp SmartProgram — Poppins 600, „Smart"=tekst(grafit), „Program"=pomarańcz brandu */
.sp-logo{display:inline-flex;align-items:center;gap:8px}
.sp-mark{flex-shrink:0;display:inline-block;vertical-align:middle}
.sp-wordmark{font-family:'Poppins',var(--font,ui-sans-serif),sans-serif;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1}
.auth-logo .sp-wordmark{font-size:28px}
.sp-wordmark>span{color:var(--sp-orange)}
.auth-subtitle{font-size:14px;color:var(--text2);text-align:center;margin-top:-6px}
.auth-error{background:rgba(239,56,59,.1);border:1px solid rgba(239,56,59,.3);border-radius:var(--rs);padding:10px 14px;font-size:13px;color:#ef383b;line-height:1.5}
.auth-success{background:rgba(20,140,80,.1);border:1px solid rgba(20,140,80,.3);border-radius:var(--rs);padding:10px 14px;font-size:13px;color:#0a6535;line-height:1.5}
[data-theme="dark"] .auth-success{color:#4bb87c}
/* ── Środowisko testowe: plakietka TEST przy każdym logotypie ── */
.env-test .sp-wordmark::after{content:'TEST';display:inline-block;margin-left:7px;padding:1px 7px;
  border-radius:6px;background:#f59e0b;color:#fff;font-size:11px;font-weight:800;letter-spacing:.6px;
  vertical-align:middle;line-height:1.5}

/* ── Raport inwestora (karta realizacji) ── */
.pr-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:13px;display:flex;flex-direction:column;gap:10px}
.pr-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pr-row .of-link{flex:1;min-width:140px}
.pr-chips{display:flex;flex-wrap:wrap;gap:6px}
.pr-chip{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border:1px solid var(--border);border-radius:20px;padding:4px 6px 4px 11px;font-size:13px;font-weight:500}
.pr-chip small{color:var(--text2);font-weight:400;font-size:11px}
.pr-chip button{background:none;border:none;color:var(--text2);font-size:15px;cursor:pointer;padding:0 3px;line-height:1}
.pr-chip button:hover{color:#ef4444}
.pr-none{color:var(--text3);font-size:13px}
.pr-meta{font-size:12px;color:var(--text2)}

/* ── Baner instalacji PWA ── */
.pwa-banner{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(13px + var(--safe-b));z-index:750;
  display:flex;align-items:center;gap:13px;max-width:430px;width:calc(100% - 26px);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r);
  padding:13px 13px 13px 16px;box-shadow:0 13px 34px rgba(0,0,0,.21);animation:pwaUp .3s ease}
@keyframes pwaUp{from{opacity:0;transform:translate(-50%,13px)}to{opacity:1;transform:translate(-50%,0)}}
.pwa-txt{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.pwa-txt b{font-size:14px}
.pwa-txt small{font-size:12px;color:var(--text2);line-height:1.4}
.pwa-close{background:none;border:none;color:var(--text2);font-size:21px;cursor:pointer;padding:0 3px;line-height:1;flex:0 0 auto}

/* formularze auth: równy rytm pionowy między polami */
.auth-card form{display:flex;flex-direction:column;gap:13px}
.auth-field{display:flex;flex-direction:column;gap:6px}
/* lupa NIP w rejestracji: rozciągnij do pełnej wysokości inputa (globalnie ma sztywne 36px) */
.auth-field .nip-lookup-row .btn-nip-lookup{width:47px;height:auto;align-self:stretch}
.auth-field label{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}
.auth-field input{background:var(--bg);border:1px solid var(--border);border-radius:var(--rs);padding:13px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:15px;outline:none;width:100%}
.auth-field input:focus{border-color:var(--brand)}
.auth-pw-wrap{position:relative;display:flex}
.auth-pw-wrap input{padding-right:44px;flex:1}
.pw-toggle{position:absolute;right:0;top:0;bottom:0;width:44px;background:none;border:none;cursor:pointer;font-size:16px;color:var(--text2);display:flex;align-items:center;justify-content:center;transition:color .12s}
.pw-toggle:hover{color:var(--brand)}
.auth-btn{background:var(--brand);color:#fff;border:none;border-radius:var(--rs);padding:14px;width:100%;font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .12s;margin-top:4px}
.auth-btn:active{opacity:.85}
.auth-btn:disabled{opacity:.5;cursor:not-allowed}
.auth-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:400px){.auth-row-2{grid-template-columns:1fr}}
.auth-row-check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2)}
.auth-row-check input{accent-color:var(--brand);width:16px;height:16px;cursor:pointer}
.auth-links{text-align:center;font-size:13px;color:var(--text2);margin-top:4px}
.auth-links a{color:var(--brand);text-decoration:none;font-weight:500}
.auth-links a:hover{text-decoration:underline}
.auth-links-sep{margin:0 8px;opacity:.5}
.auth-section-label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text2);margin:13px 0 5px;padding-top:8px;border-top:1px solid var(--line)}
.auth-section-label:first-child{border-top:none;padding-top:0;margin-top:0}
.auth-opt{font-weight:400;color:var(--text2);opacity:.7;font-size:11px}
.auth-spinner-line{font-size:13px;color:var(--text2);text-align:center;padding:8px}

/* ── Shared modal (settings / super-admin) ── */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:400;display:flex;align-items:flex-end;justify-content:center;padding:0}
@media(min-width:640px){.modal-backdrop{align-items:center;padding:20px}}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl) var(--rl) 0 0;width:100%;max-width:520px;max-height:90dvh;display:flex;flex-direction:column;overflow:hidden}
@media(min-width:640px){.modal{border-radius:var(--rl);box-shadow:0 24px 64px rgba(0,0,0,.4)}}
.modal--sm{max-width:380px}
.modal-hdr{display:flex;align-items:center;justify-content:space-between;padding:18px 20px 14px;border-bottom:1px solid var(--border);flex-shrink:0}
.modal-hdr h3{font-size:17px;font-weight:600;color:var(--text)}
.modal-close{width:32px;height:32px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);color:var(--text2);font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.modal-close:active{background:var(--surface2)}
.modal-body{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
.modal-body::-webkit-scrollbar{display:none}
.modal-footer{display:flex;gap:10px;padding:14px 20px calc(14px + var(--safe-b));border-top:1px solid var(--border);flex-shrink:0}

/* ── Buttons ── */
.btn-secondary{flex:1;padding:13px;border-radius:var(--rs);border:1px solid var(--border);background:transparent;color:var(--text2);font-family:'Outfit',sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:background .12s}
.btn-secondary:active,.btn-secondary:hover{background:var(--surface2);color:var(--text)}
/* Przycisk akcji (btn-sm) ma ZAWSZE szerokosc swojej tresci — nigdy nie rozciaga sie, zeby zapchac wiersz.
   Bez flex:0 0 auto dziedziczyl flex:1 z .btn-secondary i w kazdym flexowym naglowku robil sie "podluzny". */
.btn-primary.btn-sm,.btn-secondary.btn-sm,.btn-sm{flex:0 0 auto;padding:8px 14px;font-size:13px;width:auto;border-radius:var(--rs);display:inline-flex;align-items:center;gap:5px}
.btn-icon{width:34px;height:34px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);color:var(--text2);font-size:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}
.btn-icon:active,.btn-icon:hover{background:var(--brand-dim);color:var(--brand);border-color:var(--brand-border)}
.btn-icon--danger:active,.btn-icon--danger:hover{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-fg)}
/* mały przycisk „dodaj" zamykający listę — jedyny w wierszu, więc może wypełnić szerokość karty */
.btn-wide{width:100%;justify-content:center}
/* mały przycisk destrukcyjny Z TEKSTEM (Usuń ofertę, Usuń logo) — reszta jak btn-secondary btn-sm */
.btn-sm--danger{color:var(--del-fg)}
.btn-sm--danger:active,.btn-sm--danger:hover{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-fg)}

/* ── Employee rows ── */
.emp-row{display:flex;align-items:center;gap:12px;padding:13px 16px;background:var(--surface);border-bottom:1px solid var(--border)}
.emp-row:last-child{border-bottom:none}
.emp-row--blocked{opacity:.6}
.emp-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.emp-row-name{font-size:15px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.emp-row-meta{font-size:12px;color:var(--text2)}
.emp-row-actions{display:flex;gap:6px;flex-shrink:0}
.emp-badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:99px;text-transform:uppercase;letter-spacing:.4px}
.emp-badge--blocked{background:rgba(239,56,59,.1);color:#ef383b;border:1px solid rgba(239,56,59,.25)}
.emp-badge--owner{background:rgba(245,158,11,.12);color:#b45309;border:1px solid rgba(245,158,11,.35);text-transform:none}
[data-theme="dark"] .emp-badge--owner{color:#fbbf24}
.emp-badge--pending{background:rgba(245,158,11,.12);color:#f59e0b;border:1px solid rgba(245,158,11,.28)}
.emp-badge--sa{background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff}

/* ── Role checks & status toggle ── */
.role-checks{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}
.role-check{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--rs);border:1px solid var(--border);background:var(--surface);font-size:13px;color:var(--text2);cursor:pointer;transition:border-color .12s,background .12s,color .12s}
.role-check:has(input:checked){background:var(--brand-dim);border-color:var(--brand);color:var(--brand)}
.role-check input{accent-color:var(--brand);width:15px;height:15px}
.toggle-row{display:flex;gap:16px;flex-wrap:wrap;padding:4px 0}
.toggle-label{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text);cursor:pointer}
.toggle-label input{accent-color:var(--brand);width:16px;height:16px}
.toggle-label--blocked{color:var(--del-fg)}
.toggle-label--blocked input{accent-color:var(--del-fg)}

/* ── Settings sections ── */
.settings-wrap{display:flex;flex-direction:column;gap:24px;padding:20px 16px 80px;max-width:var(--page-max,1100px);width:100%;margin:0 auto}
.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.settings-section-hdr{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg2)}
.settings-section-title{font-size:15px;font-weight:700;color:var(--text)}
.settings-section>h2.settings-section-title{padding:14px 16px;border-bottom:1px solid var(--border);background:var(--bg2)}

/* ── Super Admin groups ── */
.sa-co-group{margin-bottom:8px}
.sa-co-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text3);padding:10px 16px 4px}
.sa-admin-details{border:1px solid var(--border);border-radius:var(--rs);overflow:hidden;margin-top:8px}
.sa-admin-details summary{padding:10px 14px;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;list-style:none;background:var(--bg2)}
.sa-admin-details summary::-webkit-details-marker{display:none}
.sa-admin-details[open] summary{border-bottom:1px solid var(--border)}
.sa-admin-details>*:not(summary){padding:0 14px 14px}

/* ── Sidebar user info ── */
.sidebar-company{display:flex;align-items:center;gap:8px;padding:6px 12px 8px;min-width:0}
.sidebar-company-logo{flex-shrink:0;display:inline-flex}
.sidebar-company-logo .hdr-logo{height:22px;width:22px;border-radius:6px;font-size:12px}
.sidebar-company-name{font-size:13px;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px}
.sidebar-user-info{flex:1;min-width:0}
.sidebar-user-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-user-role{font-size:11px;color:var(--text2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-logout-btn{width:32px;height:32px;border-radius:var(--rs);border:1px solid var(--border);background:var(--bg);color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}
.sidebar-logout-btn:active,.sidebar-logout-btn:hover{background:var(--del-bg);color:var(--del-fg);border-color:var(--del-fg)}

/* ── Empty hint ── */
.empty-hint{padding:24px 16px;text-align:center;font-size:13px;color:var(--text3);font-style:italic}

/* ── Settings Tabs (stab) ── */
.stab-bar{
  display:flex;align-items:flex-end;gap:2px;
  padding:0 16px;
  background:var(--surface);
  border-bottom:2px solid var(--border);
  overflow-x:auto;scrollbar-width:none;
  flex-shrink:0;
}
.stab-bar::-webkit-scrollbar{display:none}
.stab{
  padding:11px 18px 10px;
  font-size:13px;font-weight:500;
  color:var(--text2);
  background:none;border:none;
  border-bottom:2px solid transparent;
  margin-bottom:-2px;
  cursor:pointer;white-space:nowrap;
  border-radius:6px 6px 0 0;
  transition:color .15s,background .15s,border-color .15s;
}
.stab:hover{color:var(--text);background:var(--bg2)}
.stab--active{
  color:var(--accent);
  border-bottom-color:var(--accent);
  font-weight:600;
  background:var(--brand-dim);
}
/* settings-wrap inside tab gets reduced top padding */
.settings-wrap{display:flex;flex-direction:column;gap:20px;padding:20px 16px 80px;max-width:var(--page-max,1100px);width:100%;margin:0 auto}
/* Employees toolbar */
.settings-emp-toolbar{display:flex;justify-content:flex-end;padding:4px 0 12px}
/* Konto tab */
.konto-profile{display:flex;align-items:center;gap:16px;padding:8px 0 20px}
.konto-avatar{
  width:55px;height:55px;border-radius:50%;
  background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;
  font-size:22px;font-weight:700;flex-shrink:0;
  overflow:hidden;   /* bez tego WGRANE zdjecie wychodzi poza kolko i rozwala karte */
}
/* Bez obwódki. Zdjęcie przycina WYŁĄCZNIE kontener — zaokrąglanie w dwóch miejscach
   (kontener + obrazek) zostawiało na styku pojedyncze piksele.
   Ciemny rant brał się z TŁA kółka (kolor marki dla inicjałów), które przebijało przez
   wygładzoną krawędź zdjęcia — gdy jest obrazek, tło znika, a obrazek dostaje włos zapasu. */
.konto-avatar img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
.konto-avatar:has(img),.emp-avatar-preview:has(img),.emp-row-av:has(img),
.emp-detail-av:has(img),.work-emp-avatar:has(img),.hdr-av:has(img){background:none!important}
.konto-avatar>img,.emp-avatar-preview>img,.emp-row-av>img,.emp-detail-av>img,.work-emp-avatar>img,.hdr-av>img{
  transform:scale(1.03)}
/* awatar w pasku nagłówka (Czas Pracy — „Mój czas pracy" nie pokazywał zdjęcia) */
.hdr-av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,#1ca980,#3bbff7);
  display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:14px;
  flex-shrink:0;overflow:hidden}
.hdr-av img{width:100%;height:100%;object-fit:cover;display:block}
.konto-info{display:flex;flex-direction:column;gap:3px}
.konto-name{font-size:16px;font-weight:700;color:var(--text)}
.konto-email{font-size:13px;color:var(--text2)}
.konto-role{font-size:12px;color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.konto-divider{border:none;border-top:1px solid var(--border);margin:4px 0 20px}
.konto-section-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:12px}
/* settings-form padding fix inside tab */
.settings-form{display:flex;flex-direction:column;gap:13px}

/* hdr + stab-bar layout — stab-bar sits between hdr and body */
#main:has(.stab-bar){display:flex;flex-direction:column}
#main:has(.stab-bar) .body{flex:1;min-height:0}

/* ══ Cenniki (Price Lists) ══ */
.cn-overtime{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 15px;margin-bottom:14px}
.cn-ot-info{display:flex;align-items:flex-start;gap:9px;color:var(--text);margin-bottom:11px}
.cn-ot-info svg{color:var(--brand);flex-shrink:0;margin-top:2px}
.cn-ot-info b{font-size:14px;font-weight:600}
.cn-ot-info small{display:block;font-size:12px;color:var(--text3);margin-top:2px}
.cn-ot-row{display:flex;align-items:center;gap:9px}
.cn-ot-row input{width:120px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;color:var(--text);font-family:'Outfit',sans-serif;font-size:15px;font-weight:600;outline:none}
.cn-ot-row input:focus{border-color:var(--brand-border)}
.cn-ot-unit{font-size:14px;color:var(--text2);margin-right:auto}
.cn-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:0 0 14px}
.cn-search{display:flex;align-items:center;gap:7px;flex:1;min-width:160px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:0 11px;color:var(--text3)}
.cn-search input{flex:1;background:none;border:none;outline:none;padding:9px 0;color:var(--text);font-family:'Outfit',sans-serif;font-size:13px}
.cn-search input::placeholder{color:var(--text3)}

/* Karty cenników */
.cn-cards{display:flex;flex-direction:column;gap:10px}
.cn-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;transition:box-shadow .15s,transform .12s}
.cn-card:hover{box-shadow:0 3px 13px hsl(var(--p-h) 30% 20% / .08)}
.cn-card-main{display:flex;align-items:center;gap:13px;padding:14px;cursor:pointer}
.cn-card-icon{width:40px;height:40px;border-radius:var(--rs);background:var(--brand-dim);color:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cn-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.cn-card-name{font-size:15px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-card-meta{font-size:12px;color:var(--text2)}
.cn-card-sub{font-size:11px;color:var(--text3)}
.cn-card-count{display:flex;flex-direction:column;align-items:center;flex-shrink:0;padding:0 4px}
.cn-count-num{font-size:18px;font-weight:700;color:var(--brand);line-height:1}
.cn-count-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.4px}
.cn-card-actions{display:flex;gap:6px;justify-content:flex-end;padding:0 14px 12px}

/* Detal cennika */
.cn-detail-hdr{display:flex;align-items:center;gap:11px;padding:0 0 14px}
.cn-detail-title{min-width:0}
.cn-detail-name{font-size:16px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cn-detail-meta{font-size:12px;color:var(--text2)}

/* Tabela pozycji */
.cn-items-info{font-size:11px;color:var(--text3);padding:0 2px 8px}
.cn-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.cn-table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}
.cn-table thead th{text-align:left;padding:10px 12px;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);white-space:nowrap}
.cn-table tbody td{padding:10px 12px;border-bottom:1px solid var(--border2);color:var(--text);vertical-align:middle}
.cn-table tbody tr:last-child td{border-bottom:none}
.cn-table tbody tr:hover{background:var(--bg2)}
.cn-num{text-align:right;white-space:nowrap}
.cn-table th.cn-num{text-align:right}
.cn-kod{font-weight:600;white-space:nowrap}
.cn-nazwa{min-width:180px;color:var(--text2)}
.cn-gtin{font-size:11px;color:var(--text3);font-variant-numeric:tabular-nums;white-space:nowrap}
.cn-brutto{font-weight:600;color:var(--text)}
.cn-row-actions{display:flex;gap:5px;justify-content:flex-end}
.cn-row-actions .btn-icon{width:30px;height:30px}

/* Import PDF */
.cn-import-hint{font-size:13px;color:var(--text2);line-height:1.5;margin:0 0 14px}
.cn-import-progress{font-size:13px;color:var(--brand);padding:10px 0;font-weight:500}
#cn-pdf-file{width:100%;font-family:'Outfit',sans-serif;font-size:13px;color:var(--text2)}

/* ══ Oferty cenowe (Offers) ══ */
.of-cards{display:flex;flex-direction:column;gap:11px;padding:14px 16px}
.of-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;cursor:pointer;transition:transform .12s,box-shadow .15s}
.of-card:hover{box-shadow:0 3px 13px hsl(var(--p-h) 30% 20% / .08)}
.of-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.of-type-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text2);background:var(--bg2);border-radius:6px;padding:3px 8px}
.of-status{font-size:11px;font-weight:700;color:var(--scol);background:color-mix(in srgb,var(--scol) 14%,transparent);border:1px solid color-mix(in srgb,var(--scol) 30%,transparent);border-radius:6px;padding:3px 9px;white-space:nowrap}
.of-card-name{font-size:15px;font-weight:600;color:var(--text)}
.of-card-addr{font-size:12px;color:var(--text3);margin-top:2px}
.of-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px}
.of-card-total{font-size:16px;font-weight:700;color:var(--brand)}
.of-card-read{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:4px}
#of-doc{padding:14px 16px 80px;max-width:var(--page-max,1100px);margin:0 auto}
.of-doc-hdr{margin-bottom:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.of-doc-client{font-size:18px;font-weight:700;color:var(--text)}
.of-doc-meta{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.of-ver{font-size:12px;color:var(--text3)}
.of-fields{display:flex;flex-direction:column;gap:11px;margin-bottom:18px}
.of-fields input,.of-fields textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;outline:none}
.of-sec-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text3)}
.of-items-bar{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:9px}
.of-items-actions{display:flex;gap:6px;flex-wrap:wrap}
.of-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.of-table{width:100%;border-collapse:collapse;font-size:13px;min-width:560px}
.of-table thead th{text-align:left;padding:9px 10px;font-size:11px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border);white-space:nowrap}
.of-table tbody td{padding:6px 8px;border-bottom:1px solid var(--border2);vertical-align:middle}
.of-table tbody tr:last-child td{border-bottom:none}
.of-cell{width:100%;background:transparent;border:1px solid transparent;border-radius:6px;padding:6px 7px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13px;outline:none}
.of-cell:focus{border-color:var(--brand-border);background:var(--bg2)}
.of-cell-nm{min-width:150px}
.of-cell-q,.of-cell-p,.of-cell-v{width:74px;text-align:right}
.of-cell-u{width:60px}
.of-line{text-align:right;white-space:nowrap;font-weight:600;color:var(--text)}
.of-empty{text-align:center;color:var(--text3);padding:18px;font-style:italic}
.of-totals{margin:16px 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px}
.of-trow{display:flex;justify-content:space-between;padding:6px 0;color:var(--text2);font-size:14px}
.of-grand{border-top:2px solid var(--border);margin-top:6px;padding-top:13px;font-size:18px;font-weight:700;color:var(--text)}
.of-grand span:last-child{color:var(--brand)}
.of-save-bar{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:0;z-index:21;background:var(--bg1,var(--bg2));padding:10px 0;border-top:1px solid var(--border);margin-top:8px}
.of-hdr-actions{display:flex;gap:8px;flex-shrink:0;align-items:center}
.of-hdr-actions .btn-secondary,.of-hdr-actions .btn-primary{flex:0 0 auto;width:auto}
.card-pad{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px;margin-top:9px}
.of-link-row{display:flex;gap:7px;align-items:center}
.of-link{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;color:var(--text2);font-size:12px;font-family:monospace;outline:none}
.of-status-btns{margin-top:11px;display:flex;gap:8px;flex-wrap:wrap}
/* Harmonogram płatności (edytor oferty + szablony) */
.of-sched-hint{font-size:12px;color:var(--text3);margin:0 0 10px;line-height:1.45}
.of-sched-tpl{display:flex;align-items:center;gap:8px;margin-bottom:11px;font-size:13px}
.of-sched-tpl select{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:8px 10px;color:var(--text);font-family:inherit;font-size:13px}
.of-sched-rows{display:flex;flex-direction:column;gap:7px;margin-bottom:9px}
.of-tr-row{display:grid;grid-template-columns:minmax(110px,.7fr) 68px minmax(180px,2.4fr) auto auto;gap:7px;align-items:center}
.of-tr-row input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:8px 9px;color:var(--text);font-family:inherit;font-size:13px;outline:none;box-sizing:border-box}
.of-tr-row input:focus{border-color:var(--brand,#ef383b)}
.of-tr-amt{font-size:13px;color:var(--text2);white-space:nowrap;text-align:right}
.of-sched-empty{color:var(--text3);font-size:13px;font-style:italic;padding:4px 0}
.of-sched-sum{margin-top:9px;font-size:13px;font-weight:600}
.of-sched-sum--ok{color:#1aa251}.of-sched-sum--over{color:#ef383b}.of-sched-sum--under{color:#e0921a}
/* Fakturowanie oferty */
.of-inv-sched{display:flex;flex-direction:column;gap:8px;margin-bottom:9px}
.of-inv-tr{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);flex-wrap:wrap}
.of-inv-tr-lbl{font-size:13px;color:var(--text2)}
.of-inv-tr-st{font-size:13px;font-weight:600;color:var(--text3)}
.of-inv-tr-st.ok{color:#1aa251}
.of-inv-progress{margin-top:8px;font-size:13px;color:var(--text2)}
/* Podpis klienta na ofercie */
.of-sign-img{max-width:100%;height:auto;background:#fff;border:1px solid var(--border);border-radius:10px}
.of-sign-meta{margin-top:8px;font-size:13px;color:#1aa251;font-weight:600;display:flex;align-items:center;gap:6px}
/* Szablony płatności (ustawienia) */
.paytpl-list{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.paytpl-item{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:12px}
.paytpl-hd{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.paytpl-name{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;color:var(--text);font-family:inherit;font-size:14px;font-weight:600;outline:none}
.paytpl-foot{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:10px;flex-wrap:wrap}
/* podgląd szablonów płatności (tryb bez edycji) */
.paytpl-prev{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:12px 14px}
.paytpl-prev-name{font-weight:700;font-size:14px;color:var(--text1);margin-bottom:7px}
.paytpl-prev-tr{display:flex;gap:10px;padding:6px 0;border-bottom:1px solid var(--border2);font-size:13px;align-items:baseline}
.paytpl-prev-tr:last-child{border-bottom:none}
.paytpl-prev-pct{font-weight:700;color:var(--brand);flex:0 0 44px;text-align:right;font-variant-numeric:tabular-nums}
.paytpl-prev-lbl{font-weight:600;color:var(--text1);flex:0 0 110px}
.paytpl-prev-when{color:var(--text2);flex:1;line-height:1.45}
.of-track{margin-top:13px;border-top:1px solid var(--border);padding-top:11px;display:flex;flex-direction:column;gap:7px}
.of-track--none{color:var(--text3);font-size:13px;font-style:italic;border-top:1px solid var(--border);padding-top:11px}
.of-track-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--text2)}
.of-track-row span{display:flex;align-items:center;gap:6px}
.of-track-row b{color:var(--text)}
.of-versions{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.of-vrow{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:8px 12px}
.of-vbadge{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;white-space:nowrap;flex-shrink:0}
.of-vbadge--acc{background:rgba(28,169,128,.13);color:#1ca980;border:1px solid rgba(28,169,128,.3)}
.of-vbadge--q{background:rgba(245,158,11,.13);color:#d97706;border:1px solid rgba(245,158,11,.3)}
.of-sign-warn{margin-top:9px;padding:9px 12px;border:1px solid rgba(245,158,11,.4);background:rgba(245,158,11,.08);border-radius:10px;font-size:13px;color:#b45309;line-height:1.5}
/* panel „co dalej" po akceptacji */
.of-next{margin:13px 0;padding:13px 16px;border:1px solid rgba(28,169,128,.35);background:rgba(28,169,128,.07);border-radius:var(--r)}
.of-next-h{font-size:13px;font-weight:700;color:#1ca980;display:flex;align-items:center;gap:6px;margin-bottom:9px}
.of-next-btns{display:flex;gap:8px;flex-wrap:wrap}
/* plakietka ważności na karcie oferty */
.of-card-expiry{font-size:12px;font-weight:600;color:#d97706;margin:2px 0}
.of-card-expiry--over{color:#ef4444}
.of-vacts{display:flex;gap:6px;flex-shrink:0}
.of-vact{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text2);font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s,color .12s,border-color .12s}
.of-vact:hover{background:var(--brand-dim);border-color:var(--brand);color:var(--brand)}
.of-vat-all{padding:7px 9px;border:1px solid var(--border);border-radius:var(--rs);background:var(--surface);color:var(--text2);font-family:'Outfit',sans-serif;font-size:13px;outline:none;cursor:pointer}
select.of-cell-v{padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text1);font-family:inherit;font-size:13px;outline:none}
.of-vno{font-weight:600;font-size:13px;white-space:nowrap}
.of-vnote{flex:1;min-width:0;font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.of-diff{margin-top:11px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px}
.of-diff-hdr{font-size:12px;font-weight:600;color:var(--text3);margin-bottom:9px;text-transform:uppercase;letter-spacing:.4px}
.of-diff-row{font-size:13px;padding:4px 0;font-family:monospace}
.of-diff-add{color:#34a853}
.of-diff-del{color:#ef383b}
.of-diff-chg{color:#f59e0b}
.of-danger{margin-top:24px;text-align:center}
.of-radios{display:flex;flex-direction:column;gap:7px}
.of-radio,.of-check{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer}
.of-check{margin-top:6px;font-size:13px;color:var(--text2)}
.of-pick-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--rs);margin-bottom:6px;cursor:pointer;background:var(--surface)}
.of-pick-row:hover{background:var(--brand-dim);border-color:var(--brand-border)}
.of-pick-nm{font-size:14px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.of-pick-meta{font-size:11px;color:var(--text3);margin-top:1px}
.of-pick-price{font-weight:600;font-size:14px;white-space:nowrap}
#of-pick-list{max-height:55vh;overflow-y:auto}
.of-parent-note{margin-top:9px;font-size:12px;color:var(--text3);display:flex;align-items:center;gap:5px}
.of-parent-note a{color:var(--brand);cursor:pointer;text-decoration:underline}
/* pytania od klienta */
.of-questions{margin-top:13px;border:1px solid #f59e0b;border-radius:var(--r);background:color-mix(in srgb,#f59e0b 8%,transparent);padding:13px}
.of-q-title{font-size:13px;font-weight:700;color:#f59e0b;display:flex;align-items:center;gap:6px;margin-bottom:10px}
.of-q-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:10px 12px;margin-bottom:7px}
.of-q-item:last-child{margin-bottom:0}
.of-q-text{font-size:14px;color:var(--text);white-space:pre-wrap;line-height:1.5}
.of-q-when{font-size:11px;color:var(--text3);margin-top:5px}
/* ══ Spis z głosu ══ */
.spis-add-opts{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.spis-add-opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px;cursor:pointer;color:var(--text);font-family:'Outfit',sans-serif;position:relative;transition:background .12s,border-color .12s}
.spis-add-opt:hover{background:var(--brand-dim);border-color:var(--brand-border)}
.spis-add-opt svg{position:absolute;right:16px;top:16px;color:var(--brand)}
.spis-add-opt b{font-size:15px;font-weight:600}
.spis-add-opt small{font-size:12px;color:var(--text3)}
.spis-rec{display:flex;align-items:center;justify-content:center;gap:10px;margin:20px 0;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}
.spis-rec-dot{width:14px;height:14px;border-radius:50%;background:var(--brand);animation:spisPulse 1s infinite}
@keyframes spisPulse{0%,100%{opacity:1}50%{opacity:.25}}
.spis-rec-hint{font-size:13px;color:var(--text2);line-height:1.5;margin:6px 0 0}
.spis-proc{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:14px;color:var(--text2)}
.spis-spinner{width:22px;height:22px;border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;animation:spisSpin .8s linear infinite;flex-shrink:0}
@keyframes spisSpin{to{transform:rotate(360deg)}}
/* Szybkie wypełnienie formularza (głos/tekst) */
.ai-fill-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:color-mix(in srgb,var(--brand) 8%,transparent);border:1px solid color-mix(in srgb,var(--brand) 25%,transparent);border-radius:var(--r);padding:10px 12px;margin-bottom:18px}
.ai-fill-lbl{font-size:13px;font-weight:600;color:var(--brand);display:flex;align-items:center;gap:5px}
input.ai-filled,textarea.ai-filled{animation:aifill 2s ease}
@keyframes aifill{0%{background:color-mix(in srgb,#34a853 28%,var(--bg2));border-color:#34a853}100%{background:var(--bg2)}}
/* Mikrofon komendy głosowej (nagłówek pulpitu) */
.hdr-mic{margin-left:auto;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#ef383b,#f7793b);color:#fff;border:none;cursor:pointer;flex-shrink:0;box-shadow:0 3px 10px color-mix(in srgb,#ef383b 45%,transparent);transition:transform .15s,filter .15s}
.hdr-mic:hover{filter:brightness(1.08);transform:scale(1.05)}
.hdr-mic:active{transform:scale(.95)}
/* Dzwonek powiadomień */
.hdr-bell{position:relative;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--card);border:1px solid var(--border);color:var(--text2);cursor:pointer;flex-shrink:0;margin-left:auto}
.hdr-bell:hover{color:var(--brand);border-color:var(--brand)}
.hdr-bell+.hdr-mic{margin-left:8px}
.notif-bell-badge{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:9px;background:#ef383b;color:#fff;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
.notif-modal{max-width:440px;width:calc(100vw - 28px)}
.notif-hdr{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.notif-hdr h3{display:flex;align-items:center;gap:7px;margin:0}
.notif-push-state{display:flex;align-items:center;gap:6px;font-size:12px;color:#34a853;background:color-mix(in srgb,#34a853 10%,transparent);border-radius:8px;padding:8px 11px;margin-bottom:10px}
.notif-push-denied{color:var(--text3);background:var(--bg2)}
.notif-push-enable{margin-bottom:10px}
.notif-list{display:flex;flex-direction:column;gap:7px;max-height:52vh;overflow-y:auto;margin-bottom:12px}
.notif-item{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border:1px solid var(--border);border-radius:var(--rm);background:var(--card);cursor:pointer;transition:border-color .12s,background .12s,opacity .12s}
.notif-item:hover{border-color:var(--brand)}
.notif-item-c{flex:1;min-width:0}
.notif-item-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:2px}
.notif-item-body{font-size:13px;color:var(--text2);line-height:1.4}
.notif-item-time{font-size:11px;color:var(--text3);margin-top:5px}
/* kropka statusu */
.notif-dot{flex-shrink:0;width:9px;height:9px;border-radius:50%;margin-top:5px;background:transparent;border:1.5px solid var(--border)}
/* ── NIEODCZYTANE — wyraźnie ── */
.notif-unread{background:color-mix(in srgb,var(--brand) 8%,var(--card));border-color:color-mix(in srgb,var(--brand) 35%,var(--border));border-left:3px solid var(--brand);padding-left:11px}
.notif-unread .notif-dot{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}
.notif-new{display:inline-block;margin-left:7px;font-size:9px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--brand);padding:1px 6px;border-radius:10px;vertical-align:middle}
/* ── ODCZYTANE — wyciszone ── */
.notif-read{opacity:.66}
.notif-read .notif-item-title{font-weight:500;color:var(--text2)}
.notif-read .notif-item-body{color:var(--text3)}
/* licznik w nagłówku */
.notif-cnt{display:inline-flex;align-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--brand);padding:1px 8px;border-radius:12px;margin-left:4px;vertical-align:middle}
/* Asystent konwersacyjny — modal */
.as-modal{max-width:460px;width:calc(100vw - 32px);position:relative}
.as-modal h3{display:flex;align-items:center;gap:7px}
.as-min-btn{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text3);cursor:pointer;padding:4px 8px;border-radius:8px;line-height:0}
.as-min-btn:hover{background:var(--bg2);color:var(--text)}
/* Pływająca pigułka „Wróć do dyktowania" — sesja asystenta żyje, gdy zerkasz gdzie indziej */
#as-pill{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(18px + env(safe-area-inset-bottom));z-index:3000;display:none;align-items:center;background:linear-gradient(135deg,#ef383b,#f7793b);color:#fff;border-radius:24px;box-shadow:0 8px 24px rgba(239,56,59,.35)}
.as-pill-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:#fff;font-weight:600;font-size:14px;padding:12px 8px 12px 18px;cursor:pointer;font-family:inherit}
.as-pill-btn[disabled]{opacity:.75;cursor:default}
.as-pill-meta{opacity:.9;font-weight:500;font-size:12px;background:rgba(255,255,255,.18);padding:2px 8px;border-radius:12px}
.as-pill-x{background:none;border:none;color:#fff;opacity:.85;font-size:15px;padding:12px 16px 12px 6px;cursor:pointer;line-height:1}
.as-pill-x:hover{opacity:1}
.as-conv{display:flex;flex-direction:column;gap:7px;max-height:42vh;overflow-y:auto;margin:10px 0;padding:2px}
.as-bubble{max-width:85%;padding:8px 12px;border-radius:14px;font-size:13px;line-height:1.45;white-space:pre-wrap}
.as-you{align-self:flex-end;background:var(--brand);color:#fff;border-bottom-right-radius:4px}
.as-ai{align-self:flex-start;background:var(--bg2);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}
.as-src{margin-top:6px;font-size:11px;color:var(--text3);font-style:italic}
.as-status{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:600;color:var(--text);margin:12px 0 2px;font-variant-numeric:tabular-nums}
.as-status.as-paused{color:var(--text3)}
.as-cmds{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}
.as-chip{font-size:12px;font-weight:600;color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,transparent);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);border-radius:20px;padding:5px 11px}
.as-cmds-empty{font-size:12px;color:var(--text3);text-align:center;margin:10px 0}
.as-textbar{display:flex;align-items:center;gap:8px;margin:10px 0 4px}
.as-text-in{flex:1;min-width:0;background:var(--bg2);border:1px solid var(--border);border-radius:21px;padding:10px 14px;font-size:13px;color:var(--text);font-family:inherit;outline:none}
.as-text-in:focus{border-color:var(--brand)}
.as-text-send{flex:none;display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:50%;background:var(--brand);color:#fff;cursor:pointer;line-height:0}
.as-text-send:hover{filter:brightness(1.08)}
/* wyjaśnienie przy rolach (np. co widzi podwykonawca) */
.role-hint{flex-basis:100%;font-size:12px;line-height:1.4;color:var(--text3);margin-top:6px}
.role-hint:empty{display:none}
/* kolejka offline — user musi wiedzieć, że zmiany jeszcze nie poszły na serwer */
.offq-badge{position:fixed;left:50%;transform:translateX(-50%);bottom:21px;z-index:900;
  padding:9px 16px;border-radius:21px;border:1px solid var(--warn,#e0a800);
  background:rgba(224,168,0,.95);color:#3a2c00;font-size:12px;font-weight:600;
  cursor:pointer;box-shadow:0 3px 13px rgba(0,0,0,.22);max-width:89vw;text-align:center}
/* zlecenie czekające na decyzję podwykonawcy — przyjmij / odrzuć z powodem */
.tsk-sub-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;
  margin-top:8px;padding:8px 10px;border:1px solid var(--warn,#e0a800);border-radius:var(--rs);
  background:rgba(224,168,0,.08)}
.tsk-sub-info{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text2)}
.tsk-sub-btns{display:flex;gap:8px}
/* czego AI samo nie ustaliło (missing_data z parsera) — wcześniej ginęło bez śladu */
.spis-prev-miss{display:flex;align-items:flex-start;gap:8px;margin-top:8px;padding:9px 11px;
  border:1px solid var(--warn,#e0a800);border-radius:var(--rs);background:rgba(224,168,0,.08);
  color:var(--text2);font-size:12px;line-height:1.4}
.spis-prev-miss svg{flex-shrink:0;margin-top:1px}
.spis-prev{display:flex;flex-direction:column;gap:8px;max-height:48vh;overflow-y:auto;margin-top:8px}
.spis-prev-room{background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:10px 12px}
.spis-prev-name{font-size:14px;font-weight:600;color:var(--text);margin-bottom:6px;text-transform:capitalize}
.spis-prev-cs{display:flex;flex-wrap:wrap;gap:5px}
.spis-prev-c{font-size:12px;background:var(--brand-dim);color:var(--brand);border-radius:6px;padding:3px 8px}
.spis-prev-c--un{background:var(--bg3);color:var(--text3)}
.spis-prev-c--dev{background:color-mix(in srgb,#a84ff7 16%,transparent);color:#a84ff7}
.spis-prev-floor{font-size:11px;font-weight:600;color:var(--text2);background:var(--bg3);border-radius:6px;padding:2px 7px;margin-left:8px;text-transform:none;vertical-align:middle}
.spis-prev-op{font-size:10px;font-weight:700;color:#0a6535;background:rgba(20,140,80,.14);border-radius:4px;padding:0 4px;margin-left:4px}
[data-theme="dark"] .spis-prev-op{color:#4bb87c;background:rgba(75,184,124,.2)}
.spis-rec--paused .spis-rec-dot{animation:none;background:var(--text3)}
.mo-row--3{display:flex;gap:8px}
.mo-row--3 .btn-cancel,.mo-row--3 .btn-secondary,.mo-row--3 .btn-confirm{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px}
.btn-pause{white-space:nowrap}
.room-circ-toggle{width:100%;margin-top:8px;padding:9px;border:1px dashed var(--border);border-radius:var(--rs);background:transparent;color:var(--brand);font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;cursor:pointer}
.room-circ-toggle:hover{background:var(--brand-dim);border-color:var(--brand-border)}
.room-empty-circ{font-size:13px;color:var(--text3);font-style:italic;padding:8px 0}
.circ-pick{margin-top:8px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--rs);background:var(--surface2,var(--bg2));display:flex;flex-direction:column;gap:8px}
.circ-pick-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.circ-pick-chip{padding:6px 11px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);color:var(--text1);font-family:'Outfit',sans-serif;font-size:13px;cursor:pointer;transition:background .12s,border-color .12s}
.circ-pick-chip:hover{background:var(--brand-dim);border-color:var(--brand)}
.spis-add-opt--dim{opacity:.55}
/* reguły systemowe AI (read-only dla firm) */
.ai-global-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:11px 14px}
.ai-global-box summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--text1)}
.ai-global-pre{white-space:pre-wrap;font-family:inherit;font-size:12.5px;color:var(--text2);line-height:1.55;background:var(--bg2);border:1px solid var(--border2);border-radius:var(--rs);padding:10px 12px;margin:9px 0 5px;max-height:340px;overflow-y:auto}
.ai-learn-sec{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin:13px 0 5px}
.ai-learn-sec:first-of-type{margin-top:8px}
/* słownik typów spisu (SA) */
.sa-list>.ai-wrap{grid-column:1/-1;min-width:0}
.st-wrap{overflow:auto;max-height:calc(100dvh - 340px);min-height:340px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.st-table{border-collapse:collapse;width:100%;min-width:920px;font-size:12.5px}
.st-table th{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text3);text-align:left;padding:9px 8px;border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0;background:var(--surface);z-index:2}
.st-table td{padding:4px 5px;border-bottom:1px solid var(--border2)}
.st-table tr.st-off{opacity:.45}
.st-in{width:110px;background:var(--bg2);border:1px solid var(--border);border-radius:7px;padding:6px 8px;color:var(--text1);font-family:inherit;font-size:12.5px;outline:none}
.st-in:focus{border-color:var(--brand)}
.st-in--key{width:100px;font-family:monospace}
.st-in--sm{width:66px}
.st-in--xs{width:48px;text-align:center}
.st-in--lg{width:210px}
/* ── audyt: ściąga z ankiety preferencji ── */
.audit-surv{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--surface);border:1px dashed var(--border);border-radius:var(--r);padding:11px 14px;margin-bottom:13px}
.audit-surv--done{display:block;border-style:solid;border-color:var(--brand-border,var(--border))}
.audit-surv-t{font-size:13px;color:var(--text2);display:flex;align-items:center;gap:6px}
.audit-surv-hd{font-size:13px;color:var(--text1);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.audit-surv-gaps{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.audit-surv-gap{font-size:12px;background:var(--brand-dim);border:1px solid var(--brand-border,var(--border));border-radius:999px;padding:4px 10px;color:var(--text1)}
.audit-surv-gap b{color:var(--brand)}
.audit-surv-gap.is-add{cursor:pointer;transition:background .12s,transform .12s}
.audit-surv-gap.is-add:hover{background:var(--brand);color:#fff}
.audit-surv-gap.is-add:hover b{color:#fff}
.audit-surv-gap u{text-decoration:none;font-weight:700;color:var(--brand)}
.audit-surv-gap.is-add:hover u{color:#fff}
.audit-surv-gap.is-done{border-style:dashed}
.audit-surv-gap.is-done:not(:hover){opacity:.72}
/* modal rozdzielania pozycji ankiety na pomieszczenia */
.ag-rows{max-height:280px;overflow-y:auto;margin-top:10px;border:1px solid var(--border);border-radius:var(--rs);padding:4px 10px}
.ag-sec{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--text3);padding:8px 0 2px}
.ag-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0;border-bottom:1px solid var(--border2)}
.ag-row:last-child{border-bottom:none}
.ag-nm{font-size:13px;color:var(--text1)}
.ag-qty{width:55px;text-align:center;padding:6px;border:1px solid var(--border);border-radius:8px;background:var(--bg2);color:var(--text1);font-family:'Outfit',sans-serif}
/* ── podsumowanie Σ: macierz pomieszczenia × grupy ── */
.sum-matrix-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.sum-matrix{width:100%;border-collapse:collapse;font-size:13px;min-width:520px}
.sum-matrix th{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);text-align:right;padding:8px 8px;border-bottom:2px solid var(--border);white-space:nowrap}
.sum-matrix th.sm-room-h{text-align:left}
.sum-matrix td{padding:7px 8px;border-bottom:1px solid var(--border2)}
.sum-matrix .sm-lp{color:var(--text3);font-size:11px;width:26px}
.sum-matrix .sm-room{color:var(--text1);white-space:nowrap}
.sum-matrix .sm-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--text1)}
.sum-matrix .sm-zero{color:var(--text3);opacity:.55}
.sum-matrix .sm-tot{font-weight:700}
.sum-matrix tfoot td{border-top:2px solid var(--border);border-bottom:none;font-weight:700}
.sum-matrix tfoot .sm-tot{color:var(--brand)}
.audit-surv-gen{font-size:12px;color:var(--text2);margin-top:7px;font-style:italic}
/* ── oferta audytowa: porównanie projekt vs audyt ── */
.of-audit{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px 16px}
.of-audit-tot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--text2);margin-bottom:10px}
.of-audit-rows{display:flex;flex-direction:column}
.of-audit-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--border2);font-size:13px}
.of-audit-row:last-child{border-bottom:none}
.of-audit-v{white-space:nowrap;font-variant-numeric:tabular-nums}
.of-audit-v i{font-style:normal;font-weight:700}
.of-audit-add .of-audit-v i{color:#1ca980}
.of-audit-del .of-audit-v i,.of-audit-chg .of-audit-v i{color:#ef4444}
/* ══ Asystent AI (wytyczne firmy) ══ */
.ai-wrap{display:flex;flex-direction:column;gap:14px}
.ai-card-info{display:flex;gap:11px;align-items:flex-start;background:var(--brand-dim);border:1px solid var(--brand-border);border-radius:var(--r);padding:13px 15px;color:var(--brand)}
.ai-card-info svg{flex-shrink:0;margin-top:1px}
.ai-info-title{font-size:14px;font-weight:600;color:var(--text)}
.ai-info-sub{font-size:12px;color:var(--text2);margin-top:3px;line-height:1.5}
.ai-wrap textarea{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);padding:12px 14px;color:var(--text);font-family:'Outfit',sans-serif;font-size:14px;line-height:1.6;outline:none;resize:vertical}
.ai-wrap textarea:focus{border-color:var(--brand-border)}
.tg-hint{font-size:13px;color:var(--text2);line-height:1.5;margin:0 0 4px}
.tg-hint b{color:var(--text)}
/* Auto-nauka AI */
.ai-learn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:14px}
.ai-learn-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.ai-sug{display:flex;align-items:center;gap:10px;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;margin-bottom:7px}
.ai-sug:last-child{margin-bottom:0}
.ai-sug-text{flex:1;min-width:0;font-size:13px;color:var(--text);line-height:1.4;display:flex;align-items:flex-start;gap:6px}
.ai-sug-act{display:flex;gap:5px;flex-shrink:0}
.ai-sug-add:hover{background:var(--ok-bg,color-mix(in srgb,#34a853 14%,transparent))!important;color:#34a853!important;border-color:#34a853!important}
/* Branże / Predefinicje ofertowe */
.ai-presets{margin-top:21px;border-top:1px solid var(--border);padding-top:16px;display:flex;flex-direction:column;gap:12px}
.ai-branch-chips{display:flex;flex-wrap:wrap;gap:7px}
.ai-branch-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--text2);background:var(--card);border:1px solid var(--border);border-radius:20px;padding:6px 12px;cursor:pointer;transition:.15s}
.ai-branch-chip:hover{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent)}
.ai-branch-chip svg{flex-shrink:0}
.ai-chip-plus{font-weight:800;color:var(--brand);font-size:14px;line-height:1}
.ai-preset-list{display:flex;flex-direction:column;gap:10px}
.ai-preset-card{border:1px solid var(--border);border-radius:var(--r);background:var(--card);padding:12px;display:flex;flex-direction:column;gap:9px}
.ai-preset-off{opacity:.6}
.ai-preset-head{display:flex;align-items:center;gap:10px}
.ai-preset-name{flex:1;font-size:14px;font-weight:700;color:var(--text);background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:8px 11px}
.ai-preset-text{width:100%;font-family:inherit;font-size:13px;line-height:1.5;color:var(--text);background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:9px 11px;resize:vertical}
.ai-preset-act{display:flex;align-items:center;gap:8px;justify-content:flex-end}
/* Avatar pracownika */
.emp-avatar-edit{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.emp-avatar-preview{width:64px;height:64px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;flex-shrink:0;overflow:hidden}
.emp-avatar-preview img{width:100%;height:100%;object-fit:cover}
.emp-row-av{width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;flex-shrink:0;overflow:hidden}
.emp-row-av img{width:100%;height:100%;object-fit:cover}
.emp-row-click{cursor:pointer}
/* gotowe awatary */
.emp-av-presets{margin:-6px 0 16px}
.emp-av-presets-lbl{font-size:12px;color:var(--text3);display:block;margin-bottom:7px}
.emp-av-presets-row{display:flex;gap:8px;flex-wrap:wrap}
.emp-av-preset{width:44px;height:44px;border-radius:50%;border:2px solid var(--border);cursor:pointer;background:var(--bg2);object-fit:cover;transition:border-color .12s,transform .12s}
.emp-av-preset:hover{transform:scale(1.08)}
.emp-av-shuffle{width:44px;height:44px;border-radius:50%;border:2px dashed var(--border);background:none;color:var(--text3);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .12s,color .12s,transform .12s}
.emp-av-shuffle:hover{border-color:var(--brand);color:var(--brand);transform:rotate(90deg)}
.emp-av-preset.sel{border-color:var(--brand)}
/* podgląd pracownika */
.emp-detail-top{display:flex;align-items:center;gap:15px;margin-bottom:16px}
.emp-detail-av{width:72px;height:72px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;flex-shrink:0;overflow:hidden}
.emp-detail-av img{width:100%;height:100%;object-fit:cover}
.emp-detail-name{font-size:18px;font-weight:700;color:var(--text)}
.emp-detail-roles{font-size:13px;color:var(--text2);margin:2px 0 6px}
.emp-detail-rows{display:flex;flex-direction:column;gap:1px;background:var(--border);border-radius:var(--r);overflow:hidden}
.emp-detail-row{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface);padding:11px 13px;font-size:14px}
.emp-detail-row span{color:var(--text3)}
.emp-detail-row b{color:var(--text);font-weight:600;text-align:right;word-break:break-word}
.emp-badge--ok{background:color-mix(in srgb,#34a853 16%,transparent);color:#34a853;font-size:11px;font-weight:700;border-radius:6px;padding:2px 8px}
/* panel zaangażowania */
.of-track--none{color:var(--text3);font-size:13px;font-style:italic;border-top:1px solid var(--border);padding-top:11px;margin-top:11px}
.of-eng{margin-top:13px;border-top:1px solid var(--border);padding-top:13px;display:flex;flex-direction:column;gap:11px}
.of-eng-head{font-size:13px;color:var(--text2);display:flex;align-items:center;gap:6px}
.of-person{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:12px 13px}
.of-person-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.of-person-name{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:5px}
.of-person-stat{font-size:11px;font-weight:700;color:var(--scol);background:color-mix(in srgb,var(--scol) 14%,transparent);border-radius:6px;padding:2px 8px}
.of-person-meta{display:flex;flex-wrap:wrap;gap:11px;font-size:12px;color:var(--text3);margin-bottom:10px}
.of-person-meta span{display:flex;align-items:center;gap:4px}
.of-person-meta b{color:var(--text)}
.of-heatmap{display:flex;flex-direction:column;gap:5px}
.of-bar-row{display:flex;align-items:center;gap:8px;font-size:12px}
.of-bar-lbl{width:104px;flex-shrink:0;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.of-bar-track{flex:1;height:8px;background:var(--border);border-radius:5px;overflow:hidden}
.of-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#3b6ef7,#3bbff7);border-radius:5px}
.of-bar-secs{width:58px;text-align:right;color:var(--text2);font-variant-numeric:tabular-nums}
.of-bar-seen{width:14px;text-align:center}
.of-bar-hot .of-bar-fill{background:linear-gradient(90deg,#ef383b,#f7793b)}
.of-bar-hot .of-bar-lbl{color:var(--text);font-weight:600}
.of-bar-none{font-size:12px;color:var(--text3);font-style:italic}
.of-person-foot{display:flex;justify-content:space-between;align-items:center;margin-top:9px}
.of-person-when{font-size:11px;color:var(--text3)}
.of-tl-toggle{background:none;border:none;color:var(--brand);font-size:12px;cursor:pointer;font-family:'Outfit',sans-serif}
.of-timeline{margin-top:9px;border-top:1px dashed var(--border);padding-top:8px;display:flex;flex-direction:column;gap:4px}
.of-tl-row{font-size:12px;color:var(--text2)}
.of-tl-row span{color:var(--text3);font-variant-numeric:tabular-nums;margin-right:5px}
.of-tl-ok{color:#34a853}
.of-tl-rej{color:#ef383b}

/* ══════════════════════════════════════════════════
   SUPER ADMIN — modern pill tabs + cards
══════════════════════════════════════════════════ */

/* Layout — same as stab-bar but for SA panel */
#main:has(.satab-bar){display:flex;flex-direction:column}
#main:has(.satab-bar) .body{flex:1;min-height:0}

/* ── SA Tab Bar ── */
.satab-bar{
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;padding:10px 16px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  flex-shrink:0;overflow:hidden;
}
.satab-list{
  display:flex;align-items:center;gap:5px;
  overflow-x:auto;scrollbar-width:none;flex:1;
}
.satab-list::-webkit-scrollbar{display:none}
.satab-bar-right{flex-shrink:0;margin-left:8px}

/* ── SA Tab pill button ── */
.satab{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 15px;
  font-family:'Outfit',sans-serif;font-size:13px;font-weight:500;
  color:var(--text2);
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:21px;
  cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s;
}
.satab svg{opacity:.65;transition:opacity .15s}
@media(hover:hover){
  .satab:not(.satab--active):hover{
    background:var(--brand-dim);color:var(--brand);
    border-color:var(--brand-border);
  }
  .satab:not(.satab--active):hover svg{opacity:.9}
}
.satab--active{
  background:var(--brand);color:#fff;
  border-color:var(--brand);
  font-weight:600;
  box-shadow:0 3px 13px color-mix(in srgb,var(--brand) 34%,transparent);
}
.satab--active svg{opacity:1}

/* ── SA Search Toolbar ── */
.sa-toolbar{
  display:flex;align-items:center;padding:8px 16px;
  background:var(--bg);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.sa-search-box{
  display:flex;align-items:center;gap:8px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:21px;
  padding:7px 14px;
  flex:1;max-width:480px;
  transition:border-color .15s,box-shadow .15s;
}
.sa-search-box:focus-within{
  border-color:var(--brand);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent);
}
.sa-search-box svg{color:var(--text3);flex-shrink:0}
.sa-search-input{
  flex:1;background:none;border:none;outline:none;
  font-family:'Outfit',sans-serif;font-size:14px;color:var(--text);
  min-width:0;
}
.sa-search-input::placeholder{color:var(--text3)}

/* ── SA List container ── */
.sa-list{
  display:flex;flex-direction:column;gap:8px;
  padding:13px 16px 80px;
}
@media(min-width:640px){
  .sa-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px 20px 80px}
}
@media(min-width:1100px){
  .sa-list{grid-template-columns:repeat(3,1fr)}
}

/* ── SA Card ── */
.sa-card{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r);
  padding:14px 14px 12px;
  transition:box-shadow .15s,transform .12s,border-color .15s;
}
@media(hover:hover){
  .sa-card:hover{
    box-shadow:0 5px 21px rgba(0,0,0,.1);
    transform:translateY(-1px);
    border-color:var(--brand-border);
  }
}
.sa-card--blocked{opacity:.55}

/* ── SA Card innards ── */
.sa-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.sa-card-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.3;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sa-card-meta{font-size:12px;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-card-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}
.sa-card-actions{display:flex;flex-direction:column;gap:5px;flex-shrink:0}
@media(min-width:400px){.sa-card-actions{flex-direction:row}}

/* ── SA Chips / badges ── */
.sa-chip{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:600;
  padding:2px 8px;border-radius:20px;
  background:var(--surface2);color:var(--text2);
  border:1px solid var(--border);
  white-space:nowrap;
}
.sa-chip--ok{
  background:rgba(20,140,80,.1);color:#0a6535;
  border-color:rgba(20,140,80,.28);
}
[data-theme="dark"] .sa-chip--ok{color:#4bb87c;background:rgba(75,184,124,.18);border-color:rgba(75,184,124,.3)}
.sa-chip--danger{
  background:rgba(239,56,59,.1);color:#c0392b;
  border-color:rgba(239,56,59,.28);
}
[data-theme="dark"] .sa-chip--danger{color:#e85b5b;background:rgba(232,90,90,.15);border-color:rgba(232,90,90,.3)}
.sa-chip--warn{
  background:rgba(217,150,20,.12);color:#9a6a00;
  border-color:rgba(217,150,20,.3);
}
[data-theme="dark"] .sa-chip--warn{color:#e2b33e;background:rgba(226,179,62,.15);border-color:rgba(226,179,62,.3)}
.sa-card--pending{border-left:3px solid #d99614}
.btn-icon--ok:active,.btn-icon--ok:hover{background:rgba(20,140,80,.12);color:#0a6535;border-color:rgba(20,140,80,.4)}
[data-theme="dark"] .btn-icon--ok:active,[data-theme="dark"] .btn-icon--ok:hover{color:#4bb87c;border-color:rgba(75,184,124,.4)}
.satab-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:18px;padding:0 5px;margin-left:5px;
  border-radius:9px;background:var(--brand);color:#fff;
  font-size:11px;font-weight:700;line-height:1;
}
.sa-chip--sa{
  background:linear-gradient(135deg,#6366f1,#818cf8);
  color:#fff;border-color:transparent;
  box-shadow:0 2px 8px rgba(99,102,241,.35);
}
.sa-badge{
  display:inline-flex;align-items:center;
  font-size:10px;font-weight:700;
  padding:2px 8px;border-radius:20px;
  background:var(--brand-dim);color:var(--brand);
  border:1px solid var(--brand-border);
  white-space:nowrap;font-family:monospace;letter-spacing:.3px;
}

/* ── NIP lookup row (shared: SA modal + settings) ── */
.nip-lookup-row{display:flex;gap:6px;align-items:stretch}
.nip-lookup-row input{flex:1;min-width:0}
.btn-nip-lookup{
  display:inline-flex;align-items:center;justify-content:center;
  width:36px;height:36px;padding:0;flex-shrink:0;
  background:var(--brand-dim);color:var(--brand);
  border:1px solid var(--brand-border);
  border-radius:var(--rs);
  cursor:pointer;
  transition:background .13s,color .13s,border-color .13s;
}
@media(hover:hover){.btn-nip-lookup:hover{background:var(--brand);color:#fff;border-color:var(--brand)}}
.btn-nip-lookup:active{background:var(--brand);color:#fff}
.btn-nip-lookup:disabled{opacity:.45;cursor:not-allowed}

/* ── SA Detail Grid (in modal) ── */
.sa-detail-grid{
  display:flex;flex-direction:column;gap:0;
  border:1px solid var(--border);border-radius:var(--rs);overflow:hidden;
}
.sa-detail-row{
  display:flex;align-items:baseline;gap:12px;
  padding:10px 14px;
  border-bottom:1px solid var(--border2);
}
.sa-detail-row:last-child{border-bottom:none}
.sa-detail-row:nth-child(odd){background:var(--bg)}
.sa-detail-row:nth-child(even){background:var(--surface)}
.sa-detail-label{
  font-size:11px;font-weight:600;color:var(--text2);
  text-transform:uppercase;letter-spacing:.5px;
  min-width:90px;flex-shrink:0;
}
.sa-detail-val{
  font-size:13px;color:var(--text);flex:1;
  word-break:break-word;
}
/* Podgląd firmy — sekcje (pracownicy/klienci/pliki) */
.sa-det-sec{margin-top:14px;border:1px solid var(--border);border-radius:var(--rs);padding:10px 12px;background:var(--surface)}
.sa-det-h{font-size:13px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:7px;margin-bottom:6px}
.sa-det-row2{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:6px 0;border-bottom:1px solid var(--border2)}
.sa-det-row2:last-child{border-bottom:none}
.sa-det-nm{font-size:13px;color:var(--text);font-weight:500}
.sa-det-sub{font-size:12px;color:var(--text3);text-align:right;word-break:break-word}
.sa-file-row{display:flex;align-items:center;gap:9px;padding:6px 0;border-bottom:1px solid var(--border2);text-decoration:none}
.sa-file-row:last-child{border-bottom:none}
.sa-file-ic{flex-shrink:0;font-size:15px}
.sa-file-name{flex:1;font-size:13px;color:var(--text);word-break:break-word}
.sa-file-name small{color:var(--text3);font-size:11px}
.sa-file-size{flex-shrink:0;font-size:12px;color:var(--text2);font-variant-numeric:tabular-nums}

/* ── Klikalne kafelki (cały kafelek otwiera podgląd) ── */
.sa-card--click{cursor:pointer}
.sa-card--click:active{transform:scale(.995)}
@media(hover:hover){ .sa-card--click:hover{border-color:var(--brand-border);box-shadow:0 5px 21px rgba(0,0,0,.1)} }
.sa-card-actions .btn-icon{cursor:pointer}

/* ── Akordeon w szczegółach firmy ── */
/* pełnoprawna kolumna 760px — bez shrink-to-fit z .body>*{margin:auto} */
.sa-detail-body{display:flex;flex-direction:column;gap:13px}
/* flex-shrink:0 jest tu OBOWIAZKOWE. `.sa-detail-body` ma tez klase `.body`, czyli
   jest kontenerem przewijania o wysokosci ograniczonej przez `flex:1`. Zrobienie z
   niego kolumny flex sprawia, ze dzieci zamiast wypchnac pasek przewijania —
   KURCZA SIE do dostepnej wysokosci. `.sa-detail-grid` ma `overflow:hidden`, wiec
   jego `min-height` rozwiazuje sie do 0 i tabelka danych firmy scinala sie po
   trzech wierszach: NAZWA, NIP, TELEFON, a E-MAIL byl przeciety w polowie przez
   kafle statystyk. Wygladalo to na nachodzace na siebie warstwy, a bylo zgniecenie. */
.sa-detail-body>*{width:100%;max-width:760px;margin:0 auto;flex-shrink:0}
/* kafle statystyk firmy */
.sa-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.sa-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:13px 14px;display:flex;flex-direction:column;gap:2px}
.sa-stat-v{font-size:22px;font-weight:700;color:var(--brand)}
.sa-stat-v--sm{font-size:16px}
.sa-stat-l{font-size:12px;color:var(--text2)}
.sa-stat-sub{font-size:11px;color:var(--text3)}
.sa-acc{border:1px solid var(--border);border-radius:var(--rs);background:var(--surface);overflow:hidden;transition:border-color .15s}
.sa-acc.open{border-color:var(--brand-border)}
.sa-acc-h{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:none;border:none;cursor:pointer;padding:13px 14px;font-family:inherit;text-align:left}
.sa-acc-h:hover{background:var(--bg2)}
.sa-acc-t{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--text)}
.sa-acc-count{font-weight:600;color:var(--text3);font-size:12.5px}
.sa-acc-chev{color:var(--text3);flex-shrink:0;transition:transform .2s ease}
.sa-acc.open .sa-acc-chev{transform:rotate(180deg);color:var(--brand)}
.sa-acc-body{max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s ease,padding .2s ease;padding:0 14px}
.sa-acc.open .sa-acc-body{max-height:1400px;overflow:auto;opacity:1;padding:2px 14px 12px}
.sa-det-more{font-size:12px;color:var(--text3);padding-top:8px;font-style:italic}

/* ── Klikalne wiersze w akordeonie ── */
.sa-det-row2--click{cursor:pointer;border-radius:8px;padding:8px 8px;margin:0 -8px;transition:background .12s}
.sa-det-row2--click:hover{background:var(--bg2)}
.sa-det-row2--click:active{background:var(--brand-bg,var(--bg2))}

}

/* ═══════════════════════════════════════════════════════════
   PROJECTS MODULE
   ═══════════════════════════════════════════════════════════ */

/* ── Status badge ── */
.proj-status-badge{
  display:inline-flex;align-items:center;
  font-size:11px;font-weight:700;
  padding:3px 10px;border-radius:20px;
  background:color-mix(in srgb, var(--sbcol) 15%, transparent);
  color:var(--sbcol);
  border:1px solid color-mix(in srgb, var(--sbcol) 35%, transparent);
  white-space:nowrap;
}
.proj-status-badge--lg{font-size:13px;padding:4px 14px;}

/* ── Project list cards ── */
.proj-card{
  display:flex;gap:12px;align-items:flex-start;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rc);padding:14px;margin-bottom:8px;
  cursor:pointer;transition:box-shadow .13s,border-color .13s;
}
@media(hover:hover){.proj-card:hover{box-shadow:var(--card-shadow);border-color:var(--brand-border);}}
.proj-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.proj-card-title{font-size:15px;font-weight:600;color:var(--text);line-height:1.3;}
.proj-card-meta{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:5px;}
.proj-card-aside{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0;}
.proj-card-actions{display:flex;gap:4px;}
.proj-card-dates{font-size:11px;color:var(--text3);margin-top:2px;}
.proj-card-progress{height:4px;background:var(--border);border-radius:2px;margin-top:4px;overflow:hidden;}
.proj-progress-bar{height:100%;background:var(--brand);border-radius:2px;transition:width .3s;}
.proj-card-prog-lbl{font-size:11px;color:var(--text3);}

/* ── Project detail tab bar ── */
.proj-tab-bar{
  display:flex;gap:0;border-bottom:2px solid var(--border);
  padding:0 16px;background:var(--surface);
  overflow-x:auto;scrollbar-width:none;
}
.proj-tab-bar::-webkit-scrollbar{display:none}
.proj-tab{
  padding:10px 16px;font-size:13px;font-weight:500;
  color:var(--text2);border:none;background:none;
  border-bottom:2px solid transparent;margin-bottom:-2px;
  cursor:pointer;white-space:nowrap;transition:color .13s,border-color .13s;
}
.proj-tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600;}
@media(hover:hover){.proj-tab:not(.active):hover{color:var(--text);}}

/* ── Tab content wrapper ── */
.proj-tab-content{padding:0 0 24px;}
.proj-tab-toolbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0 10px;gap:8px;
}

/* ── Summary tab ── */
.proj-summary{padding:0 0 24px;display:flex;flex-direction:column;gap:12px;}
.proj-sum-badges{display:flex;flex-wrap:wrap;gap:6px;padding-top:4px;}
.proj-sum-chip{
  display:inline-flex;align-items:center;gap:4px;
  font-size:11px;font-weight:500;color:var(--text2);
  padding:3px 10px;border-radius:20px;
  background:var(--surface2);border:1px solid var(--border);
}
.proj-sum-grid{
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rs);overflow:hidden;
}
.proj-sum-row{
  display:flex;align-items:baseline;gap:12px;padding:10px 14px;
  border-bottom:1px solid var(--border2);
}
.proj-sum-row:last-child{border-bottom:none}
.proj-sum-row:nth-child(odd){background:var(--bg)}
.proj-sum-lbl{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.5px;min-width:90px;flex-shrink:0;}
.proj-sum-val{font-size:13px;color:var(--text);flex:1;}
.proj-sum-section-lbl{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-top:4px;}
.proj-prog-wrap{height:8px;background:var(--border);border-radius:4px;overflow:hidden;}
.proj-progress-bar-lg{height:100%;background:var(--brand);border-radius:4px;transition:width .4s;}
.proj-prog-lbl{font-size:12px;color:var(--text2);}
.proj-sum-counters{display:flex;gap:8px;}
.proj-sum-cnt{
  flex:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--rs);
  padding:12px;text-align:center;cursor:pointer;transition:border-color .13s;
}
@media(hover:hover){.proj-sum-cnt:hover{border-color:var(--brand-border);}}
.proj-sum-cnt-val{font-size:24px;font-weight:700;color:var(--brand);}
.proj-sum-cnt-lbl{font-size:11px;color:var(--text2);margin-top:2px;}
.proj-sum-desc{
  font-size:13px;color:var(--text2);line-height:1.6;
  background:var(--surface2);border:1px solid var(--border);
  border-radius:var(--rs);padding:12px;white-space:pre-wrap;
}

/* ── Documents tab ── */
.proj-doc-list{display:flex;flex-direction:column;gap:8px;}
.proj-doc-card{
  display:flex;align-items:flex-start;gap:10px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rs);padding:12px;
}
.proj-doc-icon{color:var(--text3);flex-shrink:0;padding-top:2px;}
.proj-doc-body{flex:1;min-width:0;}
.proj-doc-title{font-size:14px;font-weight:600;color:var(--text);}
.proj-doc-meta{font-size:11px;color:var(--text2);margin-top:2px;}
.proj-doc-desc{font-size:12px;color:var(--text3);margin-top:4px;}
.proj-doc-actions{display:flex;gap:4px;align-items:center;flex-shrink:0;}

/* ── Doc mode toggle (link vs upload) ── */
.proj-doc-mode-toggle{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--rs);overflow:hidden;margin:8px 0;}
.proj-doc-mode-btn{
  flex:1;padding:8px 12px;font-size:13px;font-weight:500;
  background:none;border:none;color:var(--text2);cursor:pointer;
  transition:background .13s,color .13s;
}
.proj-doc-mode-btn.active{background:var(--brand);color:#fff;}

/* ── Tasks tab ── */
.proj-task-list{display:flex;flex-direction:column;gap:8px;}
.proj-task-card{
  display:flex;gap:10px;align-items:flex-start;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rs);padding:12px;
}
.proj-task-card--problem{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.03);}
.proj-task-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;}
.proj-task-status-chip{
  margin-left:auto;flex-shrink:0;
  font-size:10px;font-weight:600;letter-spacing:.3px;
  color:var(--stcol,#888);border:1px solid var(--stcol,#888);
  border-radius:10px;padding:2px 7px;white-space:nowrap;opacity:.9;
}
.proj-task-title{font-size:14px;font-weight:600;color:var(--text);}
.proj-task-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--text2);}
.proj-task-meta span{display:flex;align-items:center;gap:3px;}
.proj-task-problem{font-size:12px;color:#ef4444;display:flex;align-items:center;gap:4px;}
.proj-task-actions-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px;}
.proj-task-btn{
  font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;
  background:var(--surface2,var(--bg));
  color:var(--tbcol);border:1px dashed color-mix(in srgb, var(--tbcol) 55%, transparent);
  cursor:pointer;transition:background .13s,color .13s;white-space:nowrap;
}
@media(hover:hover){.proj-task-btn:hover{
  background:color-mix(in srgb, var(--tbcol) 18%, transparent);
  border-style:solid;
}}
.proj-task-actions{display:flex;flex-direction:column;gap:4px;flex-shrink:0;}
@media(min-width:400px){.proj-task-actions{flex-direction:row;}}

/* ── Mounting Points tab ── */
.proj-mp-list{display:flex;flex-direction:column;gap:8px;}
.proj-mp-card{
  display:flex;gap:10px;align-items:flex-start;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rs);padding:12px;
}
.proj-mp-code{
  font-size:12px;font-weight:700;font-family:monospace;
  color:var(--brand);background:var(--brand-dim);
  border:1px solid var(--brand-border);border-radius:6px;
  padding:3px 8px;white-space:nowrap;flex-shrink:0;align-self:flex-start;
  min-width:44px;text-align:center;letter-spacing:.3px;
}
.proj-mp-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
.proj-mp-title{font-size:14px;font-weight:600;color:var(--text);}
.proj-mp-meta{display:flex;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--text2);}
.proj-mp-meta span{display:flex;align-items:center;gap:3px;}
.proj-mp-desc{font-size:12px;color:var(--text3);margin-top:2px;}
.proj-mp-aside{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0;}
.proj-mp-actions{display:flex;gap:4px;}

/* ── Task card enhancements (code badge, photo, location) ── */
.proj-task-title-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.proj-task-code{
  font-size:11px;font-weight:700;font-family:monospace;
  color:var(--brand);background:var(--brand-dim);
  border:1px solid var(--brand-border);border-radius:5px;
  padding:2px 6px;white-space:nowrap;flex-shrink:0;letter-spacing:.3px;
}
.proj-task-loc{
  display:inline-flex;align-items:center;gap:3px;
  font-size:11px;color:var(--text3);
  background:var(--bg);border:1px solid var(--border);
  border-radius:4px;padding:1px 5px;
}
/* ── Photo strips ── */
.task-photos-strip{
  display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;align-items:flex-start;
}
.proj-task-photo{
  width:55px;height:55px;object-fit:cover;
  border-radius:6px;border:1px solid var(--border);cursor:pointer;flex-shrink:0;
}
.task-photos-more{
  width:55px;height:55px;border-radius:6px;
  background:var(--bg);border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:600;color:var(--text2);flex-shrink:0;
}
/* thumbnails in modal */
.task-photo-thumb{
  position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:2px;
}
.task-photo-thumb img{
  width:72px;height:72px;object-fit:cover;
  border-radius:8px;border:1px solid var(--border);display:block;
}
.task-photo-del{
  position:absolute;top:-5px;right:-5px;
  width:19px;height:19px;border-radius:50%;
  background:#ef383b;color:#fff;border:none;cursor:pointer;
  font-size:13px;line-height:1;display:flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.task-photo-del:hover{background:#c0272a;}
.task-photo-date{font-size:9px;color:var(--text3);text-align:center;}

/* ── PDF Viewer (Etap 4) ── */
#pdf-viewer{
  display:none;position:fixed;inset:0;z-index:900;
  background:var(--bg);overflow:hidden;
}
.pdf-viewer-wrap{display:flex;flex-direction:column;height:100dvh;}
.pdf-viewer-hdr{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;border-bottom:1px solid var(--border);
  background:var(--surface);flex-shrink:0;
}
.pdf-viewer-title{
  flex:1;font-size:14px;font-weight:600;color:var(--text);
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pdf-viewer-nav{display:flex;align-items:center;gap:4px;}
.pdf-zoom-ctrl{display:flex;align-items:center;gap:2px;}
.pdf-zoom-label{font-size:12px;font-weight:600;color:var(--text2);min-width:34px;text-align:center;white-space:nowrap;}
.pdf-viewer-hint{font-size:11px;color:var(--text3);white-space:nowrap;}
@media(max-width:480px){.pdf-viewer-hint{display:none;}}
.pdf-viewer-body{flex:1;overflow:auto;display:flex;justify-content:safe center;align-items:flex-start;padding:8px;}
.pdf-canvas-wrap{
  position:relative;display:inline-block;cursor:crosshair;
  touch-action:pan-x pan-y;
  align-self:flex-start;
}
.pdf-canvas-wrap canvas{display:block;}
#pdf-pins{position:absolute;inset:0;pointer-events:none;}
.pdf-pin{
  position:absolute;transform:translate(-50%,-100%);
  pointer-events:all;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.4));
  transition:filter .13s,transform .13s;
  z-index:2;user-select:none;-webkit-user-select:none;touch-action:none;
}
@media(hover:hover){.pdf-pin:hover{filter:drop-shadow(0 3px 8px rgba(0,0,0,.55));transform:translate(-50%,-100%) scale(1.18);}}
.pdf-pin--drag{
  opacity:.82;
  filter:drop-shadow(0 5px 13px rgba(0,0,0,.55));
  transform:translate(-50%,-100%) scale(1.21);
  transition:none;cursor:grabbing;z-index:5;
}
.pdf-pin-svg{width:26px;height:34px;display:block;}
.pdf-pin-label{
  position:absolute;top:4px;left:50%;transform:translateX(-50%);
  color:#fff;font-size:8px;font-weight:800;font-family:monospace;
  white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.4);
  max-width:22px;overflow:hidden;text-overflow:ellipsis;
  pointer-events:none;
}
/* ── Pin tooltip popup ── */
.pdf-pin-popup{
  position:absolute;z-index:10;
  background:var(--surface,#fff);border-radius:10px;
  box-shadow:0 4px 20px rgba(0,0,0,.25);
  padding:12px 14px 10px;
  min-width:180px;max-width:252px;
  pointer-events:all;
}
.pdf-pin-popup-close{
  position:absolute;top:7px;right:8px;
  background:none;border:none;font-size:13px;
  cursor:pointer;color:var(--text2);padding:2px 4px;
}
.pdf-pin-popup-title{font-weight:700;font-size:12px;margin-bottom:5px;padding-right:18px;line-height:1.35;}
.pdf-pin-popup-chip{
  display:inline-flex;align-items:center;
  padding:2px 8px;border-radius:20px;
  font-size:10px;font-weight:700;
  background:var(--pin-col,#6366f1);color:#fff;
  margin-bottom:7px;
}
.pdf-pin-popup-sep{height:1px;background:var(--border);margin:5px 0;}
.pdf-pin-popup-label{font-size:10px;color:var(--text2);font-weight:500;margin-bottom:4px;}
.pdf-pin-popup-btns{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:6px;}
.pdf-pin-popup-st{
  padding:2px 7px;border-radius:5px;
  border:1.5px solid var(--st-col,#94a3b8);
  background:none;color:var(--st-col,#94a3b8);
  font-size:10px;font-weight:600;cursor:pointer;
  transition:background .1s,color .1s;
}
.pdf-pin-popup-st:hover,.pdf-pin-popup-st.active{background:var(--st-col,#94a3b8);color:#fff;}
.pdf-pin-popup-photo{
  display:flex;align-items:center;gap:5px;
  padding:5px 8px;border-radius:7px;
  border:none;background:var(--surface2,#f1f5f9);
  color:var(--text);font-size:11px;font-weight:500;
  cursor:pointer;transition:background .13s;
  margin-top:2px;width:100%;box-sizing:border-box;
}
.pdf-pin-popup-photo:hover{background:var(--border,#e2e8f0);}
.pdf-pin-popup-del{
  display:flex;align-items:center;gap:5px;
  padding:5px 8px;border-radius:7px;
  border:none;background:rgba(239,56,59,.08);
  color:#ef383b;font-size:11px;font-weight:500;
  cursor:pointer;transition:background .13s;
  margin-top:3px;width:100%;box-sizing:border-box;
}
.pdf-pin-popup-del:hover{background:rgba(239,56,59,.18);}
.pdf-msg{
  display:flex;align-items:center;justify-content:center;
  min-height:200px;font-size:13px;color:var(--text2);
  text-align:center;padding:24px;
}

/* ── Location picker (Etap 5) ── */
.task-loc-wrap{display:flex;flex-direction:column;gap:6px;margin-top:2px;}
.task-loc-row{display:flex;gap:6px;align-items:center;}
.task-loc-select{
  flex:1;min-width:0;
  background:var(--surface2,var(--bg));border:1px solid var(--border);
  border-radius:8px;padding:7px 10px;font-size:13px;color:var(--text);
  outline:none;cursor:pointer;
}
.task-loc-select:focus{border-color:var(--accent);}
.task-loc-pin-btn{
  display:flex;align-items:center;gap:5px;white-space:nowrap;flex-shrink:0;
  padding:7px 13px;border-radius:8px;font-size:13px;font-weight:500;
  background:var(--accent);color:#fff;border:none;cursor:pointer;
  transition:opacity .13s;
}
.task-loc-pin-btn:hover{opacity:.88;}
.task-loc-empty{font-size:12px;color:var(--text2);padding:6px 0;}
.link-btn{
  background:none;border:none;padding:0;margin-left:5px;
  color:var(--accent);font-size:12px;font-weight:500;cursor:pointer;
  text-decoration:underline;
}
.task-loc-pin-display{
  font-size:12px;color:var(--text3);padding:5px 8px;
  background:var(--bg);border:1px dashed var(--border);border-radius:6px;
  display:flex;align-items:center;gap:5px;
}
.task-loc-pin-display--set{
  color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);
}
/* Banner w trybie wyboru lokalizacji */
.pdf-pick-banner{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:color-mix(in srgb,var(--accent) 15%,transparent);
  border-bottom:2px solid var(--accent);
  padding:10px 16px;font-size:13px;font-weight:500;color:var(--accent);
  flex-shrink:0;
}
.pdf-pick-cancel{
  background:none;border:1px solid var(--accent);border-radius:6px;
  padding:4px 10px;font-size:12px;font-weight:600;
  color:var(--accent);cursor:pointer;white-space:nowrap;
  transition:background .13s,color .13s;
}
.pdf-pick-cancel:hover{background:var(--accent);color:#fff;}
.pdf-pick-save{
  background:var(--accent);border:none;border-radius:6px;
  padding:4px 12px;font-size:12px;font-weight:600;
  color:#fff;cursor:pointer;white-space:nowrap;
  transition:opacity .13s;
}
.pdf-pick-save:hover{opacity:.85;}
/* Mobile pick actions (hidden on desktop) */
.pdf-mobile-pick{display:none;align-items:center;gap:6px;margin-left:auto;}
@media(max-width:600px){
  .pdf-zoom-ctrl{display:none!important;}
  .pdf-pick-banner{display:none!important;}
  .pdf-mobile-pick{display:flex;}
}
.pdf-mob-save{
  background:var(--accent);border:none;border-radius:8px;
  padding:5px 13px;font-size:13px;font-weight:600;
  color:#fff;cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:opacity .13s;
}
.pdf-mob-save:hover{opacity:.85;}
.pdf-mob-cancel{
  background:none;border:1px solid var(--border);border-radius:8px;
  padding:5px 10px;font-size:13px;font-weight:500;
  color:var(--text2);cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .13s;
}
.pdf-mob-cancel:hover{background:rgba(0,0,0,.05);}
/* Preview pin w trybie pick */
.pdf-pick-preview{
  position:absolute;width:28px;height:28px;
  margin-left:-14px;margin-top:-14px;
  border:2px dashed var(--accent);border-radius:50%;
  background:rgba(239,56,59,.13);pointer-events:none;
  animation:pick-pulse 1s ease-in-out infinite;
}
@keyframes pick-pulse{
  0%,100%{transform:scale(1);opacity:1;}
  50%{transform:scale(1.21);opacity:.7;}
}

/* ─── LIGHTBOX ──────────────────────────────────────────────── */
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;}
.lightbox-img{max-width:100%;max-height:100%;object-fit:contain;user-select:none;pointer-events:none;display:block;}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.13);border:none;color:#fff;font-size:28px;padding:10px 17px;cursor:pointer;border-radius:8px;line-height:1;backdrop-filter:blur(4px);transition:background .13s;}
.lightbox-nav:hover{background:rgba(255,255,255,.26);}
.lightbox-prev{left:13px;}
.lightbox-next{right:13px;}
.lightbox-close{position:absolute;top:13px;right:13px;background:rgba(255,255,255,.13);border:none;color:#fff;font-size:18px;padding:8px 13px;cursor:pointer;border-radius:8px;backdrop-filter:blur(4px);line-height:1;transition:background .13s;}
.lightbox-close:hover{background:rgba(255,255,255,.26);}
.lightbox-counter{position:absolute;bottom:21px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.85);font-size:13px;background:rgba(0,0,0,.5);padding:4px 13px;border-radius:20px;white-space:nowrap;}

/* ─── OFFER MODE SELECTION ───────────────────────────────── */
/* ── JEDEN wzorzec wyboru sposobu wprowadzania (oferta, czas pracy, …) ──
   Wcześniej były dwa osobne bloki: .offer-mode-* i .wt-how-*. Nowe miejsca
   używają WYŁĄCZNIE .mode-pick-*. Opcjonalny <small> = krótka podpowiedź.
   Kafel „głosowo" wyróżniany kolorem FIRMY (--brand) — poprzednio celował
   w --accent, który nigdzie nie jest zdefiniowany, więc nie działał wcale. */
.mode-pick-body{padding:21px 20px 24px}
.mode-pick-label{font-size:14px;color:var(--text2);margin:0 0 16px;text-align:center}
.mode-pick{display:flex;gap:13px;justify-content:center}
.mode-pick-btn{flex:1;max-width:144px;display:flex;flex-direction:column;align-items:center;gap:8px;
  padding:21px 13px;border-radius:13px;border:2px solid var(--border);background:var(--surface2);
  color:var(--text);font-size:15px;font-weight:600;cursor:pointer;transition:border-color .13s,background .13s}
.mode-pick-btn:active{background:var(--surface)}
@media(hover:hover){.mode-pick-btn:hover{border-color:var(--brand)}}
.mode-pick-btn--voice{border-color:var(--brand);color:var(--brand)}
.mode-pick-btn--voice:active{background:var(--brand-dim)}
.mode-pick-btn small{font-weight:400;font-size:11px;color:var(--text3);line-height:1.3;text-align:center}

/* ─── RECORDING MODAL ────────────────────────────────────── */
.rec-modal{min-width:280px;}
.rec-body{display:flex;flex-direction:column;align-items:center;gap:13px;padding:28px 20px 8px;}
.rec-dot-row{display:flex;align-items:center;gap:8px;}
.rec-dot{width:13px;height:13px;border-radius:50%;background:#ef383b;animation:recPulse 1.3s ease-in-out infinite;}
@keyframes recPulse{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.34);opacity:.6;}}
.rec-badge{font-size:12px;font-weight:700;color:#ef383b;letter-spacing:.08em;}
.rec-client{font-size:15px;font-weight:600;color:var(--text);text-align:center;}
.rec-timer{font-size:42px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.03em;}
.rec-hint{font-size:13px;color:var(--text2);text-align:center;line-height:1.5;margin:0;}
.rec-footer{display:flex;gap:8px;padding:13px 20px 20px;justify-content:flex-end;}
.rec-sending-icon{opacity:.55;}
/* TRANSCRIPTION RESULT */
.transcript-body{padding:16px 20px;max-height:55vh;overflow-y:auto;}
.transcript-text{font-size:14px;color:var(--text);line-height:1.7;white-space:pre-wrap;word-break:break-word;}
.transcript-footer{display:flex;justify-content:flex-end;padding:8px 20px 20px;}

/* ═══════════ ANKIETA PREFERENCJI (app-survey) ═══════════ */
.settings-card{background:var(--surface,#1d1916);border:1px solid var(--border);border-radius:var(--rl,16px);padding:18px;}
.sc-head h3{font-size:16px;margin:0 0 4px;}
.sc-sub{font-size:13px;color:var(--text3);margin:0 0 16px;}
.sc-loading{color:var(--text3);font-size:13px;padding:12px 0;text-align:center;}

/* edytor szablonu */
.surv-sec{border:1px solid var(--border);border-radius:var(--rs,12px);padding:13px;margin-bottom:13px;background:var(--bg2);}
.surv-sec-head{display:flex;gap:8px;align-items:center;margin-bottom:11px;}
.surv-sec-title{flex:1;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:15px;font-weight:600;padding:5px 2px;outline:none;}
.surv-sec-title:focus{border-color:var(--brand);}
.surv-items{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
.surv-item{border:1px solid var(--border);border-radius:10px;padding:9px 11px;background:var(--surface);}
.surv-item.surv-off{opacity:.5;}
.surv-item-row{display:flex;gap:8px;align-items:center;}
.surv-en{display:flex;align-items:center;}
.surv-txt{flex:1;background:transparent;border:none;color:var(--text);font-size:14px;font-weight:500;outline:none;padding:3px 2px;}
.surv-more{margin-top:7px;}
.surv-more summary{font-size:12px;color:var(--text3);cursor:pointer;list-style:none;}
.surv-more summary::-webkit-details-marker{display:none;}
.surv-more summary:before{content:'▸ ';}
.surv-more[open] summary:before{content:'▾ ';}
.surv-desc{width:100%;margin-top:8px;background:var(--bg2);border:1px solid var(--border);border-radius:9px;padding:8px 10px;color:var(--text2);font-family:inherit;font-size:13px;outline:none;resize:vertical;}
.surv-keys-lbl{font-size:11px;color:var(--text3);margin:9px 0 5px;}
.surv-keys{display:flex;flex-wrap:wrap;gap:6px 12px;}
.surv-keychk{font-size:12px;color:var(--text2);display:flex;align-items:center;gap:4px;}
.surv-editor-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;}

/* blok ankiety w ofercie */
.surv-status-row{display:flex;gap:8px;align-items:center;}
.surv-st{font-size:12px;font-weight:600;padding:4px 10px;border-radius:8px;}
.surv-st-done{color:#0f7a3c;background:rgba(26,162,81,.14);border:1px solid rgba(26,162,81,.45);}
.surv-st-wait{color:#b46f06;background:rgba(224,146,26,.14);border:1px solid rgba(224,146,26,.4);}
.surv-hint{font-size:12px;color:var(--text3);margin-top:6px;}
.surv-gap{margin-top:14px;border:1px solid var(--border);background:var(--surface);border-radius:13px;padding:14px 16px;}
.surv-gap-h{font-size:13px;font-weight:700;color:var(--brand);margin-bottom:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.4px}
.surv-cnt{font-size:11px;font-weight:700;letter-spacing:.3px;padding:3px 10px;border-radius:999px}
.surv-cnt-tak{background:rgba(26,162,81,.12);color:#0f7a3c;border:1px solid rgba(26,162,81,.34)}
.surv-cnt-moze{background:rgba(224,146,26,.12);color:#b46f06;border:1px solid rgba(224,146,26,.34)}
.surv-gap-items{display:grid;grid-template-columns:1fr;gap:0 21px}
@media(min-width:700px){.surv-gap-items{grid-template-columns:1fr 1fr}}
.surv-gap-item{display:flex;gap:9px;align-items:center;padding:8px 2px;flex-wrap:wrap;border-top:1px solid var(--border);}
.surv-gap-items .surv-gap-item:nth-of-type(1){border-top:none}
@media(min-width:700px){.surv-gap-items .surv-gap-item:nth-of-type(2){border-top:none}}
.surv-gap-a{flex:none;font-size:11px;font-weight:800;letter-spacing:.3px;padding:2px 9px;border-radius:7px;color:#fff;}
.surv-a-tak{background:#1aa251;}
.surv-a-moze{background:#e0921a;}
.surv-a-nie{background:#ef4d50;}
.surv-gap-t{font-size:14px;color:var(--text);font-weight:500;}
.surv-gap-note{flex-basis:100%;font-size:12px;color:var(--text3);padding-left:6px;}
.surv-general{margin-top:10px;font-size:13.5px;color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:10px 13px;line-height:1.55}
.surv-allans{margin-top:11px;font-size:13px;}
.surv-allans summary{color:var(--text3);cursor:pointer;font-size:12px;}
.surv-ans-row{display:flex;gap:7px;align-items:baseline;padding:4px 0;color:var(--text2);font-size:13px;}
.surv-thread-h{font-size:13px;font-weight:600;color:var(--text);margin:16px 0 9px;}
.surv-thread{display:flex;flex-direction:column;gap:8px;}
.surv-msg{padding:9px 12px;border-radius:11px;max-width:88%;}
.surv-msg-client{background:var(--bg2);border:1px solid var(--border);}
.surv-msg-staff{background:var(--brand-dim,rgba(59,110,247,.08));border:1px solid var(--brand-border,var(--border));margin-left:auto;}
.surv-msg-who{font-size:11px;color:var(--text3);margin-bottom:2px;}
.surv-msg-b{font-size:14px;color:var(--text);white-space:pre-wrap;}
.surv-reply{display:flex;gap:8px;margin-top:12px;}
.surv-reply input{flex:1;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 12px;color:var(--text);font-family:inherit;font-size:14px;outline:none;}
.surv-reply input:focus{border-color:var(--brand);}

/* ═══ Logo firmy (Ustawienia → Dane firmy) ═══ */
.logo-set{display:flex;gap:16px;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rl,16px);padding:15px;margin-bottom:16px;}
.logo-set-prev{flex:none;width:96px;height:64px;border-radius:10px;background:#fff;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.logo-set-prev img{max-width:100%;max-height:100%;object-fit:contain;}
.logo-set-prev span{font-size:11px;color:var(--text3);}
.logo-set-actions{flex:1;min-width:0;}
.logo-set-h{font-size:14px;font-weight:600;color:var(--text);}
.logo-set-sub{font-size:12px;color:var(--text3);margin:2px 0 10px;}
.logo-set-btns{display:flex;gap:8px;flex-wrap:wrap;}
.logo-up-btn{cursor:pointer;display:inline-flex;align-items:center;gap:6px;}

/* ═══ Ankieta samodzielna (modal klienta/leada) ═══ */
.surv-aa{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);margin-top:11px;cursor:pointer;}
.surv-aa input{width:16px;height:16px;}
.surv-cli-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.surv-cli-actions .btn-sm{display:inline-flex;align-items:center;gap:6px;text-decoration:none;}

/* ═══ Moduł Faktury (app-invoices) ═══ */
.inv-toolbar{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px;}
.inv-count{font-size:13px;color:var(--text3);font-weight:600;}
.inv-list{display:flex;flex-direction:column;gap:10px;}
.inv-card{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow,0 1px 2px rgba(0,0,0,.04));}
.inv-card-main{flex:1;min-width:0;}
.inv-card-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px;}
.inv-num{font-size:15px;font-weight:700;color:var(--text);}
.inv-badge{font-size:11px;font-weight:700;color:#fff;background:var(--c,#888);border-radius:7px;padding:2px 8px;letter-spacing:.2px;}
.inv-buyer{font-size:14px;color:var(--text);font-weight:500;}
.inv-meta{font-size:12.5px;color:var(--text3);margin-top:2px;}
.inv-err{font-size:12px;color:#cf2b2e;margin-top:5px;display:flex;align-items:center;gap:5px;}
.inv-err-help{font-size:12px;color:var(--text2);margin-top:6px;line-height:1.5;background:var(--bg2);border:1px solid var(--border);border-left:3px solid #e0921a;border-radius:8px;padding:8px 10px}
.inv-err-help b{color:var(--text)}
.inv-card-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end;}
.inv-card-actions .btn-sm{display:inline-flex;align-items:center;gap:5px;text-decoration:none;}
.inv-card-actions a.btn-icon{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;}
/* edytor pustej faktury */
.inv-form-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin:16px 0 8px;}
.inv-row2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.inv-items-head{display:grid;grid-template-columns:2.4fr .8fr .7fr 1fr .7fr 32px;gap:6px;font-size:11px;color:var(--text3);padding:0 2px 5px;}
.inv-item-row{display:grid;grid-template-columns:2.4fr .8fr .7fr 1fr .7fr 32px;gap:6px;margin-bottom:6px;align-items:center;}
.inv-item-row input,.inv-item-row select{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:8px 9px;color:var(--text);font-family:inherit;font-size:13px;outline:none;}
.inv-item-row select{cursor:pointer;-webkit-appearance:none;appearance:none;padding-right:9px;}
.inv-item-row input:focus,.inv-item-row select:focus{border-color:var(--brand,#ef383b);}
.inv-total-row{margin-top:12px;text-align:right;font-size:15px;color:var(--text2);}
.inv-total-row b{font-size:19px;color:var(--text);}
@media(max-width:560px){.inv-row2{grid-template-columns:1fr;}.inv-card{flex-direction:column;}.inv-card-actions{justify-content:flex-start;}}

/* ── Typ nabywcy: Firma / Osoba prywatna (segmented) ── */
.inv-btype{display:flex;margin:0 0 12px;border:1px solid var(--border);border-radius:11px;overflow:hidden;background:var(--surface);}
.inv-btype-opt{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:10px 12px;border:none;background:transparent;color:var(--text2);font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;}
.inv-btype-opt+.inv-btype-opt{border-left:1px solid var(--border);}
.inv-btype-opt.is-on{background:linear-gradient(135deg,#1ca980,#3bf7a0);color:#fff;}
@media(hover:hover){.inv-btype-opt:not(.is-on):hover{background:var(--surface2,rgba(127,127,127,.08));color:var(--text);}}
.inv-nip-row{display:flex;gap:8px;align-items:center;}
.inv-nip-row input{flex:1;min-width:0;}

/* ── Dane firmowe klienta (karta opcjonalna, akcent fioletowy = Firma) ── */
.cbiz{margin:2px 0;border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--surface);transition:border-color .2s,box-shadow .2s;}
.cbiz.is-on{border-color:#7b6cf0;box-shadow:0 0 0 3px rgba(123,108,240,.10);}
.cbiz-head{display:flex;align-items:center;gap:11px;padding:13px 15px;}
.cbiz-ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:rgba(123,108,240,.12);color:#7b6cf0;flex-shrink:0;transition:background .2s,color .2s;}
.cbiz.is-on .cbiz-ico{background:linear-gradient(135deg,#7b6cf0,#a78bfa);color:#fff;}
.cbiz-tt{display:flex;flex-direction:column;gap:1px;min-width:0;}
.cbiz-tt b{font-size:14.5px;color:var(--text);}
.cbiz-tt span{font-size:12px;color:var(--text3);}
.cbiz-body{display:flex;flex-direction:column;gap:13px;padding:0 15px 15px;}
.cbiz-note{display:flex;align-items:flex-start;gap:7px;margin:2px 0 0;font-size:12px;line-height:1.45;color:var(--text3);}
.cbiz-note svg{flex-shrink:0;margin-top:2px;color:#7b6cf0;}
.cbiz-note b{color:var(--text2);}
.cli-contact{font-size:12px;color:var(--text3);display:flex;align-items:center;gap:5px;margin-top:1px;}
.cli-contact svg{flex-shrink:0;opacity:.7;}
.client-profile-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-top:3px;}

/* ═══ Faktury — zakładki sprzedaż/zakup, miesiąc, walidacja ═══ */
.inv-tabs{display:flex;gap:8px;margin-bottom:14px;}
.inv-tab{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;}
.inv-tab.is-on{background:linear-gradient(135deg,#1ca980,#3bf7a0);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(28,169,128,.25);}
.inv-toolbar-r{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.inv-month{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 10px;color:var(--text2);font-size:13px;}
.inv-mnav{display:inline-flex;align-items:center;gap:4px}
.inv-mnav-btn{background:var(--surface);border:1px solid var(--border);border-radius:9px;min-width:30px;height:32px;color:var(--text2);font-size:17px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 7px}
.inv-mnav-btn:hover{background:var(--bg2);color:var(--text)}
.inv-acc{display:inline-flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px 8px;font-size:13px;color:var(--text2)}
.inv-acc-lbl{font-size:12px;color:var(--text3)}
.inv-acc-m{font-weight:700;color:var(--text);min-width:58px;text-align:center}
.inv-month input{border:none;background:transparent;color:var(--text);font-family:inherit;font-size:13px;outline:none;}
.inv-form-err{display:none;margin-top:12px;background:rgba(239,56,59,.08);border:1px solid rgba(239,56,59,.3);color:#cf2b2e;border-radius:11px;padding:11px 14px;font-size:13.5px;font-weight:500;}
.inv-zakup-info{display:flex;align-items:flex-start;gap:8px;background:rgba(59,110,247,.07);border:1px solid rgba(59,110,247,.22);color:var(--text2);border-radius:11px;padding:11px 14px;font-size:13px;margin-bottom:14px;}
.inv-zakup-info b{color:var(--text);}
.inv-prev-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;}
.inv-prev-buyer{font-size:14px;color:var(--text);line-height:1.5;}
.inv-prev-tbl{width:100%;border-collapse:collapse;font-size:13.5px;}
.inv-prev-tbl th{text-align:left;color:var(--text3);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:6px 8px;border-bottom:1px solid var(--border);}
.inv-prev-tbl td{padding:8px;border-bottom:1px solid var(--border);color:var(--text);}
.inv-sec-flex{display:flex;justify-content:space-between;align-items:center;gap:10px;}

/* ═══ Podgląd zadania (interaktywny) ═══ */
.tp-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.tp-title{font-size:17px;font-weight:700;color:var(--text);}
.tp-meta{display:flex;flex-direction:column;}
.tp-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px;}
.tp-row:last-child{border-bottom:none;}
.tp-lbl{color:var(--text3);}
.tp-val{color:var(--text);font-weight:500;text-align:right;}
.tp-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin:16px 0 8px;}
.tp-notes{font-size:14px;color:var(--text2);white-space:pre-wrap;line-height:1.5;}
.tp-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.tp-actions .btn-primary,.tp-actions .btn-secondary{display:inline-flex;align-items:center;gap:6px;}

/* ═══ Podgląd faktury (desktop — szerszy, czytelny) ═══ */
.modal-prev{max-width:820px}
.ipv-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:4px;flex-wrap:wrap}
.ipv-num{font-size:24px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
.ipv-badges{display:flex;gap:6px;flex-wrap:wrap}
.ipv-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:620px){.ipv-cols{grid-template-columns:1fr}}
.ipv-card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.ipv-card-t{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:8px}
.ipv-buyer-name{font-size:16px;font-weight:700;color:var(--text)}
.ipv-buyer-line{font-size:14px;color:var(--text2);margin-top:3px}
.ipv-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:5px 0;color:var(--text2)}
.ipv-row b{color:var(--text);font-weight:600}
.ipv-tbl-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}
.ipv-tbl{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
.ipv-tbl th{text-align:left;background:var(--bg2);color:var(--text3);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.4px;padding:10px 12px;border-bottom:1px solid var(--border)}
.ipv-tbl td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text)}
.ipv-tbl tbody tr:last-child td{border-bottom:none}
.ipt-r{text-align:right;white-space:nowrap}
.ipt-n{width:30px;color:var(--text3);text-align:center}
.ipv-totals{margin-top:4px;margin-left:auto;width:100%;max-width:340px}
.ipv-tot-row{display:flex;justify-content:space-between;padding:7px 0;font-size:15px;color:var(--text2)}
.ipv-grand{border-top:2px solid var(--border);margin-top:6px;padding-top:12px;font-size:21px;font-weight:800;color:var(--text)}
.mo-row--inv{flex-wrap:wrap;gap:8px;}
.mo-row--inv .btn-primary,.mo-row--inv .btn-secondary,.mo-row--inv .btn-cancel{display:inline-flex;align-items:center;gap:6px;}

/* ═══ Nowa oferta — formularz (typ + wyszukiwarka klienta) ═══ */
.of-form-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);margin-bottom:8px;}
.of-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.of-type-grid .of-type-chip{padding:8px 10px;font-size:13px;text-align:center}
/* zwarty formularz nowej oferty — sekcje blisko pól */
.modal-body--tight{gap:6px}
.modal-body--tight .of-form-sec{margin:10px 0 2px}
.modal-body--tight .of-form-sec:first-child{margin-top:0}
/* dymek podpowiedzi (i) — hinty przy etykietach zamiast akapitów */
.info-tip{position:relative;display:inline-flex;align-items:center;color:var(--text3);cursor:help;vertical-align:-2px;margin-left:5px;text-transform:none;letter-spacing:0}
.info-tip:hover,.info-tip:focus{color:var(--brand);outline:none}
.info-tip-pop{display:none;position:absolute;bottom:calc(100% + 8px);left:-8px;width:min(260px,72vw);background:#1e2433;color:#f1f5f9;border:1px solid rgba(255,255,255,.13);border-radius:10px;padding:9px 11px;font-size:12px;font-weight:500;line-height:1.5;z-index:60;box-shadow:0 8px 24px rgba(0,0,0,.35);white-space:normal}
.info-tip:hover .info-tip-pop,.info-tip:focus .info-tip-pop{display:block}
.of-type-chip{padding:9px 16px;border-radius:11px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:all .12s;}
.of-cennik-sel{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:10px 11px;color:var(--text1);font-family:'Outfit',sans-serif;font-size:14px;outline:none}
.of-cennik-sel:focus{border-color:var(--brand)}
.of-cennik-hint{font-size:12px;color:var(--text3);margin-top:6px;line-height:1.5;font-style:italic}
.of-type-chip.is-on{background:linear-gradient(135deg,#1ca980,#3bf7a0);color:#fff;border-color:transparent;box-shadow:0 4px 12px rgba(28,169,128,.22);}
.of-cli-list{max-height:min(42vh,340px);min-height:55px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;}
@media(max-width:640px){.of-cli-list{max-height:min(30vh,233px)}}
.of-cli-list .pick-client-item{border-bottom:1px solid var(--border);}
.of-cli-list .pick-client-item:last-child{border-bottom:none;}
.pick-client-item.is-sel{background:rgba(28,169,128,.08);}
.of-picked{background:rgba(28,169,128,.08);border:1px solid rgba(28,169,128,.25);border-radius:10px;padding:9px 12px;font-size:14px;color:var(--text);margin-bottom:4px;display:flex;align-items:center;gap:6px;}

/* ── PODGLĄD OFERTY (2026-07-06) ── */
.of-pv-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.of-pv-client{font-size:20px;font-weight:800;letter-spacing:-.3px;margin-bottom:6px}
.of-pv-actions{display:flex;gap:8px;flex-wrap:wrap}
.of-link-a{color:#2563eb;cursor:pointer;text-decoration:none;border-bottom:1px solid transparent}
.of-link-a:hover{border-bottom-color:currentColor}
.of-pv-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.of-pv-cell{background:var(--surface);padding:11px 14px;display:flex;flex-direction:column;gap:3px;min-width:0}
.of-pv-wide{grid-column:1/-1}
.of-pv-k{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text3)}
.of-pv-v{font-size:14px;color:var(--text);word-break:break-word}
.of-pv-intro{margin-top:14px;padding:13px 15px;background:var(--surface);border:1px solid var(--border);border-left:3px solid #2563eb;border-radius:10px;color:var(--text2);font-size:14px;white-space:pre-wrap}
.of-pv-table td{padding:11px 12px;font-size:14px}
.of-pv-nm{font-weight:600}
.of-pv-tag{display:inline-block;margin-left:8px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--text3);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1px 6px;vertical-align:middle}
.of-pv-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.of-pv-val{font-weight:700}
.of-pv-empty{text-align:center;padding:26px 16px;background:var(--surface);border:1px dashed var(--border);border-radius:12px;color:var(--text2)}
.of-pv-empty p{margin:0 0 12px}
.of-pv-tr{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--border);font-size:14px}
.of-pv-tr:first-child{border-top:none}
.of-pv-tr-amt{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.of-pv-tr-pct{font-weight:500;color:var(--text3)}
@media(max-width:560px){.of-pv-grid{grid-template-columns:1fr}.of-pv-cell{grid-column:1/-1}}
/* ── FAKTURY: brak integracji + ankieta KSeF (2026-07-06) ── */
.inv-noint{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:34px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:8px}
.inv-noint-ic{display:flex;align-items:center;justify-content:center;width:66px;height:66px;border-radius:18px;background:var(--surface2);color:var(--text3)}
.inv-noint h3{margin:0;font-size:18px;font-weight:800;color:var(--text)}
.inv-noint p{margin:0;max-width:54ch;color:var(--text2);font-size:14px;line-height:1.55}
.inv-noint .btn-primary{margin-top:6px;width:auto;padding:11px 20px}
.inv-noint-hint{font-size:13px;color:var(--text3)}
.inv-survey{margin-top:14px;background:var(--surface);border:1px solid var(--border);border-left:3px solid #2563eb;border-radius:12px;padding:15px 17px;display:flex;flex-direction:column;gap:11px}
.inv-survey-q{font-size:14px;color:var(--text);line-height:1.5}
.inv-survey-btns{display:flex;gap:9px;flex-wrap:wrap}
.inv-sec-h{margin:22px 0 10px;font-size:12px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text3)}
/* ── USTAWIENIA: układ kart wypełniający szerokość (2026-07-06) ── */
.settings-cards{columns:2;column-gap:18px;padding:6px 0;align-self:stretch;width:100%}
.settings-cards > *{break-inside:avoid;-webkit-column-break-inside:avoid;margin:0 0 16px}
@media(max-width:820px){.settings-cards{columns:1}}

/* ── ZAINTERESOWANIA LEADA (szanse sprzedażowe) ── */
.ltags{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}
.ltag{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:3px 9px;border-radius:20px;
  background:rgba(59,110,247,.10);color:#2b56c9;border:1px solid rgba(59,110,247,.26)}
.ltag b{font-weight:700;opacity:.75}
.ltags--mini .ltag{font-size:10px;padding:1px 7px;gap:3px}
.ld-tags-box{background:var(--surface2);border:1px solid var(--border);border-radius:var(--r);padding:11px 13px;margin-bottom:12px}
.ld-tags-hdr{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--text2);margin-bottom:6px}
.ld-tags-hdr .btn-sm{margin-left:auto}
.ld-tags-sum{font-size:13px;color:var(--text2);margin-top:5px}
.ld-tags-sum b{color:var(--brand);font-size:15px}
.ld-tags-empty{font-size:12.5px;color:var(--text3);line-height:1.5}
.lt-list{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.lt-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--border)}
.lt-row:first-child{border-top:0}
.lt-pick{flex:1;text-align:left;background:var(--surface2);border:1px solid var(--border);border-radius:20px;
  padding:7px 13px;font-family:'Outfit',sans-serif;font-size:13.5px;color:var(--text2);cursor:pointer}
.lt-row.is-on .lt-pick{background:rgba(59,110,247,.12);border-color:rgba(59,110,247,.4);color:#2b56c9;font-weight:600}
.lt-val{width:104px;border:1px solid var(--border);border-radius:var(--rs);padding:7px 9px;font-family:'Outfit',sans-serif;
  font-size:13.5px;background:var(--bg2);color:var(--text);text-align:right}
.lt-val:disabled{opacity:.4}
.lt-cur{font-size:12px;color:var(--text3);width:18px}
.lt-sum{margin-top:11px;text-align:right;font-size:14px;color:var(--text2)}
.lt-sum b{font-size:18px;color:var(--brand)}
/* słownik w ustawieniach */
.ltc-list{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.ltc-row{display:flex;align-items:center;gap:7px;padding:5px 0;border-top:1px solid var(--border)}
.ltc-row:first-child{border-top:0}
.ltc-emoji{width:46px;text-align:center;border:1px solid var(--border);border-radius:var(--rs);padding:6px;background:var(--bg2);font-size:15px}
.ltc-label{flex:1;min-width:110px;border:1px solid var(--border);border-radius:var(--rs);padding:7px 9px;
  font-family:'Outfit',sans-serif;font-size:13.5px;background:var(--bg2);color:var(--text)}
.ltc-value{width:104px;text-align:right;border:1px solid var(--border);border-radius:var(--rs);padding:7px 9px;
  font-family:'Outfit',sans-serif;font-size:13.5px;background:var(--bg2);color:var(--text)}
.ltc-cur{font-size:12px;color:var(--text3)}
/* marketing: szanse */
.mk-tags{display:flex;flex-direction:column;gap:11px;padding:13px 16px}
.mk-tag{background:var(--surface2);border:1px solid var(--border);border-radius:var(--rs);padding:11px 13px}
.mk-tag-top{display:flex;justify-content:space-between;align-items:baseline;gap:11px;flex-wrap:wrap}
.mk-tag-name{font-size:14px;font-weight:700;color:var(--text)}
.mk-tag-est{font-size:15px;font-weight:800;color:var(--brand)}
.mk-tag-bar{height:6px;border-radius:4px;background:var(--border);margin:7px 0 9px;overflow:hidden}
.mk-tag-bar span{display:block;height:100%;background:linear-gradient(90deg,#3b6ef7,#a84ff7)}
.mk-tag-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:7px}
.mk-tag-stats div{display:flex;flex-direction:column}
.mk-tag-stats span{font-size:11px;color:var(--text3)}
.mk-tag-stats b{font-size:13.5px;color:var(--text)}
.mk-tag-stats i{font-style:normal;font-size:11.5px;color:var(--text3)}
.lt-m2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface2);border:1px solid var(--border);
  border-radius:var(--rs);padding:9px 12px;margin-top:9px}
.lt-m2 label{font-size:13px;font-weight:600;color:var(--text2)}
.lt-m2 input{width:96px;border:1px solid var(--border);border-radius:var(--rs);padding:7px 9px;text-align:right;
  font-family:'Outfit',sans-serif;font-size:14px;font-weight:700;background:var(--bg2);color:var(--text)}
.lt-m2 span{font-size:13px;color:var(--text2)}
.lt-m2 i{flex:1;min-width:150px;font-style:normal;font-size:11.5px;color:var(--text3)}
.lt-pick i{font-style:normal;font-size:11px;color:var(--text3);margin-left:6px}
.ld-m2{font-size:11.5px;color:var(--text3);font-weight:500}
/* kilka ankiet: pasek szablonów + wybór przy wysyłce */
.surv-tpls{display:flex;gap:6px;flex-wrap:wrap;padding:0 0 13px}
.surv-tpl{font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;padding:7px 14px;border-radius:20px;
  border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer}
.surv-tpl.is-on{background:var(--brand-dim);border-color:var(--brand-border);color:var(--brand)}
.surv-tpl--add{border-style:dashed}
.surv-tpl--ico{padding:7px 10px;display:inline-flex;align-items:center}
.sv-picks{display:flex;flex-direction:column;gap:7px;margin-top:9px}
.sv-pick{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px 14px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--surface2);cursor:pointer;font-family:'Outfit',sans-serif}
.sv-pick:hover{background:var(--bg2);border-color:var(--brand-border)}
.sv-pick.is-have{border-left:3px solid #34a853}
.sv-pick-n{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--text)}
.sv-pick-s{font-size:12px;color:var(--text3)}
/* zwijana oś czasu (klient / lead / urządzenie / realizacja) */
.tl-wrap{flex:0 0 auto;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden}  /* flex:0 0 auto — w kolumnowym flexie (modal leada) inaczej kurczy sie i obcina historie zamiast pozwolic przewijac */
.tl-wrap.is-empty{border:0;background:none}
.tl-head{display:flex;align-items:center;gap:9px;width:100%;padding:11px 13px;border:0;background:var(--surface2);
  font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;text-align:left}
.tl-head:hover{background:var(--bg2)}
.tl-chev{display:inline-flex;color:var(--text3);transition:transform .15s}
.tl-wrap:not(.is-closed) .tl-chev{transform:rotate(90deg)}
.tl-head-t{flex:0 0 auto}
.tl-head-n{font-size:11px;font-weight:700;padding:2px 7px;border-radius:9px;background:var(--brand-dim);color:var(--brand)}
.tl-head-todo{font-size:11px;font-weight:600;padding:2px 7px;border-radius:9px;background:#fff4e5;color:#b45309}
.tl-head-last{margin-left:auto;font-size:11px;font-weight:500;color:var(--text3)}
.tl-rows{padding:9px}
.tl-wrap.is-closed .tl-rows,.tl-wrap.is-closed .tl-more{display:none}
.tl-wrap.is-preview .tl-hide{display:none}
.tl-more{display:none;align-items:center;justify-content:center;gap:6px;width:100%;padding:9px 13px;border:0;border-top:1px solid var(--border);
  background:none;font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer}
.tl-more:hover{background:var(--surface2);color:var(--brand)}
.tl-wrap.is-preview .tl-more--show{display:flex}
.tl-wrap.is-all .tl-more--hide{display:flex}
.tl-more--hide .tl-chev,.tl-more--hide svg{transform:rotate(-90deg)}
@media(prefers-color-scheme:dark){.tl-head-todo{background:#3a2a10;color:#fbbf24}}
/* wynik testu połączenia ze skrzynką IMAP */
.mbx-test{display:flex;gap:9px;align-items:flex-start;margin-top:13px;padding:11px 13px;border-radius:var(--r);
  font-size:13px;line-height:1.45;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}
.mbx-test div{display:flex;flex-direction:column;gap:2px}
.mbx-test b{color:var(--text)}
.mbx-test span{font-size:12px;color:var(--text3)}
.mbx-test--ok{border-color:#34a85355;background:#34a8530f}
.mbx-test--ok b{color:#177245}
.mbx-test--err{border-color:#ef383b55;background:#ef383b0f}
.mbx-test--err b{color:#c0272b}
.mbx-test--wait svg{animation:ptr-rot 1.1s linear infinite}
/* mail od klienta na osi czasu: załączniki i cytat oddzielone od nowej treści */
.ld-act-atts{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.ld-act-att{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:4px 9px;border-radius:13px;
  border:1px solid var(--border);background:var(--surface2);font-size:11.5px;color:var(--text2)}
.ld-act-att b{font-weight:600;color:var(--text);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ld-act-att i{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.03em;color:var(--text3)}
.ld-act-quote-btn{display:inline-flex;align-items:center;gap:4px;margin-top:7px;padding:3px 8px 3px 5px;border:0;border-radius:9px;
  background:none;font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--text3);cursor:pointer}
.ld-act-quote-btn:hover{background:var(--surface2);color:var(--brand)}
.ld-act-quote-btn svg{transition:transform .15s}
.ld-act-quote-btn.is-open svg{transform:rotate(90deg)}
.ld-act-quote{margin-top:6px;padding:8px 11px;border-left:2px solid var(--border);background:var(--surface2);border-radius:0 var(--rs) var(--rs) 0;
  font-size:11.5px;line-height:1.5;color:var(--text3);white-space:pre-wrap;max-height:233px;overflow:auto}
/* ── ZADANIA: jedno miejsce z zadaniami całej firmy ── */
.tsk-page{padding:18px 16px 80px}
.tsk-bar{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-bottom:13px}
/* przełącznik segmentowy — pełne zaokrąglenie i wyraźna pastylka aktywnego (iOS/Material) */
.tsk-segs{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--surface2);border:1px solid var(--border)}
.tsk-seg{padding:8px 17px;border:0;border-radius:999px;background:none;font-family:'Outfit',sans-serif;
  font-size:13px;font-weight:600;color:var(--text3);cursor:pointer;transition:color .12s,background .12s;white-space:nowrap}
.tsk-seg:hover{color:var(--text)}
.tsk-seg.is-on{background:var(--card);color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.09),0 0 0 1px rgba(0,0,0,.02)}
.tsk-bar .btn-primary{margin-left:auto}
/* filtry zebrane w jeden spokojny panel — nie wiszą pod nagłówkiem luzem */
.tsk-filters{display:flex;flex-direction:column;gap:9px;margin-bottom:16px;padding:12px 13px;
  border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.tsk-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.tsk-chips--kind{padding-bottom:9px;border-bottom:1px solid var(--border)}
.tsk-filters .tsk-search{height:38px;font-size:13px}
.tsk-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:17px;border:1px solid var(--border);
  background:var(--surface);font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--text2);cursor:pointer}
.tsk-chip b{font-weight:700;color:var(--text3)}
.tsk-chip.is-on{border-color:var(--kc,var(--brand-border));background:color-mix(in srgb,var(--kc,#6366f1) 13%,transparent);color:var(--text)}
.tsk-chip.is-on b{color:var(--text2)}
.tsk-chip--due.is-on{--kc:#6366f1}
.tsk-emp{padding:6px 10px;border-radius:17px;border:1px solid var(--border);background:var(--surface);font-family:'Outfit',sans-serif;font-size:12px;color:var(--text2)}
.tsk-done-tgl{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text3);cursor:pointer}
.tsk-search{width:100%}
.tsk-count{font-size:12px;font-weight:600;color:var(--text3);margin:0 0 11px 2px}
.tsk-group{margin-bottom:16px}
.tsk-group-h{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:7px}
.tsk-group-h span{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--surface2);color:var(--text3)}
.tsk-row{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;margin-bottom:6px;border-radius:var(--rs);
  border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:background .12s,border-color .12s}
.tsk-row:hover{background:var(--bg2);border-color:var(--brand-border)}
/* pasek stanu z lewej — ten sam język co wpisy na osi czasu leada */
.tsk-row.is-todo{border-left:3px solid #f59e0b}
.tsk-row.is-late{border-left:3px solid #ef383b;border-color:rgba(239,56,59,.45)}
.tsk-row.is-done{border-left:3px solid #34a853;opacity:.68}
.tsk-row.is-done .tsk-title{text-decoration:line-through;color:var(--text3)}
.tsk-sub{font-size:12px;color:var(--text2);margin-top:3px;white-space:pre-wrap;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tsk-tag{font-size:10px;font-weight:700;border-radius:10px;padding:1px 7px;margin-left:6px;white-space:nowrap}
.tsk-tag--late{color:#ef383b;background:color-mix(in srgb,#ef383b 14%,transparent)}
.tsk-tag--ok{color:#34a853;background:color-mix(in srgb,#34a853 14%,transparent)}
.tsk-mini{width:30px;height:30px;border-radius:var(--rs);border:1px solid transparent;background:none;color:var(--text3);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.tsk-mini:hover{border-color:var(--border);background:var(--surface2);color:var(--brand)}
.tsk-mini--call:hover{color:#1ca980;border-color:#1ca98055;background:#1ca9800f}
.tsk-mini--del:hover{color:var(--del-fg);border-color:var(--del-fg);background:var(--del-bg)}
.tsk-goto{display:inline-flex;align-items:center;color:var(--text3);padding:6px 2px}
.tsk-pst{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--pc)}
.tsk-pst::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--pc)}
.tsk-check{flex-shrink:0;width:26px;height:26px;padding:0;border:0;background:none;color:var(--text3);cursor:pointer;display:flex;align-items:center;justify-content:center}
.tsk-check:hover{color:#1ca980}
.tsk-check.is-on{color:#1ca980}
.tsk-body{flex:1;min-width:0;cursor:pointer}
.tsk-title{font-size:14px;font-weight:600;color:var(--text);line-height:1.35}
.tsk-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px 9px;margin-top:5px;font-size:11.5px;color:var(--text3)}
.tsk-kind{padding:1px 8px;border-radius:9px;font-weight:700;font-size:10.5px;letter-spacing:.02em;
  background:color-mix(in srgb,var(--kc) 15%,transparent);color:var(--kc)}
.tsk-ctx,.tsk-due,.tsk-who{display:inline-flex;align-items:center;gap:4px}
.tsk-due.is-late{color:#ef383b;font-weight:700}
.tsk-due--none,.tsk-who--none{color:var(--text3);opacity:.75}
.tsk-who i{font-style:normal;font-size:9.5px;font-weight:700;width:18px;height:18px;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;background:var(--brand-dim);color:var(--brand)}
.tsk-acts{display:flex;gap:3px;flex-shrink:0}
.tsk-kindpick{display:flex;gap:6px;margin-bottom:13px}
.tsk-kindbtn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 9px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--surface2);font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer}
.tsk-kindbtn.is-on{border-color:var(--kc);background:color-mix(in srgb,var(--kc) 13%,transparent);color:var(--text)}
.tsk-cli-sel{display:flex;align-items:center;gap:8px;padding:10px 13px;border-radius:var(--r);border:1px solid var(--brand-border);
  background:var(--brand-dim);font-size:13px;color:var(--text)}
.tsk-cli-sel b{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsk-quick{display:flex;gap:5px;flex-wrap:wrap;margin-top:7px}
.tsk-qbtn{padding:5px 11px;border-radius:15px;border:1px dashed var(--border);background:none;
  font-family:'Outfit',sans-serif;font-size:11.5px;font-weight:600;color:var(--text3);cursor:pointer}
.tsk-qbtn:hover{border-style:solid;border-color:var(--brand-border);color:var(--brand)}
@media(max-width:640px){
  .tsk-page{padding:13px 11px 80px}
  .tsk-bar .btn-primary{margin-left:0;width:100%;justify-content:center}
  .tsk-segs{width:100%;justify-content:space-between}
  .tsk-seg{flex:1;padding:8px 5px;text-align:center}
}
/* poziome paski przewijane palcem/myszą (zakładki, lejek) */
[data-hscroll]{touch-action:pan-x pan-y;overscroll-behavior-x:contain;scroll-behavior:smooth}
[data-hscroll].is-dragging{cursor:grabbing;scroll-behavior:auto;user-select:none}
[data-hscroll].is-dragging *{pointer-events:none}
/* okno dzwonienia z zadania */
.call-who{font-size:19px;font-weight:700;color:var(--text);text-align:center}
.call-addr{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;color:var(--text3);margin-top:3px}
.call-num{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:13px;padding:15px;border-radius:var(--r);
  background:#1ca980;color:#fff;font-family:'Outfit',sans-serif;font-size:20px;font-weight:700;letter-spacing:.02em;text-decoration:none}
.call-num:active{background:#178a68}
.call-nonum{margin-top:13px;padding:11px 13px;border-radius:var(--r);border:1px dashed var(--border);font-size:12.5px;color:var(--text3);text-align:center}
.call-task{margin-top:13px;padding:11px 13px;border-radius:var(--r);background:var(--surface2);border:1px solid var(--border)}
.call-task-h{display:flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3)}
.call-task-t{font-size:14px;font-weight:600;color:var(--text);margin-top:4px;line-height:1.35}
.call-task-b{font-size:12.5px;color:var(--text2);margin-top:4px;white-space:pre-wrap;line-height:1.45}
.call-task-d{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--text3);margin-top:6px}
.call-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:11px}
.call-link{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:17px;border:1px solid var(--border);
  background:var(--surface);color:var(--text2);font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;cursor:pointer;text-decoration:none}
.call-link:hover{border-color:var(--brand-border);color:var(--brand)}
/* Awatary: każde kółko przycina obrazek do swojego rozmiaru.
   Zbiorcza reguła, żeby wgrane zdjęcie (dowolny rozmiar) nigdy nie rozjechało układu. */
.konto-avatar,.emp-avatar-preview,.emp-row-av,.emp-detail-av,.hdr-logo,.nav-user-av{overflow:hidden}
.konto-avatar>img,.emp-avatar-preview>img,.emp-row-av>img,.emp-detail-av>img,.nav-user-av>img{
  width:100%;height:100%;object-fit:cover;display:block;border-radius:0}
/* bramka płatności */
.pgw-state{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:9px}
.pgw-mode{font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:3px 9px;border-radius:11px}
.pgw-mode--sand{background:#fff4e5;color:#b45309}
.pgw-mode--live{background:#e8f5e9;color:#177245}
.pgw-set{font-size:10.5px;font-weight:700;color:#177245;background:#e8f5e9;border-radius:9px;padding:1px 7px;margin-left:5px}
.pgw-unset{font-size:10.5px;font-weight:700;color:var(--text3);background:var(--surface2);border-radius:9px;padding:1px 7px;margin-left:5px}
@media(prefers-color-scheme:dark){.pgw-mode--sand{background:#3a2a10;color:#fbbf24}.pgw-mode--live{background:#12321f;color:#4ade80}.pgw-set{background:#12321f;color:#4ade80}}
/* płatności — rozliczanie wpłat */
.pay-sums{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:13px}
.pay-sum{flex:1;min-width:160px;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:var(--r);
  border:1px solid var(--border);background:var(--surface)}
.pay-sum span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text3)}
.pay-sum b{font-size:19px;font-weight:700;color:var(--text)}
.pay-sum--wait b{color:#e0921a}
.pay-sum--ok b{color:#1ca980}
.pay-row.is-wait{border-left:3px solid #e0921a}
.pay-row.is-ok{border-left:3px solid #1ca980}
.pay-row.is-off{border-left:3px solid var(--border);opacity:.6}
.pay-amount{margin-left:7px;font-weight:700;color:var(--brand)}
/* formularz WWW: kwota brutto czy netto */
.lf-gross{display:flex;gap:6px;align-items:center;margin-top:9px;flex-wrap:wrap}
.lf-gross-btn{padding:7px 13px;border-radius:17px;border:1px solid var(--border);background:var(--surface);
  font-family:'Outfit',sans-serif;font-size:12px;font-weight:600;color:var(--text3);cursor:pointer}
.lf-gross-btn.is-on{border-color:var(--brand-border);background:var(--brand-dim);color:var(--brand)}
.lf-pay-calc{display:flex;flex-direction:column;gap:2px;margin-top:9px;padding:10px 13px;border-radius:var(--r);
  background:var(--surface2);border:1px solid var(--border)}
.lf-pay-calc b{font-size:14px;color:var(--text)}
.lf-pay-calc span{font-size:12px;color:var(--text3)}
.lf-pay-calc:empty{display:none}


/* ── PRACE DODATKOWE (T&M) na realizacji ── */
.ew-top{display:flex;align-items:center;justify-content:space-between;gap:13px;flex-wrap:wrap;
  padding:13px;background:var(--surface);border:1px solid var(--border);border-radius:13px}
.ew-sum-val{font-size:21px;font-weight:800;color:var(--brand);line-height:1.2}
.ew-sum-lbl{font-size:12px;color:var(--text3);margin-top:2px}
.ew-actions{display:flex;gap:8px;flex-wrap:wrap;margin:13px 0 8px}
.ew-list{display:flex;flex-direction:column;gap:8px}
.ew-row{display:flex;align-items:flex-start;gap:11px;padding:11px 13px;background:var(--surface);
  border:1px solid var(--border);border-radius:13px}
.ew-row.is-done{opacity:.62}
.ew-chk{width:18px;height:18px;accent-color:var(--brand);margin-top:2px;flex-shrink:0;cursor:pointer}
.ew-chk-sp{width:18px;flex-shrink:0}
.ew-main{flex:1;min-width:0}
.ew-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ew-meta{font-size:12px;color:var(--text3);margin-top:3px}
.ew-note{font-size:12px;color:var(--text2);margin-top:4px;font-style:italic}
.ew-scope,.ew-kind,.ew-done{font-size:11px;font-weight:600;padding:2px 8px;border-radius:20px;white-space:nowrap}
.ew-scope{background:var(--brand-dim);color:var(--brand)}
.ew-kind{background:rgba(224,168,0,.14);color:#8a6a00}
.ew-done{background:rgba(28,169,128,.14);color:#128063}
.ew-val{font-size:14px;font-weight:700;white-space:nowrap;margin-left:auto;padding-left:8px}
.ew-sec-lbl{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin:21px 0 8px}
.ew-settle-list{margin:11px 0;padding-left:21px;font-size:13px;color:var(--text2);line-height:1.7}
.ew-settle-sum{font-size:15px;text-align:right;margin:8px 0 4px}
.mode-pick-btn.is-on{border-color:var(--brand);background:var(--brand-dim)}

/* podpowiedź, gdzie dodaje się pracowników (przycisk usunięty z Czasu Pracy) */
.work-hint{display:flex;align-items:center;gap:8px;margin:0 0 13px;padding:9px 12px;font-size:12px;
  color:var(--text2);background:var(--surface);border:1px solid var(--border);border-radius:11px}
.work-hint svg{flex-shrink:0;color:var(--text3)}

/* ── ANALIZA PRACY (Czas Pracy → Analiza) ── */
.ws-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:11px;margin-bottom:13px}
.ws-tile{background:var(--surface);border:1px solid var(--border);border-radius:13px;padding:13px}
.ws-tile.is-warn{border-color:var(--warn,#e0a800);background:rgba(224,168,0,.06)}
.ws-tile-val{font-size:21px;font-weight:800;line-height:1.2;color:var(--text)}
.ws-tile-lbl{font-size:12px;color:var(--text2);margin-top:3px}
.ws-tile-sub{font-size:11px;color:var(--text3);margin-top:5px}
.ws-trend.up{color:#128063;font-weight:600}.ws-trend.down{color:#b4553a;font-weight:600}
.ws-trend-none{color:var(--text3)}
.ws-alert{background:rgba(224,168,0,.09);border:1px solid var(--warn,#e0a800);border-radius:13px;padding:11px 13px;margin-bottom:13px;cursor:pointer}
.ws-alert-top{display:flex;align-items:center;gap:8px;font-size:13px}
.ws-alert-more{margin-left:auto;font-size:12px;color:var(--text3);text-decoration:underline}
.ws-alert-body{margin-top:9px;display:flex;flex-direction:column;gap:6px}
.ws-brak-row{display:flex;align-items:baseline;gap:9px;font-size:12px;flex-wrap:wrap}
.ws-brak-name{font-weight:600;min-width:118px}
.ws-brak-days{color:var(--warn,#8a6a00);font-weight:600}
.ws-brak-list{color:var(--text3)}
.ws-ok{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text2);background:var(--surface);
  border:1px solid var(--border);border-radius:13px;padding:11px 13px;margin-bottom:13px}
.ws-sec{margin-top:21px}
.ws-sec-title{font-size:12px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:9px}
.ws-bar-row{display:flex;align-items:center;gap:11px;padding:8px 0;border-bottom:1px solid var(--border);cursor:pointer}
.ws-bar-name{flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-bar-track{width:89px;height:7px;border-radius:5px;background:var(--surface2);overflow:hidden;flex-shrink:0}
.ws-bar-fill{height:100%;background:var(--brand);border-radius:5px}
.ws-bar-val{width:110px;text-align:right;font-size:12px;font-weight:700;flex-shrink:0}
.ws-bar-val span{display:block;font-weight:500;color:var(--text3);font-size:11px}
.ws-tbl-head,.ws-tbl-row{display:grid;grid-template-columns:1.6fr .9fr .8fr .8fr 1fr;gap:8px;align-items:center;padding:9px 0}
.ws-tbl-head{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border)}
.ws-tbl-row{border-bottom:1px solid var(--border);font-size:12.5px;cursor:pointer}
.ws-tbl-row span:not(.ws-p-name){text-align:right}
.ws-tbl-head span:not(:first-child){text-align:right}
.ws-p-name{font-weight:600;display:flex;flex-direction:column}
.ws-p-name i{font-style:normal;font-size:11px;color:var(--text3);font-weight:400}
.ws-warn{color:#8a6a00;font-weight:700}
.ws-chips{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:620px){
  .ws-tbl-head,.ws-tbl-row{grid-template-columns:1.4fr .9fr .8fr .9fr}
  .ws-tbl-head span:nth-child(4),.ws-tbl-row span:nth-child(4){display:none}
  .ws-bar-track{display:none}
}

/* ── BILANS REALIZACJI (proj_finance) ───────────────────────── */
.pf-box{margin:8px 0 13px}
.pf-load,.pf-empty{padding:13px;background:var(--bg2);border-radius:13px;color:var(--text3);font-size:13px;line-height:1.5}
.pf-main{padding:13px;border-radius:13px;background:linear-gradient(135deg,var(--bg2),var(--bg3));border-left:3px solid var(--ok,#2ea36a)}
.pf-main.bad{border-left-color:#e04b4b}
.pf-main-lbl{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.pf-main-val{font-size:26px;font-weight:700;margin:3px 0;color:var(--ok,#2ea36a)}
.pf-main.bad .pf-main-val{color:#e04b4b}
.pf-main-val i{font-size:15px;font-weight:600;opacity:.7;font-style:normal}
.pf-main-sub{font-size:12px;color:var(--text3)}
.pf-rows{margin-top:8px;background:var(--bg2);border-radius:13px;overflow:hidden}
.pf-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 13px;font-size:13px;border-bottom:1px solid var(--bg3)}
.pf-row:last-child{border-bottom:0}
.pf-row span{color:var(--text2)} .pf-row b{white-space:nowrap}
.pf-dim{opacity:.62}
.pf-warn{margin-top:8px;padding:8px 13px;border-radius:13px;background:rgba(224,150,40,.13);
  border-left:3px solid #e09628;font-size:13px;line-height:1.45;cursor:pointer;display:flex;gap:5px;align-items:flex-start}
.pf-warn svg{flex-shrink:0;margin-top:2px;color:#e09628}
.pf-offers{margin-top:8px;display:flex;flex-direction:column;gap:3px}
.pf-offer{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;
  padding:8px 13px;background:var(--bg2);border-radius:8px;font-size:13px;cursor:pointer}
.pf-offer:active{background:var(--bg3)}
.pf-o-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-o-s{font-size:11px;padding:2px 8px;border-radius:8px;background:var(--bg3);color:var(--text3);white-space:nowrap}
.pf-s-accepted{background:rgba(46,163,106,.18);color:#2ea36a}
.pf-s-rejected{background:rgba(224,75,75,.15);color:#e04b4b}
.pf-o-v{font-weight:600;white-space:nowrap}
@media(max-width:420px){.pf-offer{grid-template-columns:1fr auto}.pf-o-s{grid-column:1;justify-self:start}}

/* ── SKANER NUMERÓW SERYJNYCH ───────────────────────────────── */
.df-sn-row{display:flex;gap:5px;align-items:stretch}
.df-sn-row input{flex:1;min-width:0}
.df-skan{display:flex;align-items:center;gap:5px;padding:0 13px;border:0;border-radius:8px;
  background:var(--accent,#ef383b);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.df-skan:active{filter:brightness(.9)}
.btn-new--alt{background:var(--bg3);color:var(--text)}

.sk-overlay{position:fixed;inset:0;z-index:9500;background:#000;display:flex;flex-direction:column;
  color:#fff;padding-bottom:env(safe-area-inset-bottom)}
.sk-top{display:flex;align-items:center;gap:8px;padding:13px;padding-top:calc(13px + env(safe-area-inset-top))}
.sk-x{background:rgba(255,255,255,.13);border:0;color:#fff;width:34px;height:34px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer}
.sk-tytul{font-size:15px;font-weight:600}
.sk-video-wrap{position:relative;flex:1;min-height:0;overflow:hidden;background:#000}
.sk-video-wrap video{width:100%;height:100%;object-fit:cover}
.sk-ramka{position:absolute;left:8%;right:8%;top:50%;transform:translateY(-50%);height:34%;
  border:2px solid rgba(255,255,255,.9);border-radius:13px;box-shadow:0 0 0 9999px rgba(0,0,0,.34);pointer-events:none}
.sk-status{padding:8px 13px;font-size:13px;text-align:center;color:rgba(255,255,255,.75);min-height:34px}
.sk-status.sk-err{color:#ff8b8b}
.sk-status.sk-busy{color:#8bd0ff}
.sk-status.sk-info{color:#ffd68b}
.sk-dol{padding:8px 13px 21px;text-align:center}
.sk-foto{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;max-width:340px;
  padding:13px;border:0;border-radius:13px;background:#fff;color:#111;font-size:15px;font-weight:600;cursor:pointer}
.sk-foto:active{filter:brightness(.9)}
.sk-hint{margin-top:8px;font-size:12px;color:rgba(255,255,255,.5);line-height:1.45}
.sk-seria{padding:8px 13px;background:rgba(255,255,255,.08);margin:0 13px;border-radius:13px}
.sk-seria-gdzie{font-size:13px;font-weight:600}
.sk-seria-licznik{font-size:12px;color:rgba(255,255,255,.7);margin-top:2px}
.sk-seria-licznik b{font-size:18px;color:#fff}
.sk-seria-lista,.sk-lista{display:flex;flex-wrap:wrap;gap:3px;margin-top:5px}
.sk-chip{font-size:11px;padding:2px 8px;border-radius:8px;background:rgba(255,255,255,.15);
  font-family:ui-monospace,Menlo,monospace}
.sk-potw{position:absolute;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;
  justify-content:center;padding:21px;z-index:9600}
.sk-potw-box{background:var(--bg1,#fff);color:var(--text,#111);border-radius:13px;padding:21px;
  width:100%;max-width:377px;box-shadow:0 8px 34px rgba(0,0,0,.45)}
.sk-potw-zrodlo{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:.5px}
.sk-potw-sn{width:100%;margin-top:8px;padding:13px;font-size:21px;font-weight:700;text-align:center;
  font-family:ui-monospace,Menlo,monospace;letter-spacing:1px;border:2px solid var(--bg3);
  border-radius:8px;background:var(--bg2);color:var(--text)}
.sk-potw-uwaga{margin-top:8px;font-size:12px;color:#c47b00;line-height:1.45}
.sk-potw-alt{margin-top:8px;font-size:12px;color:var(--text3);display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.sk-potw-alt button{font-size:12px;padding:3px 8px;border:1px solid var(--bg3);border-radius:8px;
  background:var(--bg2);color:var(--text);cursor:pointer;font-family:ui-monospace,Menlo,monospace}
.sk-potw-dupl{margin-top:8px;padding:8px;border-radius:8px;background:rgba(224,150,40,.13);
  border-left:3px solid #e09628;font-size:12px;line-height:1.45}
.sk-potw-btns{display:flex;gap:8px;margin-top:13px}
.sk-potw-btns button{flex:1;padding:13px;border:0;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}
.sk-potw-btns .btn-sec{background:var(--bg3);color:var(--text)}
.sk-potw-btns .btn-pri{background:var(--accent,#ef383b);color:#fff}

/* seria */
.ser-wrap{max-width:610px}
.ser-intro{font-size:13px;color:var(--text3);line-height:1.5;margin:0 0 13px}
.ser-start{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:13px;
  padding:13px;border:0;border-radius:13px;background:var(--accent,#ef383b);color:#fff;
  font-size:15px;font-weight:600;cursor:pointer}
.ser-dodane{margin-top:21px}
.ser-dodane-tyt{font-size:13px;font-weight:600;margin-bottom:8px}
.ser-grupa{margin-bottom:8px;padding:8px 13px;background:var(--bg2);border-radius:8px}
.ser-grupa-l{font-size:13px;font-weight:600;margin-bottom:5px}
.ser-grupa-l i{font-style:normal;color:var(--text3);font-weight:400}
.ser-chips{display:flex;flex-wrap:wrap;gap:3px}
.ser-chip{font-size:11px;padding:2px 8px;border-radius:8px;background:var(--bg3);
  font-family:ui-monospace,Menlo,monospace}

/* ── DOKUMENTACJA PRZY ZADANIU (podwykonawca) ───────────────── */
.dok-zad{padding:8px 13px;background:var(--bg2);border-radius:8px;margin-bottom:13px}
.dok-zad-t{font-size:14px;font-weight:600}
.dok-zad-p{font-size:12px;color:var(--text3);margin-top:3px;display:flex;align-items:center;gap:5px}
.dok-lista{display:flex;flex-direction:column;gap:5px}
.dok-poz{display:flex;align-items:center;gap:8px;padding:13px;background:var(--bg2);
  border-radius:8px;text-decoration:none;color:var(--text)}
.dok-poz:active{background:var(--bg3)}
.dok-ico{color:var(--text3);display:flex;flex-shrink:0}
.dok-txt{flex:1;min-width:0;display:flex;flex-direction:column}
.dok-txt b{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dok-txt i{font-size:12px;color:var(--text3);font-style:normal;margin-top:2px}
.dok-otw{color:var(--text3);display:flex;flex-shrink:0}

/* ── WYDRUK GRUPOWY NAKLEJEK ─────────────────────────────────── */
.dev-pasek{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:8px 13px;
  background:var(--bg2);border-bottom:1px solid var(--bg3)}
.dev-pasek--zazn{background:var(--bg3)}
.dev-lok-filtr{flex:1;min-width:144px;padding:5px 8px;border:1px solid var(--bg3);
  border-radius:8px;background:var(--bg1);color:var(--text);font-size:13px}
.dev-pasek-btn{padding:5px 13px;border:1px solid var(--bg3);border-radius:8px;background:var(--bg1);
  color:var(--text);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.dev-pasek-btn--pri{background:var(--accent,#ef383b);color:#fff;border-color:transparent;font-weight:600}
.dev-pasek-btn:disabled{opacity:.45;cursor:default}
.dev-pasek-licz{font-size:13px;color:var(--text3)}
.dev-pasek-licz b{color:var(--text);font-size:15px}
.dev-zazn{display:flex;align-items:center;gap:8px}
.dev-zazn.zazn{outline:2px solid var(--accent,#ef383b);outline-offset:-2px}
.dev-ptak{padding-left:13px;color:var(--text3);display:flex;flex-shrink:0}
.dev-zazn.zazn .dev-ptak{color:var(--accent,#ef383b)}
.qr-img-wrap--svg{width:144px;height:144px}
.qr-img-wrap--svg svg{width:100%;height:100%;display:block}

.nk-pola{display:flex;flex-wrap:wrap;gap:13px}
.nk-pole{display:flex;align-items:center;gap:5px;font-size:13px;cursor:pointer}
.nk-podglad-tyt{font-size:12px;color:var(--text3);margin:13px 0 5px;text-transform:uppercase;letter-spacing:.5px}
.nk-podglad{display:flex;justify-content:center;padding:13px;background:var(--bg2);border-radius:8px}
.nk-ramka{background:#fff;border:1px dashed #bbb;overflow:hidden;color:#111}
.nk-ramka .nk-1{display:flex;align-items:center;gap:5px;padding:5px;width:100%;height:100%;overflow:hidden}
.nk-ramka .nk-q{flex-shrink:0;width:34%!important;height:auto!important;aspect-ratio:1}
.nk-ramka .nk-q svg{width:100%;height:100%;display:block}
.nk-ramka .nk-t{flex:1;min-width:0;overflow:hidden;line-height:1.2}
.nk-ramka .nk-n{font-size:9px;font-weight:700}
.nk-ramka .nk-m{font-size:8px;color:#555}
.nk-ramka .nk-s{font-size:8px;font-family:ui-monospace,monospace;font-weight:700}
.nk-ramka .nk-l{font-size:8px;color:#333}
.nk-ramka .nk-f{font-size:7px;color:#666;border-top:1px solid #ddd;margin-top:2px;padding-top:1px}
.sk-recznie{display:block;margin:8px auto 0;padding:8px 21px;border:1px solid rgba(255,255,255,.34);
  border-radius:8px;background:transparent;color:#fff;font-size:13px;cursor:pointer}
.sk-foto:disabled{opacity:.55;cursor:default}
.qr-preview-mini-img svg{width:100%;height:100%;display:block}

/* ── PLAN Z PINEZKĄ ZADANIA (podwykonawca) ──────────────────── */
.dok-poz--pin{background:rgba(46,163,106,.13);border-left:3px solid #2ea36a}
.dok-poz--pin .dok-ico{color:#2ea36a}
.dok-plan{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:13px;
  padding:13px;border:0;border-radius:13px;background:var(--accent,#ef383b);color:#fff;
  font-size:14px;font-weight:600;cursor:pointer}
.pin-info{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;padding:8px 13px;
  background:var(--bg2);border-radius:8px;margin-bottom:8px;font-size:13px}
.pin-info span{font-size:12px;color:var(--text3)}
.pin-plan{max-height:61vh;overflow:auto;background:var(--bg2);border-radius:8px;padding:8px}
.pin-wrap{position:relative;display:inline-block;line-height:0;min-width:100%}
.pin-wrap canvas,.pin-wrap img{max-width:100%;height:auto;display:block}
.pin-marker{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;
  pointer-events:none;display:flex;align-items:center;justify-content:center}
.pin-marker span{width:13px;height:13px;border-radius:50%;background:#ef383b;
  box-shadow:0 0 0 3px #fff,0 0 0 5px #ef383b;animation:pin-puls 1.6s ease-out infinite}
@keyframes pin-puls{0%{box-shadow:0 0 0 3px #fff,0 0 0 5px #ef383b}
  70%{box-shadow:0 0 0 3px #fff,0 0 0 21px rgba(239,56,59,0)}
  100%{box-shadow:0 0 0 3px #fff,0 0 0 5px #ef383b}}

/* ══════════════════════════════════════════════════
   PRZETARGI (moduł opcjonalny) — prefiks .tn-
   Korzysta z tokenów motywu, żeby moduł zmieniał kolory razem z resztą.
══════════════════════════════════════════════════ */
@layer components{
/* Przełącznik modułów w panelu super-admina */
.sa-mod-row{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:10px 0;border-bottom:1px solid var(--border2)}
.sa-mod-row:last-child{border-bottom:none}
.sa-mod-tx{min-width:0}
.sa-mod-tx b{display:block;font-size:.94rem;color:var(--text)}
.sa-mod-tx span{display:block;font-size:.79rem;color:var(--text2);margin-top:2px;line-height:1.35}
.sa-mod-sw{display:flex;align-items:center;gap:6px;flex:none;font-size:.8rem;color:var(--text2);cursor:pointer}

.tn-search{margin:0 0 10px}
.tn-search input{width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:10px;
  background:var(--surface);color:var(--text);font:inherit;font-size:.94rem}
.tn-search input:focus{outline:2px solid var(--brand-border);outline-offset:1px}

.tn-list{display:flex;flex-direction:column;gap:8px}
.tn-card{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:13px;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.tn-card:hover{border-color:var(--brand-border);box-shadow:0 2px 10px -6px rgba(0,0,0,.28)}
.tn-card--slim{padding:10px 13px}
.tn-card-main{flex:1;min-width:0}
.tn-card-title{font-weight:600;font-size:.97rem;line-height:1.35;color:var(--text);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tn-card-meta{font-size:.82rem;color:var(--text2);margin-top:4px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.tn-card-win{font-size:.88rem;color:var(--text);margin-top:6px;display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.tn-card-win--none{color:var(--text3);font-size:.82rem}
.tn-card-val{font-size:1.02rem;font-weight:700;color:var(--c-powy);margin-top:3px}
.tn-card-val .tn-sub{font-size:.8rem;font-weight:500;color:var(--text2)}
.tn-card-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.tn-card-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}

.tn-chip{display:inline-flex;align-items:center;gap:4px;font-size:.73rem;padding:3px 8px;border-radius:99px;
  border:1px solid var(--border);color:var(--text2);background:var(--bg);white-space:nowrap}
.tn-chip--urgent{border-color:#f0a500;color:#8a6200;background:#fff6e0;font-weight:600}
.tn-chip--dead{border-color:var(--border);color:var(--text3)}
.tn-chip--solo{border-color:#ef383b;color:#b3232a;background:#fdeceb;font-weight:600}
.tn-chip--ok{border-color:#1ca980;color:#0f7a40;background:#e8f7f0}
.tn-chip--mode{border-color:var(--brand-border);color:var(--brand-deep);background:var(--brand-dim)}

.tn-score{font-size:.86rem;font-weight:700;color:var(--brand-deep);background:var(--brand-dim);
  border:1px solid var(--brand-border);border-radius:8px;padding:3px 8px;min-width:34px;text-align:center}
.btn-sm-tn{font-size:.82rem;padding:6px 10px;width:auto}

.tn-meta{font-size:.76rem;color:var(--text3);margin-top:13px}
.tn-stage-group{margin-bottom:21px}
.tn-stage-hd{font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--tnc,var(--text2));border-bottom:2px solid var(--tnc,var(--border));padding-bottom:5px;margin-bottom:8px;
  display:flex;justify-content:space-between}

.tn-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:13px}
.tn-tile{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px}
.tn-tile--hot{border-color:#ef383b}
.tn-tile-n{display:block;font-size:1.45rem;font-weight:700;color:var(--text);line-height:1.15}
.tn-tile--hot .tn-tile-n{color:#b3232a}
.tn-tile-l{display:block;font-size:.78rem;color:var(--text2);margin-top:5px;line-height:1.3}

.tn-rank{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px;margin-top:13px}
.tn-rank-hd{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text2);margin-bottom:8px}
.tn-rank-row{display:flex;justify-content:space-between;gap:13px;padding:5px 0;border-bottom:1px solid var(--border2);font-size:.88rem}
.tn-rank-row:last-child{border-bottom:none}
.tn-rank-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.tn-watch{display:flex;gap:10px;align-items:flex-start;background:var(--surface);border:1px solid var(--border);
  border-radius:12px;padding:13px;margin-bottom:8px}
.tn-watch.is-off{opacity:.55}
.tn-watch-main{flex:1;min-width:0}
.tn-watch-name{font-weight:600;font-size:.97rem;color:var(--text)}
.tn-watch-act{display:flex;gap:5px;flex:none}
.tn-check{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.88rem;color:var(--text);cursor:pointer}
.tn-check input{margin-top:3px;flex:none}

.tn-det-title{font-size:1.08rem;font-weight:700;line-height:1.4;color:var(--text)}
.tn-box{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:13px;margin-bottom:13px}
.tn-box-hd{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:8px}
.tn-kv{display:flex;justify-content:space-between;gap:13px;padding:5px 0;border-bottom:1px solid var(--border2);font-size:.88rem}
.tn-kv:last-of-type{border-bottom:none}
.tn-kv span{color:var(--text2);flex:none}
.tn-kv b{text-align:right;overflow-wrap:anywhere}
.tn-stages{display:flex;flex-wrap:wrap;gap:5px}
.tn-stage-btn{font:inherit;font-size:.8rem;font-weight:600;padding:6px 11px;border-radius:99px;cursor:pointer;
  border:1px solid var(--border);background:var(--bg);color:var(--text2);white-space:nowrap}
.tn-stage-btn:hover{border-color:var(--tnc,var(--brand-border))}
.tn-stage-btn.is-on{background:var(--tnc,var(--brand));border-color:var(--tnc,var(--brand));color:#fff}
.tn-plain{font-size:.82rem;line-height:1.6;color:var(--text2);max-height:377px;overflow:auto;white-space:pre-wrap;
  background:var(--bg);border:1px solid var(--border2);border-radius:8px;padding:10px}
.tn-box textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;
  background:var(--bg);color:var(--text);font:inherit;font-size:.88rem;resize:vertical}

@media(min-width:768px){
  .tn-card-title{-webkit-line-clamp:2}
}
}

/* ── Przetargi: formularz profilu, brief AI i czat ─────────── */
@layer components{
.mo--wide{max-width:610px;width:calc(100vw - 34px);max-height:86vh;overflow:auto}
.tn-lead{font-size:.86rem;color:var(--text2);line-height:1.5;margin:0 0 13px}

.tn-sec{margin:16px 0 0;padding-top:13px;border-top:1px solid var(--border2)}
.tn-sec-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.78rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:8px}
.tn-sec-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--text3);font-size:.76rem}
.tn-sec-act{margin-left:auto;display:flex;gap:5px}
.tn-mini{font:inherit;font-size:.72rem;padding:3px 8px;border-radius:99px;cursor:pointer;
  border:1px solid var(--border);background:var(--bg);color:var(--text2)}
.tn-mini:hover{border-color:var(--brand-border);color:var(--brand-deep)}

/* kafelki wyboru (tryby, przełączniki) */
.tn-picks{display:grid;grid-template-columns:repeat(auto-fit,minmax(233px,1fr));gap:8px}
.tn-pick{display:flex;align-items:center;gap:10px;text-align:left;font:inherit;cursor:pointer;
  padding:11px 13px;border-radius:10px;border:1px solid var(--border);background:var(--bg);color:var(--text)}
.tn-pick:hover{border-color:var(--brand-border)}
.tn-pick.is-on{border-color:var(--brand);background:var(--brand-dim)}
.tn-pick-ic{flex:none;color:var(--text3);display:flex}
.tn-pick.is-on .tn-pick-ic{color:var(--brand-deep)}
.tn-pick-tx{flex:1;min-width:0}
.tn-pick-tx b{display:block;font-size:.9rem;font-weight:600}
.tn-pick-tx i{display:block;font-style:normal;font-size:.76rem;color:var(--text2);margin-top:1px;line-height:1.3}
.tn-pick-mk{flex:none;color:var(--brand-deep);display:flex}

/* chipy wyboru (branże, województwa) — zamiast <select multiple> */
.tn-chips-pick{display:flex;flex-wrap:wrap;gap:6px}
.tn-chip-pick{font:inherit;font-size:.81rem;padding:6px 12px;border-radius:99px;cursor:pointer;
  border:1px solid var(--border);background:var(--bg);color:var(--text2);white-space:nowrap}
.tn-chip-pick:hover{border-color:var(--brand-border);color:var(--text)}
.tn-chip-pick.is-on{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}
.tn-more{margin-top:10px}
.tn-more summary{cursor:pointer;font-size:.79rem;color:var(--text2)}
.tn-more summary::marker{color:var(--text3)}
.tn-more input{width:100%;margin-top:6px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;
  background:var(--bg);color:var(--text);font:inherit;font-size:.86rem}

/* brief AI */
.tn-ai{border-color:var(--brand-border)}
.tn-verdict{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:11px 13px;border-radius:10px;margin-bottom:13px}
.tn-verdict--ok{background:#e8f7f0;border:1px solid #1ca980}
.tn-verdict--no{background:#fdeceb;border:1px solid #ef383b}
.tn-verdict--maybe{background:#fff6e0;border:1px solid #f0a500}
.tn-verdict-w{font-weight:800;font-size:1rem;letter-spacing:.04em}
.tn-verdict--ok .tn-verdict-w{color:#0f7a40}
.tn-verdict--no .tn-verdict-w{color:#b3232a}
.tn-verdict--maybe .tn-verdict-w{color:#8a6200}
.tn-verdict-u{font-size:.86rem;color:var(--text);flex:1;min-width:180px;line-height:1.45}
.tn-brief-sec{margin-bottom:11px}
.tn-brief-hd{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:4px}
.tn-brief-sec p{font-size:.88rem;line-height:1.5;margin:0}
.tn-brief-sec ul{margin:0;padding-left:1.1em}
.tn-brief-sec li{font-size:.88rem;line-height:1.5;margin-bottom:3px}
.tn-brief-sec--warn .tn-brief-hd{color:#b3232a}
.tn-brief-sec--gap{background:var(--bg);border-left:3px solid #f0a500;border-radius:6px;padding:8px 11px}
.tn-brief-sec--gap .tn-brief-hd{color:#8a6200}
.tn-brief-foot{font-size:.75rem;color:var(--text3);border-top:1px solid var(--border2);padding-top:8px;margin-top:10px}

/* czat */
.tn-chat-hd{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;
  color:var(--text2);margin:16px 0 8px;padding-top:13px;border-top:1px solid var(--border2)}
.tn-quick{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.tn-quick-b{font:inherit;font-size:.78rem;padding:5px 10px;border-radius:99px;cursor:pointer;text-align:left;
  border:1px dashed var(--border);background:transparent;color:var(--text2)}
.tn-quick-b:hover{border-style:solid;border-color:var(--brand-border);color:var(--brand-deep);background:var(--brand-dim)}
.tn-chat{display:flex;flex-direction:column;gap:8px;max-height:377px;overflow:auto}
.tn-chat:empty{display:none}
.tn-msg{display:flex;gap:8px;align-items:flex-start}
.tn-msg--ja{justify-content:flex-end}
.tn-msg-ic{flex:none;color:var(--brand-deep);margin-top:3px}
.tn-msg-tx{font-size:.88rem;line-height:1.55;padding:9px 12px;border-radius:12px;max-width:89%;overflow-wrap:anywhere}
.tn-msg--ja .tn-msg-tx{background:var(--brand);color:#fff;border-bottom-right-radius:3px}
.tn-msg--ai .tn-msg-tx{background:var(--bg);border:1px solid var(--border2);color:var(--text);border-bottom-left-radius:3px}
.tn-msg-tx--wait{color:var(--text3);font-style:italic}
.tn-chat-in{display:flex;gap:6px;margin-top:10px}
.tn-chat-in input{flex:1;padding:10px 13px;border:1px solid var(--border);border-radius:99px;
  background:var(--bg);color:var(--text);font:inherit;font-size:.88rem}
.tn-chat-in input:focus{outline:2px solid var(--brand-border);outline-offset:1px}
.tn-chat-in .btn-primary{flex:none;border-radius:99px;padding:8px 14px}
}

/* ── Przetargi: dokumentacja postępowania ─────────────────── */
@layer components{
.tn-docs{display:flex;flex-direction:column;gap:5px}
.tn-doc{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:9px;
  border:1px solid var(--border2);background:var(--bg)}
.tn-doc.is-sel{border-color:var(--brand);background:var(--brand-dim)}
.tn-doc-pick{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text3);cursor:pointer}
.tn-doc.is-sel .tn-doc-pick{color:var(--brand-deep);border-color:var(--brand-border)}
.tn-doc-pick:disabled{opacity:.45;cursor:default}
.tn-doc-tx{flex:1;min-width:0}
.tn-doc-tx b{display:block;font-size:.86rem;font-weight:600;color:var(--text);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tn-doc-tx i{display:block;font-style:normal;font-size:.73rem;color:var(--text3);margin-top:1px}
.tn-doc-dl{flex:none;display:flex;align-items:center;justify-content:center;width:30px;height:30px;
  border-radius:8px;color:var(--text2);text-decoration:none}
.tn-doc-dl:hover{background:var(--surface2);color:var(--brand-deep)}
.tn-msg-src{display:block;font-size:.72rem;color:var(--text3);margin-top:6px;border-top:1px solid var(--border2);padding-top:5px}
.tn-docs-box{border-color:var(--border)}
}

/* ── Przetargi: licznik zużycia AI ─────────────────────────── */
@layer components{
.tn-usage{margin-top:21px;padding:13px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.tn-usage-hd{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:8px}
.tn-usage-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 21px;font-size:.86rem;color:var(--text2)}
.tn-usage-row b{color:var(--text)}
.tn-usage-cost{margin-left:auto}
.tn-usage-cost b{font-size:1.05rem;color:var(--c-powy)}
.tn-usage-foot{font-size:.73rem;color:var(--text3);margin-top:8px;border-top:1px solid var(--border2);padding-top:6px}
}

/* ── Przetargi: przycisk czyszczenia wyszukiwania ──────────── */
@layer components{
.tn-search{position:relative}
.tn-search input{padding-right:38px}
.tn-q-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:26px;height:26px;
  border:none;border-radius:50%;background:var(--bg3);color:var(--text2);font-size:.8rem;line-height:1;
  cursor:pointer;display:flex;align-items:center;justify-content:center}
.tn-q-clear:hover{background:var(--brand);color:#fff}
}

/* ── Przetargi: lejek (szeroki nabór → słownik → triaż AI) ─────────────── */
/* Fragment treści z podświetleniem — powód, dla którego ogłoszenie tu jest.
   Bez tego karta pokazuje tytuł drogi, a robota elektryczna siedzi w opisie. */
.tn-card-frag{font-size:.79rem;color:var(--text2);line-height:1.5;margin-top:5px;
  padding-left:9px;border-left:2px solid var(--border)}
.tn-card-frag mark{background:var(--brand-dim);color:var(--brand-deep);font-weight:600;
  padding:0 2px;border-radius:3px}
.tn-card-ai{font-size:.78rem;color:var(--text2);line-height:1.45;margin-top:5px;
  display:flex;gap:5px;align-items:flex-start}
.tn-card-ai svg{flex:0 0 auto;margin-top:2px;color:var(--brand)}
.tn-card-ai.is-low{color:var(--text3)}
.tn-card--low{opacity:.62}
.tn-card--low:hover{opacity:1}
.tn-chip--tresc{background:var(--brand-dim);color:var(--brand-deep);border-color:var(--brand-border)}
.tn-score--ai{position:relative;padding-top:2px;padding-bottom:12px}
.tn-score--ai i{position:absolute;left:0;right:0;bottom:2px;font-size:.55rem;font-style:normal;
  font-weight:600;letter-spacing:.06em;opacity:.7}
.tn-score--ai.is-low{color:var(--text3);background:var(--surface2);border-color:var(--border)}

/* Odsiew: zakładki + wyzwalacz triażu */
.tn-sito{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 10px}
.tn-sito-b{font-size:.79rem;padding:5px 11px;border-radius:99px;cursor:pointer;
  background:var(--surface2);border:1px solid var(--border);color:var(--text2)}
.tn-sito-b:hover{border-color:var(--brand-border);color:var(--text)}
.tn-sito-b.is-on{background:var(--brand-dim);border-color:var(--brand-border);
  color:var(--brand-deep);font-weight:600}
.tn-sito-n{display:inline-block;min-width:17px;padding:0 4px;margin-left:3px;border-radius:99px;
  background:var(--brand);color:#fff;font-size:.68rem;font-weight:700;text-align:center}
.tn-sito-go{margin-left:auto}
.tn-sito-go:disabled{opacity:.6;cursor:default}
.sa-det-none{color:var(--text3);font-style:italic;font-weight:400}

/* ── Przetargi: monitoring zmian ───────────────────────────────────────── */
.pill-n{display:inline-block;min-width:17px;padding:0 5px;margin-left:5px;border-radius:99px;
  background:var(--brand);color:#fff;font-size:.66rem;font-weight:700;line-height:16px;vertical-align:1px}
.pill-btn.active .pill-n{background:#fff;color:var(--brand-deep)}
.tn-zm-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:4px}
.tn-zm.is-seen{opacity:.6}
.tn-zm.is-seen:hover{opacity:1}
/* Pilne = zmiana, która potrafi wywrócić złożoną ofertę. Lewa krecha zamiast
   czerwonego tła — lista ma zostać czytelna, gdy takich pozycji jest kilka. */
.tn-zm.is-urgent{border-left:3px solid var(--danger,#ef383b)}
.tn-chip--pilne{background:rgba(239,56,59,.1);color:#ef383b;border-color:rgba(239,56,59,.3)}
.tn-chip--new{background:var(--brand-dim);color:var(--brand-deep);border-color:var(--brand-border)}

/* ── Przetargi: szuflada szczegółów ────────────────────────────────────── */
/* Lista zostaje widoczna pod spodem — przy przeglądaniu kilkudziesięciu pozycji
   ciągłe wchodzenie i cofanie gubi kontekst. */
.tn-dr-bg{justify-content:flex-end;align-items:stretch;padding:0}
.tn-dr{width:min(720px,92vw);height:100%;background:var(--bg);display:flex;flex-direction:column;
  box-shadow:-13px 0 55px rgba(0,0,0,.22);animation:tnDrIn .21s ease-out}
@keyframes tnDrIn{from{transform:translateX(34px);opacity:.4}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.tn-dr{animation:none}}
.tn-dr-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:13px 16px;border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0}
.tn-dr-t{font-size:.95rem;font-weight:700;color:var(--text)}
/* flex-shrink:0 na dzieciach — patrz SKILL §3c */
.tn-dr-body{flex:1;overflow-y:auto;padding:16px}
.tn-dr-body>*{flex-shrink:0}

/* ── Przetargi: układ listy (karty / tabela) ───────────────────────────── */
.tn-uklad{display:inline-flex;gap:0;margin:0 0 10px;border:1px solid var(--border);
  border-radius:8px;overflow:hidden}
.tn-uklad-b{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;padding:5px 11px;
  background:var(--surface);border:none;color:var(--text2);cursor:pointer}
.tn-uklad-b+.tn-uklad-b{border-left:1px solid var(--border)}
.tn-uklad-b.is-on{background:var(--brand-dim);color:var(--brand-deep);font-weight:600}
.tn-uklad-b:hover:not(.is-on){color:var(--text)}

.tn-tab-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--rs);background:var(--surface)}
.tn-tab{width:100%;border-collapse:collapse;font-size:.82rem;min-width:760px}
.tn-tab th{text-align:left;font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--text3);padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap;
  position:sticky;top:0;background:var(--surface);z-index:1}
.tn-tab td{padding:10px 12px;border-bottom:1px solid var(--border2);vertical-align:top;color:var(--text2)}
.tn-tab tbody tr{cursor:pointer}
.tn-tab tbody tr:hover{background:var(--bg)}
.tn-tab tbody tr:last-child td{border-bottom:none}
.tn-tab-tt{color:var(--text);font-weight:500;line-height:1.4;margin-bottom:3px}
.tn-tab-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.tn-tab-none{color:var(--text3);font-style:normal;opacity:.7}

/* ── Ocena jako etykieta, nie goła liczba ──────────────────────────────── */
.tn-ocena{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap;
  font-size:.72rem;padding:3px 9px;border-radius:99px;border:1px solid transparent}
.tn-ocena b{font-size:.86rem;font-weight:700;font-variant-numeric:tabular-nums}
.tn-ocena i{font-style:normal;font-size:.6rem;font-weight:700;letter-spacing:.05em;opacity:.65}
.tn-ocena--ok{background:rgba(28,169,128,.1);color:#0f7a5c;border-color:rgba(28,169,128,.28)}
.tn-ocena--mid{background:var(--surface2);color:var(--text2);border-color:var(--border)}
.tn-ocena--low{background:var(--surface2);color:var(--text3);border-color:var(--border)}

/* ── Podpis profilu w nagłówku ─────────────────────────────────────────── */
.tn-hdr-lnk{background:none;border:none;padding:0 0 0 6px;font-size:.76rem;color:var(--brand);
  cursor:pointer;text-decoration:underline;font-family:inherit}
.tn-hdr-tag{font-size:.66rem;padding:1px 6px;border-radius:99px;background:var(--brand-dim);
  color:var(--brand-deep);vertical-align:1px}
.tn-hdr-warn{color:#ef383b;font-weight:600}
/* Martwy harmonogram — radar wyglada normalnie, tylko przestaje sie zapelniac.
   Ostrzezenie musi byc widoczne, ale nie krzykliwe: to stan do sprawdzenia, nie awaria. */
.tn-meta--stale{display:flex;gap:6px;align-items:flex-start;line-height:1.5;
  color:#8a5a00;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);
  border-radius:var(--rs);padding:9px 12px;margin-top:13px}
.tn-meta--stale svg{flex:0 0 auto;margin-top:2px}
.sa-mod-lim{display:flex;gap:6px;align-items:center;flex-shrink:0}
.sa-mod-lim input{width:76px;padding:6px 8px;font-size:.86rem;text-align:right;
  border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);
  font-variant-numeric:tabular-nums}
/* Limit analiz w pakiecie — widoczny zawsze, nie dopiero przy wyczerpaniu. */
.tn-limit{margin-top:10px;padding-top:10px;border-top:1px solid var(--border2)}
.tn-limit-bar{height:5px;border-radius:99px;background:var(--surface2);overflow:hidden}
.tn-limit-bar span{display:block;height:100%;background:var(--brand);border-radius:99px;
  transition:width .21s ease}
.tn-limit-tx{font-size:.78rem;color:var(--text2);margin-top:6px}
.tn-limit.is-warn .tn-limit-bar span{background:#f59e0b}
.tn-limit.is-out .tn-limit-bar span{background:#ef383b}
.tn-limit.is-out .tn-limit-tx{color:#ef383b}
.tn-uklad-b--sep{border-left:1px solid var(--border)}

/* ── Przetargi: przełączniki przy profilu obserwacji ───────────────────── */
/* Dwa osobne, bo to dwie różne potrzeby: „nie szukaj" i „szukaj, ale nie dzwoń". */
.tn-watch-sw{display:flex;flex-direction:column;gap:6px;flex-shrink:0;margin-right:10px}
.tn-sw{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;padding:5px 10px;
  border-radius:99px;cursor:pointer;background:var(--surface2);border:1px solid var(--border);
  color:var(--text3);font-family:inherit;white-space:nowrap}
.tn-sw:hover:not(:disabled){border-color:var(--brand-border);color:var(--text2)}
.tn-sw.is-on{background:var(--brand-dim);border-color:var(--brand-border);color:var(--brand-deep);font-weight:600}
.tn-sw-d{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.35}
.tn-sw.is-on .tn-sw-d{opacity:1}
.tn-sw.is-dead{opacity:.4;cursor:not-allowed}
@media(max-width:620px){
  .tn-watch-sw{flex-direction:row;flex-wrap:wrap;margin:0 0 8px}
}

/* ── Przetargi: widok mapy ─────────────────────────────────────────────── */
.tn-mapa-wrap{display:flex;flex-direction:column;gap:8px}
.tn-mapa{height:min(68vh,610px);width:100%;border:1px solid var(--border);
  border-radius:var(--rs);overflow:hidden;background:var(--surface2);z-index:0}
/* Leaflet ustawia wysokie z-index na swoich panelach — bez tego mapa
   przykrywa szufladę szczegółów i nagłówek modułu. */
.leaflet-pane,.leaflet-top,.leaflet-bottom{z-index:1 !important}
.tn-mapa-info{display:flex;gap:6px;align-items:flex-start;font-size:.78rem;color:var(--text3);
  line-height:1.45}
.tn-mapa-info svg{flex:0 0 auto;margin-top:2px}
.tn-pin{display:block;width:15px;height:15px;border-radius:50%;border:2px solid #fff;
  box-shadow:0 1px 4px rgba(0,0,0,.4)}
.tn-pin-wrap{background:none;border:none}
.tn-pop{min-width:200px;max-width:280px}
.tn-pop b{display:block;font-size:.85rem;line-height:1.35;margin-bottom:4px;color:var(--text)}
.tn-pop-b{font-size:.78rem;color:var(--text2);margin-bottom:3px}
.tn-pop-w{font-size:.78rem;font-weight:600;color:var(--text)}
.tn-pop-t{font-size:.76rem;color:var(--text3);margin-bottom:6px}
.tn-pop .btn-sm-tn{margin-top:6px}
.leaflet-popup-content{margin:10px 12px}

/* ── Mapa: klastry pinezek ─────────────────────────────────────────────── */
/* Rozmiar niesie informację: skupisko 5 pozycji nie ma wyglądać jak 50.
   Kolor jeden (marka), bo znaczenie niesie liczba, nie barwa — barwa jest
   zarezerwowana dla oceny pojedynczej pinezki. */
.tn-klaster-wrap{background:none;border:none}
.tn-klaster{display:flex;align-items:center;justify-content:center;border-radius:50%;
  color:#fff;font-weight:700;font-variant-numeric:tabular-nums;
  background:var(--brand);border:3px solid rgba(255,255,255,.9);
  box-shadow:0 2px 10px rgba(0,0,0,.28);transition:transform .13s ease}
.tn-klaster--m{width:34px;height:34px;font-size:.8rem}
.tn-klaster--s{width:44px;height:44px;font-size:.9rem}
.tn-klaster--d{width:55px;height:55px;font-size:1rem}
.tn-klaster:hover{transform:scale(1.08)}
/* Wachlarz przy identycznych współrzędnych — cienkie linie, żeby nie zagłuszały pinezek */
.leaflet-cluster-spider-leg{stroke:var(--brand);stroke-opacity:.45;stroke-width:1.2}

/* ── Mapy: legenda i „co mam w okolicy" ────────────────────────────────── */
/* Legenda jest OBOWIĄZKOWA wszędzie, gdzie kolor niesie znaczenie — bez niej
   pinezka jest ładna i nic nie mówi. */
.mapa-legenda{display:flex;flex-wrap:wrap;gap:4px 13px;font-size:.76rem;color:var(--text2);
  margin:0 0 8px;align-items:center}
.mapa-legenda span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.mapa-legenda i{width:11px;height:11px;border-radius:50%;border:2px solid #fff;
  box-shadow:0 1px 3px rgba(0,0,0,.3);flex:0 0 auto}

/* Odpowiedź na „co mam w okolicy" — pod mapą, bo czyta się ją PO wybraniu punktu. */
.srw-okolica{margin-top:13px;padding:13px;border:1px solid var(--border);
  border-radius:var(--rs);background:var(--surface)}
.srw-okolica-hd{font-size:.88rem;color:var(--text);margin-bottom:8px;line-height:1.5}
.srw-okolica .pill-bar{margin:0 0 10px}
.srw-lista{display:flex;flex-direction:column;gap:1px}
.srw-poz{display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:8px;
  cursor:pointer;border-bottom:1px solid var(--border2)}
.srw-poz:last-child{border-bottom:none}
.srw-poz:hover{background:var(--bg)}
.srw-kropka{width:11px;height:11px;border-radius:50%;flex:0 0 auto;
  border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.srw-poz-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.srw-poz-tx b{font-size:.84rem;color:var(--text)}
.srw-poz-tx span{font-size:.78rem;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srw-poz-tx i{font-size:.72rem;color:var(--text3);font-style:normal}
/* Odległość wyrównana do prawej i tabelaryczna — po to, żeby dała się porównać wzrokiem. */
.srw-km{flex:0 0 auto;font-size:.8rem;font-weight:700;color:var(--text2);
  font-variant-numeric:tabular-nums}

/* ── Przetargi: pasek filtrów ──────────────────────────────────────────── */
.tn-filtry{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.tn-fil{position:relative}
.tn-fil-b{display:inline-flex;align-items:center;gap:4px;font-size:.79rem;
  padding:5px 11px;border-radius:99px;cursor:pointer;background:var(--surface);
  border:1px solid var(--border);color:var(--text2);font-family:inherit;white-space:nowrap}
.tn-fil-b:hover{border-color:var(--brand-border);color:var(--text)}
.tn-fil-b.is-on{background:var(--brand-dim);border-color:var(--brand-border);
  color:var(--brand-deep);font-weight:600}
.tn-fil-b svg{transform:rotate(90deg);opacity:.6}
.tn-fil-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:30;
  min-width:200px;background:var(--surface);border:1px solid var(--border);
  border-radius:var(--rs);box-shadow:0 8px 34px rgba(0,0,0,.18);padding:5px;flex-direction:column}
.tn-fil-menu.open{display:flex}
.tn-fil-o{text-align:left;font-size:.82rem;padding:8px 10px;border-radius:7px;cursor:pointer;
  background:none;border:none;color:var(--text);font-family:inherit}
.tn-fil-o:hover{background:var(--bg)}
.tn-fil-o.is-on{background:var(--brand-dim);color:var(--brand-deep);font-weight:600}
.tn-fil-o--off{color:var(--text3);border-top:1px solid var(--border2);margin-top:3px;border-radius:0}

/* Aktywne filtry ZAWSZE widoczne i klikalne — bez tego filtr staje się pułapką. */
.tn-fil-akt{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.tn-chip--filtr{background:var(--brand-dim);color:var(--brand-deep);border-color:var(--brand-border);
  cursor:pointer;font-weight:600}
.tn-chip--filtr:hover{background:var(--brand);color:#fff;border-color:var(--brand)}
.tn-fil-clr{background:none;border:none;font-size:.76rem;color:var(--text3);cursor:pointer;
  text-decoration:underline;font-family:inherit;padding:0 4px}
.tn-fil-clr:hover{color:var(--text)}
