    /* ═══════════════════════════════════════════════════════════════
       GENERATOR OPZ WCB — Szata Profesjonalna
       Włocławskie Centrum Biznesu · Styl: Polska Administracja
    ═══════════════════════════════════════════════════════════════ */

    :root {
      /* ── Paleta kolorów ─────────────────────────────────────── */
      --void:        #F4F7FC;
      --deep:        #E8EFF8;
      --card:        #FFFFFF;
      --surface:     #F7F9FD;
      --surface2:    #EDF1FA;
      --border:      rgba(10,60,130,.08);
      --border-mid:  rgba(10,60,130,.16);
      --border-hi:   rgba(10,60,130,.42);
      /* Niebieski instytucjonalny */
      --cyan:        #003D8F;
      --cyan-dim:    rgba(0,61,143,.55);
      --cyan-glow:   0 2px 10px rgba(0,61,143,.14);
      /* Czerwony akcent */
      --orange:      #C0392B;
      --orange-dim:  rgba(192,57,43,.50);
      --orange-glow: 0 2px 8px rgba(192,57,43,.15);
      /* Zielony sukces */
      --lime:        #1E7E34;
      --lime-dim:    rgba(30,126,52,.48);
      --lime-glow:   0 2px 6px rgba(30,126,52,.14);
      /* Fiolet pomocniczy */
      --violet:      #512DA8;
      --red-neon:    #C0392B;
      /* Tekst */
      --text-hi:     #0A1628;
      --text-mid:    #2C4A72;
      --text-lo:     rgba(44,74,114,.60);
      /* Czcionki */
      --font-display:'Nunito',sans-serif;
      --font-body:   'Lato',sans-serif;
      --font-mono:   'IBM Plex Mono',monospace;
      /* Dostępność – rozmiar czcionki */
      --font-scale:  1;
    }

    /* ── Tryby dostępności ────────────────────────────────────── */
    html.font-lg  { --font-scale: 1.13 }
    html.font-xl  { --font-scale: 1.27 }

    html.high-contrast {
      --void:        #FFFFFF;
      --deep:        #F0F0F0;
      --card:        #FFFFFF;
      --surface:     #F0F0F0;
      --surface2:    #E0E0E0;
      --border:      rgba(0,0,0,.30);
      --border-mid:  rgba(0,0,0,.50);
      --border-hi:   rgba(0,0,0,.80);
      --cyan:        #003399;
      --cyan-dim:    rgba(0,51,153,.70);
      --orange:      #CC0000;
      --lime:        #006600;
      --text-hi:     #000000;
      --text-mid:    #1A1A1A;
      --text-lo:     rgba(0,0,0,.60);
    }

/* ── Reset & base ─────────────────────────────────────── */
    *{box-sizing:border-box}
    ::-webkit-scrollbar{width:5px;height:5px}
    ::-webkit-scrollbar-track{background:var(--deep)}
    ::-webkit-scrollbar-thumb{background:rgba(14,82,168,.22);border-radius:3px}
    ::-webkit-scrollbar-thumb:hover{background:rgba(14,82,168,.42)}

    body{
      background:var(--void) !important;
      color:var(--text-hi) !important;
      font-family:var(--font-body) !important;
      font-size:calc(16px * var(--font-scale));
      line-height:1.65;
      min-height:100vh;
      -webkit-font-smoothing:antialiased;
      -moz-osx-font-smoothing:grayscale;
    }

    .skip-link{
      position:fixed;
      left:12px;
      top:12px;
      z-index:9999;
      transform:translateY(-140%);
      padding:10px 14px;
      border-radius:8px;
      background:#fff;
      color:var(--cyan);
      border:2px solid var(--cyan);
      font-weight:800;
      box-shadow:0 8px 24px rgba(0,0,0,.18);
      transition:transform .16s ease-out;
    }
    .skip-link:focus{
      transform:translateY(0);
      outline:3px solid #1d4ed8;
      outline-offset:2px;
    }

    /* ── Tailwind color overrides for light theme ─────────── */
    .bg-white{background-color:var(--card) !important}
    .bg-slate-100{background-color:var(--deep) !important}
    .bg-slate-50{background-color:var(--surface) !important}
    .bg-slate-200{background-color:var(--surface2) !important}
    .bg-slate-800,.bg-slate-900{background-color:var(--text-hi) !important}
    .bg-blue-50,.bg-navy-50{background-color:rgba(0,86,184,.06) !important}
    .bg-red-50{background-color:rgba(184,14,40,.05) !important}
    .bg-amber-50{background-color:rgba(200,140,0,.06) !important}
    .bg-green-50,.bg-emerald-50{background-color:rgba(2,112,64,.06) !important}

    .text-slate-900,.text-slate-800,.text-slate-700{color:var(--text-hi) !important}
    .text-slate-600,.text-slate-500{color:var(--text-mid) !important}
    .text-slate-400,.text-slate-300{color:var(--text-lo) !important}
    .text-white{color:#fff !important}
    .text-blue-700,.text-navy-800{color:var(--cyan) !important}
    .text-red-700,.text-red-600{color:var(--red-neon) !important}
    .text-amber-800{color:#8A5A00 !important}
    .text-green-700,.text-emerald-700{color:var(--lime) !important}
    .text-orange-300{color:var(--orange) !important}
    .text-blue-200,.text-blue-200\/90,.text-blue-200\/80{color:var(--cyan-dim) !important}

    .border-slate-200,.border-slate-300{border-color:var(--border-mid) !important}
    .border-slate-100{border-color:var(--border) !important}
    .border-blue-200{border-color:rgba(0,86,184,.28) !important}
    .border-red-200{border-color:rgba(184,14,40,.25) !important}
    .border-amber-200{border-color:rgba(200,140,0,.28) !important}
    .border-green-200{border-color:rgba(2,112,64,.28) !important}
    .border-emerald-200,.border-emerald-300{border-color:rgba(2,112,64,.30) !important}
    .border-navy-200{border-color:rgba(0,86,184,.22) !important}

    .text-accent-600,.text-accent-500{color:var(--orange) !important}
    .text-emerald-600,.text-emerald-700{color:var(--lime) !important}
    .text-red-500{color:var(--red-neon) !important}
    .text-green-600{color:var(--lime) !important}

    /* ── Animations ───────────────────────────────────────── */
    @keyframes spin{to{transform:rotate(360deg)}}
    @keyframes fadeInUp{
      from{opacity:0;transform:translateY(16px)}
      to{opacity:1;transform:translateY(0)}
    }
    @keyframes slideInRight{
      from{opacity:0;transform:translateX(24px)}
      to{opacity:1;transform:translateX(0)}
    }
    @keyframes countUp{
      from{opacity:0;transform:scale(.5)}
      to{opacity:1;transform:scale(1)}
    }
    @keyframes neonPulse{
      0%,100%{opacity:1;filter:drop-shadow(0 0 4px currentColor)}
      50%{opacity:.65;filter:drop-shadow(0 0 12px currentColor)}
    }
    @keyframes borderSpin{
      to{transform:rotate(360deg)}
    }
    @keyframes scanLine{
      0%{transform:translateY(-100%)}
      100%{transform:translateY(100vh)}
    }
    @keyframes dataStream{
      0%{opacity:0;transform:translateY(-10px)}
      50%{opacity:1}
      100%{opacity:0;transform:translateY(10px)}
    }
    @keyframes gridFloat{
      0%,100%{opacity:.04}
      50%{opacity:.08}
    }
    @keyframes shimmer{
      0%{background-position:-400px 0}
      100%{background-position:400px 0}
    }
    @keyframes hexPulse{
      0%,100%{box-shadow:0 0 0 0 var(--orange-dim)}
      50%{box-shadow:0 0 0 12px rgba(212,64,0,0)}
    }
    @keyframes cyanPulse{
      0%,100%{box-shadow:0 0 0 0 var(--cyan-dim)}
      50%{box-shadow:0 0 0 12px rgba(0,86,184,0)}
    }
    @keyframes limePulse{
      0%,100%{box-shadow:0 0 0 0 var(--lime-dim)}
      50%{box-shadow:0 0 0 12px rgba(2,112,64,0)}
    }
    @keyframes energyFill{
      from{background-position:200% center}
      to{background-position:-200% center}
    }
    @keyframes cornerBlink{
      0%,90%,100%{opacity:1}
      95%{opacity:.3}
    }
    @keyframes bgDrift{
      0%{transform:translate(0,0)}
      25%{transform:translate(20px,-15px)}
      50%{transform:translate(-10px,20px)}
      75%{transform:translate(-20px,-8px)}
      100%{transform:translate(0,0)}
    }

    .spin{animation:spin 1s linear infinite}
    .anim-in{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) both}
    .anim-in-delay-1{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) .07s both}
    .anim-in-delay-2{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) .14s both}
    .anim-in-delay-3{animation:fadeInUp .5s cubic-bezier(.22,1,.36,1) .21s both}
    .anim-slide-right{animation:slideInRight .4s cubic-bezier(.22,1,.36,1) both}
    .anim-count{animation:countUp .55s cubic-bezier(.34,1.56,.64,1) both}
    .pulse-glow{animation:cyanPulse 2.4s ease-out infinite}
    .pulse-glow-orange{animation:hexPulse 2.4s ease-out infinite}
    /* Miekkie pojawianie sie paneli przy przelaczaniu zakladek (SWOT rek. 27).
       display:none -> block restartuje animacje (wg spec.); prefers-reduced-motion wylacza ja globalnie (nizej). */
    @keyframes nxPanelIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
    .nx-panel-enter{animation:nxPanelIn .24s ease-out both}

    /* ── Blueprint grid background ───────────────────────── */
    .bg-mesh{
      position:relative;
      background:var(--void) !important;
    }
    .bg-mesh::before{
      content:"";
      position:fixed;inset:0;
      pointer-events:none;z-index:0;
      background-image:
        linear-gradient(rgba(14,82,168,.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(14,82,168,.05) 1px, transparent 1px);
      background-size:60px 60px;
      mask-image:radial-gradient(ellipse 90% 90% at 50% 50%, black 40%, transparent 100%);
      animation:gridFloat 10s ease-in-out infinite;
    }
    .bg-mesh>*{position:relative;z-index:1}


    /* ── Glass morphism – light ───────────────────────────── */
    .glass{
      background:rgba(255,255,255,.90) !important;
      backdrop-filter:blur(20px) saturate(140%);
      -webkit-backdrop-filter:blur(20px) saturate(140%);
      border:1px solid var(--border-mid) !important;
      box-shadow:0 0 0 1px var(--border),0 24px 64px rgba(0,50,150,.10),inset 0 1px 0 rgba(255,255,255,.9);
    }
    .glass-dark{
      background:rgba(238,244,255,.80) !important;
      backdrop-filter:blur(20px);
      border:1px solid var(--border) !important;
    }

    /* ── Aurora card (light) ──────────────────────────────── */
    .nx-card{
      position:relative;
      background:var(--card) !important;
      border:1px solid var(--border-mid) !important;
      border-top:1px solid rgba(14,82,168,.30) !important;
      border-radius:14px;
      overflow:hidden;
      transition:border-color .3s,box-shadow .3s,transform .3s;
      box-shadow:0 2px 10px rgba(0,50,150,.07),0 1px 0 var(--border);
    }
    .nx-card::before{
      content:"";
      position:absolute;inset:0;pointer-events:none;
      background:linear-gradient(180deg,rgba(14,82,168,.025) 0%,transparent 35%);
    }

    /* ── Form inputs ──────────────────────────────────────── */
    input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]),
    textarea,
    select{
      background:var(--surface) !important;
      border:1px solid var(--border-mid) !important;
      color:var(--text-hi) !important;
      border-radius:10px !important;
      font-family:var(--font-body) !important;
      font-size:15px !important;
      transition:border-color .25s,box-shadow .25s !important;
    }
    input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):focus,
    textarea:focus,
    select:focus{
      border-color:var(--cyan) !important;
      box-shadow:0 0 0 3px rgba(0,86,184,.12),var(--cyan-glow) !important;
      outline:none !important;
    }
    input::placeholder,textarea::placeholder{color:var(--text-lo) !important}
    select option{background:var(--deep);color:var(--text-hi)}
    select optgroup{background:var(--deep);color:var(--cyan-dim)}

    /* ── Labels ───────────────────────────────────────────── */
    label:not([class*="flex"]):not([class*="block"]){
      font-family:var(--font-body) !important;
      font-size:14px !important;
      font-weight:600 !important;
      text-transform:none !important;
      letter-spacing:0 !important;
      color:var(--text-mid) !important;
    }
    .block.text-sm.font-medium{
      font-family:var(--font-body) !important;
      font-size:14px !important;
      font-weight:600 !important;
      text-transform:none !important;
      letter-spacing:0 !important;
      color:var(--text-mid) !important;
    }

    /* ── Buttons ──────────────────────────────────────────── */
    button:not([class*="text-only"]):not([type=""]){
      font-family:var(--font-body) !important;
      font-weight:600 !important;
      letter-spacing:.03em !important;
    }

    /* Primary (navy/blue) → Solid blue */
    .btn-primary,
    button.bg-navy-800,button.bg-navy-900,
    .bg-navy-800,.bg-navy-900{
      background:var(--cyan) !important;
      border:1px solid var(--cyan) !important;
      color:#fff !important;
      box-shadow:0 2px 8px rgba(0,86,184,.25) !important;
      position:relative;overflow:hidden;
    }
    .btn-primary:hover:not(:disabled),
    button.bg-navy-800:hover:not(:disabled){
      background:rgba(0,76,164,.92) !important;
      box-shadow:var(--cyan-glow),0 4px 16px rgba(0,86,184,.2) !important;
      transform:translateY(-1px);
    }

    /* Accent (orange) → Solid orange */
    .btn-accent,
    button.bg-accent-500,button.hover\:bg-accent-600:hover,
    .bg-accent-500{
      background:var(--orange) !important;
      border:1px solid var(--orange) !important;
      color:#fff !important;
      box-shadow:0 2px 8px rgba(212,64,0,.22) !important;
      position:relative;overflow:hidden;
    }
    .btn-accent:hover:not(:disabled),
    button.bg-accent-500:hover:not(:disabled){
      background:rgba(200,52,0,.92) !important;
      box-shadow:var(--orange-glow),0 4px 16px rgba(212,64,0,.18) !important;
      transform:translateY(-1px);
    }

    /* Generate / Login / Batch buttons – solid gradient */
    #generateBtn,#generateBatchBtn,#loginBtn{
      background:linear-gradient(135deg,var(--orange),#E25000) !important;
      border:1px solid rgba(212,64,0,.4) !important;
      color:#fff !important;
      font-family:var(--font-body) !important;
      font-size:15px !important;
      font-weight:700 !important;
      letter-spacing:.01em !important;
      text-transform:none !important;
      position:relative;overflow:hidden;
      box-shadow:0 3px 12px rgba(212,64,0,.28) !important;
      transition:all .3s !important;
    }
    #generateBtn::after,#generateBatchBtn::after,#loginBtn::after{
      content:"";
      position:absolute;top:0;left:-100%;
      width:60%;height:100%;
      background:linear-gradient(90deg,transparent,rgba(255,255,255,.20),transparent);
      transition:left .6s;
    }
    #generateBtn:hover:not(:disabled)::after,
    #generateBatchBtn:hover:not(:disabled)::after,
    #loginBtn:hover:not(:disabled)::after{left:160%}
    #generateBtn:hover:not(:disabled),#generateBatchBtn:hover:not(:disabled),#loginBtn:hover:not(:disabled){
      background:linear-gradient(135deg,#C83A00,var(--orange)) !important;
      box-shadow:var(--orange-glow),0 6px 20px rgba(212,64,0,.25) !important;
      transform:translateY(-2px) scale(1.01) !important;
    }
    #generateBtn:disabled,#generateBatchBtn:disabled{
      opacity:.45 !important;
    }

    /* Więcej oddechu między sekcjami formularza generatora (czytelność/przystępność) */
    #opzForm.space-y-5 > * + *{ margin-top:1.5rem !important; }

    /* Secondary / ghost buttons */
    button.bg-slate-100,button.bg-slate-200,
    button.hover\:bg-slate-200,
    #clearBtn,#clearSingleBtn,#clearBatchBtn,
    #refreshHistoryBtn,#editOpzBtn,#saveDraftBtn,
    #copyBtn,#copyEstimateBtn{
      background:#fff !important;
      border:1px solid var(--border-mid) !important;
      color:var(--text-mid) !important;
      box-shadow:0 1px 4px rgba(0,50,150,.06) !important;
    }
    button.bg-slate-100:hover,button.bg-slate-200:hover,
    #clearBtn:hover,#clearSingleBtn:hover,#clearBatchBtn:hover,
    #refreshHistoryBtn:hover,#editOpzBtn:hover,#copyBtn:hover{
      background:var(--surface) !important;
      border-color:var(--border-hi) !important;
      color:var(--cyan) !important;
      box-shadow:var(--cyan-glow) !important;
    }

    /* Validate btn */
    #validateBtn{
      background:#fff !important;
      border:1px solid rgba(200,140,0,.38) !important;
      color:#8A5A00 !important;
      box-shadow:0 1px 4px rgba(0,50,150,.05) !important;
    }
    #validateBtn:hover{
      background:rgba(200,140,0,.06) !important;
      border-color:rgba(200,140,0,.65) !important;
      box-shadow:0 0 12px rgba(200,140,0,.18) !important;
    }

    /* Propose fixes btn */
    #proposeFixesBtn{
      background:rgba(91,33,182,.07) !important;
      border:1px solid rgba(91,33,182,.32) !important;
      color:var(--violet) !important;
    }
    #proposeFixesBtn:hover{
      background:rgba(91,33,182,.13) !important;
      border-color:var(--violet) !important;
      box-shadow:0 0 16px rgba(91,33,182,.20) !important;
    }

    /* Word export → Blue */
    #exportWordBtn,#exportEstimateWordBtn,button[data-action="word"]{
      background:rgba(0,86,184,.07) !important;
      border:1px solid rgba(0,86,184,.28) !important;
      color:var(--cyan) !important;
    }
    #exportWordBtn:hover,#exportEstimateWordBtn:hover,button[data-action="word"]:hover{
      background:rgba(0,86,184,.13) !important;
      box-shadow:var(--cyan-glow) !important;
    }

    /* PDF export → Red */
    #exportPdfBtn,#exportEstimatePdfBtn,button[data-action="pdf"]{
      background:rgba(184,14,40,.06) !important;
      border:1px solid rgba(184,14,40,.25) !important;
      color:var(--red-neon) !important;
    }
    #exportPdfBtn:hover,#exportEstimatePdfBtn:hover,button[data-action="pdf"]:hover{
      background:rgba(184,14,40,.11) !important;
      box-shadow:0 0 12px rgba(184,14,40,.18) !important;
    }

    /* Benchmark btn */
    #benchmarkBtn{
      background:rgba(0,86,184,.06) !important;
      border:1px solid rgba(0,86,184,.24) !important;
      color:var(--cyan) !important;
    }
    #benchmarkBtn:hover{
      background:rgba(0,86,184,.12) !important;
      box-shadow:var(--cyan-glow) !important;
    }

    /* Tab switcher */
    #tabSingle,#tabBatch{
      background:transparent !important;
      border:1px solid transparent !important;
      color:var(--text-mid) !important;
      border-radius:6px !important;
      font-family:var(--font-body) !important;
      font-size:13px !important;
      font-weight:600 !important;
      letter-spacing:0 !important;
      text-transform:none !important;
      transition:all .2s !important;
    }
    #tabSingle.btn-primary{
      border-color:var(--cyan) !important;
      color:#fff !important;
      background:var(--cyan) !important;
      box-shadow:0 2px 8px rgba(0,86,184,.22) !important;
    }
    #tabBatch:hover{
      border-color:var(--border-mid) !important;
      color:var(--text-hi) !important;
    }

    /* Tab container */
    .flex.bg-white.border.border-slate-200.rounded-xl.p-1.gap-1.shadow-sm{
      background:var(--surface) !important;
      border-color:var(--border-mid) !important;
    }

    /* ── Navbar (ciemny granatowy – oryginalny styl) ──────── */
    nav.sticky{
      background:linear-gradient(90deg,#0D2B5E 0%,#0F3270 50%,#0D2B5E 100%) !important;
      border-bottom:1px solid rgba(255,255,255,.10) !important;
      backdrop-filter:none !important;
      box-shadow:0 4px 20px rgba(0,20,60,.28),0 1px 0 rgba(255,255,255,.05) !important;
    }
    nav .font-semibold{font-family:var(--font-display) !important;font-size:13px !important;letter-spacing:.02em !important;color:#ffffff !important;font-weight:800 !important}
    nav .text-accent-500,nav span.text-orange-300{color:#fbbf24 !important}
    #userLabel{color:rgba(203,213,255,.85) !important;font-family:var(--font-body) !important;font-size:12px !important;font-weight:500 !important}
    #logoutBtn{
      color:rgba(255,255,255,.90) !important;
      border:1px solid rgba(255,255,255,.22) !important;
      border-radius:7px !important;
      background:rgba(255,255,255,.07) !important;
      font-family:var(--font-body) !important;
      font-size:12px !important;
      font-weight:600 !important;
      letter-spacing:.01em !important;
    }
    #logoutBtn:hover{
      color:#fff !important;
      border-color:rgba(255,255,255,.50) !important;
      background:rgba(255,255,255,.16) !important;
      box-shadow:0 2px 8px rgba(0,0,0,.15) !important;
    }

    /* Navbar logos */
    nav img.h-10{
      border:1px solid rgba(255,255,255,.18) !important;
      border-radius:6px !important;
      box-shadow:0 2px 8px rgba(0,0,0,.20) !important;
    }

    /* ── Main heading (wyłączony gradient – używamy .opz-logo) */
    h2.text-3xl,h2.text-4xl{
      font-family:var(--font-display) !important;
      font-size:clamp(1.35rem,3vw,2rem) !important;
      font-weight:900 !important;
      letter-spacing:-.01em !important;
      background:none !important;
      background-image:none !important;
      -webkit-background-clip:unset !important;
      background-clip:unset !important;
      -webkit-text-fill-color:unset !important;
      color:var(--cyan) !important;
      text-shadow:none !important;
    }

    /* ── Logotypy OPZ + J&E + In-house (przezroczyste PNG): kontrolowany rozmiar, wycentrowanie ── */

    /* ── Waski baner naglowka zakladki: logo OPZ + tytul + opis (spojny dla wszystkich zakladek) ── */
    .tab-banner{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:16px;
      padding:12px 20px;
      border-radius:16px;
      background:linear-gradient(135deg,#ffffff 0%,#e9f2fb 100%);
      border:1px solid var(--border-mid);
      box-shadow:0 1px 3px rgba(16,51,95,.06);
    }
    .tab-banner-main{ display:flex; align-items:center; gap:14px; min-width:0; }
    .tab-banner-logo{ height:46px; width:auto; flex-shrink:0; }
    .tab-banner-text{ min-width:0; }
    .tab-banner-title{ font-size:1.35rem; font-weight:800; line-height:1.15; color:#16335f; margin:0; }
    .tab-banner-desc{ font-size:.85rem; color:var(--text-mid); margin:2px 0 0; }
    @media (max-width:640px){
      .tab-banner{ flex-direction:column; align-items:flex-start; gap:10px; padding:12px 14px; }
      .tab-banner-logo{ height:38px; }
      .tab-banner-title{ font-size:1.15rem; }
    }
    .text-accent-600.text-xs.font-bold.uppercase{
      font-family:var(--font-mono) !important;
      font-size:10px !important;
      letter-spacing:.2em !important;
      color:var(--orange) !important;
    }


    /* ── Section headers (History, Admin, Estimation) ─────── */
    h3.text-lg,h3.font-semibold{
      font-family:var(--font-display) !important;
      font-size:16px !important;
      font-weight:800 !important;
      letter-spacing:-.01em !important;
      color:var(--text-hi) !important;
    }

    /* ── Spinner ──────────────────────────────────────────── */
    .w-8.h-8.rounded-full.border-2.border-accent-500{
      border-color:var(--cyan) !important;
      border-top-color:transparent !important;
      box-shadow:0 0 8px rgba(0,86,184,.28) !important;
    }

    /* ── Score / Gauge ────────────────────────────────────── */
    .score-badge{
      position:relative;
      display:inline-flex;align-items:center;gap:.6rem;
      padding:.55rem 1rem;
      border-radius:4px;
      font-family:var(--font-display) !important;
      font-size:11px !important;
      font-weight:700;
      letter-spacing:.08em !important;
      text-transform:uppercase;
      clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
    }
    .score-badge .dot{
      width:.5rem;height:.5rem;border-radius:50%;
      animation:cyanPulse 2.2s ease-out infinite
    }
    .text-emerald-700 .score-badge .dot{animation:limePulse 2.2s ease-out infinite}
    .text-red-700 .score-badge .dot{animation:hexPulse 2.2s ease-out infinite}
    .gauge-arc{transition:stroke-dashoffset 1.2s cubic-bezier(.22,1,.36,1)}
    .gauge-bg{stroke:rgba(0,86,184,.12) !important}

    /* Checklist */
    .border-emerald-300.bg-emerald-50\/50{
      background:rgba(2,112,64,.06) !important;
      border-color:rgba(2,112,64,.28) !important;
    }
    .border-red-200.bg-red-50\/50{
      background:rgba(184,14,40,.05) !important;
      border-color:rgba(184,14,40,.22) !important;
    }
    .text-emerald-600,.text-emerald-700{color:var(--lime) !important}
    .text-red-500,.text-red-600{color:var(--red-neon) !important}

    /* Risk findings */
    .sev-high{
      background:rgba(184,14,40,.08) !important;
      color:var(--red-neon) !important;
      border:1px solid rgba(184,14,40,.28) !important;
      border-radius:4px;
      font-family:var(--font-mono) !important;
      font-size:9px !important;
      letter-spacing:.1em !important;
      text-transform:uppercase !important;
    }
    .sev-medium{
      background:rgba(200,140,0,.07) !important;
      color:#8A5A00 !important;
      border:1px solid rgba(200,140,0,.28) !important;
      border-radius:4px;
      font-family:var(--font-mono) !important;
      font-size:9px !important;
      letter-spacing:.1em !important;
      text-transform:uppercase !important;
    }
    .sev-low{
      background:rgba(0,86,184,.07) !important;
      color:var(--cyan) !important;
      border:1px solid rgba(0,86,184,.22) !important;
      border-radius:4px;
      font-family:var(--font-mono) !important;
      font-size:9px !important;
      letter-spacing:.1em !important;
      text-transform:uppercase !important;
    }
    /* P1-8: brakujaca klasa dla ryzyk KRYTYCZNYCH — wypelniona czerwien (mocniej niz „wysokie") */
    .sev-critical{
      background:var(--red-neon) !important;
      color:#fff !important;
      border:1px solid var(--red-neon) !important;
      border-radius:4px;
      font-family:var(--font-mono) !important;
      font-size:11px !important;
      letter-spacing:.08em !important;
      text-transform:uppercase !important;
    }
    html.dark .sev-critical{ background:#dc2626 !important; color:#fff !important; border-color:#dc2626 !important; }
    /* P1-8 / a11y (5.4): czytelniejsze plakietki ryzyka — min. 11px zamiast 9px */
    .sev-high, .sev-medium, .sev-low{ font-size:11px !important; }
    #riskFindingsList .rounded-lg.border.border-slate-200{
      background:var(--surface) !important;
      border-color:var(--border-mid) !important;
      border-radius:8px !important;
    }
    #riskFindingsList .text-xs.text-slate-400.font-mono{
      background:var(--deep) !important;
      border-color:var(--border) !important;
      font-family:var(--font-mono) !important;
      color:var(--text-mid) !important;
    }
    .risk-solution.rounded-lg.border.border-green-200{
      background:rgba(2,112,64,.05) !important;
      border-color:rgba(2,112,64,.22) !important;
    }

    /* ── OPZ content / Markdown ───────────────────────────── */
    #opzContent,
    .markdown-body.bg-slate-50{
      background:var(--deep) !important;
      border:1px solid var(--border-mid) !important;
      border-radius:10px !important;
    }
    .markdown-body h1{font-size:1.35rem;font-weight:700;margin:1rem 0 .5rem;
      font-family:var(--font-display);letter-spacing:.04em;color:var(--cyan) !important}
    .markdown-body h2{font-size:1.1rem;font-weight:700;margin:.9rem 0 .4rem;
      font-family:var(--font-display);letter-spacing:.03em;color:var(--text-hi) !important;
      border-bottom:1px solid var(--border-mid);padding-bottom:.3rem}
    .markdown-body h3{font-size:1rem;font-weight:600;margin:.75rem 0 .35rem;
      color:var(--text-hi) !important}
    .markdown-body p{margin-bottom:.7rem;line-height:1.7;color:var(--text-mid) !important}
    .markdown-body ul,.markdown-body ol{margin:.4rem 0 .7rem 1.4rem;color:var(--text-mid) !important}
    .markdown-body li{margin-bottom:.2rem;line-height:1.6}
    .markdown-body strong{color:var(--text-hi) !important;font-weight:600}
    .markdown-body code{
      background:rgba(0,86,184,.07) !important;
      padding:.1rem .3rem;border-radius:3px;font-size:.83rem;
      color:var(--cyan) !important;
      border:1px solid rgba(0,86,184,.18) !important;
      font-family:var(--font-mono) !important;
    }
    .markdown-body blockquote{
      border-left:3px solid var(--cyan) !important;
      padding-left:1rem;color:var(--text-mid) !important;margin:.7rem 0;
      background:rgba(0,86,184,.04);border-radius:0 6px 6px 0;
    }
    .markdown-body hr{border-color:var(--border-mid) !important;margin:.75rem 0}
    .markdown-body table{
      width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;
      margin:1rem 0;font-size:.83rem;
      border:1px solid var(--border-mid) !important;border-radius:8px;overflow:hidden;
    }
    .markdown-body thead tr{background:rgba(0,86,184,.06) !important}
    .markdown-body th{
      padding:.65rem .8rem;text-align:left;font-weight:700;
      color:var(--cyan) !important;
      border-right:1px solid var(--border) !important;
      vertical-align:top;overflow-wrap:anywhere;
      font-family:var(--font-mono) !important;font-size:.75rem !important;
      text-transform:uppercase !important;letter-spacing:.06em !important;
    }
    .markdown-body th:last-child{border-right:0}
    .markdown-body td{
      padding:.6rem .8rem;color:var(--text-mid) !important;
      border-top:1px solid var(--border) !important;
      border-right:1px solid var(--border) !important;
      vertical-align:top;overflow-wrap:anywhere;line-height:1.45;
    }
    .markdown-body td:last-child{border-right:0}
    .markdown-body tr:nth-child(even) td{background:rgba(0,86,184,.025) !important}
    .markdown-body tr:hover td{background:rgba(0,86,184,.05) !important}

    /* ── Alternatives table ───────────────────────────────── */
    /* ── History items ────────────────────────────────────── */
    #historyList button[data-history-id]{
      background:var(--surface) !important;
      border:1px solid var(--border) !important;
      border-radius:10px !important;
      transition:all .2s !important;
    }
    #historyList button[data-history-id]:hover{
      border-color:var(--border-hi) !important;
      background:var(--surface2) !important;
      box-shadow:var(--cyan-glow) !important;
    }

    /* ── Proposals ────────────────────────────────────────── */
    .proposal-card{
      border-radius:8px;
      border:1px solid var(--border-mid) !important;
      background:var(--surface) !important;
      padding:1rem 1.1rem;
      transition:border-color .2s,transform .2s,box-shadow .2s;
      animation:fadeInUp .4s cubic-bezier(.22,1,.36,1) both;
    }
    .proposal-card:hover{
      border-color:var(--border-hi) !important;
      box-shadow:var(--cyan-glow) !important;
    }
    .proposal-card.accepted{
      border-color:rgba(2,112,64,.35) !important;
      background:rgba(2,112,64,.05) !important;
      box-shadow:var(--lime-glow) !important;
    }
    .proposal-card.rejected{opacity:.35;background:var(--deep) !important}
    .proposal-diff-original{
      background:rgba(184,14,40,.05) !important;
      border-left:3px solid var(--red-neon) !important;
      padding:.5rem .75rem;border-radius:4px;
      font-size:.8rem;color:rgba(140,8,24,.90) !important;
      white-space:pre-wrap;word-break:break-word;
      font-family:var(--font-mono) !important;
    }
    .proposal-diff-replacement{
      background:rgba(2,112,64,.06) !important;
      border-left:3px solid var(--lime) !important;
      padding:.5rem .75rem;border-radius:4px;
      font-size:.8rem;color:rgba(1,80,40,.90) !important;
      white-space:pre-wrap;word-break:break-word;
      font-family:var(--font-mono) !important;
    }

    /* ── Toast ────────────────────────────────────────────── */
    #toastHost{
      position:fixed;bottom:1.5rem;right:1.5rem;z-index:9998;
      display:flex;flex-direction:column;gap:.6rem;
    }
    .toast{
      padding:.7rem 1rem;border-radius:6px;
      font-size:.84rem;font-weight:600;
      box-shadow:0 8px 24px rgba(0,50,150,.12);
      animation:slideInRight .35s cubic-bezier(.22,1,.36,1) both;
      display:flex;align-items:center;gap:.6rem;
      font-family:var(--font-body) !important;
      clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
    }
    .toast-success{
      background:rgba(2,112,64,.10) !important;
      border:1px solid rgba(2,112,64,.35) !important;
      color:var(--lime) !important;
      box-shadow:var(--lime-glow),0 8px 24px rgba(0,50,150,.12) !important;
    }
    .toast-error{
      background:rgba(184,14,40,.09) !important;
      border:1px solid rgba(184,14,40,.35) !important;
      color:var(--red-neon) !important;
      box-shadow:0 0 14px rgba(184,14,40,.18),0 8px 24px rgba(0,50,150,.10) !important;
    }
    .toast-info{
      background:rgba(0,86,184,.08) !important;
      border:1px solid rgba(0,86,184,.28) !important;
      color:var(--cyan) !important;
      box-shadow:var(--cyan-glow),0 8px 24px rgba(0,50,150,.10) !important;
    }
    /* P1.1: tresc rosnie, przycisk zamkniecia po prawej (toast zamykalny + pauza na hover w JS). */
    .toast-msg{ flex:1 1 auto; }
    .toast-close{
      flex:0 0 auto;background:none;border:0;color:inherit;cursor:pointer;
      font-size:.95rem;line-height:1;opacity:.55;padding:2px 4px;border-radius:4px;
      transition:opacity .15s;
    }
    .toast-close:hover,.toast-close:focus-visible{ opacity:1; }

    /* ── Tooltip ──────────────────────────────────────────── */
    #smartTooltip{
      position:fixed;z-index:9999;max-width:300px;
      padding:.6rem .85rem;border-radius:6px;
      background:var(--card) !important;
      color:var(--text-hi) !important;
      border:1px solid var(--border-mid) !important;
      box-shadow:var(--cyan-glow),0 8px 24px rgba(0,50,150,.12);
      font-size:.77rem;line-height:1.4;pointer-events:none;
      font-family:var(--font-body) !important;
      clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px));
    }
    /* Ikona pomocy "?" przy polach formularza (SWOT rek. 29) */
    .field-help-icon{
      display:inline-flex;align-items:center;justify-content:center;
      width:16px;height:16px;margin-left:5px;vertical-align:middle;
      border-radius:50%;border:1px solid #c7d2fe;
      background:#eef2ff;color:#4338ca;
      font-size:11px;font-weight:700;line-height:1;cursor:help;
      font-family:var(--font-body);padding:0;
      transition:background .15s,border-color .15s;
    }
    .field-help-icon:hover{ background:#e0e7ff;border-color:#a5b4fc; }
    .field-help-icon:focus-visible{ outline:2px solid #4338ca;outline-offset:2px; }

    /* ── Error / warning boxes ────────────────────────────── */
    #formError,#batchError,#loginError,#adminUserMsg{
      background:rgba(184,14,40,.06) !important;
      border:1px solid rgba(184,14,40,.25) !important;
      color:rgba(140,8,24,.90) !important;
      border-radius:6px !important;
      font-family:var(--font-mono) !important;
      font-size:12px !important;
    }

    /* ── Reveal animation ─────────────────────────────────── */
    [data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .5s,transform .5s}
    [data-reveal].revealed{opacity:1;transform:translateY(0)}

    /* ── Checkbox / toggle ────────────────────────────────── */
    input[type=checkbox]{
      accent-color:var(--cyan) !important;
      width:14px !important;height:14px !important;
    }
    label.flex.items-center.gap-3.bg-slate-50{
      background:var(--surface) !important;
      border:1px solid var(--border) !important;
      color:var(--text-hi) !important;
      border-radius:8px !important;
      transition:border-color .2s !important;
    }
    label.flex.items-center.gap-3.bg-slate-50:hover{
      border-color:var(--cyan-dim) !important;
      background:var(--surface2) !important;
    }

    /* ── Score status meta colors ─────────────────────────── */
    .from-emerald-50{background:var(--surface) !important}
    .from-red-50{background:var(--surface) !important}
    .from-amber-50{background:var(--surface) !important}

    /* Benchmark panel ─────────────────────────────────────── */
    #benchmarkPanel{
      border:1px solid var(--border-mid) !important;
      border-radius:10px !important;overflow:hidden;
    }
    .bg-gradient-to-r.from-navy-900{
      background:var(--cyan) !important;
      border-bottom:1px solid rgba(0,86,184,.3) !important;
    }
    .bg-gradient-to-br.from-slate-50.to-blue-50\/40{
      background:var(--surface) !important;
    }
    #benchmarkFromCache{
      background:rgba(200,140,0,.08) !important;
      border:1px solid rgba(200,140,0,.25) !important;
      color:#8A5A00 !important;
      font-family:var(--font-mono) !important;
      font-size:9px !important;
    }
    #benchmarkProductTitle{color:var(--text-mid) !important;font-family:var(--font-mono) !important;font-size:11px !important}
    #benchmarkError{
      background:rgba(200,140,0,.05) !important;
      border-color:rgba(200,140,0,.22) !important;
      color:#8A5A00 !important;
    }

    /* ── Section dividers / info text ─────────────────────── */
    .border-t.border-slate-200,.border-t.border-slate-200\/70{
      border-top-color:var(--border) !important;
    }
    .border-b.border-slate-200{border-bottom-color:var(--border) !important}

    /* ── Misc overrides ───────────────────────────────────── */
    .rounded-2xl,.rounded-xl,.rounded-lg{border-radius:10px !important}
    .shadow-sm,.shadow-lg,.shadow-2xl{box-shadow:none !important}
    .bg-gradient-to-r.from-emerald-500{background:rgba(2,112,64,.12) !important;border:1px solid var(--lime) !important}
    .from-emerald-500.to-emerald-600{background:rgba(2,112,64,.12) !important}
    .text-navy-800,.text-navy-700{color:var(--cyan) !important}
    .text-amber-800,.text-amber-700{color:#8A5A00 !important}
    #altSpecsInfo{background:var(--surface) !important;border-color:var(--border-mid) !important}
    #altSpecsInfo .border-slate-200.bg-slate-50{background:var(--surface2) !important;border-color:var(--border-mid) !important}
    #altSpecsInfo .border-emerald-200.bg-emerald-50{background:rgba(2,112,64,.06) !important;border-color:rgba(2,112,64,.28) !important}
    .inline-flex.items-center.gap-1.rounded-md.border.border-slate-200{background:var(--surface2) !important;border-color:var(--border-mid) !important}
    .text-emerald-800{color:var(--lime) !important}

    /* Device card */
    .device-card{border-color:var(--border-mid) !important;transition:border-color .2s}
    .device-card:focus-within{border-color:var(--cyan) !important;box-shadow:var(--cyan-glow)}

    /* Warnings */
    .text-amber-800.flex.items-start{color:#8A5A00 !important}

    /* Priority matrix table */
    .text-red-700.font-semibold{color:var(--red-neon) !important}
    .text-amber-700.font-semibold{color:#8A5A00 !important}

    /* detail sections */
    .bg-white\/80{background:rgba(255,255,255,.85) !important}

    /* Nav user dot */
    .bg-emerald-400{background:var(--lime) !important;box-shadow:0 0 5px rgba(2,112,64,.4) !important}

    /* File input */
    input[type=file]::file-selector-button{
      background:var(--cyan) !important;
      border:1px solid var(--cyan) !important;
      color:#fff !important;
      border-radius:6px;padding:.35rem .75rem;
      font-family:var(--font-body);font-size:13px;
      cursor:pointer;transition:background .2s;
      margin-right:.75rem;
    }
    input[type=file]::file-selector-button:hover{background:rgba(0,76,164,.9) !important}
    #projectFileStatus{color:var(--text-mid) !important;font-family:var(--font-mono);font-size:11px}

    /* Textarea resize handle */
    textarea{resize:vertical !important}

    /* source p text  */
    .text-\[10\.5px\].text-slate-500{color:var(--text-lo) !important;font-family:var(--font-mono);font-size:10px}
    .text-xs.text-slate-400.mt-3{color:var(--text-lo) !important}
    .text-xs.text-slate-400.flex.items-start{color:var(--text-lo) !important}

    /* Batch device count pill */
    .w-8.h-8.rounded-full.bg-navy-100{
      background:rgba(0,86,184,.08) !important;
      border:1px solid var(--border-mid) !important;
      color:var(--cyan) !important;
      font-family:var(--font-mono) !important;
    }

    /* Bottom disclaimer text */
    p.text-center.text-slate-400.text-xs{
      color:var(--text-lo) !important;
      font-family:var(--font-mono) !important;
      font-size:10px !important;
      letter-spacing:.04em;
    }

    /* Dropdown optgroup label */
    optgroup{color:var(--cyan-dim) !important;font-size:11px}

    /* Remove gradient on bg-gradient-to-br from-amber-50 (project upload) */
    .rounded-xl.border.border-amber-200.bg-amber-50{
      background:rgba(200,140,0,.05) !important;
      border-color:rgba(200,140,0,.22) !important;
    }
    .text-amber-800.mb-2{color:#8A5A00 !important}

    /* OPZ editor textarea */
    #opzEditor{
      background:var(--deep) !important;
      border-color:var(--border-mid) !important;
      color:var(--text-hi) !important;
      font-family:var(--font-mono) !important;
      font-size:13px !important;
      line-height:1.6 !important;
    }

    /* Procurement warnings */
    .mt-3.pt-3.border-t.border-slate-200\/60{
      border-color:var(--border) !important;
    }

    /* Details/summary (priority matrix) */
    details.rounded-xl.border.border-slate-200{
      background:var(--surface) !important;
      border-color:var(--border-mid) !important;
    }
    summary{
      color:var(--text-mid) !important;
      font-family:var(--font-mono) !important;
      font-size:11px !important;
      letter-spacing:.06em;
    }
    summary:hover{background:rgba(0,86,184,.04) !important}
    .overflow-x-auto.border-t.border-slate-200{border-color:var(--border) !important}

    /* Analyze risks button */
    #analyzeRisksBtn{
      background:rgba(91,33,182,.07) !important;
      border:none !important;
      color:var(--violet) !important;
      font-family:var(--font-display) !important;
      font-size:10px !important;
      letter-spacing:.06em !important;
    }
    #analyzeRisksBtn:hover{
      background:rgba(91,33,182,.14) !important;
      box-shadow:0 0 14px rgba(91,33,182,.18) !important;
    }

    /* Apply fixes button */
    #applyFixesBtn{
      background:rgba(2,112,64,.07) !important;
      border:1px solid rgba(2,112,64,.30) !important;
      color:var(--lime) !important;
    }

    /* Tab border change */
    .border.border-slate-200.rounded-xl.p-1{
      background:var(--surface) !important;
      border-color:var(--border-mid) !important;
    }

    /* "Przejdź do propozycji" scroll link */
    a.text-xs[href="#proposalsCard"]{color:var(--cyan) !important}


    /* ── nx-card overflow guard ───────────────────────────── */
    /* Keep overflow:visible where child elements might spill */
    #historyPanel.nx-card,
    #adminPanel.nx-card,
    #estimationPanel.nx-card,
    #singleResultCard.nx-card,
    .device-card.nx-card{
      overflow:visible !important;
    }

    /* scan-line wyłączony — zbyt rozpraszający w codziennej pracy */

    /* ── Heading font override — Nunito ─────────────────────── */
    h2.text-3xl,h2.text-4xl{
      font-family:var(--font-display) !important;
      font-weight:900 !important;
      letter-spacing:-.01em !important;
      animation:none !important;
    }

    /* ── Futuristic badge for heading ────────────────────── */
    .inline-flex.items-center.gap-2.mb-2 span.w-1\.5{
      background:var(--orange) !important;
      box-shadow:0 0 4px var(--orange),0 0 10px rgba(212,64,0,.3) !important;
    }

    /* ── Toggle password button ───────────────────────────── */
    #togglePassword svg{stroke:var(--text-mid) !important}
    #togglePassword:hover svg{stroke:var(--cyan) !important}

    /* ── Główna belka zakładek ───────────────────────────── */
    #mainTabBar, #projectsTabBar{
      background:linear-gradient(90deg,#e8eff9 0%,#eef3fb 50%,#e8eff9 100%) !important;
      border-bottom:2px solid rgba(0,61,143,.18) !important;
      border-top:1px solid rgba(0,61,143,.10) !important;
      box-shadow:0 2px 8px rgba(0,50,150,.08) !important;
      flex-shrink:0;
      position:relative;
      overflow:hidden;
    }
    #mainTabBar::before{
      content:"";
      position:absolute;inset:0;
      background-image:
        linear-gradient(rgba(0,61,143,.03) 1px,transparent 1px),
        linear-gradient(90deg,rgba(0,61,143,.03) 1px,transparent 1px);
      background-size:20px 20px;
      pointer-events:none;
    }
    .main-tab-btn{
      font-family:var(--font-body) !important;
      font-size:13.5px !important;
      font-weight:500;
      color:rgba(0,40,100,.52);
      border-radius:8px;
      border:1px solid transparent;
      transition:all .2s;
      white-space:nowrap;
      line-height:1;
      position:relative;z-index:1;
    }
    .main-tab-btn:hover{
      color:var(--cyan);
      background:rgba(0,61,143,.08);
      border-color:rgba(0,61,143,.16);
    }
    .main-tab-active{
      color:var(--cyan) !important;
      background:rgba(255,255,255,.88) !important;
      border-color:rgba(0,61,143,.22) !important;
      font-weight:700 !important;
      box-shadow:0 1px 6px rgba(0,61,143,.10) !important;
    }
    /* ── Login screen ─────────────────────────────────────── */
    .login-bg{
      position:relative;overflow:hidden;
      background:var(--void) !important;
    }
    .login-bg::before{
      content:"";
      position:absolute;inset:0;pointer-events:none;
      background-image:
        linear-gradient(rgba(14,82,168,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(14,82,168,.045) 1px,transparent 1px);
      background-size:50px 50px;
      mask-image:radial-gradient(ellipse 70% 70% at 50% 50%,black 30%,transparent 100%);
    }
    .login-bg::after{
      content:"";
      position:absolute;inset:0;pointer-events:none;
      background:
        radial-gradient(ellipse 55% 40% at 20% 30%, rgba(0,86,184,.07) 0%, transparent 70%),
        radial-gradient(ellipse 45% 35% at 80% 70%, rgba(91,33,182,.05) 0%, transparent 70%),
        radial-gradient(ellipse 35% 30% at 50% 50%, rgba(212,64,0,.04) 0%, transparent 70%);
      animation:bgDrift 20s ease-in-out infinite;
    }

    /* Logotypy przyciete do tresci (*.login.png) — jedna linia, bez zawijania. */
    .brand-stack{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
    .brand-row{ display:flex; align-items:center; justify-content:center; gap:16px; flex-wrap:nowrap; }
    .brand-je, .brand-opz, .brand-inhouse, .brand-module{
      width:auto;
      max-width:100%;
      object-fit:contain;
      display:block;
    }
    .brand-je{ height:96px; }    /* J&E (srodek) — logo WIODACE (~1,5x pozostalych) */
    .brand-je-top{ height:82px; }
    .brand-module{ width:132px; height:64px; }
    .brand-opz{ height:64px; }
    .brand-inhouse{ height:64px; }
    @media (max-width:640px){
      .brand-row{ gap:10px; }
      .brand-je{ height:72px; }
      .brand-je-top{ height:64px; }
      .brand-module{ width:96px; height:46px; }
      .brand-opz{ height:48px; }
      .brand-inhouse{ height:48px; }
    }
    /* ── Login screen logos ───────────────────────────────── */
    #loginScreen img.h-20{
      background:rgba(255,255,255,.92) !important;
      border:1px solid var(--border-mid) !important;
      border-radius:14px !important;
      box-shadow:0 4px 16px rgba(0,50,150,.10),0 1px 0 rgba(255,255,255,.8) !important;
      transition:box-shadow .3s,border-color .3s !important;
    }
    #loginScreen img.h-20:hover{
      border-color:var(--border-hi) !important;
      box-shadow:var(--cyan-glow),0 8px 24px rgba(0,50,150,.12) !important;
    }

    /* ── Login H1 ─────────────────────────────────────────── */
    #loginScreen h1{
      font-family:var(--font-display) !important;
      font-size:1.75rem !important;
      font-weight:900 !important;
      letter-spacing:-.01em !important;
      color:var(--text-hi) !important;
      line-height:1.2 !important;
    }
    #loginScreen .login-subtitle{
      font-family:var(--font-body) !important;
      font-size:1.05rem !important;
      font-weight:700 !important;
      color:var(--cyan) !important;
      letter-spacing:.01em !important;
    }

    /* ── Login disclaimer ─────────────────────────────────── */
    #loginScreen p.text-xs{
      font-family:var(--font-body) !important;
      font-size:11px !important;
      color:var(--text-lo) !important;
    }

    /* ── Login form labels — czytelne ────────────────────── */
    #loginForm .block.text-sm.font-medium{
      font-family:var(--font-body) !important;
      font-size:13px !important;
      font-weight:600 !important;
      text-transform:none !important;
      letter-spacing:0 !important;
      color:var(--text-mid) !important;
    }
