@import url('../../fonts/edc-fonts.css');
        :root {
            --primary:#00ffaa; --secondary:#00d4ff; --gold:#ffd86b;
            --data:#37d6ff; --energy:#00ffae; --contract:#ffd24a; --signal:#ff9d3c;
            --saku:#00ffaa; --aflex:#37a0ff; --sebi:#ffb13c; --bpp:#c98bff;
            --ink:#eaf6f2; --muted:#86a79e; --line:rgba(120,220,200,.16);
        }
        * { box-sizing:border-box; }
        body { font-family:'Outfit',sans-serif; color:var(--ink); margin:0; overflow-x:hidden; min-height:100vh;
            background:
              radial-gradient(1300px 760px at 50% -12%, rgba(0,255,170,.10), transparent 60%),
              radial-gradient(1000px 700px at 88% 18%, rgba(55,160,255,.09), transparent 60%),
              linear-gradient(180deg,#04100f,#030b0a 55%,#020706); }
        #bg { position:fixed; inset:0; width:100vw; height:100vh; z-index:-1; opacity:.4; }
        .glass { background:rgba(255,255,255,.035); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border:1px solid var(--line); }
        .grad { background:linear-gradient(120deg,var(--primary),var(--secondary) 55%,#b388ff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

        nav.top { position:fixed; top:0; left:0; width:100%; z-index:60; display:flex; justify-content:space-between; align-items:center; padding:12px 24px; background:rgba(2,10,9,.82); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid rgba(148,227,194,.12); }
/* Daktela chat bublina – vždy celá v pravém dolním rohu (widget na mobilu jinak umístí tlačítko mimo obrazovku) */
html body .dw-button, html body .dw-mobile .dw-button, html body .dw-design-button-ICON .dw-button {
    position:fixed !important; inset:auto 16px 16px auto !important; margin:0 !important;
}
        .logo-img { height:42px; filter:brightness(0) invert(1); }
        .nav-btns { display:flex; gap:10px; }
        .nav-btns .btn { border:1px solid rgba(255,255,255,.2); padding:9px 17px; border-radius:999px; background:rgba(0,0,0,.3); color:#fff; cursor:pointer; font-weight:700; font-size:.8rem; text-decoration:none; }
        .nav-btns .btn:hover { border-color:var(--primary); } .nav-btns .solid { background:#fff; color:#052; }

        main { max-width:1340px; margin:0 auto; padding:104px 16px 70px; }
        .hero { text-align:center; margin-bottom:18px; }
        .eyebrow { display:inline-block; font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:var(--primary); border:1px solid var(--line); padding:6px 15px; border-radius:999px; margin-bottom:14px; }
        h1 { font-size:clamp(1.9rem,5.6vw,3.7rem); font-weight:900; line-height:1.02; text-transform:uppercase; margin:0 0 12px; }
        .lead { color:var(--muted); max-width:760px; margin:0 auto; font-size:1rem; }
        .stats { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
        .stat { min-width:138px; padding:12px 18px; border-radius:16px; }
        .stat .n { font-size:1.55rem; font-weight:900; color:var(--primary); line-height:1; }
        .stat .l { font-size:.7rem; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; margin-top:5px; }

        /* MODULOVÝ FILTR */
        .modbar { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:26px 0 4px; }
        .mod { display:inline-flex; align-items:center; gap:9px; padding:10px 17px; border-radius:14px; cursor:pointer; font-weight:800; font-size:.84rem;
            background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--ink); transition:all .22s; }
        .mod svg { width:18px; height:18px; }
        .mod:hover { transform:translateY(-2px); }
        .mod small { font-weight:500; color:var(--muted); font-size:.72rem; }
        .mod[data-m="all"].on  { border-color:#fff; box-shadow:0 8px 24px rgba(255,255,255,.12); }
        .mod[data-m="SAKU"].on { border-color:var(--saku); box-shadow:0 8px 26px rgba(0,255,170,.22); background:rgba(0,255,170,.10); }
        .mod[data-m="AFLEX"].on{ border-color:var(--aflex); box-shadow:0 8px 26px rgba(55,160,255,.22); background:rgba(55,160,255,.10); }
        .mod[data-m="SEBI"].on { border-color:var(--sebi); box-shadow:0 8px 26px rgba(255,177,60,.22); background:rgba(255,177,60,.10); }
        .mod[data-m="BPP"].on  { border-color:var(--bpp); box-shadow:0 8px 26px rgba(201,139,255,.22); background:rgba(201,139,255,.10); }

        .stage { display:grid; grid-template-columns:1.62fr 1fr; gap:20px; margin-top:14px; align-items:start; }
        @media (max-width:1080px){ .stage{ grid-template-columns:1fr; } }

        .map-scroll { width:100%; overflow-x:auto; border-radius:26px; }
        .map { position:relative; width:100%; aspect-ratio:1200/820; min-width:780px; border-radius:26px; overflow:hidden;
            background:radial-gradient(circle at 50% 50%, rgba(0,255,170,.05), transparent 62%); }
        .map svg.edges { position:absolute; inset:0; width:100%; height:100%; z-index:1; }
        .coreglow { position:absolute; left:50%; top:50%; width:30%; aspect-ratio:1; transform:translate(-50%,-50%); border-radius:50%; z-index:0;
            background:radial-gradient(circle, rgba(0,255,170,.22), rgba(55,160,255,.07) 45%, transparent 70%); filter:blur(8px); animation:breathe 5s ease-in-out infinite; }
        @keyframes breathe { 0%,100%{opacity:.6; transform:translate(-50%,-50%) scale(1);} 50%{opacity:1; transform:translate(-50%,-50%) scale(1.1);} }

        .node { position:absolute; transform:translate(-50%,-50%); z-index:2; width:118px; cursor:pointer; text-align:center;
            padding:11px 7px 10px; border-radius:16px; background:rgba(7,24,22,.82); border:1px solid rgba(255,255,255,.12);
            transition:opacity .3s,filter .3s,border-color .2s,box-shadow .2s,transform .2s; }
        .node:hover,.node:focus-visible,.node.sel { border-color:var(--primary); box-shadow:0 12px 30px rgba(0,255,170,.26); outline:none; transform:translate(-50%,-50%) scale(1.07); z-index:5; }
        .node .ic { width:30px; height:30px; margin:0 auto 5px; color:var(--primary); }
        .node .ic svg { width:100%; height:100%; }
        .node .t { font-weight:800; font-size:.78rem; line-height:1.1; }
        .node .s { font-size:.6rem; color:var(--muted); margin-top:2px; line-height:1.2; }
        .node.dim { opacity:.12; filter:grayscale(.7); }
        .node.core { width:152px; background:linear-gradient(160deg,rgba(0,255,170,.18),rgba(55,160,255,.12)); border-color:rgba(0,255,170,.55); box-shadow:0 0 42px rgba(0,255,170,.28); }
        .node.core .ic { width:38px; height:38px; color:#bff7e6; } .node.core .t { font-size:.96rem; }
        .node.core.dim { opacity:1; filter:none; }
        .node .badge { position:absolute; top:-7px; right:-7px; font-size:.52rem; font-weight:800; padding:2px 6px; border-radius:999px; background:#0b2420; border:1px solid var(--line); color:var(--muted); }
        /* akcenty dle modulu */
        .node.m-SAKU .ic{color:var(--saku);} .node.m-AFLEX .ic{color:var(--aflex);} .node.m-SEBI .ic{color:var(--sebi);} .node.m-GOV .ic{color:var(--gold);}

        .edge-base { fill:none; stroke:rgba(255,255,255,.07); stroke-width:1.6; }
        .edge-flow { fill:none; stroke-width:2; stroke-linecap:round; stroke-dasharray:7 13; opacity:.85; animation:dash 1.3s linear infinite; }
        .edge-flow.rev { animation-direction:reverse; }
        .t-data .edge-flow{stroke:var(--data);filter:drop-shadow(0 0 3px var(--data));}
        .t-energy .edge-flow{stroke:var(--energy);filter:drop-shadow(0 0 3px var(--energy));}
        .t-contract .edge-flow{stroke:var(--contract);filter:drop-shadow(0 0 3px var(--contract));}
        .t-signal .edge-flow{stroke:var(--signal);filter:drop-shadow(0 0 3px var(--signal));}
        @keyframes dash { to { stroke-dashoffset:-20; } }
        .edge text { fill:#cfeee6; font-size:11px; font-weight:600; opacity:0; paint-order:stroke; stroke:#04100f; stroke-width:3px; transition:opacity .2s; pointer-events:none; }
        .edge.dim .edge-flow{opacity:.05;} .edge.dim .edge-base{opacity:.25;}
        .edge.hot .edge-flow{stroke-width:3; animation-duration:.8s; opacity:1;} .edge.hot text{opacity:1;}

        .panel { border-radius:22px; padding:20px 22px; position:sticky; top:84px; }
        .panel .ptag { font-size:.68rem; letter-spacing:.2em; text-transform:uppercase; color:var(--primary); }
        .panel h2 { margin:6px 0 8px; font-size:1.35rem; }
        .panel .pdesc { color:#cfe6df; line-height:1.6; font-size:.9rem; margin:0 0 12px; }
        .seq { list-style:none; margin:0 0 6px; padding:0; counter-reset:s; }
        .seq li { position:relative; padding:7px 0 7px 34px; font-size:.85rem; color:#dceee9; border-left:1px dashed rgba(120,220,200,.25); margin-left:11px; }
        .seq li::before { counter-increment:s; content:counter(s); position:absolute; left:-11px; top:6px; width:22px; height:22px; border-radius:50%; background:rgba(0,255,170,.14); color:var(--primary); font-weight:800; font-size:.72rem; display:grid; place-items:center; border:1px solid var(--line); }
        .seq li b { color:#fff; } .seq li .tm { color:var(--gold); font-size:.74rem; }
        .doc-h { font-size:.68rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); margin:14px 0 8px; }
        .docs { display:flex; flex-direction:column; gap:7px; max-height:280px; overflow-y:auto; padding-right:3px; }
        .doc { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:12px; text-decoration:none; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--ink); transition:all .18s; }
        .doc:hover { border-color:var(--primary); background:rgba(0,255,170,.08); transform:translateX(3px); }
        .doc .di { width:30px; height:30px; flex:0 0 auto; border-radius:8px; display:grid; place-items:center; background:rgba(0,255,170,.12); color:var(--primary); }
        .doc .di svg{width:16px;height:16px;}
        .doc .dl { font-weight:700; font-size:.82rem; line-height:1.2; } .doc .ds { font-size:.64rem; color:var(--muted); text-transform:uppercase; }
        .doc .ar { margin-left:auto; color:var(--primary); }

        details.gloss { margin-top:14px; border-top:1px solid var(--line); padding-top:12px; }
        details.gloss summary { cursor:pointer; font-weight:800; font-size:.85rem; color:var(--primary); }
        .gl { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; margin-top:10px; font-size:.78rem; }
        .gl b { color:#fff; } .gl span { color:var(--muted); }

        .legend { display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:12px; font-size:.76rem; color:var(--muted); }
        .legend span { display:inline-flex; align-items:center; gap:6px; } .legend b { width:20px; height:4px; border-radius:999px; display:inline-block; }
        .note { text-align:center; font-size:.72rem; color:#4d6b63; margin-top:10px; }

        [data-theme="wcag-aaa"] body { background:#000!important; }
        [data-theme="wcag-aaa"] .grad{-webkit-text-fill-color:#ff0!important;}
        [data-theme="wcag-aaa"] .node,[data-theme="wcag-aaa"] .mod,[data-theme="wcag-aaa"] .panel,[data-theme="wcag-aaa"] .stat,[data-theme="wcag-aaa"] .doc{background:#000!important;border:2px solid #ff0!important;}
        [data-theme="wcag-aaa"] .node .ic,[data-theme="wcag-aaa"] .node .t,[data-theme="wcag-aaa"] .panel h2,[data-theme="wcag-aaa"] .stat .n,[data-theme="wcag-aaa"] .doc .dl{color:#ff0!important;}
        [data-theme="wcag-aaa"] .edge-flow{stroke:#ff0!important;filter:none!important;} [data-theme="wcag-aaa"] .node.dim{opacity:1!important;filter:none!important;}
        @media (prefers-reduced-motion:reduce){ .edge-flow,.coreglow{animation:none!important;} .edge-flow{stroke-dasharray:none;opacity:.75;} }
        @media (max-width:560px){ .node{width:92px;} .node .s{display:none;} .node.core{width:112px;} }

        /* klikatelná hrana */
        .edge-hit { fill:none; stroke:transparent; stroke-width:18; }
        .edge:hover .edge-flow { stroke-width:3.4; }
        .edge:hover text { opacity:1; }
        .maphint { text-align:center; font-size:.76rem; color:var(--muted); margin:8px 0 0; }

        /* modal spoje */
        .edge-modal { position:fixed; inset:0; z-index:200; display:none; align-items:center; justify-content:center; padding:20px;
            background:rgba(2,8,7,.72); backdrop-filter:blur(6px); }
        .edge-modal.open { display:flex; }
        .em { max-width:560px; width:100%; border-radius:20px; padding:24px 26px; position:relative;
            background:linear-gradient(160deg,#082420,#04130f); border:1px solid var(--line); box-shadow:0 30px 80px rgba(0,0,0,.55); }
        .em .x { position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.05); color:#fff; font-size:18px; cursor:pointer; }
        .emhead { display:flex; align-items:center; gap:10px; font-size:1.15rem; }
        .emdot { width:14px; height:14px; border-radius:50%; flex:0 0 auto; }
        .emflow { color:var(--primary); font-weight:700; margin:6px 0 16px; font-size:.92rem; }
        .er { display:grid; grid-template-columns:130px 1fr; gap:6px 14px; padding:9px 0; border-top:1px solid rgba(120,220,200,.12); }
        .erl { color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.04em; }
        .erv { color:#e6f4ef; font-size:.9rem; line-height:1.5; } .erv code { background:rgba(0,255,170,.12); padding:1px 6px; border-radius:5px; }

        /* sekce */
        .sec { margin-top:46px; }
        .sec-h { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
        .sec-h .si { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:rgba(0,255,170,.12); color:var(--primary); }
        .sec-h h2 { font-size:1.5rem; margin:0; } .sec-sub { color:var(--muted); font-size:.92rem; margin:0 0 18px; max-width:820px; }

        /* M2M animace */
        .m2m { border-radius:24px; padding:26px; }
        .lane { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 8px; }
        .lane .ep { width:160px; text-align:center; border-radius:16px; padding:16px 10px; background:rgba(255,255,255,.04); border:1px solid var(--line); }
        .lane .ep .ei { width:34px; height:34px; margin:0 auto 6px; color:var(--primary); } .lane .ep b{ font-size:.9rem; } .lane .ep span{ font-size:.7rem; color:var(--muted); display:block; }
        .wire2 { position:relative; flex:1; height:4px; background:linear-gradient(90deg,rgba(0,255,170,.2),rgba(55,160,255,.2)); border-radius:999px; }
        .pkt { position:absolute; top:50%; width:16px; height:16px; border-radius:4px; transform:translate(-50%,-50%); }
        .pkt.req { background:var(--secondary); box-shadow:0 0 12px var(--secondary); animation:pktR 3.2s linear infinite; }
        .pkt.ack { background:var(--primary); box-shadow:0 0 12px var(--primary); animation:pktA 3.2s linear infinite; }
        @keyframes pktR { 0%{left:0;opacity:0;} 8%{opacity:1;} 42%{left:100%;opacity:1;} 50%,100%{left:100%;opacity:0;} }
        @keyframes pktA { 0%,50%{left:100%;opacity:0;} 58%{opacity:1;left:100%;} 92%{left:0;opacity:1;} 100%{left:0;opacity:0;} }
        .lane .lbl { position:absolute; top:-14px; left:50%; transform:translateX(-50%); font-size:.68rem; color:var(--muted); }

        .steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; margin-top:18px; }
        .stepb { text-align:left; padding:12px 13px; border-radius:13px; cursor:pointer; background:rgba(255,255,255,.04); border:1px solid var(--line); color:var(--ink); transition:all .2s; }
        .stepb:hover { border-color:var(--primary); transform:translateY(-2px); }
        .stepb.on { background:linear-gradient(140deg,rgba(0,255,170,.16),rgba(55,160,255,.1)); border-color:var(--primary); }
        .stepb .sn { width:22px; height:22px; border-radius:50%; background:rgba(0,255,170,.15); color:var(--primary); font-weight:800; font-size:.72rem; display:grid; place-items:center; margin-bottom:7px; }
        .stepb b { font-size:.82rem; line-height:1.15; display:block; }
        .stepdet { margin-top:16px; border-radius:16px; padding:18px 20px; background:rgba(0,255,170,.05); border:1px solid var(--line); }
        .stepdet .lay { font-size:.95rem; color:#eafff6; line-height:1.6; }
        .stepdet .tech { margin-top:12px; padding:12px 14px; border-radius:10px; background:#04130f; border:1px solid rgba(120,220,200,.18); font-size:.84rem; color:#bfe9dc; line-height:1.55; }
        .stepdet .tech b { color:var(--primary); }
        pre.code { background:#04130f; border:1px solid rgba(120,220,200,.18); border-radius:12px; padding:14px 16px; overflow-x:auto; font-size:.76rem; color:#bfe9dc; line-height:1.5; margin-top:16px; }
        pre.code .tag{color:#7fe0c4;} pre.code .at{color:#ffd86b;}

        .uctab { width:100%; border-collapse:collapse; margin-top:16px; font-size:.82rem; }
        .uctab th,.uctab td { border:1px solid var(--line); padding:8px 10px; text-align:left; vertical-align:top; }
        .uctab th { background:rgba(0,255,170,.08); color:var(--primary); }

        /* změny 1.8.2026 */
        .chg { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px; }
        .chgc { border-radius:16px; padding:16px 18px; background:rgba(255,255,255,.035); border:1px solid var(--line); }
        .chgc .ct { font-weight:800; color:var(--primary); font-size:.92rem; margin-bottom:6px; display:flex; align-items:center; gap:8px; }
        .chgc p { margin:0; color:#cfe6df; font-size:.86rem; line-height:1.55; }
        .chgc .src { display:block; margin-top:8px; font-size:.68rem; color:var(--muted); }
