/* NERW www - theme.css
 * Jezyk wizualny Dukes of IT: granat baza, zielen=AI, zloto=czlowiek, czerwien=dane wrazliwe.
 * Wersja web: lzejsza, wiecej powietrza, kolory spoza palety Dukes jako akcenty.
 * Czcionki: Space Grotesk (naglowki) + Inter (tresc) - wbudowane lokalnie (self-contained).
 */

/* ---------- Czcionki (lokalnie, latin + latin-ext = polskie znaki) ---------- */
@font-face { font-family:'Inter'; font-weight:400; font-display:swap; src:url('../assets/fonts/inter-latin-400-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-weight:400; font-display:swap; src:url('../assets/fonts/inter-latin-ext-400-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:500; font-display:swap; src:url('../assets/fonts/inter-latin-500-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-weight:500; font-display:swap; src:url('../assets/fonts/inter-latin-ext-500-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:600; font-display:swap; src:url('../assets/fonts/inter-latin-600-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-weight:600; font-display:swap; src:url('../assets/fonts/inter-latin-ext-600-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Inter'; font-weight:700; font-display:swap; src:url('../assets/fonts/inter-latin-700-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Inter'; font-weight:700; font-display:swap; src:url('../assets/fonts/inter-latin-ext-700-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Space Grotesk'; font-weight:600; font-display:swap; src:url('../assets/fonts/space-grotesk-latin-600-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Space Grotesk'; font-weight:600; font-display:swap; src:url('../assets/fonts/space-grotesk-latin-ext-600-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:'Space Grotesk'; font-weight:700; font-display:swap; src:url('../assets/fonts/space-grotesk-latin-700-normal.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:'Space Grotesk'; font-weight:700; font-display:swap; src:url('../assets/fonts/space-grotesk-latin-ext-700-normal.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }

/* Font Awesome (lokalnie) */
@font-face { font-family:'FA Solid'; src:url('../assets/fonts/fa-solid-900.ttf') format('truetype'); font-weight:900; font-display:block; }

:root {
  /* paleta marki Dukes */
  --navy:#0A2240; --navy-deep:#061629; --navy-mid:#0C2748;
  --gold:#C2A24A; --gold-lite:#E3C772;
  --neon:#22E84A; --neon-dim:#17A838;
  --chalk:#F0F3F7; --red:#EB5A46;
  /* paleta rozszerzona (spoza Dukes - akcenty, zroznicowanie) */
  --cyan:#36D6FF; --azure:#2E8BFF; --violet:#8B7CF6; --magenta:#E84AC2;
  --orange:#FF8C42; --teal:#1CC7B0; --pink:#FF6FA5; --lime:#B6F24A; --amber:#F2B33A;
  /* strefy */
  --zone-cloud:#36D6FF; --zone-edge:#FF8C42; --zone-dc:#22E84A; --zone-desk:#E3C772;

  --txt:#EAF1FA; --txt-dim:#A9BCDA; --txt-faint:#7488A8;
  --panel:rgba(14,33,60,0.70); --panel-2:rgba(16,38,68,0.55);
  --panel-brd:rgba(126,156,206,0.20); --glass-hi:rgba(255,255,255,0.06);

  --r-lg:18px; --r-md:12px; --r-sm:8px; --gap:16px;

  --font:'Inter','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --font-head:'Space Grotesk','Inter','Segoe UI',system-ui,sans-serif;
}

* { box-sizing:border-box; margin:0; padding:0; }
html, body { height:100%; }

body {
  font-family:var(--font);
  color:var(--txt);
  background:
    radial-gradient(1100px 650px at 10% 6%, rgba(54,214,255,0.12), transparent 55%),
    radial-gradient(900px 700px at 88% 10%, rgba(139,124,246,0.13), transparent 55%),
    radial-gradient(800px 600px at 95% 70%, rgba(232,74,194,0.09), transparent 55%),
    radial-gradient(1000px 820px at 55% 100%, rgba(34,232,74,0.09), transparent 55%),
    radial-gradient(700px 520px at 25% 85%, rgba(255,140,66,0.07), transparent 55%),
    linear-gradient(160deg, #0D2C52 0%, #081F3B 45%, var(--navy-deep) 100%);
  background-attachment:fixed;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  letter-spacing:0.1px;
}

.fa { font-family:'FA Solid'; font-weight:900; font-style:normal; line-height:1; }

/* ---------- Layout (jeden ekran, bez scrolla strony) ---------- */
.app { height:100vh; max-width:2200px; margin:0 auto; padding:10px 16px 12px;
  display:flex; flex-direction:column; gap:9px; overflow:hidden; }

/* ---------- Header ---------- */
.hdr { flex:0 0 auto; display:flex; align-items:center; gap:16px; padding:2px 2px 8px; border-bottom:1px solid var(--panel-brd); }
.hdr__logo { height:38px; width:auto; filter:drop-shadow(0 4px 16px rgba(0,0,0,0.55)); }
.hdr__titles { display:flex; flex-direction:column; gap:3px; }
.hdr__title { font-family:var(--font-head); font-size:clamp(17px,2vw,23px); font-weight:700; letter-spacing:0.3px; color:var(--chalk); }
.hdr__title b { color:var(--neon); font-weight:700; }
.hdr__sub { font-size:12px; color:var(--txt-dim); letter-spacing:0.1px; }
.hdr__spacer { flex:1; }
.hdr__company { text-align:right; display:flex; flex-direction:column; gap:2px; padding:9px 15px; border-radius:var(--r-md); background:var(--panel); border:1px solid var(--panel-brd); }
.hdr__company .nm { font-size:13px; font-weight:600; color:var(--gold-lite); }
.hdr__company .ds { font-size:11.5px; color:var(--txt-dim); }
.hdr__firm { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.firmsw { display:inline-flex; border-radius:9px; overflow:hidden; border:1px solid var(--panel-brd); background:var(--panel-2); }
.firmsw__b { padding:6px 14px; font-family:var(--font); font-size:11.5px; font-weight:600; cursor:pointer; color:var(--txt-dim);
  background:transparent; border:none; border-right:1px solid var(--panel-brd); transition:background .15s, color .15s; }
.firmsw__b:last-child { border-right:none; }
.firmsw__b.active { background:linear-gradient(90deg, rgba(34,232,74,0.22), rgba(34,232,74,0.08)); color:var(--chalk); }
.firmsw__b:hover:not(.active) { color:var(--txt); background:rgba(255,255,255,0.05); }

/* ---------- Main grid (wypelnia reszte ekranu) ---------- */
.main { flex:1 1 auto; min-height:0; display:grid; grid-template-columns:1fr 300px; gap:10px; }
.col-left { min-height:0; min-width:0; display:grid; grid-template-rows:1.62fr 1fr; gap:10px; }
.col-right { min-height:0; display:flex; flex-direction:column; gap:10px; }
.col-right > .panel:first-child { flex:0 0 auto; }
.col-right > .panel:last-child { flex:1 1 auto; }

/* ---------- Panel (glass) ---------- */
.panel { position:relative; min-height:0; display:flex; flex-direction:column;
  background:var(--panel); border:1px solid var(--panel-brd); border-radius:var(--r-lg);
  box-shadow:0 20px 48px rgba(0,0,0,0.40), inset 0 1px 0 var(--glass-hi); backdrop-filter:blur(7px); overflow:hidden; }
.panel__hd { flex:0 0 auto; display:flex; align-items:center; gap:9px; padding:9px 14px 8px; border-bottom:1px solid var(--panel-brd); }
.panel__hd .fa { font-size:12px; color:var(--neon); }
.panel__hd h2 { font-family:var(--font-head); font-size:11.5px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--txt); }
.panel__hd .tag { margin-left:auto; font-size:10px; color:var(--txt-faint); letter-spacing:1px; font-weight:600; }
.panel__hd .tag--done { color:var(--neon); }
.panel__bd { flex:1 1 auto; min-height:0; padding:12px 14px; overflow:hidden; }

/* ---------- Mapa (SVG) ---------- */
.map-panel .panel__bd { padding:4px; }
.map-wrap { position:relative; width:100%; height:100%; }
#map { width:100%; height:100%; display:block; border-radius:var(--r-md); }

.zone-band { stroke-width:1; }
.zone-label { font-family:var(--font-head); font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.zone-pill { opacity:0.9; }

.border-line { stroke:var(--red); stroke-width:1.4; stroke-dasharray:7 6; opacity:0.55; }
.border-pill { fill:rgba(235,90,70,0.18); stroke:rgba(235,90,70,0.55); stroke-width:1; }
.border-pill-tx { font-family:var(--font-head); font-size:9px; font-weight:700; letter-spacing:1.4px; fill:#ffc0b4; }

.link { stroke:rgba(150,180,220,0.10); stroke-width:1.4; fill:none; }

.node { cursor:default; }
.node__hit { cursor:pointer; }
.node__glow { opacity:0; filter:blur(7px); transition:opacity .2s; pointer-events:none; }
.node__ring { fill:none; stroke:var(--gold-lite); stroke-width:2; opacity:0; pointer-events:none; }
.node__chip { fill:#102444; stroke-width:1.3; transition:fill .18s, stroke .18s; }
.node__icon { font-family:'FA Solid'; font-weight:900; text-anchor:middle; dominant-baseline:central; transition:fill .18s; }
.node__label { font-family:var(--font); font-size:10.5px; font-weight:600; fill:var(--txt-dim); text-anchor:middle; dominant-baseline:central; transition:fill .18s; }
.node__sub { font-family:var(--font); font-size:8px; font-weight:500; fill:var(--txt-faint); text-anchor:middle; dominant-baseline:central; }
.node__hand { font-family:'FA Solid'; font-weight:900; fill:var(--gold-lite); opacity:0; text-anchor:middle; dominant-baseline:central; pointer-events:none; }
.node:hover .node__chip { fill:#17315a; }
.node:hover .node__glow { opacity:0.22; }
.node:hover .node__label { fill:var(--txt); }
.node.hot .node__glow { opacity:0.4; }
.node.hot .node__label { fill:var(--txt); }
.node.dim { opacity:0.42; }
.node.dim .node__chip { stroke:rgba(150,160,185,0.35) !important; }
.node.dim .node__icon { fill:#6f82a2 !important; }
.node.wait .node__chip { fill:#2a2612; stroke:var(--gold-lite); }
.node--gw .node__chip { fill:#0c3320; stroke:var(--neon); }

/* tooltip */
.tip { position:absolute; pointer-events:none; max-width:290px; padding:11px 13px; border-radius:var(--r-md);
  background:rgba(8,20,38,0.97); border:1px solid var(--panel-brd); box-shadow:0 14px 40px rgba(0,0,0,0.55);
  font-size:12px; line-height:1.5; color:var(--txt); opacity:0; transform:translateY(4px); transition:opacity .15s, transform .15s; z-index:40; }
.tip.show { opacity:1; transform:translateY(0); }
.tip__t { font-family:var(--font-head); font-weight:700; color:var(--chalk); margin-bottom:4px; font-size:12.5px; }
.tip__d { color:var(--txt-dim); }

/* ---------- Scenariusze (prawa kolumna - minimalne, tylko klik) ---------- */
.scen-list { display:flex; flex-direction:column; gap:5px; }
.scen { display:flex; align-items:center; gap:9px; text-align:left; width:100%;
  padding:6px 9px; border-radius:var(--r-sm); cursor:pointer;
  background:var(--panel-2); border:1px solid var(--panel-brd);
  transition:border-color .15s, background .15s; }
.scen:hover { border-color:rgba(255,255,255,0.28); background:rgba(22,48,84,0.7); }
.scen.active { border-color:var(--neon); background:rgba(26,58,44,0.6); box-shadow:0 0 0 1px rgba(34,232,74,0.35) inset; }
.scen__ic { flex:0 0 26px; height:26px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:12px; }
.scen__nm { min-width:0; font-size:11.5px; font-weight:600; color:var(--txt); display:flex; align-items:center; gap:6px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.scen__nm .hit { flex:0 0 auto; font-family:var(--font-head); font-size:7.5px; font-weight:700; letter-spacing:0.5px; padding:1px 5px; border-radius:20px;
  background:rgba(232,74,194,0.18); color:var(--magenta); border:1px solid rgba(232,74,194,0.5); }

/* ---------- Wdrozenie AI (komponenty - minimalne) ---------- */
.comp-master { display:flex; align-items:center; gap:9px; padding:6px 10px; margin-bottom:7px; border-radius:var(--r-sm);
  background:linear-gradient(90deg, rgba(34,232,74,0.14), rgba(34,232,74,0.04)); border:1px solid rgba(34,232,74,0.4); }
.comp-master .ti { flex:1; min-width:0; }
.comp-master .ti b { font-size:12px; color:var(--chalk); }
.comp-list { display:flex; flex-direction:column; gap:4px; }
.comp { display:flex; align-items:center; gap:9px; padding:5px 10px; border-radius:var(--r-sm); cursor:default;
  background:var(--panel-2); border:1px solid var(--panel-brd); transition:opacity .15s; }
.comp.off { opacity:0.5; }
.comp__tx { flex:1; min-width:0; font-size:11px; font-weight:600; color:var(--txt);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* przelacznik */
.sw { flex:0 0 38px; height:21px; border-radius:20px; position:relative; cursor:pointer; background:rgba(60,76,104,0.9);
  border:1px solid rgba(255,255,255,0.12); transition:background .18s; }
.sw.on { background:linear-gradient(90deg, var(--neon-dim), var(--neon)); border-color:rgba(34,232,74,0.6); }
.sw::after { content:''; position:absolute; top:2px; left:2px; width:15px; height:15px; border-radius:50%;
  background:#dfe8f5; transition:left .18s, background .18s; box-shadow:0 1px 3px rgba(0,0,0,0.4); }
.sw.on::after { left:19px; background:#eafff0; }

.hdr__spark { color:var(--gold-lite); font-size:0.55em; vertical-align:middle; }

/* ---------- Pasek sterowania + HUD ---------- */
.bar { display:flex; align-items:center; gap:14px; padding:10px 14px; border-radius:var(--r-md);
  background:var(--panel); border:1px solid var(--panel-brd); box-shadow:inset 0 1px 0 var(--glass-hi); }
.bar__spacer { flex:1; }
.bar__ctrl { display:flex; gap:8px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; gap:7px; padding:9px 15px; border-radius:9px; cursor:pointer;
  font-family:var(--font); font-size:12.5px; font-weight:600; color:var(--txt);
  background:var(--panel-2); border:1px solid var(--panel-brd); transition:background .15s, border-color .15s, transform .1s; }
.btn .fa { font-size:11px; }
.btn:hover { background:rgba(26,52,90,0.8); border-color:rgba(255,255,255,0.3); }
.btn:active { transform:translateY(1px); }
.btn:disabled { opacity:0.4; cursor:default; }
.btn--run { background:linear-gradient(90deg, var(--neon-dim), rgba(34,232,74,0.25)); border-color:rgba(34,232,74,0.55); color:#eafff0; }
.btn--run:hover { background:linear-gradient(90deg, #1ea843, rgba(34,232,74,0.4)); }
.btn--reset { border-color:rgba(194,162,74,0.4); color:var(--gold-lite); }
.bar__metrics { display:flex; gap:10px; align-items:stretch; }
.metric { display:flex; flex-direction:column; gap:2px; padding:5px 12px; border-radius:var(--r-sm);
  background:rgba(8,20,38,0.6); border:1px solid var(--panel-brd); min-width:84px; }
.metric__l { font-size:9px; font-weight:600; letter-spacing:0.6px; text-transform:uppercase; color:var(--txt-faint); white-space:nowrap; }
.metric__v { font-family:var(--font-head); font-size:19px; font-weight:700; color:var(--chalk); line-height:1.1; }
.metric--share { min-width:200px; justify-content:center; }
.share { position:relative; height:22px; border-radius:6px; overflow:hidden; background:rgba(60,76,104,0.6); border:1px solid rgba(255,255,255,0.08); }
.share__fill { position:absolute; inset:0 auto 0 0; width:0; background:linear-gradient(90deg, var(--neon-dim), var(--neon)); transition:width .3s; }
.share__ai, .share__hu { position:absolute; top:0; height:22px; display:flex; align-items:center; font-size:10.5px; font-weight:700; }
.share__ai { left:8px; color:#eafff0; }
.share__hu { right:8px; color:var(--gold-lite); }

/* ---------- Okno decyzji (na mapie) ---------- */
.dec { position:absolute; left:50%; bottom:14px; transform:translateX(-50%) translateY(8px);
  width:min(560px, calc(100% - 40px)); padding:12px 15px 14px; border-radius:var(--r-md);
  background:linear-gradient(180deg, rgba(26,46,26,0.97), rgba(16,32,18,0.97));
  border:1.6px solid var(--gold-lite); box-shadow:0 18px 44px rgba(0,0,0,0.55);
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:30; }
.dec.show { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.dec.blocked { background:linear-gradient(180deg, rgba(46,22,20,0.97), rgba(32,16,16,0.97)); border-color:var(--red); }
.dec__tag { font-family:var(--font-head); font-size:10px; font-weight:700; letter-spacing:0.8px; color:var(--gold-lite); margin-bottom:5px; }
.dec.blocked .dec__tag { color:#ff9c8c; }
.dec__title { font-size:14px; font-weight:700; color:var(--chalk); margin-bottom:3px; }
.dec__desc { font-size:11.5px; color:var(--txt-dim); line-height:1.4; margin-bottom:11px; }
.dec__btn { width:100%; padding:11px; border-radius:8px; cursor:pointer; border:1.4px solid var(--neon);
  font-family:var(--font); font-size:13px; font-weight:700; color:#fff;
  background:linear-gradient(90deg, #12843a, #1aa048); animation:decpulse 1.4s ease-in-out infinite; }
.dec.blocked .dec__btn { border-color:var(--red); background:linear-gradient(90deg, #a52e24, #c13a30); animation:none; }
.dec__btn:hover { filter:brightness(1.15); }
@keyframes decpulse { 0%,100%{ box-shadow:0 0 0 0 rgba(34,232,74,0.5);} 50%{ box-shadow:0 0 0 7px rgba(34,232,74,0);} }

/* ---------- Pasek GOTOWE ---------- */
.donebar { position:absolute; left:50%; bottom:14px; transform:translateX(-50%) translateY(8px);
  display:flex; align-items:center; gap:16px; padding:10px 10px 10px 18px; border-radius:var(--r-md);
  background:rgba(14,52,26,0.97); border:1.4px solid var(--neon); box-shadow:0 16px 40px rgba(0,0,0,0.5);
  opacity:0; pointer-events:none; transition:opacity .2s, transform .2s; z-index:30; }
.donebar.show { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
.donebar__tx { font-size:13px; font-weight:700; color:#dfffea; }
.donebar__tx .fa { color:var(--neon); margin-right:4px; }
.donebar__btn { display:inline-flex; align-items:center; gap:7px; padding:9px 16px; border-radius:8px; cursor:pointer;
  border:1px solid var(--neon); background:linear-gradient(90deg,#12843a,#1aa048); color:#fff; font-family:var(--font); font-weight:700; font-size:12.5px; }
.donebar__btn .fa { font-size:10px; }
.donebar__btn:hover { filter:brightness(1.15); }

/* ---------- Podsumowanie ---------- */
.summary { position:fixed; inset:0; z-index:100; display:none; align-items:center; justify-content:center;
  background:rgba(2,8,20,0.84); backdrop-filter:blur(5px); padding:24px; }
.summary.show { display:flex; }
.sumcard { width:min(1060px,96vw); max-height:92vh; overflow-y:auto; padding:22px 26px 24px;
  border-radius:var(--r-lg); background:var(--navy-mid); border:1px solid var(--panel-brd); box-shadow:0 30px 80px rgba(0,0,0,0.6); }
.sum__h { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; }
.sum__t { font-family:var(--font-head); font-size:22px; font-weight:700; color:var(--chalk); }
.sum__s { font-size:12.5px; color:var(--gold-lite); margin-top:4px; }
.sum__x { flex:0 0 auto; width:32px; height:32px; border-radius:8px; cursor:pointer; font-size:15px;
  background:var(--panel-2); border:1px solid var(--panel-brd); color:var(--txt-dim); }
.sum__x:hover { color:var(--chalk); }
.sumcols { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:16px; }
.sumcol { padding:16px 14px; border-radius:var(--r-md); background:rgba(6,20,40,0.6); border:1px solid rgba(255,255,255,0.07); border-top:3px solid var(--c); }
.sumcol.hl { box-shadow:0 0 0 1.5px var(--c) inset; }
.sumcol__t { font-family:var(--font-head); font-size:13px; font-weight:700; color:var(--c); text-align:center; margin-bottom:14px; }
.sumcol__big { margin-bottom:11px; }
.sumcol__big .l { display:block; font-size:10.5px; color:var(--txt-faint); margin-bottom:1px; }
.sumcol__big .v { font-family:var(--font-head); font-size:19px; font-weight:700; color:var(--c); }
.sumbar { height:8px; border-radius:4px; background:rgba(60,72,92,0.5); overflow:hidden; margin:4px 0 13px; }
.sumbar__f { height:100%; background:var(--c); border-radius:4px; }
.sumcol__m { font-size:11px; line-height:1.45; color:var(--txt-dim); }
.sumcol__m b { color:var(--txt); }
.sumrun { padding:13px 15px; border-radius:var(--r-md); background:rgba(6,18,36,0.6); border:1px solid rgba(194,162,74,0.3); margin-bottom:16px; }
.sumrun__h { font-family:var(--font-head); font-size:10px; font-weight:700; letter-spacing:1px; color:var(--gold-lite); margin-bottom:7px; }
.sumrun__sys { font-size:11.5px; color:var(--cyan); margin-bottom:11px; }
.sumrun__sys b { color:var(--txt); }
.sumrun__list { display:flex; flex-direction:column; gap:3px; }
.sumstep { display:grid; grid-template-columns:20px 72px minmax(0,1fr) minmax(0,0.9fr) 54px 14px; gap:10px;
  align-items:center; font-size:11px; padding:3px 4px; cursor:pointer; border-radius:5px; transition:background .12s; }
.sumstep:hover { background:rgba(255,255,255,0.05); }
.sumstep__n { color:var(--txt-faint); font-weight:700; }
.sumstep__tag { font-family:var(--font-head); font-size:9.5px; font-weight:700; }
.sumstep__ti { color:var(--chalk); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sumstep__sy { color:var(--txt-dim); font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sumstep__cz { color:var(--txt-dim); font-weight:600; text-align:right; }
.sumstep__exp { font-size:9px; color:var(--txt-faint); justify-self:center; transition:transform .18s, color .18s; }
.sumstep.open .sumstep__exp { transform:rotate(180deg); color:var(--chalk); }
.sumstep.open { background:rgba(255,255,255,0.05); }
.sumstep__det { display:none; margin:1px 0 8px 30px; padding:9px 13px; border-radius:7px;
  background:rgba(8,20,38,0.6); border:1px solid var(--panel-brd); border-left:2px solid var(--neon); }
.sumstep__det.open { display:block; }
.sdet__steps { list-style:none; display:flex; flex-direction:column; gap:3px; margin-bottom:6px; }
.sdet__steps li { position:relative; padding-left:13px; font-size:11px; line-height:1.4; color:var(--txt-dim); }
.sdet__steps li::before { content:'•'; position:absolute; left:2px; color:var(--neon); }
.sdet__meta { font-size:10px; color:var(--txt-faint); margin-bottom:5px; }
.sdet__m { font-size:11px; line-height:1.45; color:var(--gold-lite); margin-bottom:3px; }
.sdet__m b { color:var(--txt); }
.sdet__fb { margin-top:5px; padding:6px 9px; border-radius:6px; font-size:10.5px; line-height:1.4; color:#f0e2be;
  background:rgba(40,52,24,0.5); border:1px solid rgba(227,199,114,0.4); }
.sum__btns { display:flex; gap:12px; justify-content:center; }

/* ---------- Dziennik ---------- */
#jrnlHost { height:100%; }
.jrnl { height:100%; display:flex; flex-direction:column; gap:7px; }
.jrnl__filters { flex:0 0 auto; display:flex; flex-wrap:wrap; gap:5px; }
.lbtn { font-family:var(--font-head); font-size:9.5px; font-weight:700; letter-spacing:0.4px; padding:3px 10px; border-radius:20px; cursor:pointer;
  color:var(--txt-dim); background:rgba(12,28,50,0.5); border:1px solid var(--panel-brd); transition:all .15s; }
.lbtn:hover { border-color:rgba(255,255,255,0.3); }
.lbtn.on { color:var(--chalk); background:rgba(26,52,90,0.8); border-color:var(--lc, var(--chalk)); }
.jtrig { flex:0 0 auto; padding:7px 11px; border-radius:var(--r-sm); background:rgba(20,40,26,0.85); border:1px solid rgba(194,162,74,0.45); border-left:3px solid var(--gold); }
.jtrig__h { font-family:var(--font-head); font-size:9px; font-weight:700; letter-spacing:0.6px; color:var(--gold-lite); margin-bottom:3px; }
.jtrig__t { font-size:12px; font-weight:600; color:var(--chalk); line-height:1.3; }
.jrnl__scroll { flex:1 1 auto; min-height:0; overflow-y:scroll; overflow-x:hidden; padding-right:8px;
  scrollbar-width:thin; scrollbar-color:var(--gold-lite) rgba(255,255,255,0.08); }
.jrnl__list { display:flex; flex-direction:column; gap:6px; }
/* pasek przewijania - wyrazny */
.jrnl__scroll::-webkit-scrollbar { width:11px; }
.jrnl__scroll::-webkit-scrollbar-thumb { background:var(--gold-lite); border-radius:6px; border:2px solid rgba(6,18,36,0.9); min-height:28px; }
.jrnl__scroll::-webkit-scrollbar-thumb:hover { background:#f0d88a; }
.jrnl__scroll::-webkit-scrollbar-track { background:rgba(255,255,255,0.07); border-radius:6px; }

.jent { display:flex; gap:9px; padding:8px 10px 9px; border-radius:var(--r-sm);
  background:rgba(12,26,48,0.5); border:1px solid rgba(255,255,255,0.06); border-left:3px solid var(--ac); }
.jent.warn { background:rgba(40,22,18,0.6); border-left-color:var(--red); }
.jent__num { flex:0 0 20px; font-family:var(--font-head); font-size:14px; font-weight:700; color:var(--ac); opacity:0.75; }
.jent__body { flex:1; min-width:0; }
.jent__top { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:2px; }
.jent__tag { font-family:var(--font-head); font-size:9.5px; font-weight:700; letter-spacing:0.4px; color:var(--ac); }
.jent__time { flex:0 0 auto; font-size:10.5px; font-weight:700; color:var(--txt-dim); }
.jent__time.warn { color:#ff9c8c; }
.jent__title { font-size:12.5px; font-weight:700; color:var(--chalk); margin-bottom:4px; line-height:1.25; }
.jent__steps { list-style:none; display:flex; flex-direction:column; gap:2px; margin-bottom:5px; }
.jent__steps li { position:relative; padding-left:12px; font-size:11px; line-height:1.4; color:var(--txt-dim); }
.jent__steps li::before { content:'•'; position:absolute; left:2px; color:var(--ac); }
.jent__meta { display:flex; flex-wrap:wrap; gap:4px 16px; font-size:10px; color:var(--txt-faint); margin-bottom:4px; }
.jent__means { font-size:11px; line-height:1.4; color:var(--gold-lite); }
.jent__means.warn { color:#c9b9c0; }
.jent__unlock { font-size:10.5px; font-weight:600; color:#ff9c8c; margin-top:3px; }
.jent__fb { margin-top:5px; padding:6px 9px; border-radius:6px; font-size:10.5px; line-height:1.4;
  color:#f0e2be; background:rgba(40,52,24,0.5); border:1px solid rgba(227,199,114,0.4); border-left:3px solid var(--gold-lite); }
.jempty { font-size:11.5px; font-style:italic; color:var(--txt-dim); padding:10px 4px; }

/* ---------- Placeholder ---------- */
.ph { color:var(--txt-faint); font-size:11.5px; line-height:1.5; padding:14px; text-align:center; letter-spacing:0.2px; }

/* ---------- Responsywnosc ---------- */
/* Nizsze / wezsze ekrany: rozwijamy w pion ze scrollem strony (full HD = jeden ekran) */
@media (max-width:1220px), (max-height:800px) {
  .app { height:auto; min-height:100vh; overflow:visible; }
  .main { grid-template-columns:1fr; }
  .col-left { display:flex; flex-direction:column; }
  .map-panel { height:60vh; min-height:400px; }
  #journalPanel { height:46vh; min-height:300px; }
  .col-right { flex-direction:row; flex-wrap:wrap; }
  .col-right > .panel, .col-right > .panel:first-child, .col-right > .panel:last-child { flex:1 1 300px; }
}
@media (max-width:680px) {
  .hdr { flex-wrap:wrap; }
  .hdr__company { display:none; }
  .bar { flex-wrap:wrap; }
  .bar__metrics { flex-wrap:wrap; }
  .col-right { flex-direction:column; }
  .app { padding:12px; }
}