/* ── Modals (Regulamin / RODO) ────────────────────────── */
    .aurora-modal-overlay{
      position:fixed;inset:0;z-index:9999;
      display:flex;align-items:center;justify-content:center;
      background:rgba(6,16,30,.55);
      backdrop-filter:blur(8px);
      -webkit-backdrop-filter:blur(8px);
      padding:16px;
      animation:fadeInUp .25s cubic-bezier(.22,1,.36,1) both;
    }
    .aurora-modal{
      position:relative;
      width:100%;max-width:760px;max-height:90vh;
      background:var(--card);
      border:1px solid var(--border-mid);
      border-top:2px solid var(--cyan);
      border-radius:16px;
      box-shadow:0 24px 80px rgba(0,50,150,.18),0 4px 20px rgba(0,50,150,.10);
      display:flex;flex-direction:column;
      overflow:hidden;
    }
    .aurora-modal-header{
      flex-shrink:0;
      padding:20px 24px 16px;
      background:linear-gradient(135deg,rgba(0,86,184,.06) 0%,rgba(0,86,184,.02) 100%);
      border-bottom:1px solid var(--border-mid);
      display:flex;align-items:center;justify-content:space-between;gap:12px;
    }
    .aurora-modal-title{
      font-family:var(--font-display);
      font-size:13px;
      font-weight:700;
      letter-spacing:.12em;
      text-transform:uppercase;
      color:var(--cyan);
    }
    .aurora-modal-badge{
      font-family:var(--font-mono);
      font-size:9px;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:var(--text-lo);
      background:var(--surface);
      border:1px solid var(--border);
      padding:.2rem .55rem;
      border-radius:4px;
      margin-top:3px;
    }
    .aurora-modal-close{
      width:32px;height:32px;
      display:flex;align-items:center;justify-content:center;
      background:none;border:1px solid var(--border-mid);
      border-radius:8px;
      color:var(--text-lo);
      cursor:pointer;font-size:16px;line-height:1;
      transition:all .2s;flex-shrink:0;
    }
    .aurora-modal-close:hover{
      background:var(--surface);
      border-color:var(--red-neon);
      color:var(--red-neon);
    }
    .aurora-modal-body{
      flex:1;overflow-y:auto;
      padding:24px;
      font-family:var(--font-body);
      font-size:14px;
      color:var(--text-hi);
      line-height:1.7;
    }
    .aurora-modal-body::-webkit-scrollbar{width:4px}
    .aurora-modal-body::-webkit-scrollbar-track{background:var(--surface)}
    .aurora-modal-body::-webkit-scrollbar-thumb{background:rgba(14,82,168,.20);border-radius:2px}
    .aurora-modal-body h3{
      font-family:var(--font-display);
      font-size:10px;
      font-weight:700;
      letter-spacing:.15em;
      text-transform:uppercase;
      color:var(--cyan);
      margin:1.6rem 0 .6rem;
      padding-bottom:.4rem;
      border-bottom:1px solid var(--border);
    }
    .aurora-modal-body h3:first-child{margin-top:0}
    .aurora-modal-body p{margin:.5rem 0;color:var(--text-mid)}
    .aurora-modal-body ul{margin:.4rem 0 .8rem 1.4rem;list-style:disc}
    .aurora-modal-body ul li{margin:.25rem 0;color:var(--text-mid)}
    .aurora-modal-body strong{color:var(--text-hi);font-weight:600}
    .aurora-modal-body .law-ref{
      font-family:var(--font-mono);
      font-size:10px;
      color:var(--text-lo);
      background:var(--surface);
      border:1px solid var(--border);
      border-left:3px solid var(--cyan);
      padding:.5rem .75rem;
      border-radius:4px;
      margin:.75rem 0;
      display:block;
    }
    .aurora-modal-footer{
      flex-shrink:0;
      padding:16px 24px;
      border-top:1px solid var(--border-mid);
      background:var(--surface);
      display:flex;align-items:center;justify-content:flex-end;gap:10px;
    }
    .aurora-modal-btn-close{
      padding:.55rem 1.4rem;
      font-family:var(--font-body);
      font-size:13px;
      font-weight:700;
      letter-spacing:0;
      text-transform:none;
      background:var(--cyan);
      color:#fff;
      border:1px solid var(--cyan);
      border-radius:8px;
      cursor:pointer;
      transition:all .25s;
      box-shadow:0 2px 8px rgba(0,86,184,.22);
    }
    .aurora-modal-btn-close:hover{
      background:#0045A0;
      box-shadow:0 4px 14px rgba(0,86,184,.35);
    }
/* Search alternatives btn */
    #searchAltBtn{
      background:rgba(2,112,64,.06) !important;
      border:1px solid rgba(2,112,64,.24) !important;
      color:var(--lime) !important;
    }
    #searchAltBtn:hover{
      background:rgba(2,112,64,.12) !important;
      box-shadow:var(--lime-glow) !important;
    }

/* ── Progress section ─────────────────────────────────── */
    #progressSection{
      background:var(--card) !important;
      border:1px solid var(--border-mid) !important;
    }
    #progressTitle{font-family:var(--font-body) !important;font-size:14px !important;font-weight:700 !important;color:var(--cyan) !important;letter-spacing:-.01em !important}
    #progressSub{font-family:var(--font-mono) !important;font-size:11px !important;color:var(--text-mid) !important}
    .w-full.bg-slate-200.rounded-full.h-2{background:var(--surface2) !important;border:1px solid var(--border)}
    #progressBar{
      background:linear-gradient(90deg,var(--orange),var(--cyan)) !important;
      box-shadow:0 0 6px rgba(0,86,184,.3) !important;
      position:relative;overflow:hidden;
    }
    #progressBar::after{
      content:"";
      position:absolute;inset:0;
      background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
      background-size:200% 100%;
      animation:energyFill 1.4s linear infinite;
    }
    .progress-shimmer{
      background:linear-gradient(90deg,var(--deep),var(--cyan),var(--deep)) !important;
      background-size:300px 100% !important;
      animation:shimmer 1.8s linear infinite !important;
      box-shadow:0 0 8px var(--cyan) !important;
    }
    #storeSearchProgress{
      background:var(--surface) !important;
      border:1px solid var(--border) !important;
      border-radius:10px !important;
    }
    #currentStoreLabel{color:var(--orange) !important;font-family:var(--font-mono) !important;font-size:11px !important}
    #progressSection .text-sm.font-semibold{color:var(--text-hi) !important}

/* ── Oferty równoważne – tabela ────────────────────────── */
    .alt-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}
    .alt-table thead th{
      background:rgba(0,86,184,.06) !important;
      color:var(--cyan) !important;
      padding:.6rem 1rem;
      text-align:left;
      font-size:.72rem;font-weight:700;
      text-transform:uppercase;letter-spacing:.08em;
      border-bottom:1px solid var(--border-mid) !important;
      font-family:var(--font-mono) !important;
      white-space:nowrap;
    }
    .alt-table tbody tr{
      border-bottom:1px solid var(--border) !important;
      transition:background .15s;
    }
    .alt-table tbody tr:hover{background:rgba(0,86,184,.04) !important}
    .alt-table td{padding:.75rem 1rem;vertical-align:top;overflow-wrap:anywhere;line-height:1.4;color:var(--text-hi) !important}
    .overflow-x-auto.rounded-xl.border.border-slate-200{
      border-color:var(--border-mid) !important;border-radius:10px !important;
      overflow:hidden;
    }

/* Estimation panel ────────────────────────────────────── */
    #estimationResult .bg-slate-50.rounded-xl.p-5{
      background:var(--deep) !important;
      border-color:var(--border-mid) !important;
    }
    select#estimateAuthority{background:var(--surface) !important}

/* Store progress pills */
    #storeSearchList .rounded-lg{
      background:var(--surface2) !important;
      border:1px solid var(--border) !important;
      font-family:var(--font-mono) !important;
      font-size:11px !important;
    }

/* ── Alt offers: "from knowledge" badge ──────────────── */
    .from-knowledge-badge{
      background:rgba(91,33,182,.08) !important;
      border:1px solid rgba(91,33,182,.25) !important;
      color:var(--violet) !important;
      font-family:var(--font-mono) !important;
      font-size:9px !important;
      letter-spacing:.08em !important;
      text-transform:uppercase !important;
      padding:.15rem .45rem;
      border-radius:3px;
    }

/* ── U1 (korekty usera): prosty opis przy statusie oferty ─────────────────── */
.alt-plain{ font-size:.7rem; line-height:1.35; margin-top:5px; padding:3px 8px; border-radius:6px; display:inline-block; }
.alt-plain-ok{ color:#065f46; background:rgba(5,150,105,.08); border:1px solid rgba(5,150,105,.20); }
.alt-plain-warn{ color:#92400e; background:rgba(245,158,11,.08); border:1px solid rgba(245,158,11,.22); }
html.dark .alt-plain-ok{ color:#6ee7b7; background:rgba(5,150,105,.14); border-color:rgba(5,150,105,.34); }
html.dark .alt-plain-warn{ color:#fcd34d; background:rgba(146,64,14,.20); border-color:rgba(180,83,9,.40); }

/* Estimation btn */
    #estimateBtn{
      background:var(--orange) !important;
      border:1px solid var(--orange) !important;
      color:#fff !important;
      box-shadow:0 2px 8px rgba(212,64,0,.22) !important;
    }

/* Numer produktu */
    .alt-num{
      display:flex;align-items:center;justify-content:center;
      width:26px;height:26px;border-radius:50%;
      background:var(--cyan);color:#fff;
      font-size:.72rem;font-weight:800;flex-shrink:0;
      font-family:var(--font-mono) !important;
    }

/* ── Alt offer actions ────────────────────────────────── */
    .alt-btn-text{font-family:var(--font-body);font-weight:600;font-size:.78rem}

/* ── Progress steps text ─────────────────────────────── */
    #progressSection .flex.justify-between.text-xs{
      font-family:var(--font-body) !important;
      font-size:11px !important;
      letter-spacing:0 !important;
      text-transform:none !important;
      color:var(--text-lo) !important;
    }

/* Tagi parametrów */
    .alt-param-tag{
      display:inline-flex;align-items:center;gap:3px;
      padding:2px 7px;border-radius:5px;
      font-size:.68rem;font-weight:600;
      background:rgba(5,150,105,.09);
      color:#065f46;
      border:1px solid rgba(5,150,105,.22);
      white-space:nowrap;
    }
    /* Ostrzeżenie: kandydat do recznej weryfikacji (amber) */
    .alt-ai-warn{
      display:inline-flex;align-items:center;gap:5px;
      padding:3px 9px;border-radius:6px;
      font-size:.7rem;font-weight:600;
      background:rgba(217,119,6,.10);
      color:#92400e;
      border:1px solid rgba(217,119,6,.25);
      margin-top:5px;
    }
    /* Propozycja z wiedzy (fiolet) — wizualnie odrozniona od kandydata (SWOT rek. 28) */
    .alt-ai-knowledge{
      display:inline-flex;align-items:center;gap:5px;
      padding:3px 9px;border-radius:6px;
      font-size:.7rem;font-weight:600;
      background:rgba(91,33,182,.09);
      color:#5b21b6;
      border:1px solid rgba(91,33,182,.25);
      margin-top:5px;
    }
    /* Przycisk produktu */
    .alt-link-btn{
      display:inline-flex;align-items:center;gap:5px;
      padding:.35rem .9rem;border-radius:8px;
      font-size:.8rem;font-weight:700;
      background:var(--cyan);color:#fff;
      border:none;cursor:pointer;
      transition:all .15s;white-space:nowrap;
      box-shadow:0 2px 6px rgba(0,86,184,.25);
    }
    .alt-link-btn:hover{
      background:#1a4fa0;
      box-shadow:0 3px 10px rgba(0,86,184,.35);
      transform:translateY(-1px);
    }
    .alt-link-btn:disabled{opacity:.5;cursor:default;transform:none;}
    /* Sklep badge – obcinaj długie nazwy */
    .alt-store-badge{
      display:inline-block;
      max-width:100%;
      padding:.25rem .65rem;
      border-radius:7px;background:rgba(0,86,184,.07);
      color:var(--cyan);font-size:.75rem;font-weight:600;
      border:1px solid rgba(0,86,184,.18);
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    }
    /* Komórka sklepu nie może wylewać się na sąsiednie */
    .alt-table td:nth-child(3){ overflow:hidden; }
    /* Cena */
    .alt-price-net{font-size:.8rem;color:#64748b;white-space:nowrap;}
    .alt-price-gross{font-size:.95rem;font-weight:700;color:#059669;white-space:nowrap;}
    /* Ref-specs chip w nagłówku sekcji */
    .alt-specs-bar{
      display:flex;flex-wrap:wrap;gap:6px;
      padding:10px 14px;
      background:rgba(0,61,143,.04);
      border:1px solid rgba(0,61,143,.12);
      border-radius:10px;
      margin-bottom:14px;
    }
    .alt-spec-chip{
      display:inline-flex;align-items:center;gap:4px;
      padding:2px 9px;border-radius:5px;
      font-size:.69rem;font-weight:600;
      background:#fff;color:var(--cyan);
      border:1px solid rgba(0,86,184,.22);
    }
/* ── Multi-select systemu operacyjnego ──────────────── */
    .mode-card-logo{
      display:block;
      width:20.25rem;
      max-width:100%;
      height:9.5rem;
      object-fit:contain;
      margin:0 auto 1.5rem;
    }
    @media (max-width:640px){
      .mode-card-logo{ height:7.25rem; }
    }

    .work-center{
      width:100%;
      max-width:68rem;
      margin:0 auto 1.5rem;
      background:#fff;
      border:1px solid rgba(15,23,42,.10);
      border-radius:12px;
      box-shadow:0 16px 42px rgba(15,23,42,.11);
      padding:18px;
    }
    .work-center-head{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:start;
      gap:18px;
      padding:2px 2px 14px;
      border-bottom:1px solid var(--border);
      margin-bottom:14px;
    }
    .work-center-eyebrow{
      margin:0 0 4px;
      font-size:11px;
      line-height:1.2;
      color:var(--cyan);
      font-weight:800;
    }
    .work-center h2{
      margin:0;
      font-size:22px;
      line-height:1.18;
      color:var(--text-hi);
      font-weight:800;
    }
    .work-center-subtitle{
      margin:5px 0 0;
      color:var(--text-mid);
      font-size:13px;
      line-height:1.35;
    }
    .work-center h3{
      margin:0;
      font-size:12px;
      line-height:1.25;
      text-transform:uppercase;
      letter-spacing:.07em;
      color:var(--text-lo);
      font-weight:800;
    }
    .work-center-refresh{
      width:38px;
      height:38px;
      display:grid;
      place-items:center;
      border-radius:9px;
      border:1px solid var(--border-mid);
      background:var(--surface);
      color:var(--text-mid);
      transition:background .15s,border-color .15s,color .15s,transform .15s;
    }
    .work-center-refresh svg{width:18px;height:18px}
    .work-center-refresh:hover{background:#fff;border-color:var(--cyan);color:var(--cyan);transform:translateY(-1px)}
    .work-center-grid{
      display:grid;
      grid-template-columns:minmax(22rem,1.05fr) minmax(22rem,.95fr);
      gap:14px;
      align-items:start;
    }
    .work-center-box{
      border:1px solid var(--border);
      background:#f8fafc;
      border-radius:10px;
      padding:13px;
      min-width:0;
    }
    .work-center-box--priority{background:#f9fbff;border-color:rgba(0,86,184,.16)}
    .work-center-section-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:10px;
    }
    .work-center-section-head span{
      min-width:25px;
      height:22px;
      display:grid;
      place-items:center;
      border-radius:999px;
      background:#fff;
      border:1px solid var(--border);
      color:var(--text-mid);
      font-size:11px;
      font-weight:800;
    }
    .work-center-actions,.work-center-list{
      display:grid;
      gap:8px;
    }
    .work-center-action,.work-center-row{
      width:100%;
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
      gap:12px;
      border:1px solid rgba(0,86,184,.14);
      background:#fff;
      border-radius:8px;
      padding:10px 11px;
      text-align:left;
      color:var(--text-hi);
      transition:transform .12s,box-shadow .12s,border-color .12s;
    }
    .work-center-action:hover,.work-center-row:hover{
      transform:translateY(-1px);
      border-color:rgba(0,86,184,.36);
      box-shadow:0 8px 18px rgba(0,86,184,.10);
    }
    .work-center-action-copy,.work-center-row-main{
      min-width:0;
      display:grid;
      gap:3px;
    }
    .work-center-action-copy small{
      color:var(--text-lo);
      font-size:10px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.06em;
      font-weight:800;
    }
    .work-center-action-copy b,.work-center-row b{
      font-size:13px;
      line-height:1.25;
      font-weight:800;
      overflow:hidden;
      text-overflow:ellipsis;
      white-space:nowrap;
    }
    .work-center-action-count{
      min-width:31px;
      height:28px;
      display:grid;
      place-items:center;
      border-radius:999px;
      background:rgba(0,86,184,.10);
      color:var(--cyan);
      font-size:13px;
      font-weight:900;
    }
    .work-center-action[data-tone="danger"]{border-color:rgba(192,57,43,.22)}
    .work-center-action[data-tone="danger"] .work-center-action-count{background:rgba(192,57,43,.11);color:var(--orange)}
    .work-center-action[data-tone="warning"]{border-color:rgba(217,119,6,.24)}
    .work-center-action[data-tone="warning"] .work-center-action-count{background:rgba(217,119,6,.12);color:#b45309}
    .work-center-action[data-tone="info"]{border-color:rgba(0,86,184,.18)}
    .work-center-action[data-tone="info"] .work-center-action-count{background:rgba(0,86,184,.10);color:var(--cyan)}
    .work-center-row small,.work-center-row time{
      color:var(--text-lo);
      font-size:11px;
      line-height:1.35;
    }
    .work-center-row time{
      white-space:nowrap;
      text-align:right;
    }
    .work-center-metrics{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:8px;
      margin-top:14px;
    }
    .work-center-metric{
      border:1px solid var(--border);
      border-radius:9px;
      padding:9px 10px;
      background:#fff;
    }
    .work-center-metric small{
      display:block;
      color:var(--text-lo);
      font-size:10px;
      text-transform:uppercase;
      letter-spacing:.07em;
      font-weight:800;
      margin-bottom:2px;
    }
    .work-center-metric b{
      display:block;
      color:var(--text-hi);
      font-size:13px;
      line-height:1.25;
    }
    .work-center-details{
      margin-top:12px;
      border:1px solid var(--border);
      border-radius:10px;
      background:#fff;
      overflow:hidden;
    }
    .work-center-details summary{
      cursor:pointer;
      padding:11px 13px;
      color:var(--text-hi);
      font-size:13px;
      font-weight:800;
      list-style:none;
    }
    .work-center-details summary::-webkit-details-marker{display:none}
    .work-center-details summary::after{
      content:"+";
      float:right;
      color:var(--text-lo);
      font-weight:900;
    }
    .work-center-details[open] summary{border-bottom:1px solid var(--border);background:var(--surface)}
    .work-center-details[open] summary::after{content:"-"}
    .work-center-health{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:8px;
      padding:12px 13px 0;
    }
    .work-center-health span{
      border:1px solid var(--border);
      background:#fff;
      border-radius:8px;
      padding:8px 9px;
      font-size:12px;
      color:var(--text-mid);
      line-height:1.35;
    }
    .work-center-health small,.work-center-permissions small{
      display:block;
      color:var(--text-lo);
      font-size:10px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.06em;
      font-weight:800;
      margin-bottom:3px;
    }
    .work-center-health b{display:block;color:var(--text-hi);font-size:13px}
    .work-center-health[data-alert="1"] span{
      border-color:#fed7aa;
      background:#fff7ed;
    }
    .work-center-permissions{
      display:grid;
      grid-template-columns:repeat(4,minmax(0,1fr));
      gap:8px;
      padding:8px 13px 13px;
      margin-top:0;
    }
    .work-center-permissions span{
      border:1px solid var(--border);
      background:#fff;
      border-radius:8px;
      padding:8px 9px;
      font-size:12px;
      color:var(--text-mid);
      line-height:1.35;
    }
    .work-center-permissions b{display:block;color:var(--text-hi);font-size:13px;margin-bottom:2px}
    .work-center-permissions .locked{background:var(--surface);color:var(--text-lo)}
    .work-center-empty,.work-center-error{
      margin:0;
      border-radius:8px;
      background:#fff;
      border:1px dashed var(--border-mid);
      color:var(--text-mid);
      font-size:13px;
      line-height:1.45;
      padding:10px;
    }
    .work-center-error{
      border-style:solid;
      color:#991b1b;
      background:#fef2f2;
    }
    .role-dashboard{
      width:100%;
      max-width:68rem;
      margin:2.5rem auto 1rem;   /* odstep od kafelkow wyboru obszaru nad panelem (nie zlewac z gornymi kafelkami) */
      background:#fff;
      border:1px solid rgba(15,23,42,.10);
      border-radius:12px;
      box-shadow:0 14px 36px rgba(15,23,42,.10);
      padding:16px;
    }
    .role-dashboard-head{
      display:grid;
      grid-template-columns:minmax(0,1fr) minmax(12rem,auto);
      gap:16px;
      align-items:start;
      margin-bottom:12px;
    }
    .role-dashboard-eyebrow{
      margin:0 0 4px;
      color:var(--cyan);
      font-size:11px;
      line-height:1.2;
      font-weight:800;
    }
    .role-dashboard h2{
      margin:0;
      color:var(--text-hi);
      font-size:21px;
      line-height:1.2;
      font-weight:850;
    }
    .role-dashboard p{
      margin:5px 0 0;
      color:var(--text-mid);
      font-size:13px;
      line-height:1.4;
    }
    .role-dashboard-user{
      border:1px solid var(--border);
      border-radius:9px;
      background:var(--surface);
      padding:10px 12px;
      text-align:right;
    }
    .role-dashboard-user small,.role-dashboard-governance small{
      display:block;
      color:var(--text-lo);
      font-size:10px;
      line-height:1.2;
      text-transform:uppercase;
      letter-spacing:.06em;
      font-weight:800;
    }
    .role-dashboard-user b,.role-dashboard-governance b{
      display:block;
      color:var(--text-hi);
      font-size:13px;
      line-height:1.25;
      margin-top:3px;
      overflow-wrap:anywhere;
    }
    .role-dashboard-governance,.role-dashboard-actions{
      display:grid;
      gap:8px;
    }
    .role-dashboard-governance{
      grid-template-columns:repeat(3,minmax(0,1fr));
      margin-bottom:18px;
    }
    .role-dashboard-governance span{
      border:1px solid var(--border);
      border-radius:8px;
      background:var(--surface);
      padding:7px 10px;
    }
    .role-dashboard-governance [data-tone="warning"]{border-color:#fed7aa;background:#fff7ed}
    .role-dashboard-governance [data-tone="danger"]{border-color:#fecaca;background:#fef2f2}
    .role-dashboard-actions{
      grid-template-columns:repeat(3,minmax(0,1fr));
    }
    .role-dashboard-action{
      min-height:78px;
      display:grid;
      grid-template-columns:minmax(0,1fr) 22px;
      gap:10px;
      align-items:center;
      border:1px solid rgba(0,86,184,.14);
      border-radius:9px;
      background:#fff;
      color:var(--text-hi);
      padding:11px 12px;
      text-align:left;
      transition:transform .12s,box-shadow .12s,border-color .12s;
    }
    .role-dashboard-action:hover{
      transform:translateY(-1px);
      border-color:rgba(0,86,184,.36);
      box-shadow:0 8px 18px rgba(0,86,184,.10);
    }
    .role-dashboard-action b{
      display:block;
      font-size:13px;
      line-height:1.25;
      margin-bottom:3px;
    }
    .role-dashboard-action small{
      display:block;
      color:var(--text-mid);
      font-size:12px;
      line-height:1.35;
    }
    .role-dashboard-action svg{
      width:18px;
      height:18px;
      color:var(--cyan);
    }
    .role-dashboard-empty,.role-dashboard-error{
      margin:0;
      border-radius:8px;
      border:1px dashed var(--border-mid);
      background:var(--surface);
      color:var(--text-mid);
      font-size:13px;
      line-height:1.45;
      padding:10px;
    }
    .role-dashboard-error{
      border-style:solid;
      color:#991b1b;
      background:#fef2f2;
    }
    .opz-timeline-list{display:flex;flex-direction:column;gap:10px}
    .opz-timeline-item{
      display:grid;
      grid-template-columns:18px minmax(0,1fr);
      gap:10px;
      align-items:start;
    }
    .opz-timeline-dot{
      width:10px;
      height:10px;
      border-radius:999px;
      margin-top:6px;
      background:var(--cyan);
      box-shadow:0 0 0 4px rgba(0,86,184,.10);
    }
    .opz-timeline-body{
      border:1px solid var(--border);
      background:var(--surface);
      border-radius:9px;
      padding:9px 10px;
    }
    .opz-timeline-top{
      display:flex;
      justify-content:space-between;
      gap:10px;
      align-items:flex-start;
    }
    .opz-timeline-top b{font-size:13px;color:var(--text-hi)}
    .opz-timeline-top small{font-size:11px;color:var(--text-lo);white-space:nowrap}
    .opz-timeline-meta{font-size:12px;color:var(--text-mid);margin-top:2px;line-height:1.35}
    .form-quality-panel{
      border:1px solid var(--border-mid);
      background:var(--surface);
      border-radius:12px;
      padding:12px 14px;
    }
    .form-quality-head{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      margin-bottom:8px;
      font-size:13px;
      color:var(--text-hi);
    }
    .form-quality-head span{font-weight:800;color:var(--cyan)}
    .form-quality-grid{
      display:grid;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:6px;
    }
    .form-quality-grid span{
      border-radius:8px;
      padding:7px 9px;
      font-size:12px;
      line-height:1.3;
      border:1px solid var(--border);
      background:#fff;
    }
    .form-quality-grid .ok{color:#166534;border-color:rgba(22,101,52,.22);background:#f0fdf4}
    .form-quality-grid .warn{color:#92400e;border-color:rgba(146,64,14,.22);background:#fffbeb}
    .form-quality-score{
      height:7px;
      border-radius:999px;
      background:var(--border);
      overflow:hidden;
      margin-top:9px;
    }
    .form-quality-score span{
      display:block;
      width:var(--quality-score,0%);
      height:100%;
      background:linear-gradient(90deg,#dc2626,#f59e0b,#16a34a);
    }
    .auth-sessions-counter,.auth-sessions-refresh{
      border:1px solid #dbeafe;
      border-radius:8px;
      background:#eff6ff;
      color:#1d4ed8;
      font-size:12px;
      font-weight:800;
      padding:7px 10px;
    }
    .auth-sessions-refresh{background:#fff;cursor:pointer}
    .auth-sessions-list{display:grid;gap:8px}
    .auth-session-row{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:12px;
      border:1px solid var(--border);
      border-radius:8px;
      background:#fff;
      padding:12px;
    }
    .auth-session-row.is-current{border-color:#bfdbfe;background:#eff6ff}
    .auth-session-row.is-revoked{opacity:.66;background:var(--surface)}
    .auth-session-main{min-width:0}
    .auth-session-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:14px;color:var(--text-hi)}
    .auth-session-title span{
      border:1px solid #bfdbfe;
      border-radius:999px;
      background:#dbeafe;
      color:#1d4ed8;
      padding:2px 7px;
      font-size:11px;
      font-weight:800;
    }
    .auth-session-title span.warn{border-color:#fecaca;background:#fee2e2;color:#991b1b}
    .auth-session-meta,.auth-session-main code{
      display:block;
      margin-top:3px;
      color:var(--text-mid);
      font-size:12px;
      overflow-wrap:anywhere;
    }
    .auth-session-revoke{
      border:1px solid #fecaca;
      border-radius:8px;
      background:#fff;
      color:#b91c1c;
      cursor:pointer;
      font-size:12px;
      font-weight:800;
      padding:8px 11px;
      white-space:nowrap;
    }
    .auth-session-revoke:disabled{cursor:not-allowed;color:var(--text-lo);border-color:var(--border)}
    .auth-sessions-empty,.auth-sessions-msg{
      border:1px dashed var(--border-mid);
      border-radius:8px;
      background:var(--surface);
      color:var(--text-mid);
      font-size:13px;
      padding:12px;
    }
    .auth-sessions-msg{margin-bottom:10px;border-style:solid}
    .auth-sessions-msg.success{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
    .auth-sessions-msg.error,.auth-sessions-empty.error{border-color:#fecaca;background:#fef2f2;color:#991b1b}
    @media (max-width:760px){
      .work-center{padding:14px;margin-bottom:1rem}
      .work-center-head{grid-template-columns:1fr auto}
      .work-center-grid,.work-center-metrics,.work-center-health,.work-center-permissions,.form-quality-grid,.role-dashboard-head,.role-dashboard-governance,.role-dashboard-actions{grid-template-columns:1fr}
      .work-center-row{grid-template-columns:1fr}
      .work-center-row time{text-align:left;white-space:normal}
      .work-center h2{font-size:17px}
      .role-dashboard{padding:14px}
      .role-dashboard h2{font-size:17px}
      .role-dashboard-user{text-align:left}
      .auth-session-row{align-items:stretch;flex-direction:column}
    }

    .os-picker{
      background:var(--surface);
      border:1px solid var(--border-mid);
      border-radius:12px;
      padding:10px 14px 12px;
      display:flex;
      flex-wrap:wrap;
      gap:10px 28px;
    }
    .os-group{ min-width:150px; }
    .os-group-lbl{
      font-size:10.5px;font-weight:700;letter-spacing:.09em;
      text-transform:uppercase;color:var(--text-lo);
      margin-bottom:6px;padding-bottom:3px;
      border-bottom:1px solid var(--border);
    }
    .os-opts{ display:flex;flex-direction:column;gap:4px; }
    .os-opt{
      display:flex;align-items:center;gap:7px;
      font-family:var(--font-body);font-size:13px;
      color:var(--text-mid);cursor:pointer;
      border-radius:6px;padding:3px 5px;
      transition:background .15s;user-select:none;
    }
    .os-opt:hover{ background:rgba(0,61,143,.06); }
    .os-opt input[type="checkbox"]{
      accent-color:var(--cyan);
      width:15px;height:15px;
      cursor:pointer;flex-shrink:0;
      border-radius:4px;
    }
    .os-opt input[type="checkbox"]:checked + span{ color:var(--cyan);font-weight:600; }

    /* ── Tabele Markdown (safeMd / _mdFallback) ──────────── */
    .md-table-wrap{
      overflow-x:auto;
      margin:1rem 0;
      border-radius:10px;
      border:1px solid var(--border-mid);
      box-shadow:0 2px 10px rgba(0,61,143,.07);
    }
    .md-table{
      width:100%;
      border-collapse:collapse;
      font-family:var(--font-body);
      font-size:calc(13px * var(--font-scale));
      background:var(--card);
    }
    .md-table thead{
      background:linear-gradient(135deg,rgba(0,61,143,.08) 0%,rgba(0,61,143,.04) 100%);
      border-bottom:2px solid rgba(0,61,143,.18);
    }
    .md-table th,.md-th{
      padding:9px 14px;
      text-align:left;
      font-weight:700;
      font-size:calc(11.5px * var(--font-scale));
      letter-spacing:.04em;
      text-transform:uppercase;
      color:var(--cyan);
      white-space:nowrap;
      border-right:1px solid rgba(0,61,143,.10);
    }
    .md-table th:last-child,.md-th:last-child{ border-right:none; }
    .md-table td,.md-td{
      padding:8px 14px;
      color:var(--text-hi);
      border-right:1px solid var(--border);
      border-bottom:1px solid var(--border);
      vertical-align:top;
      line-height:1.55;
    }
    .md-table td:last-child,.md-td:last-child{ border-right:none; }
    .md-table tbody tr:last-child td,
    .md-table tbody tr:last-child .md-td{ border-bottom:none; }
    .md-table tbody tr:nth-child(even){
      background:rgba(0,61,143,.025);
    }
    .md-table tbody tr:hover{
      background:rgba(0,61,143,.055);
      transition:background .12s;
    }
    /* Tabele w .md-content (odpowiedzi help/AI – tworzone przez marked) */
    .md-content table{
      width:100%;
      border-collapse:separate;
      border-spacing:0;
      font-family:var(--font-body);
      font-size:calc(13px * var(--font-scale));
      background:var(--card);
      border:1px solid var(--border-mid);
      border-radius:8px;
      overflow:hidden;
      box-shadow:0 2px 8px rgba(0,61,143,.07);
      margin:1rem 0;
    }
    .md-content table thead tr{
      background:rgba(0,61,143,.06);
    }
    .md-content table th{
      padding:8px 12px;
      text-align:left;
      font-weight:700;
      font-size:calc(11px * var(--font-scale));
      letter-spacing:.05em;
      text-transform:uppercase;
      color:var(--cyan);
      border-right:1px solid var(--border);
      font-family:var(--font-mono);
    }
    .md-content table th:last-child{ border-right:none; }
    .md-content table td{
      padding:7px 12px;
      color:var(--text-mid);
      border-top:1px solid var(--border);
      border-right:1px solid var(--border);
      vertical-align:top;
      overflow-wrap:anywhere;
      line-height:1.5;
    }
    .md-content table td:last-child{ border-right:none; }
    .md-content table tbody tr:nth-child(even) td{ background:rgba(0,61,143,.025); }
    .md-content table tbody tr:hover td{ background:rgba(0,61,143,.05); }


    /* ── nx-btn-primary (Admin panel buttons) ───────────────── */
    .nx-btn-primary{
      background:var(--cyan) !important;
      border:1px solid var(--cyan) !important;
      color:#fff !important;
      font-family:var(--font-body) !important;
      box-shadow:0 2px 8px rgba(0,86,184,.22) !important;
    }
    .nx-btn-primary:hover:not(:disabled){
      background:rgba(0,70,160,.92) !important;
      box-shadow:var(--cyan-glow),0 4px 14px rgba(0,86,184,.20) !important;
      transform:translateY(-1px);
    }

    /* ── Procurement type tiles ──────────────────────────────── */
    .proc-tiles{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:8px;
      margin-top:8px;
    }
    @media(max-width:640px){
      .proc-tiles{grid-template-columns:repeat(2,1fr)}
    }
    .proc-tile{
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      gap:5px;
      padding:12px 14px;
      background:var(--surface);
      border:2px solid var(--border-mid);
      border-radius:10px;
      cursor:pointer;
      text-align:left;
      transition:border-color .18s,background .18s,box-shadow .18s;
      font-family:var(--font-body) !important;
      font-weight:400 !important;
      text-transform:none !important;
      letter-spacing:0 !important;
    }
    .proc-tile:hover{
      border-color:rgba(0,86,184,.45) !important;
      background:rgba(0,86,184,.04) !important;
    }
    .proc-tile-active{
      border-color:var(--cyan) !important;
      background:rgba(0,86,184,.07) !important;
      box-shadow:0 0 0 3px rgba(0,86,184,.10);
    }
    .proc-tile-icon{
      width:24px;height:24px;
      color:var(--cyan);
      opacity:.65;
      flex-shrink:0;
      margin-bottom:5px;
    }
    .proc-tile-active .proc-tile-icon{opacity:1}
    .proc-tile-title{
      font-size:14px;
      font-weight:700 !important;
      color:var(--text-hi);
      line-height:1.2;
    }
    .proc-tile-active .proc-tile-title{color:var(--cyan) !important}
    .proc-tile-desc{
      font-size:12px;
      font-weight:400 !important;
      color:var(--text-mid);
      line-height:1.35;
    }

    /* Checkbox-labels w sekcji parametrów */
    .proc-check-label{
      display:flex;
      align-items:flex-start;
      gap:10px;
      padding:12px 14px;
      border:1px solid var(--border-mid);
      border-radius:10px;
      background:var(--surface);
      transition:border-color .18s,background .18s;
      cursor:pointer;
    }
    .proc-check-label:hover{
      border-color:rgba(0,86,184,.38) !important;
      background:rgba(0,86,184,.03) !important;
    }
    .proc-check-label input[type=checkbox]{
      margin-top:2px;
      flex-shrink:0;
      accent-color:var(--cyan);
    }
    /* sr-only helper */
    .sr-only{
      position:absolute;width:1px;height:1px;padding:0;margin:-1px;
      overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
    }

    /* ── Segmented control (tryb: jedno / wiele) ──────────────── */
    .seg-control{
      display:inline-flex;gap:4px;padding:4px;
      background:var(--surface2,#EDF1FA);
      border:1px solid var(--border-mid,rgba(10,60,130,.16));
      border-radius:13px;
    }
    .seg-btn{
      padding:8px 16px;border:none;background:transparent;cursor:pointer;
      border-radius:9px;font-family:var(--font-body,sans-serif);
      font-weight:600;font-size:13px;color:var(--text-mid,#2C4A72);
      white-space:nowrap;transition:all .2s;
    }
    .seg-btn:hover{ color:var(--cyan,#003D8F); }
    .seg-btn-active{
      background:var(--card,#fff) !important;
      color:var(--cyan,#003D8F) !important;
      font-weight:800;
      box-shadow:0 1px 5px rgba(0,50,150,.14);
    }

    /* ── Przycisk „Wyczyść” – odcień ostrzegawczy ─────────────── */
    #clearBtn{
      background:rgba(192,57,43,.06) !important;
      border:1px solid rgba(192,57,43,.30) !important;
      color:var(--orange,#C0392B) !important;
      box-shadow:0 1px 4px rgba(192,57,43,.10) !important;
    }
    #clearBtn:hover{
      background:rgba(192,57,43,.12) !important;
      border-color:rgba(192,57,43,.55) !important;
      color:var(--orange,#C0392B) !important;
      box-shadow:0 3px 12px rgba(192,57,43,.20) !important;
    }

    /* ── Modernizacja kafelków typu zamówienia ────────────────── */
    .proc-tiles{ gap:12px !important; }
    .proc-tile{
      border-radius:14px !important;
      padding:14px 16px !important;
      box-shadow:0 1px 3px rgba(10,40,90,.05) !important;
    }
    .proc-tile-active{
      box-shadow:0 0 0 3px rgba(0,61,143,.12),0 8px 20px rgba(0,61,143,.10) !important;
    }

    /* ── Grupa kontrolek dostępności w nagłówku ───────────────── */
    .nav-tools{
      padding:3px;border-radius:11px;
      background:rgba(255,255,255,.07);
      border:1px solid rgba(255,255,255,.12);
    }

    /* ── Dyktowanie głosowe (Ctrl + Shift) ────────────────────── */
    #voiceHint{
      position:fixed;left:50%;bottom:26px;
      transform:translateX(-50%) translateY(20px);
      display:flex;align-items:center;gap:11px;
      padding:11px 18px;border-radius:999px;
      background:linear-gradient(135deg,var(--cyan,#003D8F),#0a4fa0);
      color:#fff;font-family:var(--font-body,sans-serif);font-weight:700;font-size:13px;
      box-shadow:0 10px 30px rgba(0,40,110,.38);
      opacity:0;pointer-events:none;z-index:60;
      transition:opacity .2s,transform .2s;
    }
    #voiceHint.show{ opacity:1;transform:translateX(-50%) translateY(0); }
    #voiceHint .vh-dot{
      width:11px;height:11px;border-radius:50%;background:#ff5d52;flex-shrink:0;
      animation:vhPulse 1.1s ease-out infinite;
    }
    @keyframes vhPulse{
      0%{box-shadow:0 0 0 0 rgba(255,93,82,.55)}
      70%{box-shadow:0 0 0 9px rgba(255,93,82,0)}
      100%{box-shadow:0 0 0 0 rgba(255,93,82,0)}
    }
    #voiceHint .vh-kbd{
      font-family:var(--font-mono,monospace);font-size:10px;font-weight:600;
      padding:2px 7px;border-radius:6px;background:rgba(255,255,255,.18);
      border:1px solid rgba(255,255,255,.28);white-space:nowrap;
    }
    /* podpowiedź „mikrofon" przy polach opisowych */
    .voice-capable{ position:relative; }
    .voice-mic-badge{
      position:absolute;top:8px;right:10px;z-index:2;
      display:inline-flex;align-items:center;gap:4px;
      font-family:var(--font-mono,monospace);font-size:9px;letter-spacing:.04em;
      color:var(--text-lo,rgba(44,74,114,.5));
      background:var(--surface,#F7F9FD);
      border:1px solid var(--border-mid,rgba(10,60,130,.16));
      border-radius:7px;padding:2px 6px;pointer-events:none;
      opacity:0;transition:opacity .2s;
    }
    .voice-capable:focus-within .voice-mic-badge{ opacity:.85; }

    /* ── Podsumowanie konfiguracji (panel boczny, na żywo) ────── */
    #configSummary{
      position:fixed;right:0;top:50%;transform:translateY(-50%);
      z-index:40;display:none;font-family:var(--font-body,sans-serif);
    }
    #configSummary.cs-on{ display:block; }
    #configSummary .cs-tab{
      position:absolute;right:100%;top:50%;transform:translateY(-50%);
      writing-mode:vertical-rl;
      background:linear-gradient(180deg,var(--cyan,#003D8F),#0a4fa0);color:#fff;
      padding:16px 9px;border-radius:12px 0 0 12px;cursor:pointer;border:none;
      font-weight:700;font-size:12px;letter-spacing:.05em;
      box-shadow:-4px 0 14px rgba(0,40,110,.22);
      transition:opacity .2s;
    }
    #configSummary .cs-panel{
      width:266px;max-width:80vw;
      background:var(--card,#fff);
      border:1px solid var(--border-mid,rgba(10,60,130,.16));border-right:none;
      border-radius:16px 0 0 16px;
      box-shadow:-12px 0 34px rgba(0,40,110,.18);
      overflow:hidden;transform:translateX(100%);transition:transform .28s ease;
    }
    #configSummary.cs-open .cs-panel{ transform:translateX(0); }
    #configSummary.cs-open .cs-tab{ opacity:0;pointer-events:none; }
    .cs-head{
      display:flex;align-items:center;justify-content:space-between;gap:8px;
      padding:12px 14px;background:rgba(0,61,143,.06);
      border-bottom:1px solid var(--border,rgba(10,60,130,.08));
    }
    .cs-title{ font-weight:800;font-size:13px;color:var(--text-hi,#0A1628); }
    .cs-close{ background:none;border:none;cursor:pointer;color:var(--text-lo,#94a3b8);font-size:18px;line-height:1;padding:0 6px;border-radius:8px; }
    .cs-close:hover{ background:var(--surface,#eef);color:var(--cyan,#003D8F); }
    .cs-body{ padding:12px 14px 14px;display:flex;flex-direction:column;gap:9px; }
    .cs-row{ display:flex;flex-direction:column;gap:1px; }
    .cs-k{ font-family:var(--font-mono,monospace);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-lo,rgba(44,74,114,.5)); }
    .cs-v{ font-size:13px;font-weight:700;color:var(--text-mid,#2C4A72);line-height:1.25;word-break:break-word; }
    .cs-v.cs-muted{ font-weight:500;color:var(--text-lo,rgba(44,74,114,.5));font-style:italic; }
    .cs-pill{ display:inline-block;font-size:11px;font-weight:700;padding:1px 9px;border-radius:999px;background:rgba(0,61,143,.10);color:var(--cyan,#003D8F); }
    .cs-step-mini{ display:flex;gap:4px;margin-top:3px; }
    .cs-step-mini i{ flex:1;height:4px;border-radius:2px;background:var(--border-mid,#cbd5e1); }
    .cs-step-mini i.on{ background:var(--cyan,#003D8F); }
    @media(max-width:900px){ #configSummary{ display:none !important; } }

    /* ── Powiadomienia (dzwonek + lista) ──────────────────────── */
    .notif-wrap{ position:relative;display:inline-flex; }
    .notif-btn{
      position:relative;display:inline-flex;align-items:center;justify-content:center;
      width:36px;height:36px;border-radius:10px;border:none;cursor:pointer;
      background:rgba(255,255,255,.08);color:#fff;transition:background .2s;
    }
    .notif-btn:hover{ background:rgba(255,255,255,.18); }
    .notif-badge{
      position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;
      border-radius:999px;background:var(--orange,#C0392B);color:#fff;
      font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;
      border:2px solid #0e2f63;line-height:1;
    }
    .notif-panel{
      position:absolute;right:0;top:46px;width:336px;max-width:88vw;
      background:var(--card,#fff);border:1px solid var(--border-mid,rgba(10,60,130,.16));
      border-radius:14px;box-shadow:0 18px 44px rgba(0,30,90,.24);overflow:hidden;z-index:50;
    }
    .notif-head{
      display:flex;align-items:center;justify-content:space-between;gap:8px;
      padding:12px 14px;background:rgba(0,61,143,.06);
      border-bottom:1px solid var(--border,rgba(10,60,130,.08));
      font-weight:800;font-size:13px;color:var(--text-hi,#0A1628);
    }
    .notif-head button{ background:none;border:none;cursor:pointer;color:var(--cyan,#003D8F);font-size:11px;font-weight:700;padding:2px 6px;border-radius:7px; }
    .notif-head button:hover{ background:rgba(0,61,143,.10); }
    .notif-list{ max-height:344px;overflow-y:auto; }
    .notif-item{
      display:flex;gap:10px;padding:11px 14px;cursor:pointer;text-align:left;width:100%;
      background:none;border:none;border-bottom:1px solid var(--border,rgba(10,60,130,.06));transition:background .15s;
    }
    .notif-item:hover{ background:var(--surface,#F7F9FD); }
    .notif-ico{ width:30px;height:30px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:rgba(0,61,143,.10);color:var(--cyan,#003D8F); }
    .notif-tx{ flex:1;min-width:0; }
    .notif-ti{ display:block;font-size:13px;font-weight:700;color:var(--text-hi,#0A1628);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
    .notif-sub{ display:block;font-size:11.5px;color:var(--text-mid,#2C4A72);line-height:1.3;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
    .notif-time{ display:block;font-size:10px;color:var(--text-lo,rgba(44,74,114,.5));font-family:var(--font-mono,monospace);margin-top:2px; }
    .notif-empty{ padding:28px 14px;text-align:center;color:var(--text-lo,rgba(44,74,114,.55));font-size:13px; }

    /* ── Panel propozycji AI (pływający FAB + boczny drawer) ──── */
    #aiFab{
      position:fixed;right:22px;bottom:24px;z-index:55;display:none;
      align-items:center;gap:9px;padding:13px 18px;border:none;cursor:pointer;
      border-radius:999px;color:#fff;font-family:var(--font-body,sans-serif);font-weight:800;font-size:13px;
      background:linear-gradient(135deg,#C0392B,#E2581F);
      box-shadow:0 10px 28px rgba(192,57,43,.38);
      transition:transform .18s,box-shadow .18s;
    }
    #aiFab.show{ display:inline-flex; }
    #aiFab:hover{ transform:translateY(-2px);box-shadow:0 14px 34px rgba(192,57,43,.46); }
    #aiFab .ai-fab-badge{
      min-width:20px;height:20px;padding:0 5px;border-radius:999px;
      background:#fff;color:#C0392B;font-size:11px;font-weight:900;
      display:flex;align-items:center;justify-content:center;
    }
    #aiDrawerBackdrop{
      position:fixed;inset:0;background:rgba(8,20,45,.34);z-index:58;
      opacity:0;pointer-events:none;transition:opacity .25s;
    }
    #aiDrawerBackdrop.show{ opacity:1;pointer-events:auto; }
    #aiDrawer{
      position:fixed;top:0;right:0;bottom:0;width:430px;max-width:94vw;z-index:59;
      background:var(--card,#fff);box-shadow:-18px 0 50px rgba(0,20,60,.28);
      transform:translateX(102%);transition:transform .3s ease;
      display:flex;flex-direction:column;
    }
    #aiDrawer.show{ transform:translateX(0); }
    .aid-head{ display:flex;align-items:center;gap:11px;padding:16px 18px;background:linear-gradient(135deg,#C0392B,#E2581F);color:#fff; }
    .aid-head .aid-ico{ width:34px;height:34px;border-radius:10px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0; }
    .aid-titwrap{ flex:1;min-width:0; }
    .aid-title{ font-weight:800;font-size:15px;line-height:1.1; }
    .aid-sub{ font-size:11px;color:rgba(255,255,255,.85);font-weight:600; }
    .aid-close{ background:rgba(255,255,255,.18);border:none;color:#fff;cursor:pointer;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1; }
    .aid-close:hover{ background:rgba(255,255,255,.32); }
    .aid-actions{ display:flex;gap:8px;padding:11px 16px;border-bottom:1px solid var(--border,rgba(10,60,130,.08));background:var(--surface,#F7F9FD);flex-wrap:wrap; }
    .aid-actions button{ font-size:12px;font-weight:700;border-radius:9px;padding:7px 12px;cursor:pointer;border:1px solid var(--border-mid,#cbd5e1);background:var(--card,#fff);color:var(--text-mid,#2C4A72);transition:all .15s; }
    .aid-actions button:hover{ border-color:var(--cyan,#003D8F);color:var(--cyan,#003D8F); }
    .aid-actions .aid-apply{ margin-left:auto;background:var(--lime,#1E7E34);color:#fff;border-color:var(--lime,#1E7E34); }
    .aid-actions .aid-apply:hover{ color:#fff;filter:brightness(1.05); }
    .aid-actions .aid-apply:disabled{ opacity:.45;cursor:not-allowed; }
    .aid-body{ flex:1;overflow-y:auto;padding:14px 16px;display:flex;flex-direction:column;gap:12px; }
    .aid-card{ border:1px solid var(--border-mid,rgba(10,60,130,.16));border-radius:13px;padding:13px;background:var(--card,#fff);transition:border-color .15s,opacity .15s; }
    .aid-card.accepted{ border-color:var(--lime,#1E7E34);background:rgba(30,126,52,.04); }
    .aid-card.rejected{ opacity:.55; }
    .aid-card h5{ font-size:13.5px;font-weight:800;color:var(--text-hi,#0A1628);margin:0 0 4px; }
    .aid-desc{ font-size:12px;color:var(--text-mid,#2C4A72);line-height:1.45;margin-bottom:8px; }
    .aid-diff{ font-family:var(--font-mono,monospace);font-size:11px;line-height:1.4;border-radius:8px;padding:7px 9px;white-space:pre-wrap;word-break:break-word;margin-bottom:6px; }
    .aid-diff.orig{ background:rgba(192,57,43,.07);border:1px solid rgba(192,57,43,.2);color:#8a2a20; }
    .aid-diff.repl{ background:rgba(30,126,52,.07);border:1px solid rgba(30,126,52,.22);color:#1c5e2a; }
    .aid-diff-lbl{ font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;opacity:.8; }
    .aid-btns{ display:flex;gap:8px;margin-top:9px; }
    .aid-btns button{ flex:1;font-size:12px;font-weight:700;padding:7px;border-radius:9px;cursor:pointer;transition:all .15s; }
    .aid-rej{ background:var(--card,#fff);border:1px solid var(--border-mid,#cbd5e1);color:var(--text-mid,#2C4A72); }
    .aid-rej:hover{ background:var(--surface,#eef); }
    .aid-acc{ background:rgba(30,126,52,.10);border:1px solid rgba(30,126,52,.3);color:var(--lime,#1E7E34); }
    .aid-acc.on{ background:var(--lime,#1E7E34);color:#fff; }
    @media(max-width:520px){ #aiFab{ right:14px;bottom:16px;padding:11px 15px; } }

    /* ── Zakładka Pomoc: FAQ ──────────────────────────────────── */
    .faq-item{
      border:1px solid var(--border-mid);
      border-radius:10px;
      overflow:hidden;
      transition:border-color .2s;
      background:var(--card);
    }
    .faq-item:hover{ border-color:var(--border-hi); }
    .faq-question{
      width:100%;
      padding:14px 18px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      text-align:left;
      background:transparent;
      border:none;
      cursor:pointer;
      font-family:var(--font-body);
      font-weight:700;
      font-size:14px;
      color:var(--text-hi);
    }
    .faq-question:hover{ background:var(--surface); }
    .faq-answer{
      display:none;
      padding:4px 18px 16px;
      font-size:14px;
      color:var(--text-mid);
      line-height:1.7;
      border-top:1px solid var(--border);
    }
    .faq-item.open .faq-answer{ display:block; }
    .faq-chevron{ transition:transform .2s;flex-shrink:0; }
    .faq-item.open .faq-chevron{ transform:rotate(180deg); }

    /* ── Zakładka Kontakt: wiadomości ────────────────────────── */
    .msg-card{
      border:1px solid var(--border-mid);
      border-radius:10px;
      padding:14px 16px;
      background:var(--card);
      transition:box-shadow .2s;
    }
    .msg-card.unread{ border-left:3px solid var(--cyan); }
    .msg-card.replied{
      background:rgba(30,126,52,.04);
      border-color:rgba(30,126,52,.22);
    }


    /* ── Profil użytkownika ───────────────────────────────────── */
    .profile-avatar{
      width:72px;height:72px;border-radius:50%;
      background:linear-gradient(135deg,var(--cyan),var(--violet));
      display:flex;align-items:center;justify-content:center;
      font-family:var(--font-display);
      font-size:24px;font-weight:900;
      color:#fff;
      flex-shrink:0;
      border:3px solid var(--card);
      box-shadow:0 4px 16px rgba(0,61,143,.20);
    }

/* FAZA 4.2: hover przycisku „Wyczyść odpowiedź" (dawne onmouseover/onmouseout → :hover).
   !important, bo styl bazowy (rgba .05/.20) jest inline (wyzsza specyficznosc). */
.help-clear-btn:hover { background: rgba(0,61,143,.12) !important; border-color: rgba(0,61,143,.38) !important; }

/* FAZA 4.2: hover „Oznacz jako przeczytaną" (dawne onmouseover/onmouseout → :hover). */
.msg-read-btn:hover { background: rgba(0,61,143,.12) !important; }

/* FAZA 4.3 (WCAG 2.4.7): widoczny wskaznik fokusu klawiatury dla elementow interaktywnych. */
:focus-visible { outline: 3px solid #1d4ed8; outline-offset: 2px; }

/* P2-14 (WCAG 2.4.7 / forced-colors): w trybie wysokiego kontrastu Windows cienie (box-shadow, ring)
   sa usuwane — pola formularza maja outline:none, wiec bez tego stracilyby widoczny fokus. Zapewniamy
   outline z kolorow systemowych (CanvasText/Highlight), ktory przetrwa tryb wymuszonych kolorow. */
@media (forced-colors: active) {
  input:focus, textarea:focus, select:focus, button:focus, [tabindex]:focus, .proc-tile:focus, .proc-tile:focus-visible {
    outline: 2px solid CanvasText !important;
    outline-offset: 1px;
  }
  .proc-tile-active { outline: 2px solid Highlight; }
}

/* ═══════════════════════════════════════════════════════════════
   REDESIGN 2026 — Etap A: nowoczesny JASNY motyw (akcent indygo)
   + odswiezony gorny pasek menu. Sterowane tokenami, by Etap B
   (tryb ciemny) kaskadowal automatycznie. Blok na koncu pliku =
   wyzszy priorytet, lokalny i latwo odwracalny.
   ═══════════════════════════════════════════════════════════════ */
:root{
  --indigo:#4F46E5;
  --indigo-bright:#6366F1;
  --indigo-soft:rgba(79,70,229,.10);
  --indigo-soft2:rgba(79,70,229,.16);
  --indigo-ring:rgba(79,70,229,.30);
  /* Gorny pasek / menu (jasny motyw) */
  --header-bg:#ffffff;
  --header-fg:#0F1C33;
  --header-muted:#5B6B85;
  --header-border:rgba(10,60,130,.12);
  --tabbar-bg:#ffffff;
}

/* ── Gorny pasek (naglowek aplikacji) ─────────────────────────── */
#appHeader{
  background:var(--header-bg) !important;
  color:var(--header-fg);
  border-bottom:1px solid var(--header-border) !important;
  box-shadow:0 1px 0 var(--header-border), 0 14px 30px -26px rgba(10,40,90,.55) !important;
  -webkit-backdrop-filter:saturate(1.15) blur(8px);
  backdrop-filter:saturate(1.15) blur(8px);
}
#appHeader .text-white,
#appHeader .font-semibold{ color:var(--header-fg) !important; }
#appHeader .text-orange-300{ color:var(--indigo) !important; font-weight:800 !important; }
#appHeader .text-blue-200,
#appHeader .text-blue-200\/90,
#appHeader .text-blue-200\/80{ color:var(--header-muted) !important; }
#appHeader img{ background:#fff !important; border:1px solid var(--header-border) !important; box-shadow:0 1px 5px rgba(10,40,90,.10) !important; }
#appHeader #onlineStatusPill{ background:var(--indigo-soft) !important; border:1px solid var(--indigo-ring) !important; }
#appHeader #onlineLabel{ color:var(--indigo) !important; }
#appHeader #logoutBtn{ color:var(--header-muted) !important; }
#appHeader #logoutBtn:hover{ color:var(--indigo) !important; background:var(--indigo-soft) !important; }

/* Kontrolki dostepnosci (A / A+ / A++ / kontrast) na jasnym pasku */
.a11y-btn{
  border:1.5px solid var(--header-border) !important;
  background:#fff !important;
  color:var(--header-muted) !important;
  text-shadow:none !important;
  box-shadow:0 1px 3px rgba(10,40,90,.06) !important;
}
.a11y-btn:hover{ background:var(--indigo-soft) !important; color:var(--indigo) !important; border-color:var(--indigo-ring) !important; }
.a11y-btn.active{ background:var(--indigo) !important; border-color:var(--indigo) !important; color:#fff !important; }

/* ── Pasek zakladek (menu) — nowoczesne pigulki ───────────────── */
#mainTabBar, #projectsTabBar{
  background:var(--tabbar-bg) !important;
  border-top:0 !important;
  border-bottom:1px solid var(--header-border) !important;
  box-shadow:0 6px 20px -16px rgba(10,40,90,.5) !important;
}
#mainTabBar::before{ display:none !important; }              /* usun siatke w tle */
#mainTabBar > [aria-hidden="true"]{ display:none !important; } /* usun dekoracje (waga PZP) */
.main-tab-btn{
  color:var(--header-muted) !important;
  background:transparent !important;
  border:1px solid transparent !important;
  border-radius:10px !important;
  font-weight:600 !important;
  font-size:13.5px !important;
}
.main-tab-btn:hover{
  color:var(--indigo) !important;
  background:var(--indigo-soft) !important;
  border-color:transparent !important;
}
.main-tab-active,
.main-tab-active:hover{
  color:#fff !important;
  background:linear-gradient(135deg,var(--indigo),var(--indigo-bright)) !important;
  border-color:transparent !important;
  box-shadow:0 6px 16px -6px var(--indigo-ring) !important;
}
.main-tab-active svg{ color:#fff !important; }

/* ── Akcent indygo: przyciski „primary" + fokus pol ───────────── */
.btn-primary,
button.bg-navy-800,button.bg-navy-900,
.bg-navy-800,.bg-navy-900{
  background:linear-gradient(135deg,var(--indigo),var(--indigo-bright)) !important;
  border:1px solid var(--indigo) !important;
  box-shadow:0 2px 10px rgba(79,70,229,.25) !important;
}
.btn-primary:hover:not(:disabled),
button.bg-navy-800:hover:not(:disabled){
  background:linear-gradient(135deg,#4338CA,var(--indigo)) !important;
  box-shadow:0 6px 18px rgba(79,70,229,.30) !important;
}
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=submit]):not([type=button]):focus,
textarea:focus,
select:focus{
  border-color:var(--indigo) !important;
  box-shadow:0 0 0 3px var(--indigo-soft),0 2px 10px rgba(79,70,229,.10) !important;
}
:focus-visible{ outline-color:var(--indigo) !important; }

/* ═══════════════════════════════════════════════════════════════
   REDESIGN 2026 — Etap B: TRYB CIEMNY (przelacznik + pamiec).
   Wiekszosc UI uzywa tokenow CSS, wiec wystarczy je przestawic w
   html.dark — reszta kaskaduje. Ponizej tylko punktowe dopiecia
   komponentow z kolorami "na sztywno" (gl. sekcja BZP).
   ═══════════════════════════════════════════════════════════════ */
html.dark{
  --void:#0E1525; --deep:#0A101D; --card:#161F33; --surface:#1A2439; --surface2:#222E47;
  --border:rgba(255,255,255,.07); --border-mid:rgba(255,255,255,.13); --border-hi:rgba(255,255,255,.30);
  --cyan:#5B9DF9; --cyan-dim:rgba(91,157,249,.60); --cyan-glow:0 2px 12px rgba(91,157,249,.22);
  --orange:#FF8366; --orange-dim:rgba(255,131,102,.55);
  --lime:#34D399; --violet:#A78BFA; --red-neon:#FF6B6B;
  --text-hi:#EAF0FB; --text-mid:#B2C0D8; --text-lo:rgba(178,192,216,.60);
  --indigo:#818CF8; --indigo-bright:#A5B4FC; --indigo-soft:rgba(129,140,248,.14);
  --indigo-soft2:rgba(129,140,248,.22); --indigo-ring:rgba(129,140,248,.42);
  --header-bg:#111A2C; --header-fg:#EAF0FB; --header-muted:#9DAEC9;
  --header-border:rgba(255,255,255,.10); --tabbar-bg:#0F1727;
}
html.dark body{ background:var(--void) !important; color:var(--text-hi) !important; }
/* Elementy z jasnym tlem "na sztywno", ktore nie sa tokenami */
html.dark .bg-slate-800, html.dark .bg-slate-900{ background-color:var(--surface2) !important; }
/* Kontrolki dostepnosci na ciemnym pasku */
html.dark .a11y-btn{ background:rgba(255,255,255,.06) !important; color:var(--header-muted) !important; border-color:var(--header-border) !important; }
html.dark .a11y-btn:hover{ background:var(--indigo-soft) !important; color:var(--indigo-bright) !important; border-color:var(--indigo-ring) !important; }
html.dark .a11y-btn.active{ background:var(--indigo) !important; color:#fff !important; border-color:var(--indigo) !important; }
html.dark #appHeader img{ background:#fff !important; }   /* loga czytelne na ciemnym tle */
/* Karty glassmorphism (m.in. logowanie/rejestracja) — ciemny wariant */
html.dark .glass{ background:rgba(22,31,51,.88) !important; border-color:var(--border-mid) !important; box-shadow:0 0 0 1px var(--border),0 24px 64px rgba(0,0,0,.45) !important; }
html.dark .glass-dark{ background:rgba(26,36,57,.85) !important; }
/* Autouzupelnianie przegladarki (np. login) — ciemne tlo zamiast wymuszonego jasnego */
html.dark input:-webkit-autofill,
html.dark textarea:-webkit-autofill,
html.dark select:-webkit-autofill{ -webkit-box-shadow:0 0 0 1000px var(--surface) inset !important; -webkit-text-fill-color:var(--text-hi) !important; caret-color:var(--text-hi); }
/* ── Walidacja PZP — poziom pewnosci uwagi (PZP2) + ostrzezenie prawne (PZP6) ── */
.pzp-conf{ display:inline-block; font-size:10px; font-weight:700; border-radius:999px; padding:1px 8px; border:1px solid transparent; white-space:nowrap; }
.pzp-conf-high{ background:#e0e7ff; color:#3730a3; border-color:#c7d2fe; }
.pzp-conf-medium{ background:#f1f5f9; color:#334155; border-color:#e2e8f0; }
.pzp-conf-low{ background:#f8fafc; color:#64748b; border-color:#e2e8f0; }
html.dark .pzp-conf-high{ background:rgba(99,102,241,.2); color:#c7d2fe; border-color:rgba(99,102,241,.4); }
html.dark .pzp-conf-medium{ background:rgba(148,163,184,.18); color:#cbd5e1; border-color:rgba(148,163,184,.3); }
html.dark .pzp-conf-low{ background:rgba(148,163,184,.1); color:#94a3b8; border-color:rgba(148,163,184,.25); }
.pzp-disclaimer{ display:flex; align-items:flex-start; gap:8px; margin-top:4px; padding:10px 12px; border-radius:10px; border:1px solid #fde68a; background:#fffbeb; color:#92400e; font-size:.78rem; line-height:1.4; }
.pzp-disclaimer svg{ color:#d97706; margin-top:1px; }
html.dark .pzp-disclaimer{ background:rgba(245,158,11,.1); border-color:rgba(245,158,11,.34); color:#fcd34d; }

/* ── F2/B3 (audyt E2E): trwale banery informacyjne u gory ekranu ─────────── */
#topNotices{ position:sticky; top:0; z-index:1000; display:flex; flex-direction:column; }
.topnotice{ padding:8px 16px; font-size:.8125rem; line-height:1.45; text-align:center; border-bottom:1px solid transparent; }
.topnotice strong{ font-weight:800; letter-spacing:.01em; }
.topnotice-demo{ color:#7c2d12; background:repeating-linear-gradient(135deg,#fef3c7,#fef3c7 14px,#fde68a 14px,#fde68a 28px); border-bottom-color:#f59e0b; }
html.dark .topnotice-demo{ color:#fde68a; background:repeating-linear-gradient(135deg,rgba(120,53,15,.45),rgba(120,53,15,.45) 14px,rgba(146,64,14,.55) 14px,rgba(146,64,14,.55) 28px); border-bottom-color:#b45309; }
.topnotice-dev{ color:#92400e; background:#fffbeb; border-bottom-color:#fcd34d; }
html.dark .topnotice-dev{ color:#fcd34d; background:rgba(120,53,15,.30); border-bottom-color:#a16207; }
    /* ═══ Biuro Zamówień Publicznych (Etap 3) — własne style ═══
       Tailwind to statyczny, purgowany build (tailwind.build.css), więc nowe
       klasy utility mogą w nim nie istnieć. Panel BZP opiera się na dedykowanych
       klasach .bzp-* zdefiniowanych poniżej, niezależnych od Tailwinda. */
    .bzp-wrap{ max-width:80rem; margin:0 auto; }
    .bzp-head-icon{ width:28px; height:28px; color:var(--violet); flex:0 0 auto; }
    .bzp-title{ font-size:1.25rem; font-weight:700; color:#1e293b; display:flex; align-items:center; gap:8px; }
    .bzp-subtitle{ font-size:.875rem; color:#64748b; margin-top:4px; }
    .bzp-grid{ display:grid; grid-template-columns:1fr; gap:24px; }
    @media (min-width:1024px){ .bzp-grid{ grid-template-columns:minmax(280px,1fr) 2fr; align-items:start; } }
    .bzp-card{ background:#fff; border:1px solid #e2e8f0; border-radius:16px; box-shadow:0 1px 6px rgba(0,0,0,.04); padding:16px; }
    .bzp-card-pad{ padding:24px; }
    .bzp-row-between{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .bzp-h2{ font-size:1rem; font-weight:700; color:#1e293b; }
    .bzp-count{ display:inline-block; min-width:1.4rem; text-align:center; font-size:.75rem; font-weight:700; color:var(--violet); background:rgba(81,45,168,.12); border-radius:999px; padding:1px 6px; margin-left:4px; }
    .bzp-scope{ display:inline-flex; border:1px solid #e2e8f0; border-radius:8px; padding:2px; margin:12px 0; font-size:.75rem; font-weight:600; }
    .bzp-scope > button{ padding:4px 12px; border-radius:6px; color:#475569; background:transparent; border:0; cursor:pointer; transition:all .15s; }
    .bzp-scope-active{ background:var(--violet) !important; color:#fff !important; box-shadow:0 1px 4px rgba(81,45,168,.30); }
    .bzp-queue-list{ display:flex; flex-direction:column; gap:8px; max-height:70vh; overflow:auto; padding-right:4px; }
    .bzp-queue-item{ width:100%; text-align:left; border:1px solid #e2e8f0; background:#fff; border-radius:12px; padding:10px 12px; cursor:pointer; transition:all .15s; }
    .bzp-queue-item:hover{ background:#f8fafc; }
    .bzp-queue-item.active{ border-color:var(--violet); background:rgba(81,45,168,.06); }
    .bzp-q-top{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
    .bzp-q-title{ font-weight:600; color:#1e293b; font-size:.875rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .bzp-q-meta{ font-size:.6875rem; color:#64748b; display:flex; justify-content:space-between; gap:8px; margin-top:2px; }
    .bzp-q-meta .nowrap{ flex:0 0 auto; }
    .bzp-trunc{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .bzp-empty{ background:#fff; border:1px dashed #cbd5e1; border-radius:16px; padding:40px; text-align:center; color:#94a3b8; }
    .bzp-empty-icon{ width:48px; height:48px; margin:0 auto 12px; color:#cbd5e1; display:block; }
    .bzp-back{ font-size:.75rem; color:#64748b; white-space:nowrap; flex:0 0 auto; background:none; border:0; cursor:pointer; }
    .bzp-back:hover{ color:#334155; }
    .bzp-meta-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:16px; }
    .bzp-meta-title-row{ display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; }
    .bzp-meta-title{ font-weight:700; color:#1e293b; font-size:1rem; }
    .bzp-meta-sub{ font-size:.75rem; color:#64748b; margin-top:4px; display:flex; flex-wrap:wrap; gap:4px 16px; }
    .bzp-meta-sub b{ color:#334155; }
    .bzp-note-return{ margin-top:8px; font-size:.75rem; border-radius:8px; background:#fef2f2; color:#b91c1c; padding:8px 12px; }
    .bzp-badge{ display:inline-block; font-size:.625rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:2px 8px; border-radius:999px; white-space:nowrap; }
    .bzp-badge--slate{ background:#f1f5f9; color:#475569; }
    .bzp-badge--amber{ background:#fffbeb; color:#b45309; }
    .bzp-badge--blue{ background:#eff6ff; color:#1d4ed8; }
    .bzp-badge--indigo{ background:#eef2ff; color:#4338ca; }
    .bzp-badge--emerald{ background:#ecfdf5; color:#047857; }
    .bzp-badge--red{ background:#fef2f2; color:#b91c1c; }
    .bzp-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid #f1f5f9; }
    .bzp-note{ flex:1 1 160px; min-width:160px; padding:8px 12px; font-size:.875rem; border:1px solid #e2e8f0; border-radius:8px; }
    .bzp-note:focus{ outline:2px solid rgba(81,45,168,.25); outline-offset:-1px; }
    .bzp-btn-ghost{ display:inline-flex; align-items:center; gap:6px; padding:8px 12px; font-size:.875rem; border:1px solid #e2e8f0; border-radius:8px; color:#475569; background:#fff; cursor:pointer; transition:all .15s; }
    .bzp-btn-ghost:hover{ background:#f8fafc; }
    .bzp-icon-sm{ width:16px; height:16px; flex:0 0 auto; }
    .bzp-dirty{ font-size:.75rem; font-weight:600; color:#d97706; }
    .bzp-preview{ margin-bottom:16px; padding:16px; border-radius:12px; background:#f8fafc; border:1px solid #e2e8f0; max-height:600px; overflow-y:auto; font-size:.875rem; line-height:1.6; }
    /* Dział OPZ (lewa kolumna, tylko do odczytu) + okno uwag/poprawek BZP obok (prawa kolumna). */
    .bzp-sec{ display:grid; grid-template-columns:minmax(0,1fr) clamp(260px,30%,360px); gap:12px; align-items:start; }
    .bzp-sec + .bzp-sec{ margin-top:16px; }
    @media (max-width:1100px){ .bzp-sec{ grid-template-columns:1fr; } }
    .bzp-sec-main{ border:1px solid #e2e8f0; border-radius:12px; overflow:hidden; background:#fff; min-width:0; }
    .bzp-sec-head{ padding:8px 12px; background:#f8fafc; border-bottom:1px solid #e2e8f0; display:flex; align-items:center; gap:8px; }
    .bzp-sec-num{ font-size:.625rem; font-weight:700; color:var(--violet); background:rgba(81,45,168,.12); border-radius:4px; padding:2px 6px; flex:0 0 auto; }
    .bzp-sec-title{ font-size:.875rem; font-weight:600; color:#334155; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
    .bzp-sec-text{ width:100%; padding:8px 12px; font-size:.8125rem; font-family:'IBM Plex Mono',monospace; line-height:1.6; border:0; resize:vertical; color:#0f172a; display:block; box-sizing:border-box; }
    .bzp-sec-text:focus{ outline:2px solid rgba(81,45,168,.25); outline-offset:-2px; }
    .bzp-sec-text[readonly]{ background:#f8fafc; color:#475569; cursor:default; }
    .bzp-readonly-hint{ flex:1 1 auto; font-size:.75rem; color:#64748b; line-height:1.4; }
    /* ── Okno uwag/poprawek BZP „obok działu" ───────────── */
    .bzp-sec-aside{ display:flex; flex-direction:column; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; min-width:0; max-height:440px; }
    .bzp-sec-aside.has-notes{ border-color:rgba(81,45,168,.40); box-shadow:0 0 0 1px rgba(81,45,168,.10); }
    .bzp-sec-aside-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:8px 10px; border-bottom:1px solid #e2e8f0; }
    .bzp-sec-aside-title{ font-size:.6875rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--violet); }
    .bzp-sec-notes{ flex:1 1 auto; overflow-y:auto; padding:8px; display:flex; flex-direction:column; gap:6px; min-height:44px; }
    .bzp-sec-note-empty{ font-size:.75rem; color:#94a3b8; text-align:center; padding:10px 4px; }
    .bzp-note{ display:flex; flex-direction:column; align-items:flex-start; max-width:92%; }
    .bzp-note.mine{ align-self:flex-end; align-items:flex-end; }
    .bzp-note-meta{ font-size:.625rem; color:#94a3b8; margin:0 3px 2px; }
    .bzp-note-body{ font-size:.8125rem; line-height:1.5; padding:6px 9px; border-radius:9px; background:#eef2ff; color:#1e293b; white-space:pre-wrap; word-break:break-word; border:1px solid #e0e7ff; }
    .bzp-note.mine .bzp-note-body{ background:var(--violet); color:#fff; border-color:transparent; }
    .bzp-sec-add{ display:flex; gap:6px; padding:8px; border-top:1px solid #e2e8f0; align-items:flex-end; }
    .bzp-sec-add-input{ flex:1 1 auto; padding:6px 9px; font-size:.8125rem; border:1px solid #e2e8f0; border-radius:8px; resize:vertical; box-sizing:border-box; line-height:1.45; min-width:0; background:#fff; }
    .bzp-sec-add-input:focus{ outline:2px solid rgba(81,45,168,.25); outline-offset:-1px; }
    .bzp-sec-add-btn{ flex:0 0 auto; padding:7px 12px; font-size:.8125rem; font-weight:600; color:#fff; background:var(--violet); border:0; border-radius:8px; cursor:pointer; }
    .bzp-sec-add-btn:hover{ filter:brightness(1.08); }
    /* Okno uwag ogólnych (nieprzypisanych do działu) — pod listą działów */
    .bzp-sec-general{ margin-top:16px; display:flex; flex-direction:column; border:1px dashed #cbd5e1; border-radius:12px; background:#fff; }
    .bzp-sec-general .bzp-sec-notes{ max-height:220px; }
    .bzp-save-btn{ display:inline-flex; align-items:center; gap:8px; padding:8px 16px; border-radius:12px; font-size:.875rem; font-weight:600; }
    /* ── Pod-zakładki obszaru roboczego (Edycja / Uwagi / Dyskusja) ─── */
    .bzp-subtabs{ display:flex; gap:4px; border-bottom:1px solid #e2e8f0; margin-bottom:16px; }
    .bzp-subtab{ padding:8px 14px; font-size:.8125rem; font-weight:600; color:#64748b; background:none; border:0; border-bottom:2px solid transparent; cursor:pointer; transition:all .15s; display:inline-flex; align-items:center; gap:6px; }
    .bzp-subtab:hover{ color:#334155; }
    .bzp-subtab.active{ color:var(--violet); border-bottom-color:var(--violet); }
    .bzp-pill{ font-size:.625rem; font-weight:700; background:#f1f5f9; color:#475569; border-radius:999px; padding:1px 6px; min-width:1.1rem; text-align:center; }
    .bzp-subtab.active .bzp-pill{ background:rgba(81,45,168,.12); color:var(--violet); }
    /* ── Uwagi / komentarze ─────────────────────────────── */
    .bzp-cmt-add{ display:flex; flex-direction:column; gap:8px; margin-bottom:16px; padding:12px; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
    .bzp-cmt-add-row{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
    .bzp-cmt-hint{ font-size:.75rem; color:#64748b; }
    .bzp-cmt-sec-input{ width:140px; padding:6px 10px; font-size:.8125rem; border:1px solid #e2e8f0; border-radius:8px; }
    .bzp-cmt-textarea{ width:100%; padding:8px 12px; font-size:.875rem; border:1px solid #e2e8f0; border-radius:8px; resize:vertical; box-sizing:border-box; line-height:1.5; }
    .bzp-cmt-textarea:focus, .bzp-cmt-sec-input:focus{ outline:2px solid rgba(81,45,168,.25); outline-offset:-1px; }
    .bzp-cmt{ border:1px solid #e2e8f0; border-radius:12px; padding:10px 12px; background:#fff; }
    .bzp-cmt + .bzp-cmt{ margin-top:8px; }
    .bzp-cmt-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; font-size:.6875rem; }
    .bzp-cmt-sec{ font-weight:700; color:var(--violet); background:rgba(81,45,168,.10); border-radius:4px; padding:1px 6px; }
    .bzp-cmt-author{ font-weight:600; color:#334155; }
    .bzp-cmt-time{ color:#94a3b8; }
    .bzp-cmt-body{ font-size:.875rem; color:#1e293b; white-space:pre-wrap; line-height:1.5; word-break:break-word; }
    .bzp-cmt-empty{ text-align:center; color:#94a3b8; font-size:.875rem; padding:24px 0; }
    /* ── Dyskusja (czat autor ⇄ BZP) ────────────────────── */
    .bzp-thread{ display:flex; flex-direction:column; gap:10px; max-height:50vh; overflow-y:auto; padding:4px; margin-bottom:12px; }
    .bzp-msg{ display:flex; flex-direction:column; align-items:flex-start; max-width:82%; }
    .bzp-msg.mine{ align-self:flex-end; align-items:flex-end; }
    .bzp-msg-meta{ font-size:.625rem; color:#94a3b8; margin:0 4px 2px; }
    .bzp-msg-bubble{ font-size:.875rem; line-height:1.5; padding:8px 12px; border-radius:12px; background:#f1f5f9; color:#1e293b; white-space:pre-wrap; word-break:break-word; }
    .bzp-msg.mine .bzp-msg-bubble{ background:var(--violet); color:#fff; }
    .bzp-msg-form{ display:flex; gap:8px; align-items:flex-end; }
    .bzp-msg-form textarea{ flex:1; padding:8px 12px; font-size:.875rem; border:1px solid #e2e8f0; border-radius:10px; resize:vertical; box-sizing:border-box; line-height:1.5; }
    .bzp-msg-form textarea:focus{ outline:2px solid rgba(81,45,168,.25); outline-offset:-1px; }
    /* ── Karta dyskusji po stronie autora (Historia) ────── */
    .author-disc-head{ display:flex; align-items:center; gap:8px; margin-bottom:12px; }
    .author-disc-icon{ width:32px; height:32px; border-radius:10px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; background:rgba(81,45,168,.10); border:1px solid rgba(81,45,168,.20); }
    .author-disc-cols{ display:grid; grid-template-columns:1fr; gap:20px; }
    @media (min-width:900px){ .author-disc-cols{ grid-template-columns:1fr 1fr; } }
    .author-disc-col h4{ font-size:.8125rem; font-weight:700; color:#334155; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
    /* Autor: okna uwag „przy każdym dziale" + blok dyskusji ogólnej pod spodem */
    .author-disc-block{ margin-top:20px; }
    #authorWorkflow + .author-disc-block{ margin-top:6px; }
    .author-disc-block h4{ font-size:.8125rem; font-weight:700; color:#334155; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
    .author-sec-list{ display:flex; flex-direction:column; gap:10px; }
    .author-sec{ display:flex; flex-direction:column; border:1px solid #e2e8f0; border-radius:12px; background:#fff; overflow:hidden; }
    .author-sec.has-notes{ border-color:rgba(81,45,168,.40); }
    .author-sec-head{ display:flex; align-items:center; gap:8px; padding:8px 10px; background:#f8fafc; border-bottom:1px solid #e2e8f0; }
    .author-sec-head .bzp-sec-title{ flex:1 1 auto; }
    .author-sec .bzp-sec-notes{ max-height:240px; }
    /* ── Etap 5: pasek akcji workflow (BZP + autor) ─────── */
    .bzp-actions-bar{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:16px; padding-bottom:16px; border-bottom:1px solid #f1f5f9; }
    .bzp-actions-bar:empty{ display:none; }
    .author-workflow{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-bottom:16px; }
    .author-workflow:empty{ display:none; }
    .bzp-version-preview{ margin-top:12px; padding:16px; border-radius:12px; background:#f8fafc; border:1px solid #e2e8f0; max-height:480px; overflow-y:auto; font-size:.875rem; line-height:1.6; }

/* Sekcja BZP — kolory literalne -> tokeny */
html.dark .bzp-card, html.dark .bzp-sec-main, html.dark .bzp-sec-aside, html.dark .bzp-sec-general,
html.dark .bzp-cmt, html.dark .bzp-preview, html.dark .bzp-version-preview{
  background:var(--card) !important; border-color:var(--border-mid) !important; color:var(--text-hi) !important;
}
html.dark .bzp-sec-head, html.dark .bzp-sec-aside-head{ background:var(--surface2) !important; border-color:var(--border-mid) !important; }
html.dark .bzp-sec-text, html.dark .bzp-sec-add-input, html.dark .bzp-cmt-textarea, html.dark .bzp-cmt-sec-input,
html.dark .bzp-note, html.dark .bzp-msg-form textarea{ background:var(--surface) !important; color:var(--text-mid) !important; border-color:var(--border-mid) !important; }
html.dark .bzp-sec-title, html.dark .bzp-title{ color:var(--text-hi) !important; }
html.dark .bzp-subtitle, html.dark .bzp-cmt-hint, html.dark .bzp-sec-note-empty, html.dark .bzp-cmt-empty,
html.dark .bzp-msg-meta, html.dark .bzp-note-meta, html.dark .bzp-cmt-time, html.dark .bzp-readonly-hint{ color:var(--text-lo) !important; }
html.dark .bzp-note-body, html.dark .bzp-msg-bubble{ background:var(--surface2) !important; color:var(--text-hi) !important; border-color:var(--border-mid) !important; }
html.dark .bzp-note.mine .bzp-note-body, html.dark .bzp-msg.mine .bzp-msg-bubble{ background:var(--indigo) !important; color:#fff !important; }
html.dark .bzp-pill{ background:var(--surface2) !important; color:var(--text-mid) !important; }
html.dark .bzp-subtab{ color:var(--text-lo) !important; }
html.dark .bzp-subtab.active{ color:var(--indigo-bright) !important; border-bottom-color:var(--indigo-bright) !important; }
/* Markdown (podglady OPZ) czytelny na ciemnym */
html.dark .markdown-body{ color:var(--text-hi); }
html.dark .markdown-body th, html.dark .markdown-body td, html.dark .markdown-body hr{ border-color:var(--border-mid) !important; }
html.dark .markdown-body code, html.dark .markdown-body pre{ background:var(--surface2) !important; color:var(--text-hi) !important; }
html.dark .markdown-body blockquote{ border-left-color:var(--indigo) !important; color:var(--text-mid) !important; }
/* Drobne: subtelna siatka tla mniej widoczna na ciemnym */
html.dark .bg-mesh::before{ opacity:.5; }

/* ── Wyslij do BZP: komunikat „przed wyslaniem" + przycisk (po generacji) ─── */
.author-presend{
  display:flex; gap:12px; align-items:flex-start;
  padding:14px 16px; margin-bottom:4px;
  border:1px solid var(--indigo-ring); border-radius:12px;
  background:var(--indigo-soft);
}
.author-presend-icon{ width:22px; height:22px; color:var(--indigo); flex:0 0 auto; margin-top:1px; }
.author-presend-title{ font-weight:700; color:var(--text-hi); font-size:.9rem; margin-bottom:2px; }
.author-presend-text{ font-size:.8125rem; color:var(--text-mid); line-height:1.5; margin:0; }
.author-send-btn{ display:inline-flex; align-items:center; gap:8px; }

/* ── Ekran decyzyjny kierownika BZP ─────────────────────────── */
.bzp-head-card{ border:1px solid var(--border-mid); border-left:4px solid var(--violet); border-radius:12px; background:var(--surface); padding:14px 16px; margin-bottom:14px; }
.bzp-head-title{ font-weight:800; font-size:.9rem; color:var(--text-hi); margin-bottom:10px; }
.bzp-head-metrics{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.bzp-head-metric{ font-size:.75rem; color:var(--text-mid); background:var(--card); border:1px solid var(--border-mid); border-radius:999px; padding:3px 10px; }
.bzp-head-risks{ display:flex; flex-direction:column; gap:4px; margin-bottom:10px; }
.bzp-head-risk{ font-size:.8125rem; color:#991b1b; background:#fef2f2; border:1px solid #fecaca; border-radius:8px; padding:6px 10px; }
html.dark .bzp-head-risk{ color:#fca5a5; background:rgba(192,57,43,.14); border-color:rgba(192,57,43,.40); }
.bzp-head-rec{ font-size:.8125rem; font-weight:600; border-radius:8px; padding:8px 12px; }

/* ── Decyzja kierownika BZP (Korekty dla kierownika — K1/K2/K3/K6) ─────────── */
/* K2 — ocena gotowosci: swiatlo zielone / zolte / czerwone */
.bzp-ready{ display:flex; align-items:center; gap:12px; border:1px solid var(--border-mid); border-radius:10px; padding:10px 14px; margin-bottom:12px; }
.bzp-ready-dot{ width:16px; height:16px; border-radius:50%; flex:0 0 auto; box-shadow:0 0 0 4px rgba(0,0,0,.05); }
.bzp-ready-txt{ display:flex; flex-direction:column; line-height:1.25; }
.bzp-ready-txt b{ font-size:.9rem; letter-spacing:.02em; }
.bzp-ready-txt span{ font-size:.78rem; color:var(--text-mid); }
.bzp-ready--green{ background:#ecfdf5; border-color:#6ee7b7; } .bzp-ready--green .bzp-ready-dot{ background:#10b981; } .bzp-ready--green b{ color:#166534; }
.bzp-ready--amber{ background:#fff7ed; border-color:#fed7aa; } .bzp-ready--amber .bzp-ready-dot{ background:#f59e0b; } .bzp-ready--amber b{ color:#9a3412; }
.bzp-ready--red{ background:#fef2f2; border-color:#fecaca; } .bzp-ready--red .bzp-ready-dot{ background:#ef4444; animation:hexPulse 1.8s ease-out infinite; } .bzp-ready--red b{ color:#991b1b; }
.bzp-ready--slate{ background:var(--card); } .bzp-ready--slate .bzp-ready-dot{ background:#94a3b8; } .bzp-ready--slate b{ color:var(--text-hi); }
html.dark .bzp-ready--green{ background:rgba(16,185,129,.12); border-color:rgba(16,185,129,.4); } html.dark .bzp-ready--green b{ color:#6ee7b7; }
html.dark .bzp-ready--amber{ background:rgba(245,158,11,.12); border-color:rgba(245,158,11,.4); } html.dark .bzp-ready--amber b{ color:#fcd34d; }
html.dark .bzp-ready--red{ background:rgba(239,68,68,.14); border-color:rgba(239,68,68,.42); } html.dark .bzp-ready--red b{ color:#fca5a5; }

/* K1 — trzy pola decyzji */
.bzp-decis-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px; }
@media (max-width:760px){ .bzp-decis-grid{ grid-template-columns:1fr; } }
.bzp-decis-field{ background:var(--card); border:1px solid var(--border-mid); border-radius:10px; padding:10px 12px; min-width:0; }
.bzp-decis-cap{ font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--text-mid); margin-bottom:6px; display:flex; align-items:center; gap:6px; }
.bzp-decis-body{ font-size:.8125rem; color:var(--text-hi); }
.bzp-decis-li{ font-size:.8rem; color:var(--text-hi); padding:3px 0; border-bottom:1px dashed var(--border-mid); }
.bzp-decis-li:last-child{ border-bottom:0; }
.bzp-decis-ok{ font-size:.8rem; color:#166534; }
html.dark .bzp-decis-ok{ color:#6ee7b7; }
.bzp-risk-chip{ display:inline-block; font-size:.66rem; font-weight:700; border-radius:5px; padding:1px 6px; margin-right:4px; vertical-align:middle; }
.bzp-risk-high{ background:#fee2e2; color:#991b1b; } .bzp-risk-med{ background:#ffedd5; color:#9a3412; }
html.dark .bzp-risk-high{ background:rgba(239,68,68,.2); color:#fca5a5; } html.dark .bzp-risk-med{ background:rgba(245,158,11,.2); color:#fcd34d; }

/* K3 — blokady + bloki sekcji */
.bzp-decis-block{ background:var(--card); border:1px solid var(--border-mid); border-radius:10px; padding:10px 12px; margin-bottom:12px; }
.bzp-blocker{ font-weight:500; }
.bzp-blocker--critical{ color:#b91c1c; } .bzp-blocker--warning{ color:#92400e; } .bzp-blocker--info{ color:var(--text-mid); }
html.dark .bzp-blocker--critical{ color:#fca5a5; } html.dark .bzp-blocker--warning{ color:#fcd34d; }

/* R1/B2 — sekcja „do recznej weryfikacji" + twarde potwierdzenie art. 99 */
.bzp-manual{ border-color:#f59e0b; background:#fffbeb; }
html.dark .bzp-manual{ background:rgba(245,158,11,.08); border-color:#b45309; }
.bzp-art99-confirm{ display:flex; gap:8px; align-items:flex-start; margin-top:10px; padding:8px 10px; border:1px solid #f59e0b; border-radius:8px; background:#fff7ed; font-size:13px; line-height:1.35; cursor:pointer; }
.bzp-art99-confirm input{ margin-top:3px; flex:0 0 auto; width:16px; height:16px; }
html.dark .bzp-art99-confirm{ background:rgba(245,158,11,.10); border-color:#b45309; color:var(--text-hi); }

/* K6 — historia decyzji */
.bzp-decis-hist-row{ padding:6px 0; border-bottom:1px solid var(--border-mid); }
.bzp-decis-hist-row:last-child{ border-bottom:0; }
.bzp-decis-hist-top{ font-size:.78rem; color:var(--text-mid); }
.bzp-decis-hist-when{ color:var(--text-mid); }
.bzp-decis-hist-just{ font-size:.8rem; color:var(--text-hi); margin-top:2px; font-style:italic; }
.bzp-dec-ok{ color:#166534; font-weight:700; } .bzp-dec-ret{ color:#b45309; font-weight:700; }
html.dark .bzp-dec-ok{ color:#6ee7b7; } html.dark .bzp-dec-ret{ color:#fcd34d; }
.bzp-decis-rd{ font-size:.66rem; font-weight:800; letter-spacing:.03em; }
.bzp-decis-rd--green{ color:#10b981; } .bzp-decis-rd--yellow{ color:#d97706; } .bzp-decis-rd--red{ color:#ef4444; }

.bzp-decis-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.bzp-decis-hint{ font-size:.75rem; color:var(--text-mid); margin-top:8px; }

/* Biblioteka klauzul w obszarze BZP. */
.bzp-clause-select{
  width:100%;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#334155;
  border-radius:8px;
  padding:7px 9px;
  font-size:12px;
  margin-bottom:6px;
}
.bzp-clause-select:focus{
  outline:2px solid #93c5fd;
  outline-offset:1px;
  border-color:#2563eb;
}

/* ── Korekty BZP: czytelny dashboard kolejki (kafelki „Wymagaja uwagi" + pigulki statusu) ── */
.bzp-dash{ margin:10px 0 10px; }
.bzp-dash-sec + .bzp-dash-sec{ margin-top:10px; }
.bzp-dash-cap{ font-size:.62rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:#94a3b8; margin:0 0 5px 2px; }
.bzp-dash-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(94px,1fr)); gap:6px; }
.bzp-dash-card{ text-align:left; display:flex; flex-direction:column; gap:3px; cursor:pointer;
  border:1px solid #e2e8f0; background:#fff; border-radius:10px; padding:8px 9px;
  transition:transform .12s ease, box-shadow .15s ease, border-color .15s ease, background .15s ease; }
.bzp-dash-card:hover{ transform:translateY(-1px); box-shadow:0 4px 12px rgba(15,23,42,.08); }
.bzp-dash-card:focus-visible{ outline:2px solid #0e52a8; outline-offset:2px; }
.bzp-dash-card-head{ display:flex; align-items:center; justify-content:space-between; }
.bzp-dash-ic{ font-size:.8rem; opacity:.85; }
.bzp-dash-n{ font-size:1.2rem; font-weight:800; color:#0f172a; line-height:1; }
.bzp-dash-lbl{ font-size:.65rem; color:#64748b; line-height:1.2; }
.bzp-dash-card.tone-red .bzp-dash-n{ color:#b91c1c; }
.bzp-dash-card.tone-amber .bzp-dash-n{ color:#b45309; }
.bzp-dash-card.tone-violet .bzp-dash-n{ color:#6d28d9; }
.bzp-dash-card.tone-blue .bzp-dash-n{ color:#1d4ed8; }
.bzp-dash-card.active{ border-color:#475569; box-shadow:0 0 0 2px rgba(71,85,105,.14); background:#f8fafc; }
.bzp-dash-card.tone-red.active{ border-color:#dc2626; box-shadow:0 0 0 2px rgba(220,38,38,.18); background:#fef2f2; }
.bzp-dash-card.tone-amber.active{ border-color:#d97706; box-shadow:0 0 0 2px rgba(217,119,6,.18); background:#fffbeb; }
.bzp-dash-card.tone-violet.active{ border-color:#7c3aed; box-shadow:0 0 0 2px rgba(124,58,237,.18); background:#f5f3ff; }
.bzp-dash-card.tone-blue.active{ border-color:#2563eb; box-shadow:0 0 0 2px rgba(37,99,235,.18); background:#eff6ff; }
.bzp-dash-pills{ display:flex; flex-wrap:wrap; gap:5px; }
.bzp-dash-pill{ font-size:.72rem; color:#475569; background:#f1f5f9; border:1px solid #e2e8f0; border-radius:999px; padding:3px 11px; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
.bzp-dash-pill b{ color:#0f172a; font-weight:700; margin-left:2px; }
.bzp-dash-pill:hover{ background:#e2e8f0; }
.bzp-dash-pill.active{ background:#0e52a8; border-color:#0e52a8; color:#fff; }
.bzp-dash-pill.active b{ color:#fff; }
.bzp-dash-pill:focus-visible{ outline:2px solid #0e52a8; outline-offset:2px; }
html.dark .bzp-dash-card{ background:#0f172a; border-color:#334155; }
html.dark .bzp-dash-n{ color:#e2e8f0; }
html.dark .bzp-dash-lbl, html.dark .bzp-dash-cap{ color:#94a3b8; }
html.dark .bzp-dash-pill{ background:#1e293b; border-color:#334155; color:#cbd5e1; }
html.dark .bzp-dash-pill b{ color:#e2e8f0; }

/* Decyzyjna kolejka BZP: szybka odpowiedz "mozna / warunkowo / nie mozna". */
.bzp-q-badges{ display:inline-flex; align-items:center; justify-content:flex-end; gap:4px; flex:0 0 auto; }
.bzp-q-risk{ display:inline-block; font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; border-radius:999px; padding:2px 7px; border:1px solid transparent; white-space:nowrap; }
.bzp-q-risk--green{ color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.bzp-q-risk--yellow{ color:#92400e; background:#fffbeb; border-color:#fcd34d; }
.bzp-q-risk--red{ color:#b91c1c; background:#fef2f2; border-color:#fecaca; }
.bzp-q-decision{ margin-top:6px; font-size:.76rem; line-height:1.35; font-weight:650; color:#1e3a8a; background:#eff6ff; border:1px solid #bfdbfe; border-radius:8px; padding:6px 8px; }
.bzp-q-blocker{ margin-top:5px; font-size:.72rem; line-height:1.35; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:5px 8px; }
.bzp-step-guide{ display:inline-flex; align-items:center; margin-left:8px; padding:4px 9px; border-radius:999px; background:#eff6ff; color:#1d4ed8; border:1px solid #bfdbfe; font-size:.75rem; font-weight:650; }

/* Jednolity jezyk decyzji w pakiecie kierownika. */
.bzp-decision-summary{ margin:10px 0; border:1px solid #e2e8f0; border-radius:12px; background:#fff; overflow:hidden; }
.bzp-decision-main{ display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-bottom:1px solid #e2e8f0; }
.bzp-decision-main b{ font-size:.95rem; color:#0f172a; }
.bzp-decision-main span{ font-size:.78rem; color:#475569; line-height:1.35; }
.bzp-decision-kicker{ font-size:.62rem !important; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#64748b !important; }
.bzp-certainty-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; }
.bzp-certainty-grid > div{ padding:10px 12px; border-right:1px solid #e2e8f0; font-size:.75rem; line-height:1.35; color:#475569; }
.bzp-certainty-grid > div:last-child{ border-right:0; }
.bzp-certainty-grid b{ display:block; color:#0f172a; margin-bottom:4px; }
.bzp-certainty-grid ul{ margin:0; padding-left:15px; }
.bzp-decision-summary--green{ border-color:#a7f3d0; }
.bzp-decision-summary--green .bzp-decision-main{ background:#ecfdf5; border-bottom-color:#a7f3d0; }
.bzp-decision-summary--amber{ border-color:#fcd34d; }
.bzp-decision-summary--amber .bzp-decision-main{ background:#fffbeb; border-bottom-color:#fcd34d; }
.bzp-decision-summary--red{ border-color:#fecaca; }
.bzp-decision-summary--red .bzp-decision-main{ background:#fef2f2; border-bottom-color:#fecaca; }
@media (max-width:900px){
  .bzp-certainty-grid{ grid-template-columns:1fr; }
  .bzp-certainty-grid > div{ border-right:0; border-bottom:1px solid #e2e8f0; }
  .bzp-certainty-grid > div:last-child{ border-bottom:0; }
  .bzp-step-guide{ margin:6px 0 0; width:100%; border-radius:8px; }
}
    /* corner decorator — subtle, no animation */
    .nx-card::after{
      content:"";
      position:absolute;top:0;left:0;
      width:16px;height:16px;
      border-top:2px solid var(--cyan);
      border-left:2px solid var(--cyan);
      border-radius:14px 0 0 0;
      pointer-events:none;
      opacity:.28;
    }
    .nx-card:hover{
      border-color:var(--border-hi) !important;
      border-top-color:var(--cyan) !important;
      box-shadow:var(--cyan-glow),0 4px 20px rgba(0,50,150,.10);
      transform:translateY(-1px);
    }
    #mainTabAdmin .nx-card.admin-card-collapsed > :not(.admin-card-collapse-head){
      display:none !important;
    }
    .admin-card-collapse-head{
      position:relative;
      z-index:1;
    }
    .admin-card-collapse-btn{
      margin-left:auto;
      display:inline-flex;
      align-items:center;
      gap:.4rem;
      min-height:2rem;
      padding:.35rem .65rem;
      border:1px solid rgba(100,116,139,.25);
      border-radius:.75rem;
      background:#f8fafc;
      color:#475569;
      font-size:.75rem;
      font-weight:700;
      line-height:1;
      white-space:nowrap;
      transition:background .2s,border-color .2s,color .2s;
    }
    .admin-card-collapse-btn:hover{
      background:#eef2ff;
      border-color:rgba(37,99,235,.28);
      color:#1e3a8a;
    }
    .admin-card-collapse-icon{
      width:.55rem;
      height:.55rem;
      border-right:2px solid currentColor;
      border-bottom:2px solid currentColor;
      transform:rotate(45deg) translateY(-1px);
      transition:transform .2s;
    }
    .admin-card-collapsed .admin-card-collapse-icon{
      transform:rotate(-45deg);
    }
    .admin-mfa-switch{
      display:inline-flex;
      align-items:center;
      gap:.45rem;
      min-height:2rem;
      padding:.25rem .55rem;
      border:1px solid #e2e8f0;
      border-radius:.75rem;
      background:#fff;
      color:#475569;
      font-size:.72rem;
      font-weight:700;
      cursor:pointer;
      user-select:none;
      white-space:nowrap;
    }
    .admin-mfa-switch input{
      position:absolute;
      opacity:0;
      pointer-events:none;
    }
    .admin-mfa-slider{
      position:relative;
      width:2.1rem;
      height:1.15rem;
      border-radius:999px;
      background:#cbd5e1;
      box-shadow:inset 0 0 0 1px rgba(15,23,42,.10);
      transition:background .2s;
    }
    .admin-mfa-slider::after{
      content:"";
      position:absolute;
      top:.16rem;
      left:.16rem;
      width:.83rem;
      height:.83rem;
      border-radius:999px;
      background:#fff;
      box-shadow:0 1px 4px rgba(15,23,42,.22);
      transition:transform .2s;
    }
    .admin-mfa-switch input:checked + .admin-mfa-slider{
      background:#0f766e;
    }
    .admin-mfa-switch input:checked + .admin-mfa-slider::after{
      transform:translateX(.95rem);
    }
    .admin-mfa-switch:focus-within{
      outline:2px solid rgba(14,82,168,.35);
      outline-offset:2px;
    }
    .lift-card{
      position:relative;
      background:var(--card) !important;
      border:1px solid var(--border-mid) !important;
      border-radius:12px;
      transition:border-color .3s,box-shadow .3s,transform .3s;
      box-shadow:0 2px 8px rgba(0,50,150,.05);
    }
    .lift-card:hover{
      border-color:var(--border-hi) !important;
      box-shadow:var(--cyan-glow),0 4px 16px rgba(0,50,150,.09);
      transform:translateY(-1px);
    }

    /* ── Admin sub-tab navigation ──────────────────────────── */
    .admin-sub-nav{
      display:flex;gap:4px;
      background:rgba(0,61,143,.04);
      border:1px solid var(--border-mid);
      border-radius:16px;padding:5px;
      overflow-x:auto;scrollbar-width:none;
    }
    .admin-sub-nav::-webkit-scrollbar{ display:none; }
    .admin-sub-btn{
      flex:1;min-width:max-content;
      display:flex;align-items:center;justify-content:center;gap:7px;
      padding:9px 18px;border-radius:12px;border:none;
      background:transparent;font-size:13px;font-weight:600;
      color:var(--text-mid);cursor:pointer;transition:all .2s;
      white-space:nowrap;font-family:var(--font-body);
    }
    .admin-sub-btn:hover{background:rgba(0,61,143,.06);color:var(--cyan);}
    .admin-sub-btn.active{
      background:#fff;color:var(--cyan);
      box-shadow:0 2px 10px rgba(0,61,143,.13);
    }
    .admin-sub-btn svg{ flex-shrink:0; }
    @media(max-width:600px){
      .admin-sub-btn{ padding:8px 12px;font-size:12px;gap:5px; }
      .admin-sub-btn .asnl{ display:none; }
    }

    /* Admin panel ─────────────────────────────────────────── */
    #adminUserForm input{background:var(--surface) !important}
    button[type=submit].bg-navy-800{
      background:var(--cyan) !important;
      border:1px solid var(--cyan) !important;
      color:#fff !important;
    }
    button[type=submit].bg-navy-800:hover{
      background:rgba(0,76,164,.9) !important;
    }

    /* Stat chip w panelu admina */
    .admin-stat-chip{
      display:inline-flex;flex-direction:column;align-items:center;
      padding:.5rem .9rem;
      background:var(--card);
      border:1px solid var(--border-mid);
      border-radius:12px;
      box-shadow:0 1px 4px rgba(0,50,150,.06);
      min-width:80px;
    }
    .admin-stat-chip .val{
      font-family:var(--font-body);
      font-size:22px;
      font-weight:800;
      color:var(--cyan);
      line-height:1;
    }
    .admin-stat-chip .lbl{
      font-family:var(--font-body);
      font-size:11px;
      font-weight:500;
      letter-spacing:0;
      text-transform:none;
      color:var(--text-mid);
      margin-top:4px;
    }

    /* Admin badge "NIEPRZECZYTANE" */
    .unread-badge{
      display:inline-flex;align-items:center;
      padding:.15rem .5rem;
      background:var(--orange);
      color:#fff;
      border-radius:9px;
      font-size:10px;
      font-weight:700;
      letter-spacing:.04em;
    }
/* ── F8 (audyt E2E): Kreator OPZ krok-po-kroku ───────────────────────────── */
/* Przycisk uruchamiajacy (gora formularza) */
.wizard-launch{
  display:flex; align-items:center; gap:14px; width:100%; text-align:left;
  padding:14px 16px; border-radius:14px; cursor:pointer;
  border:1px solid var(--cyan, #0ea5b7);
  background:linear-gradient(135deg, rgba(14,165,183,.10), rgba(0,86,184,.06));
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.wizard-launch:hover{ transform:translateY(-1px); box-shadow:0 8px 24px rgba(0,86,184,.14); background:linear-gradient(135deg, rgba(14,165,183,.16), rgba(0,86,184,.10)); }
.wizard-launch:focus-visible{ outline:2px solid var(--cyan, #0ea5b7); outline-offset:2px; }
.wizard-launch-icon{ width:30px; height:30px; flex:0 0 auto; color:var(--cyan, #0ea5b7); }
.wizard-launch-text{ display:flex; flex-direction:column; gap:2px; flex:1 1 auto; }
.wizard-launch-title{ font-weight:800; font-size:.95rem; color:var(--text-hi, #0f172a); }
.wizard-launch-sub{ font-size:.78rem; color:var(--text-mid, #475569); line-height:1.35; }
.wizard-launch-go{ font-size:1.1rem; color:var(--cyan, #0ea5b7); font-weight:700; flex:0 0 auto; }
html.dark .wizard-launch-title{ color:#e2e8f0; }
html.dark .wizard-launch-sub{ color:#94a3b8; }

/* Modal kreatora (wezszy niz regulamin) */
/* min-height: krok „typ" jest wysoki, a „nazwa"/„wartosc" krotkie — bez tego modal skakal o ~200px
   miedzy krokami, przez co „doklik" po „Dalej" trafial w tlo. Stala wysokosc = stabilny przycisk. */
.wizard-modal{ max-width:560px; min-height:min(600px, 86vh); }
.wizard-dots{ display:flex; gap:6px; justify-content:center; padding:12px 24px 0; flex-shrink:0; }
.wizard-dot{ width:30px; height:5px; border-radius:999px; background:var(--border-mid, #e2e8f0); transition:background .25s ease; }
.wizard-dot.on{ background:var(--cyan, #0ea5b7); }
.wizard-dot.done{ background:rgba(14,165,183,.5); }

.wizard-q{ font-size:1.15rem; font-weight:800; color:var(--text-hi, #0f172a); margin:4px 0 4px; }
html.dark .wizard-q{ color:#e2e8f0; }
.wizard-q-help{ font-size:.85rem; color:var(--text-mid, #475569); margin:0 0 16px; line-height:1.5; }
.wizard-note{ font-size:.75rem; color:var(--text-mid, #64748b); margin:10px 0 0; line-height:1.45; }

.wizard-input{
  width:100%; box-sizing:border-box; padding:12px 14px; font-size:.95rem;
  border:1px solid var(--border-mid, #cbd5e1); border-radius:12px;
  background:var(--surface, #f8fafc); color:var(--text-hi, #0f172a);
  transition:border-color .15s ease, box-shadow .15s ease; resize:vertical;
}
.wizard-input:focus{ outline:none; border-color:var(--cyan, #0ea5b7); box-shadow:0 0 0 3px rgba(14,165,183,.18); }

/* Kafelki wyboru typu */
.wizard-types{ display:grid; grid-template-columns:1fr; gap:8px; }
.wizard-type{
  display:flex; flex-direction:column; gap:2px; text-align:left;
  padding:12px 14px; border-radius:12px; cursor:pointer;
  border:1px solid var(--border-mid, #e2e8f0); background:var(--surface, #f8fafc);
  transition:border-color .15s ease, background .15s ease, transform .12s ease;
}
.wizard-type:hover{ transform:translateX(2px); border-color:var(--cyan, #0ea5b7); }
.wizard-type.sel{ border-color:var(--cyan, #0ea5b7); background:rgba(14,165,183,.10); box-shadow:0 0 0 2px rgba(14,165,183,.18) inset; }
.wizard-type-t{ font-weight:700; font-size:.9rem; color:var(--text-hi, #0f172a); }
.wizard-type-d{ font-size:.76rem; color:var(--text-mid, #64748b); }
html.dark .wizard-type-t{ color:#e2e8f0; }

/* Podsumowanie */
.wizard-sum{ display:grid; grid-template-columns:auto 1fr; gap:6px 16px; margin:0; }
.wizard-sum dt{ font-size:.78rem; color:var(--text-mid, #64748b); font-weight:600; }
.wizard-sum dd{ font-size:.85rem; color:var(--text-hi, #0f172a); margin:0; word-break:break-word; }
html.dark .wizard-sum dd{ color:#e2e8f0; }

.wizard-err{ margin-top:12px; padding:8px 12px; border-radius:10px; font-size:.8rem;
  color:#991b1b; background:#fef2f2; border:1px solid #fecaca; }
html.dark .wizard-err{ color:#fca5a5; background:rgba(192,57,43,.14); border-color:rgba(192,57,43,.4); }

/* Stopka + przyciski */
.wizard-footer{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.wizard-foot-right{ display:flex; gap:8px; }
.wizard-btn{ padding:9px 16px; border-radius:10px; font-size:.85rem; font-weight:700; cursor:pointer; border:1px solid transparent; transition:filter .15s ease, background .15s ease; }
.wizard-btn-primary{ background:var(--cyan, #0ea5b7); color:#fff; }
.wizard-btn-primary:hover{ filter:brightness(1.06); }
.wizard-btn-ghost{ background:transparent; border-color:var(--border-mid, #cbd5e1); color:var(--text-mid, #475569); }
.wizard-btn-ghost:hover{ background:var(--surface, #f1f5f9); }
.wizard-btn:focus-visible{ outline:2px solid var(--cyan, #0ea5b7); outline-offset:2px; }

/* Puls przycisku „Generuj OPZ" po wypelnieniu z kreatora */
@keyframes wizardPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(14,165,183,.5);} 50%{ box-shadow:0 0 0 8px rgba(14,165,183,0);} }
.wizard-pulse{ animation:wizardPulse 1.2s ease-in-out 2; }

/* ── F8+ (audyt E2E): brama wyboru sposobu wypelniania OPZ ────────────────── */
#opzForm.gate-pending > :not(#opzEntryGate){ display:none !important; }
#opzEntryGate{ padding:6px 2px 2px; }
.opz-gate-title{ font-size:1.2rem; font-weight:800; color:var(--text-hi,#0f172a); margin:0 0 2px; }
html.dark .opz-gate-title{ color:#e2e8f0; }
.opz-gate-sub{ font-size:.85rem; color:var(--text-mid,#64748b); margin:0 0 16px; }
.opz-gate-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .opz-gate-tiles{ grid-template-columns:1fr; } }
.opz-gate-tile{
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px;
  min-height:150px; padding:18px; cursor:pointer;
  border:1.5px solid var(--border-mid,#e2e8f0); border-radius:16px; background:var(--surface,#f8fafc);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.opz-gate-tile:hover{ transform:translateY(-3px); border-color:var(--cyan,#0ea5b7);
  box-shadow:0 14px 36px rgba(0,86,184,.16); background:linear-gradient(160deg,rgba(14,165,183,.08),rgba(0,86,184,.04)); }
.opz-gate-tile:focus-visible{ outline:2px solid var(--cyan,#0ea5b7); outline-offset:3px; }
.opz-gate-tile-icon{ width:40px; height:40px; color:var(--cyan,#0ea5b7); margin-top:2px; flex:0 0 auto; }
.opz-gate-tile-title{ font-weight:800; font-size:1rem; color:var(--text-hi,#0f172a); }
html.dark .opz-gate-tile-title{ color:#e2e8f0; }
.opz-gate-tile-desc{ font-size:.8rem; color:var(--text-mid,#64748b); line-height:1.4; }
.opz-gate-tile-badge{ margin-top:auto; font-size:.68rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  color:var(--cyan,#0ea5b7); background:rgba(14,165,183,.12); border-radius:999px; padding:4px 10px; }
.opz-change-method{ align-self:flex-start; display:inline-block; font-size:.78rem; font-weight:600;
  color:var(--text-mid,#475569); background:transparent; border:none; cursor:pointer; padding:2px 0; }
.opz-change-method:hover{ color:var(--cyan,#0ea5b7); text-decoration:underline; }

/* Krok kreatora: chipy oprogramowania + segment gwarancji */
.wizard-label{ display:block; font-size:.82rem; font-weight:700; color:var(--text-hi,#0f172a); margin:14px 0 6px; }
html.dark .wizard-label{ color:#e2e8f0; }
.wizard-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.wizard-chip{ font-size:.74rem; font-weight:600; padding:5px 10px; border-radius:999px; cursor:pointer;
  border:1px solid var(--border-mid,#cbd5e1); background:var(--surface,#f8fafc); color:var(--text-mid,#475569);
  transition:border-color .15s ease, background .15s ease, color .15s ease; }
.wizard-chip:hover{ border-color:var(--cyan,#0ea5b7); color:var(--cyan,#0ea5b7); }
.wizard-seg{ display:flex; flex-wrap:wrap; gap:6px; }
.wizard-seg-btn{ flex:1 1 auto; min-width:64px; font-size:.82rem; font-weight:700; padding:9px 6px; border-radius:10px; cursor:pointer;
  border:1px solid var(--border-mid,#cbd5e1); background:var(--surface,#f8fafc); color:var(--text-mid,#475569);
  transition:border-color .15s ease, background .15s ease, color .15s ease; }
.wizard-seg-btn:hover{ border-color:var(--cyan,#0ea5b7); }
.wizard-seg-btn.on{ background:var(--cyan,#0ea5b7); border-color:var(--cyan,#0ea5b7); color:#fff; }
.wizard-seg-btn:focus-visible{ outline:2px solid var(--cyan,#0ea5b7); outline-offset:2px; }

/* ── U6 (korekty usera): pasek etapow w kreatorze (potrzeba -> ... -> gotowy OPZ) ── */
.wizard-stages{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:4px; padding:8px 16px 0; }
.wizard-stage{ font-size:.68rem; font-weight:700; padding:3px 9px; border-radius:999px; color:var(--text-mid,#94a3b8); background:var(--surface,#f1f5f9); border:1px solid var(--border-mid,#e2e8f0); white-space:nowrap; }
.wizard-stage.done{ color:var(--cyan,#0ea5b7); background:rgba(14,165,183,.08); border-color:rgba(14,165,183,.25); }
.wizard-stage.on{ color:#fff; background:var(--cyan,#0ea5b7); border-color:var(--cyan,#0ea5b7); }
.wizard-stage-arrow{ font-size:.7rem; color:var(--text-mid,#cbd5e1); }

/* ── U4 (korekty usera): przyklady dobrego/zlego opisu pola ───────────────── */
.field-examples{ display:flex; flex-direction:column; gap:3px; margin-top:6px; }
.field-examples span{ font-size:.72rem; line-height:1.35; padding:2px 8px; border-radius:6px; }
.fe-bad{ color:#b91c1c; background:rgba(220,38,38,.06); border-left:2px solid rgba(220,38,38,.4); }
.fe-good{ color:#065f46; background:rgba(5,150,105,.06); border-left:2px solid rgba(5,150,105,.4); }
html.dark .fe-bad{ color:#fca5a5; background:rgba(220,38,38,.12); }
html.dark .fe-good{ color:#6ee7b7; background:rgba(5,150,105,.14); }

/* ── U5 (korekty usera): tryb „nie wiem" — pytania pomocnicze ─────────────── */
.dontknow-btn{ margin-top:6px; font-size:.72rem; font-weight:600; color:var(--cyan,#0e52a8); background:transparent;
  border:1px dashed var(--cyan,#0e52a8); border-radius:8px; padding:3px 10px; cursor:pointer; transition:background .15s ease; }
.dontknow-btn:hover{ background:rgba(14,82,168,.06); }
.dontknow-panel{ margin-top:6px; padding:10px 12px; border-radius:10px; background:rgba(14,82,168,.05); border:1px solid rgba(14,82,168,.18); }
.dontknow-title{ font-size:.74rem; font-weight:700; color:var(--text-hi,#0f172a); margin-bottom:6px; }
.dontknow-list{ margin:0; padding-left:18px; list-style:disc; }
.dontknow-list li{ font-size:.74rem; color:var(--text-mid,#475569); line-height:1.5; margin:2px 0; }
html.dark .dontknow-title{ color:#e2e8f0; }

/* ── U2 (korekty usera): notka o roboczym zapisie formularza ──────────────── */
.draft-notice{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px; padding:10px 14px;
  font-size:.82rem; color:#92400e; background:#fffbeb; border:1px solid #fcd34d; border-radius:12px; }
html.dark .draft-notice{ color:#fcd34d; background:rgba(120,53,15,.25); border-color:#a16207; }
.draft-restore{ font-size:.78rem; font-weight:700; color:#fff; background:var(--cyan,#0e52a8); border:none; border-radius:8px; padding:5px 12px; cursor:pointer; }
.draft-restore:hover{ filter:brightness(1.07); }
.draft-discard{ font-size:.78rem; font-weight:600; color:#92400e; background:transparent; border:1px solid #fcd34d; border-radius:8px; padding:5px 12px; cursor:pointer; }
.draft-discard:hover{ background:rgba(245,158,11,.10); }

/* ── U3 (korekty usera): baner ostrzezenia o wygasnieciu sesji ────────────── */
#sessionWarn{ position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:1100;
  display:flex; align-items:center; gap:12px; max-width:92vw;
  padding:12px 16px; border-radius:14px; font-size:.85rem; color:#fff;
  background:#0f172a; border:1px solid rgba(255,255,255,.12); box-shadow:0 12px 40px rgba(0,0,0,.35);
  animation:fadeInUp .25s cubic-bezier(.22,1,.36,1) both; }
.session-warn-txt b{ color:#fcd34d; font-variant-numeric:tabular-nums; }
.session-warn-btn{ flex:0 0 auto; font-size:.8rem; font-weight:700; color:#0f172a; background:#fcd34d; border:none; border-radius:9px; padding:7px 14px; cursor:pointer; }
.session-warn-btn:hover{ filter:brightness(1.05); }
.session-warn-btn:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
/* Modul Projekty: portfolio / RAG / budzety / workflow */
.projects-banner .tab-banner-title{ color:#047857; }
.projects-banner-actions{ display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; }
.projects-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border-radius:10px; padding:9px 13px; font-size:12px; font-weight:800;
  border:1px solid rgba(15,118,110,.18); transition:background .15s, border-color .15s, color .15s, transform .15s;
}
.projects-btn:hover{ transform:translateY(-1px); }
.projects-btn-primary{ background:#047857; color:#fff; border-color:#047857; }
.projects-btn-light{ background:#fff; color:#0f766e; }
.projects-btn-danger{ background:#dc2626; color:#fff; border-color:#b91c1c; }
.projects-btn-danger:hover{ background:#b91c1c; }
.projects-btn-icon{ padding:4px 10px; font-size:14px; line-height:1; }
.projects-row-action{ width:1%; white-space:nowrap; text-align:center; vertical-align:middle; }
.projects-row-action .projects-btn{ min-width:32px; }
.projects-detail-head-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.projects-hero{
  display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:18px;
  padding:24px; border-radius:16px; border:1px solid rgba(15,118,110,.18);
  background:linear-gradient(135deg,#ffffff 0%,#ecfdf5 100%);
  box-shadow:0 12px 30px rgba(15,118,110,.08);
}
.projects-kicker{
  margin:0 0 7px; color:#0f766e; font-size:11px; font-weight:900;
  letter-spacing:.12em; text-transform:uppercase; font-family:var(--font-mono);
}
.projects-hero h3{ margin:0 0 8px; font-size:28px; color:#0f172a; font-weight:900; letter-spacing:0; }
.projects-hero p{ margin:0; color:#475569; line-height:1.6; max-width:68rem; }
.projects-health{
  border-radius:12px; background:#fff; border:1px solid rgba(15,118,110,.18);
  padding:16px; display:grid; gap:10px; align-content:center;
}
.projects-health-score{ display:flex; align-items:baseline; gap:8px; }
.projects-health-score strong{ font-size:34px; line-height:1; color:#047857; }
.projects-health-score span{ font-size:12px; color:#64748b; font-weight:700; }
.projects-health small{ color:#64748b; line-height:1.45; }
.projects-grid{ display:grid; gap:14px; }
.projects-grid-stats{ grid-template-columns:repeat(4,minmax(0,1fr)); }
.projects-stat{
  border:1px solid rgba(15,118,110,.16); background:#fff; border-radius:12px;
  padding:15px; box-shadow:0 2px 10px rgba(15,23,42,.04);
}
.projects-stat .val{ display:block; color:#0f172a; font-size:24px; font-weight:900; line-height:1; }
.projects-stat .lbl{ display:block; margin-top:6px; color:#64748b; font-size:12px; font-weight:700; }
.projects-shell{ display:grid; grid-template-columns:230px minmax(0,1fr); gap:18px; align-items:start; }
.projects-side{
  position:sticky; top:86px; display:grid; gap:7px; padding:10px;
  background:#fff; border:1px solid rgba(15,118,110,.14); border-radius:14px;
}
.projects-side-btn{
  text-align:left; border-radius:10px; padding:10px 12px; font-size:13px; font-weight:800;
  color:#475569; background:transparent; border:1px solid transparent;
}
.projects-side-btn:hover{ background:#f0fdfa; color:#0f766e; }
.projects-side-btn.active{ background:#ecfdf5; color:#047857; border-color:rgba(15,118,110,.20); }
.projects-main{ min-width:0; }
.projects-pane{ display:grid; gap:16px; }
.projects-section{
  border:1px solid rgba(15,118,110,.14); border-radius:14px; background:#fff;
  padding:18px; box-shadow:0 2px 10px rgba(15,23,42,.04);
}
.projects-section-head{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:14px; }
.projects-section h3{ margin:0; color:#0f172a; font-size:18px; font-weight:900; }
.projects-section p{ margin:4px 0 0; color:#64748b; font-size:13px; line-height:1.55; }
.projects-card-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.project-card{ border:1px solid #e2e8f0; border-radius:12px; padding:15px; background:#fff; }
.project-card.active{ border-color:#0f766e; box-shadow:0 0 0 3px rgba(15,118,110,.10); }
.project-card-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; margin-bottom:10px; }
.project-card h4{ margin:0; font-size:15px; color:#0f172a; font-weight:900; line-height:1.35; }
.project-meta{ margin-top:4px; color:#64748b; font-size:12px; line-height:1.5; }
.rag{ display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:900; white-space:nowrap; }
.rag::before{ content:""; width:8px; height:8px; border-radius:99px; background:currentColor; }
.rag-green{ color:#047857; background:#ecfdf5; }
.rag-yellow{ color:#a16207; background:#fef9c3; }
.rag-red{ color:#b91c1c; background:#fee2e2; }
.progress-track{ height:10px; border-radius:999px; background:#e2e8f0; overflow:hidden; }
.progress-fill{ height:100%; border-radius:999px; background:linear-gradient(90deg,#0f766e,#22c55e); }
.project-finance{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.project-money{ background:#f8fafc; border-radius:10px; padding:9px; }
.project-money strong{ display:block; color:#0f172a; font-size:13px; }
.project-money span{ color:#64748b; font-size:11px; }
.projects-table-wrap{ overflow:auto; border:1px solid #e2e8f0; border-radius:12px; }
.projects-table{ width:100%; border-collapse:collapse; min-width:760px; font-size:13px; }
.projects-table th{ background:#f8fafc; color:#334155; text-align:left; padding:10px; font-size:11px; text-transform:uppercase; letter-spacing:.06em; }
.projects-table td{ padding:10px; border-top:1px solid #e2e8f0; color:#334155; vertical-align:top; }
.projects-timeline{ display:grid; gap:10px; }
.projects-step{ display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:start; }
.projects-step-num{ width:30px; height:30px; border-radius:50%; background:#ecfdf5; color:#047857; display:flex; align-items:center; justify-content:center; font-weight:900; }
.projects-step-body{ border:1px solid #e2e8f0; border-radius:10px; padding:10px 12px; background:#fff; }
.projects-step-body strong{ display:block; color:#0f172a; font-size:13px; margin-bottom:3px; }
.projects-step-body span{ color:#64748b; font-size:12px; line-height:1.45; }
.projects-module-list{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.projects-module{ border:1px solid #e2e8f0; border-radius:12px; padding:14px; background:#fff; }
.projects-module strong{ display:block; color:#0f172a; margin-bottom:5px; }
.projects-module span{ color:#64748b; font-size:12px; line-height:1.5; }
.projects-pill-row{ display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.projects-pill{ display:inline-flex; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:800; background:#f1f5f9; color:#475569; }
.projects-pill-strong{ background:#ecfdf5; color:#047857; }
.projects-pill-delay{ background:#fff7ed; color:#c2410c; }
.projects-risk-list{ display:grid; gap:10px; }
.projects-risk{ border-left:4px solid #f59e0b; background:#fffbeb; border-radius:10px; padding:11px 13px; }
.projects-risk.high{ border-left-color:#dc2626; background:#fef2f2; }
.projects-risk strong{ display:block; color:#0f172a; margin-bottom:3px; }
.projects-risk span{ color:#475569; font-size:12px; line-height:1.45; }
.projects-risk-meta{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
.projects-risk-meta span{ border-radius:999px; padding:3px 7px; background:#f8fafc; color:#475569; font-size:11px; font-weight:800; }
.projects-risk-status{ background:#e0f2fe !important; color:#0369a1 !important; }
.projects-risk-status-accepted{ background:#dcfce7 !important; color:#047857 !important; }
.projects-risk-status-rejected{ background:#fee2e2 !important; color:#b91c1c !important; }
.projects-risk-review,.projects-risk-review-read{ display:grid; gap:7px; margin-top:10px; border-top:1px solid rgba(148,163,184,.38); padding-top:10px; }
.projects-risk-review textarea{ width:100%; min-height:58px; border:1px solid #cbd5e1; border-radius:9px; padding:8px 10px; color:#0f172a; background:#fff; font-size:12px; resize:vertical; }
.projects-risk-review-read b{ color:#0f172a; font-size:12px; }
.projects-risk-review-read small{ color:#64748b; font-size:11px; }
.projects-risk-actions{ display:flex; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.projects-risk-columns{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.projects-risk-columns h6{ margin:0 0 8px; color:#334155; font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.projects-detail-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  border:1px solid #e2e8f0; border-radius:14px; padding:16px; background:#f8fafc; margin-bottom:14px;
}
.projects-detail-head h4{ margin:0; color:#0f172a; font-size:20px; font-weight:900; }
.projects-detail-head p{ margin:5px 0 0; color:#475569; font-size:13px; line-height:1.5; }
.projects-detail-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.projects-detail-card{
  border:1px solid #e2e8f0; border-radius:14px; background:#fff; padding:15px; display:grid; gap:12px;
}
.projects-detail-card-wide{ grid-column:1 / -1; }
.projects-detail-card h5{ margin:0; color:#0f172a; font-size:15px; font-weight:900; }
/* Logiczna kolejnosc sekcji karty projektu (4 grupy):
 *   Grupa 1: Status i bramki      (Sciezka pracy -> Zarzadzenie -> Skarbnik/WPF/Trwalosc)
 *   Grupa 2: Decyzje pilne        (Co teraz zrobic -> Ryzyka)
 *   Grupa 3: Praca operacyjna     (Poddzialania -> Kamienie milowe -> Komentarze)
 *   Grupa 4: Konfiguracja         (Dane projektu -> Finanse -> Dostep)
 */
.projects-order-hero{ order:0; }
.projects-order-path{ order:1; }
.projects-order-heading-gates{ order:2; }
.projects-order-strategy{ order:3; }
.projects-decree-card{ order:4; }
.projects-finance-card{ order:5; }
.projects-order-heading-decisions{ order:6; }
.projects-order-next{ order:7; }
.projects-order-risks{ order:8; }
.projects-order-heading-work{ order:9; }
.projects-order-items{ order:10; }
.projects-order-milestones{ order:11; }
.projects-order-docs{ order:12; }
.projects-order-comments{ order:13; }
.projects-order-heading-admin{ order:14; }
.projects-order-admin{ order:15; }
.projects-order-finance{ order:16; }
.projects-order-access{ order:17; }
.projects-group-heading{ grid-column:1 / -1; padding:8px 2px 2px; }
.projects-group-heading h5{ margin:0; color:#0f172a; font-size:16px; font-weight:900; }
.projects-group-heading p{ margin:4px 0 0; color:#64748b; font-size:12px; line-height:1.45; }
.projects-work-path{ background:#f8fafc; border-color:#dbeafe; }
.projects-work-path-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.projects-work-path-grid div{ display:grid; grid-template-columns:30px minmax(0,1fr); gap:9px; align-items:center; border:1px solid #e2e8f0; border-radius:12px; background:#fff; padding:10px; }
.projects-work-path-grid b{ width:28px; height:28px; border-radius:999px; display:flex; align-items:center; justify-content:center; color:#fff; background:#0f766e; font-size:13px; }
.projects-work-path-grid span{ color:#475569; font-size:12px; line-height:1.4; font-weight:700; }
.projects-section-title-row{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.projects-section-title-row p{ margin:4px 0 0; color:#64748b; font-size:12px; line-height:1.45; }
.projects-action-summary{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.projects-action-summary > div{ border:1px solid #e2e8f0; border-radius:12px; padding:11px; background:#f8fafc; }
.projects-action-summary strong{ display:block; color:#0f172a; font-size:22px; line-height:1; margin-bottom:5px; }
.projects-action-summary span{ color:#64748b; font-size:11px; font-weight:800; line-height:1.35; }
.projects-overdue-banner{ border:1px solid #fed7aa; background:#fff7ed; color:#c2410c; border-radius:12px; padding:10px 12px; font-size:13px; font-weight:800; }
.projects-actions-row{ display:flex; justify-content:flex-end; gap:8px; margin-top:4px; }
.project-finance-wide{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.projects-access-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.projects-access-grid > div{ border:1px solid #e2e8f0; border-radius:12px; padding:11px; background:#f8fafc; }
.projects-access-grid b{ display:block; color:#0f172a; font-size:12px; margin-bottom:4px; }
.projects-access-grid span{ color:#475569; font-size:12px; line-height:1.45; }
.projects-access-editor{ margin-top:4px; }
.projects-edit-table-wrap{ max-height:460px; }
.projects-edit-table input,.projects-edit-table select,.projects-edit-table textarea{
  width:100%; border:1px solid #cbd5e1; border-radius:8px; padding:7px 8px;
  font-size:13px; color:#0f172a; background:#fff;
}
.projects-edit-table textarea{ min-height:120px; min-width:320px; resize:vertical; line-height:1.5; }
.projects-items-table{ min-width:2700px; }
.projects-row-overdue{ background:#fff7ed; }
.projects-overdue-note{ margin-top:5px; color:#c2410c; font-size:11px; font-weight:800; line-height:1.35; }
.projects-check-cell{ display:flex; align-items:center; gap:6px; color:#334155; font-size:12px; font-weight:800; }
.projects-check-cell input{ width:auto; }
.projects-inline-add{
  display:grid; grid-template-columns:1.2fr 150px 1fr 150px 1.4fr; gap:12px; align-items:start;
  border:1px dashed #cbd5e1; border-radius:12px; padding:14px; background:#f8fafc;
}
.projects-inline-add-milestone{ grid-template-columns:1fr; }
.projects-milestone-row{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; align-items:start; }
.projects-milestone-row-main [data-project-new-milestone="title"]{ grid-column:span 4; }
.projects-milestone-row-main [data-project-new-milestone="due"]{ grid-column:span 2; }
.projects-milestone-row-main [data-project-new-milestone="owner"]{ grid-column:span 3; }
.projects-milestone-row-main [data-project-new-milestone="status"]{ grid-column:span 3; }
.projects-milestone-row-note [data-project-new-milestone="note"]{ grid-column:1 / -1; min-height:150px; }
.projects-inline-add-items,.projects-inline-add-risk{ grid-template-columns:repeat(12,minmax(0,1fr)); }
.projects-inline-add-items{ margin-top:2px; }
.projects-inline-add-risk{ margin-top:12px; }
.projects-inline-add-items > *,.projects-inline-add-risk > *{ min-width:0; }
.projects-inline-add-items{ grid-template-columns:1fr; }
.projects-subaction-row{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; align-items:start; }
.projects-subaction-row-main [data-project-new-item="group"]{ grid-column:span 3; }
.projects-subaction-row-main [data-project-new-item="subgroup"]{ grid-column:span 3; }
.projects-subaction-row-main [data-project-new-item="name"]{ grid-column:span 6; }
.projects-subaction-row-timing [data-project-new-item="cost"],
.projects-subaction-row-timing [data-project-new-item="dueDate"],
.projects-subaction-row-timing [data-project-new-item="status"],
.projects-subaction-row-timing .projects-check-cell{ grid-column:span 3; }
.projects-subaction-row-delay [data-project-new-item="delayReason"]{ grid-column:1 / -1; }
.projects-subaction-row-notes [data-project-new-item="description"],
.projects-subaction-row-notes [data-project-new-item="workerNote"]{ grid-column:span 6; }
.projects-inline-add-items > [data-project-new-item="group"]{ grid-column:span 2; }
.projects-inline-add-items > [data-project-new-item="subgroup"]{ grid-column:span 2; }
.projects-inline-add-items > [data-project-new-item="name"]{ grid-column:span 4; }
.projects-inline-add-items > [data-project-new-item="cost"]{ grid-column:span 2; }
.projects-inline-add-items > [data-project-new-item="dueDate"]{ grid-column:span 2; }
.projects-inline-add-items > [data-project-new-item="status"]{ grid-column:span 2; }
.projects-inline-add-items > .projects-check-cell{ grid-column:span 2; align-self:center; }
.projects-inline-add-items > [data-project-new-item="delayReason"]{ grid-column:span 8; }
.projects-inline-add-items > [data-project-new-item="description"],
.projects-inline-add-items > [data-project-new-item="workerNote"]{ grid-column:span 6; }
.projects-inline-add-risk [data-project-new-risk="itemId"]{ grid-column:span 4; }
.projects-inline-add-risk [data-project-new-risk="level"]{ grid-column:span 2; }
.projects-inline-add-risk [data-project-new-risk="title"]{ grid-column:span 6; }
.projects-inline-add-risk [data-project-new-risk="mitigationDueDate"]{ grid-column:span 4; }
.projects-inline-add-risk [data-project-new-risk="cause"],
.projects-inline-add-risk [data-project-new-risk="effect"]{ grid-column:span 6; }
.projects-inline-add-risk [data-project-new-risk="mitigation"]{ grid-column:span 8; }
.projects-inline-add input,.projects-inline-add select,.projects-inline-add textarea{
  width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:11px 12px;
  font-size:13px; color:#0f172a; background:#fff;
}
.projects-inline-add .projects-check-cell input{ width:auto; }
.projects-inline-add textarea{ min-height:132px; resize:vertical; line-height:1.5; }
.projects-subaction-row-delay textarea{ min-height:110px; }
.projects-subaction-row-notes textarea{ min-height:150px; }
.projects-inline-add-risk textarea{ min-height:148px; }
.projects-comment-list{ display:grid; gap:9px; }
.projects-comment{ border:1px solid #e2e8f0; border-radius:12px; padding:11px 12px; background:#f8fafc; }
.projects-comment-meta{ display:flex; align-items:center; flex-wrap:wrap; gap:7px; color:#64748b; font-size:11px; margin-bottom:5px; }
.projects-comment-meta b{ color:#0f172a; font-size:12px; }
.projects-comment-meta span{ border-radius:999px; padding:2px 7px; background:#ecfdf5; color:#047857; font-weight:800; }
.projects-comment p{ margin:0; color:#334155; font-size:13px; line-height:1.5; white-space:pre-wrap; }
.projects-creator-backdrop{
  position:fixed; inset:0; z-index:80; background:rgba(15,23,42,.54);
  display:flex; align-items:flex-start; justify-content:center; padding:20px;
  overflow-y:auto;
}
.projects-creator{
  width:min(940px,100%); max-height:calc(100vh - 40px); overflow:auto;
  background:#fff; border-radius:16px; border:1px solid rgba(15,118,110,.22);
  box-shadow:0 24px 60px rgba(15,23,42,.28);
}
.projects-creator-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
  padding:18px 20px; border-bottom:1px solid #e2e8f0; background:linear-gradient(135deg,#fff,#ecfdf5);
}
.projects-creator-head h3{ margin:0; font-size:20px; color:#0f172a; font-weight:900; }
.projects-creator-head p{ margin:4px 0 0; color:#64748b; font-size:13px; }
.projects-creator-close{
  width:34px; height:34px; border-radius:10px; border:1px solid #cbd5e1;
  color:#475569; background:#fff; font-weight:900;
}
.projects-creator-body{ padding:20px; display:grid; gap:18px; }
.projects-creator-steps{ display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:6px; }
.projects-creator-step{
  border-radius:10px; padding:8px 6px; background:#f8fafc; color:#64748b;
  font-size:11px; font-weight:900; text-align:center; border:1px solid #e2e8f0;
}
.projects-creator-step.active{ background:#ecfdf5; color:#047857; border-color:rgba(15,118,110,.26); }
.projects-form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.projects-field{ display:grid; gap:5px; }
.projects-field.projects-field-full,.projects-field.projects-field-wide{ grid-column:1 / -1; }
.projects-field label,.projects-field span{ font-size:12px; font-weight:900; color:#334155; }
.projects-field input,.projects-field select,.projects-field textarea{
  width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:10px 12px;
  font-size:14px; color:#0f172a; background:#fff;
}
.projects-field textarea{ min-height:96px; resize:vertical; }
.projects-field small{ color:#64748b; font-size:11px; line-height:1.45; }
.projects-creator-note{ border-radius:12px; padding:12px 14px; background:#f8fafc; color:#475569; font-size:13px; line-height:1.55; }
.projects-creator-error{ border-radius:10px; padding:10px 12px; background:#fef2f2; color:#b91c1c; font-size:13px; font-weight:800; }
.projects-creator-actions{ display:flex; justify-content:space-between; gap:10px; padding:16px 20px; border-top:1px solid #e2e8f0; }
.projects-creator-actions > div{ display:flex; gap:8px; }
.projects-creator-actions button:disabled{ opacity:.45; cursor:not-allowed; }
.projects-summary-card{ border:1px solid #e2e8f0; border-radius:12px; padding:14px; background:#f8fafc; }
.projects-summary-card h4{ margin:0 0 8px; color:#0f172a; font-weight:900; }
.projects-summary-card dl{ display:grid; grid-template-columns:160px minmax(0,1fr); gap:7px 12px; margin:0; font-size:13px; }
.projects-summary-card dt{ color:#64748b; font-weight:800; }
.projects-summary-card dd{ margin:0; color:#0f172a; }
.projects-summary-items{ list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.projects-summary-items li{ display:grid; gap:2px; padding:8px 10px; border:1px solid #e2e8f0; border-radius:8px; background:#fff; }
.projects-summary-items li strong{ color:#0f172a; font-size:13px; }
.projects-summary-items li span{ color:#64748b; font-size:12px; }
.projects-creator-subactions{ border:1px solid #d1fae5; border-radius:12px; padding:12px 14px; background:#ecfdf5; display:grid; gap:8px; }
.projects-creator-subactions h4{ margin:0; color:#047857; font-size:13px; font-weight:900; }
.projects-creator-subactions ul{ list-style:none; padding:0; margin:0; display:grid; gap:7px; }
.projects-creator-subactions li{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:9px 10px; border:1px solid #d1fae5; border-radius:10px; background:#fff; }
.projects-creator-subactions li > div{ display:grid; gap:2px; min-width:0; }
.projects-creator-subactions li strong{ color:#0f172a; font-size:13px; }
.projects-creator-subactions li span{ color:#64748b; font-size:12px; }
.projects-creator-subactions li .projects-btn{ flex:none; }
/* Wybor sciezki procesowej (krok 0 kreatora — UM-WLOCLAWEK-MOD-2026-03 Rozdz. III-V) */
.projects-path-picker{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.projects-path-tile{
  display:grid; gap:6px; padding:14px; border:1px solid #e2e8f0; border-radius:14px;
  background:#fff; text-align:left; cursor:pointer; transition:border-color .15s, box-shadow .15s, background .15s;
}
.projects-path-tile:hover{ border-color:#94a3b8; box-shadow:0 1px 3px rgba(15,23,42,.08); }
.projects-path-tile.active{ border-color:#047857; background:#ecfdf5; box-shadow:0 0 0 2px rgba(4,120,87,.18); }
.projects-path-tile strong{ font-size:14px; font-weight:900; color:#0f172a; }
.projects-path-tile .projects-path-fullname{ font-size:12px; font-weight:800; color:#475569; }
.projects-path-tile small{ font-size:11px; font-weight:800; color:#64748b; letter-spacing:.02em; }
.projects-path-tile p{ font-size:12.5px; line-height:1.5; color:#475569; margin:0; }
.projects-path-fields{ border-top:1px dashed #e2e8f0; padding-top:14px; margin-top:4px; }
@media (max-width:700px){ .projects-path-picker{ grid-template-columns:1fr; } }

/* Zarzadzenie Prezydenta — panel + bramki (Rozdz. VI sek. 2) */
.projects-decree-card{ border:1px solid #e2e8f0; }
.projects-decree-ok{ border-radius:12px; padding:12px 14px; background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; display:grid; gap:4px; }
.projects-decree-ok strong{ font-size:14px; }
.projects-decree-ok small{ font-size:11px; color:#047857; font-weight:800; }
.projects-decree-ok p{ margin:4px 0 0; font-size:13px; color:#065f46; }
.projects-decree-missing{ border-radius:12px; padding:12px 14px; background:#fef2f2; border:1px solid #fecaca; color:#991b1b; display:grid; gap:4px; }
.projects-decree-missing strong{ font-size:14px; }
.projects-decree-missing p{ margin:0; font-size:13px; }
.projects-decree-revoked{ border-radius:12px; padding:12px 14px; background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; display:grid; gap:4px; }
.projects-decree-form{ border-top:1px dashed #e2e8f0; padding-top:14px; display:grid; gap:10px; }
.projects-decree-form h6{ margin:0; font-size:13px; font-weight:900; color:#0f172a; }

/* Sygnalizacja Skarbnika + WPF + Trwalosc (Rozdz. VI sek. 3 + sek. 4.C) */
.projects-finance-light{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px;
  border-radius:12px; padding:12px 14px; border:1px solid #e2e8f0; background:#f8fafc;
}
.projects-finance-light-dot{
  width:18px; height:18px; border-radius:50%;
  background:#94a3b8; box-shadow:0 0 0 3px rgba(148,163,184,.18);
}
.projects-finance-light-green  .projects-finance-light-dot{ background:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.18); }
.projects-finance-light-yellow .projects-finance-light-dot{ background:#eab308; box-shadow:0 0 0 3px rgba(234,179,8,.18); }
.projects-finance-light-red    .projects-finance-light-dot{ background:#dc2626; box-shadow:0 0 0 3px rgba(220,38,38,.22); }
.projects-finance-light strong{ display:block; font-size:13.5px; color:#0f172a; }
.projects-finance-light small{ display:block; font-size:11.5px; color:#475569; }
.projects-finance-wpf{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.projects-finance-wpf li{ border-radius:10px; padding:9px 12px; font-size:13px; line-height:1.55; }
.projects-finance-wpf-warning{ background:#fef9c3; border:1px solid #fde68a; color:#854d0e; }
.projects-finance-wpf-critical{ background:#fee2e2; border:1px solid #fecaca; color:#991b1b; }
.projects-finance-wpf li strong{ font-weight:900; margin-right:6px; }

/* Dashboard KPI + Kalendarz naborow + Generator szablonow (Rozdz. VI sek. 4) */
.projects-kpi-grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.projects-kpi-tile{
  border-radius:12px; padding:12px 14px; border:1px solid #e2e8f0; background:#fff;
  display:grid; gap:2px;
}
.projects-kpi-tile strong{ font-size:20px; font-weight:900; color:#0f172a; }
.projects-kpi-tile span{ font-size:12px; font-weight:800; color:#475569; }
.projects-kpi-tile small{ font-size:11px; color:#64748b; }
@media (max-width:1024px){ .projects-kpi-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px){ .projects-kpi-grid{ grid-template-columns:1fr; } }

.projects-calls-list{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.projects-call{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px;
  border-radius:10px; padding:10px 12px; border:1px solid #e2e8f0; background:#fff;
}
.projects-call strong{ display:block; color:#0f172a; font-size:13.5px; }
.projects-call small{ display:block; color:#64748b; font-size:11.5px; }
.projects-call-meta{ display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.projects-call-urgent{ background:#fef2f2; border-color:#fecaca; }

.projects-templates-list{ list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.projects-templates-list li{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px;
  border-radius:10px; padding:10px 12px; border:1px solid #e2e8f0; background:#fff;
}
.projects-templates-list strong{ display:block; color:#0f172a; font-size:13.5px; }
.projects-templates-list small{ display:block; color:#64748b; font-size:11.5px; }

/* === Reorganizacja IA zakladki Projekty === */

/* Banner: powrot po lewej, logo i tytul w srodku, akcje po prawej */
.projects-banner .projects-btn-back{ margin-right:14px; }

/* Sidebar z ikonami */
.projects-side-btn{
  display:grid; grid-template-columns:32px 1fr; grid-template-rows:auto auto;
  gap:2px 10px; align-items:center; text-align:left; padding:10px 12px;
}
.projects-side-ico{
  grid-row:1 / span 2; align-self:center; justify-self:center;
  width:32px; height:32px; border-radius:9px; background:#f1f5f9;
  display:flex; align-items:center; justify-content:center;
  color:#0f766e; font-size:16px; font-weight:900;
}
.projects-side-btn.active .projects-side-ico{ background:#ecfdf5; color:#047857; }
.projects-side-label{ font-weight:900; font-size:13px; color:inherit; line-height:1.2; }
.projects-side-hint{ font-weight:700; font-size:11px; color:#64748b; line-height:1.3; }
.projects-side-btn.active .projects-side-hint{ color:#0f766e; }

/* Quick stats — pasek 4 kafelkow na samej gorze Portfolio */
.projects-quickstats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px;
  margin-bottom:14px;
}
.projects-quickstat{
  border-radius:12px; padding:14px 16px; border:1px solid #e2e8f0; background:#fff;
  display:grid; gap:2px;
}
.projects-quickstat strong{ font-size:22px; font-weight:900; color:#0f172a; line-height:1.1; }
.projects-quickstat span{ font-size:12px; font-weight:800; color:#475569; }
@media (max-width:1024px){ .projects-quickstats{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px){ .projects-quickstats{ grid-template-columns:1fr; } }

/* Pilne alerty (czerwone/zolte) */
.projects-alerts{
  border-radius:14px; padding:14px 16px; background:#fffbeb; border:1px solid #fde68a;
  display:grid; gap:8px; margin-bottom:14px;
}
.projects-alerts h4{ margin:0; color:#92400e; font-size:13px; font-weight:900; letter-spacing:.02em; text-transform:uppercase; }
.projects-alerts ul{ list-style:none; padding:0; margin:0; display:grid; gap:6px; }
.projects-alert{
  display:grid; grid-template-columns:28px 1fr; gap:10px; align-items:center;
  padding:9px 11px; border-radius:9px; background:#fff; border:1px solid #e2e8f0;
  font-size:13px; line-height:1.45; color:#0f172a;
}
.projects-alert-red{ background:#fef2f2; border-color:#fecaca; color:#991b1b; }
.projects-alert-yellow{ background:#fefce8; border-color:#fde68a; color:#854d0e; }
.projects-alert-ico{
  width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-size:14px; font-weight:900; background:rgba(255,255,255,.6);
}

/* Anchor-nav (skroty do sekcji) */
.projects-anchornav{
  position:sticky; top:0; z-index:5;
  display:flex; flex-wrap:wrap; gap:6px;
  padding:8px 12px; margin-bottom:14px;
  background:rgba(255,255,255,.92); backdrop-filter:blur(6px);
  border:1px solid #e2e8f0; border-radius:10px;
}
.projects-anchornav a{
  font-size:12px; font-weight:800; color:#475569; text-decoration:none;
  padding:5px 10px; border-radius:6px; transition:background .15s, color .15s;
}
.projects-anchornav a:hover{ background:#f1f5f9; color:#0f172a; }
.projects-anchornav a:focus-visible{ outline:2px solid #0f766e; outline-offset:2px; }
.projects-section{ scroll-margin-top:80px; }

/* Anchor-nav karty projektu (4 grupy) */
.projects-detail-anchornav{
  position:sticky; top:8px; z-index:4;
  display:flex; flex-wrap:wrap; gap:6px;
  padding:8px 12px; margin-bottom:14px;
  background:rgba(255,255,255,.94); backdrop-filter:blur(6px);
  border:1px solid #cbd5e1; border-radius:10px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.projects-detail-anchornav a{
  font-size:12.5px; font-weight:800; color:#334155; text-decoration:none;
  padding:5px 10px; border-radius:6px; transition:background .15s, color .15s;
}
.projects-detail-anchornav a:hover{ background:#f1f5f9; color:#0f172a; }
.projects-detail-anchornav a:focus-visible{ outline:2px solid #0f766e; outline-offset:2px; }
.projects-group-heading{ scroll-margin-top:96px; }

/* Dokumenty projektu (7 kategorii) */
.projects-docs-card{ display:grid; gap:10px; }
.projects-doc-category{
  border:1px solid #e2e8f0; border-radius:11px; background:#fafbfc; padding:10px 12px;
}
.projects-doc-category[open]{ background:#fff; box-shadow:0 1px 2px rgba(15,23,42,.04); }
.projects-doc-category summary{
  list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px;
  font-weight:900; color:#0f172a; font-size:13.5px; padding:2px 0;
}
.projects-doc-category summary::-webkit-details-marker{ display:none; }
.projects-doc-category summary::after{
  content:'›'; margin-left:auto; color:#64748b; font-size:18px; line-height:1;
  transition:transform .15s;
}
.projects-doc-category[open] summary::after{ transform:rotate(90deg); }
.projects-doc-ico{ font-size:18px; }
.projects-doc-cat-label{ flex:1; }
.projects-doc-cat-desc{ display:block; color:#64748b; font-size:11.5px; margin:4px 0 8px 28px; }
.projects-doc-empty{ color:#94a3b8; font-size:12px; padding:6px 0 0 28px; font-style:italic; }
.projects-docs-list{ list-style:none; padding:0; margin:6px 0 0; display:grid; gap:6px; }
.projects-docs-list li{
  display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px;
  padding:8px 10px; border:1px solid #e2e8f0; border-radius:9px; background:#fff;
}
.projects-doc-main{ display:grid; gap:2px; min-width:0; }
.projects-doc-main strong{ color:#0f172a; font-size:13px; }
.projects-doc-main small{ color:#64748b; font-size:11.5px; line-height:1.45; }
.projects-doc-meta-only{ color:#9a3412 !important; font-weight:800; }
.projects-doc-actions{ display:flex; gap:6px; align-items:center; }
.projects-doc-form{
  border-top:1px dashed #e2e8f0; padding-top:14px; margin-top:6px; display:grid; gap:10px;
}
.projects-doc-form h6{ margin:0; font-size:13px; font-weight:900; color:#0f172a; }
.projects-doc-detail-field.hidden{ display:none; }

/* Drop zone dla dokumentow */
.projects-doc-drop{ cursor:pointer; }
.projects-doc-drop-zone{
  border:2px dashed #cbd5e1; border-radius:12px; padding:18px 14px;
  text-align:center; transition:border-color .15s, background .15s;
  display:grid; gap:4px; background:#f8fafc;
}
.projects-doc-drop:hover .projects-doc-drop-zone{ border-color:#0f766e; background:#ecfdf5; }
.projects-doc-drop.is-dragover .projects-doc-drop-zone{ border-color:#0f766e; background:#d1fae5; transform:scale(1.01); }
.projects-doc-drop-ico{ font-size:24px; color:#0f766e; }
.projects-doc-drop-zone strong{ font-size:13.5px; color:#0f172a; }
.projects-doc-drop-zone small{ font-size:11.5px; color:#64748b; }
.projects-doc-drop-filename{ display:block; font-size:12px; font-weight:800; color:#047857; margin-top:6px; min-height:14px; }

/* Filtry portfolio (search + selecty + reset) */
.projects-filters{
  display:grid; gap:10px; padding:14px;
  background:#fff; border:1px solid #e2e8f0; border-radius:12px; margin-bottom:14px;
}
.projects-filters-search{ position:relative; }
.projects-filters-search-ico{
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  color:#64748b; font-size:14px; pointer-events:none;
}
.projects-filters-search input{
  width:100%; padding:10px 14px 10px 36px; border:1px solid #cbd5e1; border-radius:9px;
  font-size:14px; background:#f8fafc;
}
.projects-filters-search input:focus{ outline:2px solid #0f766e; outline-offset:1px; background:#fff; }
.projects-filters-row{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.projects-filter{ display:grid; gap:4px; flex:1 1 160px; min-width:140px; }
.projects-filter > span{ font-size:11px; font-weight:900; color:#334155; text-transform:uppercase; letter-spacing:.04em; }
.projects-filter select{
  border:1px solid #cbd5e1; border-radius:8px; padding:7px 10px; background:#fff;
  font-size:13px; color:#0f172a;
}
.projects-filter-count{ font-size:12px; font-weight:800; color:#64748b; align-self:center; }
@media (max-width:640px){ .projects-filter{ flex:1 1 100%; } }

/* Walidacja krokowa kreatora */
.projects-creator-step.passed{ opacity:.85; }
.projects-creator-step.done{ background:#dcfce7; color:#15803d; border-color:#86efac; }
.projects-creator-step.has-issues{ background:#fee2e2; color:#991b1b; border-color:#fca5a5; }
/* Klikalne zakladki kroku (passed + active) — pasek nawigacyjny */
button.projects-creator-step{
  font: inherit; cursor: pointer;
  transition: background .15s, border-color .15s, box-shadow .15s, transform .08s;
}
button.projects-creator-step:hover{ background:#ecfdf5; border-color:#86efac; opacity:1; box-shadow:0 1px 3px rgba(15,118,110,.18); }
button.projects-creator-step.passed:hover{ background:#bbf7d0; }
button.projects-creator-step.has-issues:hover{ background:#fecaca; }
button.projects-creator-step.active{ cursor:default; }
button.projects-creator-step:active{ transform: translateY(1px); }
button.projects-creator-step:focus-visible{ outline:2px solid #0f766e; outline-offset:2px; }
.projects-creator-step.locked{
  cursor: not-allowed; opacity:.55; background:#f8fafc; color:#94a3b8;
  border-style:dashed;
}

/* Chipy sugestii pod polami Grupa/Podgrupa poddzialania */
.projects-suggest-chips{
  display:flex; flex-wrap:wrap; gap:5px;
  margin-top:4px;
}
.projects-suggest-chip{
  font: inherit; font-size:11.5px; font-weight:700; line-height:1;
  padding:5px 9px; border-radius:999px;
  background:#f1f5f9; border:1px solid #cbd5e1; color:#0f172a;
  cursor:pointer; transition: background .12s, border-color .12s;
}
.projects-suggest-chip:hover{ background:#ecfdf5; border-color:#86efac; color:#065f46; }
.projects-suggest-chip:focus-visible{ outline:2px solid #0f766e; outline-offset:2px; }
.projects-creator-issues{
  border-radius:10px; padding:10px 12px; background:#fef9c3; border:1px solid #fde68a; color:#854d0e;
  font-size:13px; display:grid; gap:6px;
}
.projects-creator-issues strong{ font-weight:900; }
.projects-creator-issues ul{ margin:0; padding-left:18px; }
.projects-creator-actions .projects-btn-primary:disabled{ opacity:.45; cursor:not-allowed; }

/* Lista najblizszych terminow w sekcji "Co teraz zrobic" */
.projects-deadlines{
  border-radius:11px; border:1px solid #e2e8f0; background:#f8fafc; padding:12px 14px; display:grid; gap:8px;
}
.projects-deadlines h6{ margin:0; font-size:12px; font-weight:900; color:#475569; letter-spacing:.04em; text-transform:uppercase; }
.projects-deadlines ul{ list-style:none; padding:0; margin:0; display:grid; gap:5px; }
.projects-deadline{
  display:grid; grid-template-columns:22px 1fr auto auto; gap:8px; align-items:center;
  padding:7px 10px; background:#fff; border:1px solid #e2e8f0; border-radius:8px;
  font-size:13px; color:#0f172a;
}
.projects-deadline-type{ color:#0f766e; font-weight:900; text-align:center; }
.projects-deadline-title{ font-weight:700; }
.projects-deadline-date{ color:#64748b; font-size:12px; }
.projects-deadline-days{ font-size:11.5px; font-weight:800; color:#475569; padding:2px 8px; background:#f1f5f9; border-radius:999px; }
.projects-deadline-soon .projects-deadline-days{ background:#fef9c3; color:#854d0e; }
.projects-deadline-overdue{ background:#fef2f2; border-color:#fecaca; }
.projects-deadline-overdue .projects-deadline-days{ background:#fee2e2; color:#991b1b; }

/* Klikalne alerty */
.projects-alert-actionable{ padding:0; overflow:hidden; }
.projects-alert-btn{
  display:grid; grid-template-columns:28px 1fr 20px; gap:10px; align-items:center;
  width:100%; text-align:left; cursor:pointer; padding:9px 11px;
  background:transparent; border:0; color:inherit; font:inherit;
}
.projects-alert-btn:hover{ background:rgba(15,23,42,.03); }
.projects-alert-btn:focus-visible{ outline:2px solid #0f766e; outline-offset:-2px; }
.projects-alert-arrow{ color:inherit; font-weight:900; opacity:.6; }
.projects-alert-btn:hover .projects-alert-arrow{ opacity:1; }

/* Picker osob (wydzial -> pracownik) + bloki "Koordynator / Pracownicy / Rozliczenia" */
.projects-people-block{
  display:grid; gap:8px; padding:12px;
  border:1px solid #e2e8f0; border-radius:11px; background:#fafbfc; margin-bottom:10px;
}
.projects-people-block h6{ margin:0; font-size:13px; font-weight:900; color:#0f172a; }
.projects-people-picker{
  display:grid; gap:6px; padding:10px;
  background:#fff; border:1px dashed #cbd5e1; border-radius:9px;
}
.projects-people-picker-row{
  display:grid; grid-template-columns:1fr 1fr auto; gap:10px; align-items:end;
}
.projects-people-picker .projects-field{ gap:4px; }
.projects-people-picker select{
  border:1px solid #cbd5e1; border-radius:8px; padding:8px 10px; background:#fff; font-size:13px;
}
.projects-people-picker select:disabled{ background:#f1f5f9; color:#94a3b8; cursor:not-allowed; }
.projects-people-picker .projects-btn{ height:38px; align-self:end; }
.projects-people-hint{ display:block; color:#64748b; font-size:11px; line-height:1.4; }
@media (max-width:720px){
  .projects-people-picker-row{ grid-template-columns:1fr; }
  .projects-people-picker .projects-btn{ width:100%; }
}

/* Powiazanie ze Strategia Rozwoju Miasta — karta projektu + kreator */
.projects-strategy-summary{
  display:grid; grid-template-columns:200px minmax(0,1fr); gap:6px 14px;
  margin:0 0 10px; font-size:13px;
}
.projects-strategy-summary dt{ color:#64748b; font-weight:800; }
.projects-strategy-summary dd{ margin:0; color:#0f172a; }
.projects-strategy-selected{
  display:grid; gap:10px; padding:12px; border-radius:11px;
  background:#f8fafc; border:1px solid #e2e8f0;
}
.projects-strategy-selected h6{
  margin:0; font-size:12px; font-weight:900; color:#475569;
  text-transform:uppercase; letter-spacing:.04em;
}
.projects-strategy-co-group{
  border-radius:8px; padding:9px 11px; background:#fff; border:1px solid #e2e8f0;
}
.projects-strategy-co-group strong{
  display:block; font-size:13px; font-weight:900; color:#0f766e; margin-bottom:5px;
}
.projects-strategy-co-group ul{ margin:0; padding:0 0 0 18px; }
.projects-strategy-co-group li{ font-size:12.5px; line-height:1.5; color:#0f172a; }

/* Multi-select kierunkow w kreatorze */
.projects-strategy-kierunki{
  display:grid; gap:10px; padding:14px; border-radius:12px;
  background:#ecfdf5; border:1px solid #a7f3d0; margin-top:10px;
}
.projects-strategy-kierunki h6{
  margin:0; font-size:13px; font-weight:900; color:#065f46;
}
.projects-strategy-kierunki small{ font-size:11.5px; color:#047857; }
.projects-strategy-kierunki .projects-strategy-co-group{
  background:#fff; border-color:#a7f3d0;
}
.projects-strategy-checkbox{
  display:grid; grid-template-columns:18px 1fr; gap:8px; align-items:start;
  padding:4px 0; cursor:pointer;
}
.projects-strategy-checkbox input{ margin-top:3px; }
.projects-strategy-checkbox:hover span{ color:#047857; }

/* Kontekst programu (informacja po wyborze celu operacyjnego) */
.projects-strategy-context{
  display:flex; gap:8px; align-items:center; padding:8px 12px;
  border-radius:9px; background:#eff6ff; border:1px solid #bfdbfe;
  font-size:12.5px; color:#1e3a8a;
}
.projects-strategy-context-label{ font-weight:800; color:#2563eb; }

/* Lista kierunkow w podsumowaniu kreatora */
.projects-summary-kierunki{
  list-style:disc; padding-left:18px; margin:0; display:grid; gap:2px;
}
.projects-summary-kierunki li{ font-size:12.5px; line-height:1.45; color:#0f172a; }

/* Multi-select kierunkow: lista bezprefiksowa (nowy format — czyste teksty) */
.projects-strategy-kierunki > ul{ list-style:none; padding:0; margin:0; display:grid; gap:4px; }
.projects-strategy-kierunki > ul > li{
  border-radius:7px; padding:5px 9px; background:#fff; border:1px solid #a7f3d0;
}

/* PODSUMOWANIE PROJEKTU — sekcja na samej górze karty projektu.
 * Najwazniejsza tresc dla koordynatora/prezydenta/skarbnika/dyrektorow:
 * cel strategiczny + operacyjny, nazwa dzialania, krotki opis (edytowalny),
 * budzet zadania. */
.projects-hero-summary{
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
  background:linear-gradient(135deg, #ecfdf5 0%, #f0f9ff 100%);
  border:1px solid #a7f3d0; padding:18px 20px;
}
.projects-hero-summary > *{ grid-column:1 / -1; }
.projects-hero-strategy,
.projects-hero-budget{ grid-column:span 1; }
.projects-hero-eyebrow{
  display:block; font-size:11px; font-weight:900; color:#047857;
  text-transform:uppercase; letter-spacing:.05em; margin-bottom:4px;
}
.projects-hero-strategy strong{
  display:block; font-size:16px; font-weight:900; color:#065f46; line-height:1.25;
}
.projects-hero-co{
  display:block; margin-top:6px; font-size:12.5px; color:#0f766e; line-height:1.45;
}
.projects-hero-co b{ color:#065f46; }
.projects-hero-name{
  font-size:24px; font-weight:900; color:#0f172a; line-height:1.2; margin:0;
}
.projects-hero-desc{ display:grid; gap:6px; }
.projects-hero-desc > span{
  font-size:11px; font-weight:900; color:#475569; text-transform:uppercase; letter-spacing:.05em;
}
.projects-hero-desc textarea{
  width:100%; border:1px solid #cbd5e1; border-radius:10px; padding:10px 12px;
  font-size:14px; line-height:1.55; color:#0f172a; background:#fff; resize:vertical;
}
.projects-hero-desc textarea:read-only{ background:#f8fafc; color:#475569; }
.projects-btn-sm{ padding:6px 12px; font-size:12.5px; justify-self:start; }
.projects-hero-budget{ text-align:right; align-self:end; }
.projects-hero-budget-amount{
  display:block; font-size:28px; font-weight:900; color:#065f46; line-height:1; margin:2px 0;
}
.projects-hero-budget-meta{
  display:block; font-size:11.5px; color:#475569; font-weight:700;
}
@media (max-width:720px){
  .projects-hero-summary{ grid-template-columns:1fr; }
  .projects-hero-strategy, .projects-hero-budget{ grid-column:1; text-align:left; }
}
@media (max-width:1024px){
  .projects-hero{ grid-template-columns:1fr; }
  .projects-grid-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .projects-shell{ grid-template-columns:1fr; }
  .projects-side{ position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px){
  .projects-card-grid,.projects-module-list,.projects-grid-stats{ grid-template-columns:1fr; }
  .projects-detail-grid,.projects-access-grid,.project-finance-wide,.projects-risk-columns,.projects-action-summary,.projects-work-path-grid{ grid-template-columns:1fr; }
  .projects-inline-add,.projects-inline-add-items,.projects-inline-add-risk,.projects-subaction-row,.projects-milestone-row{ grid-template-columns:1fr; }
  .projects-subaction-row > *{ grid-column:1 / -1 !important; }
  .projects-milestone-row > *{ grid-column:1 / -1 !important; }
  .projects-side{ grid-template-columns:1fr; }
  .projects-banner-actions{ justify-content:flex-start; width:100%; }
  .projects-creator-steps,.projects-form-grid{ grid-template-columns:1fr; }
  .projects-summary-card dl{ grid-template-columns:1fr; }
  .projects-creator-actions{ flex-direction:column; }
  .projects-creator-actions > div{ justify-content:flex-end; }
}

/* Mobile (<600px): tabele projektowe przechodza w karty wierszowe, modal kreatora wypelnia ekran. */
@media (max-width:600px){
  /* Detail head: RAG i przycisk Usun projekt nie zlewaja sie z naglowkiem. */
  .projects-detail-head{ flex-direction:column; align-items:stretch; gap:10px; }
  .projects-detail-head-actions{ justify-content:space-between; width:100%; }

  /* Tabele -> karty: kazdy wiersz jako blok, kazda komorka z etykieta z thead. */
  .projects-edit-table-wrap{ overflow-x:visible; }
  .projects-edit-table{ min-width:0 !important; }
  .projects-edit-table thead{ position:absolute; left:-9999px; top:-9999px; }
  .projects-edit-table tbody{ display:block; }
  .projects-edit-table tr{
    display:block; border:1px solid #e2e8f0; border-radius:12px;
    margin-bottom:10px; padding:10px; background:#fff;
  }
  .projects-edit-table td{
    display:block; padding:6px 0; border-top:none; border-bottom:1px dashed #e2e8f0;
  }
  .projects-edit-table td:last-child{ border-bottom:none; }
  .projects-edit-table td::before{
    content:attr(data-label);
    display:block; color:#64748b; font-size:11px; text-transform:uppercase;
    letter-spacing:.04em; font-weight:800; margin-bottom:4px;
  }
  .projects-edit-table input,
  .projects-edit-table select,
  .projects-edit-table textarea{ width:100%; min-width:0 !important; }
  .projects-edit-table textarea{ min-height:80px !important; }
  .projects-row-action{ text-align:right; }
  .projects-row-action .projects-btn{ width:100%; }

  /* Modal kreatora: full-screen na malych ekranach. */
  .projects-creator-backdrop{ padding:0; overflow-y:auto; }
  .projects-creator{
    width:100%; max-width:100%; min-height:100vh; max-height:none;
    border-radius:0; border-left:none; border-right:none; box-shadow:none;
  }
  .projects-creator-body{ padding:14px; }
  .projects-creator-head{ padding:14px; }
  .projects-creator-actions{ padding:12px 14px; }

  /* Kafelki projektow: mniej zageszczone pille. */
  .projects-pill-row{ gap:4px; }
  .projects-pill{ font-size:10px; padding:3px 6px; }
}
/* ── Print ────────────────────────────────────────────── */
    @media print{
      body{background:#fff !important;color:#000 !important}
      #loginScreen,#dashboardScreen nav,.no-print{display:none !important}
      .markdown-body{color:#000 !important;max-height:none !important}
    }

    /* ── Reduced motion ───────────────────────────────────── */
    @media (prefers-reduced-motion:reduce){
      *{animation-duration:.01ms !important;transition-duration:.01ms !important}
      [data-reveal]{opacity:1;transform:none}
    }

    /* ── Dostępność: rozmiary czcionki ──────────────────────── */
    html.font-lg body,
    html.font-lg input,
    html.font-lg textarea,
    html.font-lg select,
    html.font-lg button{font-size:calc(16px * 1.13) !important}
    html.font-lg label,
    html.font-lg .text-sm{font-size:calc(14px * 1.13) !important}
    html.font-lg .text-xs{font-size:calc(11px * 1.13) !important}

    html.font-xl body,
    html.font-xl input,
    html.font-xl textarea,
    html.font-xl select,
    html.font-xl button{font-size:calc(16px * 1.27) !important}
    html.font-xl label,
    html.font-xl .text-sm{font-size:calc(14px * 1.27) !important}
    html.font-xl .text-xs{font-size:calc(11px * 1.27) !important}

    /* Kontrolki dostępności w navbarze */
    .a11y-btn{
      display:inline-flex;align-items:center;justify-content:center;
      min-width:32px;height:32px;
      padding:0 6px;
      border-radius:7px;
      border:1.5px solid rgba(255,255,255,.38);
      background:rgba(255,255,255,.16);
      color:rgba(255,255,255,.96);
      font-family:var(--font-display);
      font-weight:800;
      font-size:12px;
      cursor:pointer;
      transition:all .2s;
      line-height:1;
      flex-shrink:0;
      text-shadow:0 1px 3px rgba(0,0,0,.35);
      box-shadow:0 1px 4px rgba(0,0,0,.12),inset 0 1px 0 rgba(255,255,255,.20);
    }
    .a11y-btn:hover{
      background:rgba(255,255,255,.28);
      color:#fff;
      border-color:rgba(255,255,255,.65);
      box-shadow:0 2px 8px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.25);
      transform:translateY(-1px);
    }
    .a11y-btn.active{
      background:rgba(255,255,255,.30) !important;
      border-color:#fff !important;
      color:#fff !important;
      box-shadow:0 0 0 2px rgba(255,255,255,.28),0 2px 8px rgba(0,0,0,.18) !important;
    }

    /* Online status dot in navbar */
    .online-dot{
      width:8px;height:8px;border-radius:50%;
      display:inline-block;flex-shrink:0;
      transition:background .4s, box-shadow .4s;
    }
    .online-dot.online{
      background:#4CAF50;
      box-shadow:0 0 5px rgba(76,175,80,.7);
    }
    .online-dot.offline{
      background:#EF5350;
      box-shadow:0 0 5px rgba(239,83,80,.7);
      animation:none;
    }
    .online-dot.checking{
      background:rgba(255,193,7,.85);
    }

    /* ── Responsive sticky rail ───────────────────────────── */
    @media (min-width:1280px){.sticky-rail{position:sticky;top:6rem}}
