
/* Akademia Kryzysowa 100 — WIDE UI */
body:has(.ak100-app) .entry-title,
body:has(.ak100-app) .page-title,
body:has(.ak100-app) h1.entry-title {
    display: none !important;
}

body:has(.ak100-app) .content-area,
body:has(.ak100-app) .site-main,
body:has(.ak100-app) article,
body:has(.ak100-app) .entry-content,
body:has(.ak100-app) .wp-block-post-content {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ak100-app{
    --r:#e23b3b;
    --r2:#ff735f;
    --d:#07090d;
    --p:#151b24;
    --p2:#202938;
    --m:#c8d3e3;
    --gold:#d8a94a;
    width:100vw;
    max-width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
    min-height:100vh;
    color:#f8fafc;
    background:
      radial-gradient(circle at 12% 0%, rgba(226,59,59,.24), transparent 34%),
      radial-gradient(circle at 90% 10%, rgba(216,169,74,.16), transparent 26%),
      linear-gradient(135deg,#07090d 0%,#0b1018 48%,#050608 100%);
    padding:32px clamp(18px,4vw,72px);
    border-radius:0;
    font-family:Inter,Roboto,Arial,sans-serif;
    line-height:1.62;
    overflow:hidden;
}
.ak100-app *{box-sizing:border-box}
.ak100-nav{
    position:sticky;
    top:0;
    z-index:50;
    display:flex;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    background:rgba(8,11,16,.86);
    backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,.12);
    border-radius:22px;
    padding:14px 18px;
    margin:0 auto 34px;
    max-width:1380px;
    box-shadow:0 20px 60px rgba(0,0,0,.28);
}
.ak100-brand{font-weight:950;margin-right:auto;font-size:18px;letter-spacing:.02em}
.ak100-nav button,.ak100-btn{
    background:linear-gradient(135deg,var(--r),var(--r2));
    color:#fff!important;
    border:0;
    border-radius:14px;
    padding:13px 18px;
    font-weight:900;
    cursor:pointer;
    text-decoration:none!important;
    box-shadow:0 12px 28px rgba(226,59,59,.22);
}
.ak100-nav button{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    box-shadow:none;
}
.ak100-nav button:hover,.ak100-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}
.ak100-btn.ghost,.ghost{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);box-shadow:none}
.ak100-tab{display:none;max-width:1380px;margin:0 auto}
.ak100-tab.active{display:block}
.ak100-kicker{color:#ffc1bd;text-transform:uppercase;letter-spacing:.16em;font-size:13px;font-weight:950}
.ak100-hero{
    display:grid;
    grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
    gap:44px;
    align-items:center;
    min-height:650px;
    padding:28px 0 34px;
}
.ak100-hero h1,.ak100-title h1{
    font-size:clamp(54px,7vw,112px);
    line-height:.92;
    margin:16px 0 22px;
    color:#fff;
    letter-spacing:-.055em;
    max-width:900px;
}
.ak100-hero p,.ak100-title p{
    color:var(--m);
    font-size:clamp(18px,1.4vw,23px);
    max-width:850px;
}
.ak100-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px}
.ak100-art{
    position:relative;
    height:min(64vh,620px);
    min-height:460px;
    border-radius:34px;
    background:
      linear-gradient(180deg,rgba(30,55,82,.85),rgba(10,15,24,.98)),
      linear-gradient(#152336,#0d1119);
    overflow:hidden;
    border:1px solid rgba(255,255,255,.16);
    box-shadow:0 30px 90px rgba(0,0,0,.45), inset 0 0 90px rgba(255,255,255,.04);
}
.sun{position:absolute;right:76px;top:66px;width:108px;height:108px;border-radius:50%;background:#ffd36c;box-shadow:0 0 90px #ffd36c}
.mountain{position:absolute;bottom:0;width:0;height:0;border-left:280px solid transparent;border-right:280px solid transparent;border-bottom:310px solid #26384a}
.mountain.one{left:-30px}
.mountain.two{right:-140px;border-bottom-color:#1d2a3a}
.tent{position:absolute;left:23%;bottom:78px;width:210px;height:135px;background:linear-gradient(135deg,#c84438,#7b221f);clip-path:polygon(50% 0,100% 100%,0 100%);filter:drop-shadow(0 25px 25px rgba(0,0,0,.3))}
.fire{position:absolute;left:54%;bottom:88px;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle,#ffd36c,#f05a36 44%,transparent 50%);box-shadow:0 0 40px #f05a36}
.flag{position:absolute;left:68%;bottom:130px;width:80px;height:110px;border-left:6px solid #ddd}
.flag:after{content:"";display:block;width:64px;height:36px;background:#e23b3b;border-radius:0 8px 8px 0}
.ak100-grid3{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin:34px 0;
}
.ak100-grid3 div,.ak100-card,.ak100-knowledge article{
    background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.04));
    border:1px solid rgba(255,255,255,.14);
    border-radius:24px;
    padding:30px;
    box-shadow:0 24px 60px rgba(0,0,0,.18);
}
.ak100-grid3 h3,.ak100-card h3,.ak100-knowledge h2{color:#fff;font-size:28px;margin-top:0}
.ak100-grid3 p,.ak100-card p,.ak100-knowledge p,.ak100-card li{
    color:var(--m);
    font-size:17px;
}
.ak100-chip{
    display:inline-flex;
    background:rgba(226,59,59,.18);
    border:1px solid rgba(226,59,59,.45);
    color:#ffd9d9;
    border-radius:99px;
    padding:8px 13px;
    font-weight:950;
    font-size:12px;
}
.ak100-alert{
    background:rgba(214,166,77,.13);
    border:1px solid rgba(214,166,77,.45);
    color:#ffe6ba;
    padding:18px;
    border-radius:18px;
    margin:18px 0;
    font-size:17px;
}
.ak100-progress{height:15px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}
.ak100-progress span{display:block;height:100%;background:linear-gradient(90deg,#e23b3b,#ffd36c)}
.ak100-small{color:var(--m);font-size:15px}
.ak100-knowledge{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.ak100-course-layout{
    display:grid;
    grid-template-columns:420px minmax(0,1fr);
    gap:28px;
    align-items:start;
}
.ak100-trail{
    max-height:78vh;
    overflow:auto;
    position:sticky;
    top:98px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.14);
    border-radius:26px;
    padding:18px;
    box-shadow:0 24px 80px rgba(0,0,0,.28);
}
.ak100-camp{
    width:100%;
    display:grid;
    grid-template-columns:58px 1fr;
    gap:14px;
    text-align:left;
    align-items:center;
    background:rgba(0,0,0,.28);
    border:1px solid rgba(255,255,255,.14);
    color:#fff;
    border-radius:20px;
    padding:14px;
    margin-bottom:11px;
    cursor:pointer;
}
.ak100-camp span{width:54px;height:54px;border-radius:18px;background:#2a3444;display:flex;align-items:center;justify-content:center;font-size:22px}
.ak100-camp b{font-size:15px}
.ak100-camp small{display:block;color:var(--m);font-size:12px}
.ak100-camp.active,.ak100-camp:hover{border-color:#e23b3b;background:rgba(226,59,59,.17)}
.ak100-camp.done span{background:#16894b}
.ak100-camp.locked{opacity:.52;cursor:not-allowed}
.ak100-level{display:none}
.ak100-level.active{display:block}
.ak100-head{
    display:grid;
    grid-template-columns:1fr 220px;
    gap:22px;
    background:linear-gradient(180deg,rgba(255,255,255,.085),rgba(255,255,255,.04));
    border:1px solid rgba(255,255,255,.14);
    border-radius:26px;
    padding:30px;
    margin-bottom:22px;
}
.ak100-head h2{font-size:clamp(34px,3vw,54px);line-height:1.05;color:#fff;margin:14px 0}
.ak100-reward{background:rgba(0,0,0,.26);border-radius:20px;padding:22px}
.ak100-reward b{display:block;font-size:30px;color:#fff}
.ak100-reward span{color:#ffd9d9}
.ak100-card{margin-bottom:22px}
.ak100-card textarea{width:100%;min-height:170px;background:#0d1118;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:16px;font-size:16px}
.ak100-question{background:rgba(0,0,0,.24);border-radius:18px;padding:18px;margin:14px 0}
.ak100-question label{display:block;color:var(--m);margin:9px 0;cursor:pointer;font-size:16px}
.ak100-question.good{outline:1px solid #36c871}
.ak100-question.bad{outline:1px solid #ff6b6b}
.ak100-result{font-weight:900;margin-top:15px;font-size:17px}
.ak100-cert{background:#f7efe2;color:#111;padding:38px;border-radius:22px;max-width:1120px;margin:auto}
.ak100-cert-inner{border:8px double #8b642e;background:radial-gradient(circle,#fffdf7,#f2e6d1);padding:58px;text-align:center}
.cert-top{letter-spacing:.22em;color:#7b5423;font-weight:950}
.ak100-cert h1{font-size:42px;color:#111}
.ak100-cert h2{font-size:44px;color:#111;border-bottom:2px solid #8b642e;display:inline-block;padding:0 45px 8px}
.ak100-cert p{color:#333;font-size:18px}
.cert-sign{margin:50px auto 20px;max-width:420px}
.cert-sign span{display:block;border-bottom:2px solid #111;height:40px}
.cert-id{font-size:14px!important;color:#555!important}
@media(max-width:1100px){
    .ak100-hero,.ak100-grid3,.ak100-course-layout,.ak100-head,.ak100-knowledge{grid-template-columns:1fr}
    .ak100-trail{position:relative;top:0;max-height:none}
    .ak100-app{padding:20px}
    .ak100-hero{min-height:auto}
    .ak100-art{height:360px;min-height:320px}
}
@media print{
    body *{visibility:hidden}
    .ak100-cert,.ak100-cert *{visibility:visible}
    .ak100-cert{position:absolute;left:0;top:0;width:100%}
    .ak100-btn,.ak100-nav{display:none!important}
}


/* CLEAN MODE: ukrycie uszkodzonego logo/nagłówka/stopki motywu na stronie platformy */
body:has(.ak100-app) header,
body:has(.ak100-app) .site-header,
body:has(.ak100-app) .wp-block-template-part:has(header),
body:has(.ak100-app) footer,
body:has(.ak100-app) .site-footer,
body:has(.ak100-app) .wp-block-template-part:has(footer),
body:has(.ak100-app) .custom-logo-link,
body:has(.ak100-app) .custom-logo,
body:has(.ak100-app) .site-branding,
body:has(.ak100-app) .wp-block-site-logo {
    display: none !important;
}

body:has(.ak100-app) {
    background: #07090d !important;
}

body:has(.ak100-app) .wp-site-blocks,
body:has(.ak100-app) main,
body:has(.ak100-app) .wp-block-group {
    margin-top: 0 !important;
    padding-top: 0 !important;
}



/* READABLE KNOWLEDGE BASE */
#ak100-baza {
    background:
        radial-gradient(circle at 10% 0%, rgba(226,59,59,.12), transparent 28%),
        linear-gradient(135deg, #07090d 0%, #0b1018 55%, #050608 100%);
    border-radius: 28px;
    padding: clamp(18px, 3vw, 44px);
}

#ak100-baza .ak100-title {
    max-width: 1100px;
    margin-bottom: 30px;
}

#ak100-baza .ak100-title h1 {
    font-size: clamp(42px, 5vw, 76px);
    letter-spacing: -0.04em;
    margin-bottom: 16px;
}

#ak100-baza .ak100-title p {
    max-width: 900px;
    font-size: 20px;
    line-height: 1.7;
    color: #d5deeb;
}

#ak100-baza .ak100-knowledge {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
}

#ak100-baza .ak100-knowledge article {
    background: linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    border-radius: 24px !important;
    padding: 30px !important;
    box-shadow: 0 22px 70px rgba(0,0,0,.24);
    color: #f8fafc;
}

#ak100-baza .ak100-knowledge article:hover {
    border-color: rgba(226,59,59,.45) !important;
    transform: translateY(-2px);
    transition: .18s ease;
}

#ak100-baza .ak100-chip {
    background: rgba(226,59,59,.16);
    color: #ffd6d6;
    border-color: rgba(226,59,59,.38);
    margin-bottom: 14px;
}

#ak100-baza .ak100-knowledge h2 {
    font-size: clamp(26px, 2vw, 36px);
    line-height: 1.1;
    margin: 12px 0 18px;
    color: #ffffff;
}

#ak100-baza .ak100-knowledge h3 {
    font-size: 22px;
    margin-top: 24px;
    margin-bottom: 10px;
    color: #ffffff;
    border-top: 1px solid rgba(255,255,255,.12);
    padding-top: 18px;
}

#ak100-baza .ak100-knowledge p {
    font-size: 17px;
    line-height: 1.75;
    color: #cbd6e6;
    margin: 0 0 14px;
}

#ak100-baza .ak100-knowledge article p:last-child {
    margin-bottom: 0;
}

@media (max-width: 980px) {
    #ak100-baza .ak100-knowledge {
        grid-template-columns: 1fr;
    }
}



/* MINIMALIST GAME MAP STYLE */
.ak100-game-layout {
    grid-template-columns: minmax(520px, 0.9fr) minmax(0, 1.1fr) !important;
    align-items: start;
}

.ak100-game-map {
    background: #f6f8fb !important;
    border: 1px solid #e1e6ef !important;
    border-radius: 34px !important;
    padding: 34px !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.18) !important;
    max-height: 82vh !important;
}

.ak100-map-board {
    position: relative;
    min-height: 2100px;
    padding: 86px 0 60px;
}

.ak100-start-bubble {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    background: #8be11b;
    color: #102200;
    font-weight: 950;
    font-size: 22px;
    padding: 12px 26px;
    border-radius: 12px;
    box-shadow: 0 12px 24px rgba(139,225,27,.32);
    z-index: 5;
}

.ak100-start-bubble:after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -12px;
    transform: translateX(-50%);
    border-left: 12px solid transparent;
    border-right: 12px solid transparent;
    border-top: 14px solid #8be11b;
}

.ak100-map-line {
    position: absolute;
    top: 92px;
    left: 50%;
    width: 4px;
    height: calc(100% - 130px);
    background: linear-gradient(#d9dee8 0%, #d9dee8 100%);
    border-radius: 99px;
    transform: translateX(-50%);
    z-index: 0;
}

.ak100-node {
    position: absolute !important;
    width: 150px !important;
    height: 132px !important;
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: #111827 !important;
    cursor: pointer;
    z-index: 2;
    text-align: center !important;
    opacity: 1 !important;
}

.ak100-node:before {
    content: "";
    position: absolute;
    inset: 34px 12px 4px;
    background: linear-gradient(180deg,#ffffff,#e6ebf3);
    border: 1px solid #cfd8e6;
    border-radius: 18px;
    box-shadow:
        0 14px 22px rgba(20,30,45,.14),
        inset 0 -6px 0 rgba(120,140,165,.12);
    transform: skewY(-10deg);
    z-index: -1;
}

.ak100-node-icon {
    width: 76px !important;
    height: 76px !important;
    border-radius: 22px !important;
    background: linear-gradient(180deg,#f9fbff,#dfe6f1) !important;
    border: 3px solid #cfd8e6;
    display: flex !important;
    align-items: center;
    justify-content: center;
    font-size: 36px !important;
    box-shadow: 0 12px 20px rgba(0,0,0,.16);
}

.ak100-node.active .ak100-node-icon {
    border-color: #93e51d;
    box-shadow: 0 0 0 5px rgba(147,229,29,.26), 0 14px 24px rgba(0,0,0,.18);
}

.ak100-node.done .ak100-node-icon {
    background: linear-gradient(180deg,#e7ffe1,#baf09a) !important;
    border-color: #54c939;
}

.ak100-node.locked {
    filter: grayscale(1);
    opacity: .45 !important;
    cursor: not-allowed;
}

.ak100-node b {
    position: absolute;
    top: 94px;
    left: 50%;
    transform: translateX(-50%);
    background: #111827;
    color: #fff;
    font-size: 11px !important;
    padding: 4px 8px;
    border-radius: 999px;
    white-space: nowrap;
}

.ak100-node small {
    display: none !important;
}

/* Zig-zag positioning for 100 nodes */
.ak100-node:nth-of-type(1) { top: 110px; left: 50%; transform: translateX(-50%); }
.ak100-node:nth-of-type(4n+2) { left: 8%; }
.ak100-node:nth-of-type(4n+3) { left: 36%; }
.ak100-node:nth-of-type(4n+4) { left: 64%; }
.ak100-node:nth-of-type(4n+5) { left: 82%; }

.ak100-node:nth-of-type(2) { top: 250px; }
.ak100-node:nth-of-type(3) { top: 390px; }
.ak100-node:nth-of-type(4) { top: 530px; }
.ak100-node:nth-of-type(5) { top: 670px; }
.ak100-node:nth-of-type(6) { top: 810px; }
.ak100-node:nth-of-type(7) { top: 950px; }
.ak100-node:nth-of-type(8) { top: 1090px; }
.ak100-node:nth-of-type(9) { top: 1230px; }
.ak100-node:nth-of-type(10) { top: 1370px; }
.ak100-node:nth-of-type(11) { top: 1510px; }
.ak100-node:nth-of-type(n+12) { position: relative !important; top: auto !important; left: auto !important; transform: none !important; display: inline-flex !important; margin: 14px 18px !important; }

.ak100-node:nth-of-type(n+12):before {
    inset: 34px 10px 4px;
}

.ak100-game-map::-webkit-scrollbar {
    width: 10px;
}
.ak100-game-map::-webkit-scrollbar-track {
    background: #e8edf5;
    border-radius: 99px;
}
.ak100-game-map::-webkit-scrollbar-thumb {
    background: #b8c4d6;
    border-radius: 99px;
}

.ak100-lesson-panel {
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 30px;
    padding: 24px;
    min-height: 720px;
}

.ak100-lesson-panel .ak100-head {
    margin-top: 0;
}

/* Hide old list styling that conflicted */
.ak100-game-map .ak100-camp:hover {
    transform: translateY(-3px);
}

@media (max-width: 1100px) {
    .ak100-game-layout {
        grid-template-columns: 1fr !important;
    }
    .ak100-game-map {
        position: relative !important;
        top: 0 !important;
        max-height: 680px !important;
    }
}



/* NEW CLEAN PATH (STAIRS STYLE) */
.ak100-game-map {
    background:#f5f7fb !important;
    padding:30px !important;
}

.ak100-map-board {
    display:grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap:40px 60px;
    position:relative;
    padding-top:80px;
}

.ak100-map-line { display:none !important; }

/* NODE STYLE */
.ak100-node {
    position:relative !important;
    width:100% !important;
    height:120px !important;
    background:#ffffff !important;
    border-radius:20px !important;
    border:1px solid #dfe6f1 !important;
    box-shadow:0 12px 30px rgba(0,0,0,.1);
    display:flex !important;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    cursor:pointer;
    transition:.2s;
}

.ak100-node:hover {
    transform:translateY(-4px) scale(1.02);
    box-shadow:0 20px 40px rgba(0,0,0,.15);
}

.ak100-node-icon {
    font-size:28px !important;
    margin-bottom:6px;
}

.ak100-node b {
    position:static !important;
    transform:none !important;
    background:#111;
    color:#fff;
    padding:4px 10px;
    border-radius:999px;
    font-size:12px;
}

/* ACTIVE */
.ak100-node.active {
    outline:3px solid #8be11b;
}

/* DONE */
.ak100-node.done {
    background:#eaffea !important;
    border-color:#8be11b !important;
}

/* LOCKED */
.ak100-node.locked {
    opacity:.4;
    pointer-events:none;
}

/* STAIR EFFECT */
.ak100-node:nth-child(6n+4),
.ak100-node:nth-child(6n+5),
.ak100-node:nth-child(6n+6) {
    direction:rtl;
}

/* CONNECTOR LINES */
.ak100-node::after {
    content:"";
    position:absolute;
    right:-30px;
    top:50%;
    width:30px;
    height:3px;
    background:#cfd8e6;
}

.ak100-node:nth-child(3n)::after {
    display:none;
}

.ak100-node:nth-child(3n)::before {
    content:"";
    position:absolute;
    bottom:-30px;
    left:50%;
    transform:translateX(-50%);
    width:3px;
    height:30px;
    background:#cfd8e6;
}



/* =========================================================
   SNAKE MAP FINAL — układ 3 kafelki w rzędzie jak szkic
   ========================================================= */

.ak100-game-layout {
    grid-template-columns: minmax(620px, 0.95fr) minmax(0, 1.05fr) !important;
    gap: 32px !important;
}

.ak100-game-map {
    background: #f6f8fb !important;
    border: 1px solid #dde5f0 !important;
    border-radius: 30px !important;
    padding: 36px !important;
    max-height: 82vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

.ak100-map-board {
    position: relative !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(135px, 1fr)) !important;
    column-gap: 90px !important;
    row-gap: 76px !important;
    min-height: auto !important;
    padding: 90px 18px 40px !important;
    align-items: center !important;
}

.ak100-map-line {
    display: none !important;
}

.ak100-start-bubble {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: #8be11b !important;
    color: #102200 !important;
    font-weight: 950 !important;
    font-size: 22px !important;
    padding: 12px 28px !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 24px rgba(139,225,27,.32) !important;
    z-index: 10 !important;
}

/* reset starego absolutnego układu */
.ak100-map-board > .ak100-node,
.ak100-map-board > .ak100-node:nth-of-type(n),
.ak100-map-board > .ak100-node:nth-of-type(n+12) {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    height: 142px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 16px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(180deg, #ffffff, #eef3f9) !important;
    border: 2px solid #d8e1ee !important;
    border-radius: 22px !important;
    box-shadow: 0 18px 35px rgba(15, 23, 42, .13), inset 0 -7px 0 rgba(130,150,175,.12) !important;
    color: #111827 !important;
    opacity: 1 !important;
    z-index: 2 !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.ak100-map-board > .ak100-node:before {
    display: none !important;
}

.ak100-map-board > .ak100-node:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 24px 48px rgba(15,23,42,.18) !important;
}

.ak100-map-board > .ak100-node .ak100-node-icon {
    width: 70px !important;
    height: 70px !important;
    min-width: 70px !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, #ffffff, #dfe8f3) !important;
    border: 2px solid #c9d5e5 !important;
    box-shadow: 0 10px 22px rgba(15,23,42,.14) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 34px !important;
    margin: 0 0 10px !important;
}

.ak100-map-board > .ak100-node b {
    position: static !important;
    transform: none !important;
    background: #111827 !important;
    color: #fff !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.ak100-map-board > .ak100-node small {
    display: block !important;
    color: #334155 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    margin-top: 8px !important;
    max-width: 130px !important;
}

/* aktywny i ukończony */
.ak100-map-board > .ak100-node.active {
    border-color: #8be11b !important;
    box-shadow: 0 0 0 5px rgba(139,225,27,.22), 0 22px 42px rgba(15,23,42,.18) !important;
}

.ak100-map-board > .ak100-node.done {
    background: linear-gradient(180deg, #f0ffe9, #d7ffc7) !important;
    border-color: #70d63b !important;
}

.ak100-map-board > .ak100-node.locked {
    opacity: .55 !important;
    cursor: not-allowed !important;
    filter: grayscale(.95) !important;
}

/* układ snake:
   1 2 3
   6 5 4
   7 8 9
   12 11 10
*/
.ak100-map-board > .ak100-node:nth-of-type(6n+1) { grid-column: 1 !important; }
.ak100-map-board > .ak100-node:nth-of-type(6n+2) { grid-column: 2 !important; }
.ak100-map-board > .ak100-node:nth-of-type(6n+3) { grid-column: 3 !important; }

.ak100-map-board > .ak100-node:nth-of-type(6n+4) { grid-column: 3 !important; }
.ak100-map-board > .ak100-node:nth-of-type(6n+5) { grid-column: 2 !important; }
.ak100-map-board > .ak100-node:nth-of-type(6n+0) { grid-column: 1 !important; }

/* STRZAŁKI poziome */
.ak100-map-board > .ak100-node:nth-of-type(6n+1)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+2)::after {
    content: "➜" !important;
    position: absolute !important;
    right: -62px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #111827 !important;
    font-size: 42px !important;
    font-weight: 900 !important;
    display: block !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
}

.ak100-map-board > .ak100-node:nth-of-type(6n+4)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+5)::after {
    content: "⬅" !important;
    position: absolute !important;
    left: -62px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #111827 !important;
    font-size: 42px !important;
    font-weight: 900 !important;
    display: block !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
}

/* STRZAŁKI w dół na końcu rzędu */
.ak100-map-board > .ak100-node:nth-of-type(6n+3)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+0)::after {
    content: "⬇" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: -58px !important;
    transform: translateX(-50%) !important;
    color: #111827 !important;
    font-size: 42px !important;
    font-weight: 900 !important;
    display: block !important;
    background: transparent !important;
    width: auto !important;
    height: auto !important;
}

/* ostatni kafelek bez strzałki */
.ak100-map-board > .ak100-node:last-child::after {
    display: none !important;
}

.ak100-lesson-panel {
    min-height: 760px !important;
}

@media (max-width: 1200px) {
    .ak100-game-layout {
        grid-template-columns: 1fr !important;
    }
    .ak100-game-map {
        max-height: none !important;
    }
}

@media (max-width: 760px) {
    .ak100-map-board {
        grid-template-columns: 1fr !important;
        gap: 54px !important;
    }

    .ak100-map-board > .ak100-node:nth-of-type(n) {
        grid-column: 1 !important;
    }

    .ak100-map-board > .ak100-node:nth-of-type(n)::after {
        content: "⬇" !important;
        left: 50% !important;
        right: auto !important;
        bottom: -48px !important;
        top: auto !important;
        transform: translateX(-50%) !important;
        font-size: 34px !important;
    }
}



/* =========================================================
   SNAKE FINAL FLEX — bez rozsypywania mapy
   ========================================================= */

.ak100-game-layout {
    grid-template-columns: minmax(620px, 0.95fr) minmax(0, 1.05fr) !important;
    gap: 32px !important;
}

.ak100-game-map {
    background: #f6f8fb !important;
    border: 1px solid #dde5f0 !important;
    border-radius: 30px !important;
    padding: 34px !important;
    max-height: 82vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

.ak100-map-board {
    position: relative !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 58px 58px !important;
    min-height: auto !important;
    padding: 92px 10px 40px !important;
    align-items: stretch !important;
    justify-content: center !important;
}

.ak100-map-line { display: none !important; }

.ak100-start-bubble {
    position: absolute !important;
    top: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    background: #8be11b !important;
    color: #102200 !important;
    font-weight: 950 !important;
    font-size: 22px !important;
    padding: 12px 28px !important;
    border-radius: 12px !important;
    box-shadow: 0 12px 24px rgba(139,225,27,.32) !important;
    z-index: 10 !important;
}

.ak100-map-board > .ak100-node,
.ak100-map-board > .ak100-node:nth-of-type(n),
.ak100-map-board > .ak100-node:nth-of-type(n+12) {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: calc((100% - 116px) / 3) !important;
    max-width: 180px !important;
    min-width: 145px !important;
    height: 142px !important;
    margin: 0 !important;
    padding: 16px !important;
    display: flex !important;
    flex: 0 0 calc((100% - 116px) / 3) !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(180deg, #ffffff, #eef3f9) !important;
    border: 2px solid #d8e1ee !important;
    border-radius: 22px !important;
    box-shadow: 0 18px 35px rgba(15, 23, 42, .13), inset 0 -7px 0 rgba(130,150,175,.12) !important;
    color: #111827 !important;
    opacity: 1 !important;
    z-index: 2 !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

.ak100-map-board > .ak100-node:before {
    display: none !important;
}

.ak100-map-board > .ak100-node:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 24px 48px rgba(15,23,42,.18) !important;
}

.ak100-map-board > .ak100-node .ak100-node-icon {
    width: 66px !important;
    height: 66px !important;
    min-width: 66px !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, #ffffff, #dfe8f3) !important;
    border: 2px solid #c9d5e5 !important;
    box-shadow: 0 10px 22px rgba(15,23,42,.14) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 32px !important;
    margin: 0 0 10px !important;
}

.ak100-map-board > .ak100-node b {
    position: static !important;
    transform: none !important;
    background: #111827 !important;
    color: #fff !important;
    padding: 5px 10px !important;
    border-radius: 999px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    margin: 0 !important;
}

.ak100-map-board > .ak100-node small {
    display: block !important;
    color: #334155 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    margin-top: 8px !important;
    max-width: 135px !important;
}

.ak100-map-board > .ak100-node.active {
    border-color: #8be11b !important;
    box-shadow: 0 0 0 5px rgba(139,225,27,.22), 0 22px 42px rgba(15,23,42,.18) !important;
}

.ak100-map-board > .ak100-node.done {
    background: linear-gradient(180deg, #f0ffe9, #d7ffc7) !important;
    border-color: #70d63b !important;
}

.ak100-map-board > .ak100-node.locked {
    opacity: .55 !important;
    cursor: not-allowed !important;
    filter: grayscale(.95) !important;
}

/* usunięcie starych strzałek */
.ak100-map-board > .ak100-node::after,
.ak100-map-board > .ak100-node::before {
    background: transparent !important;
}

/* nowe strzałki według DOM, wizualnie układają się snake dzięki order */
.ak100-map-board > .ak100-node:nth-of-type(6n+1)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+2)::after {
    content: "➜" !important;
    position: absolute !important;
    right: -48px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #111827 !important;
    font-size: 36px !important;
    font-weight: 900 !important;
    display: block !important;
}

.ak100-map-board > .ak100-node:nth-of-type(6n+4)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+5)::after {
    content: "⬅" !important;
    position: absolute !important;
    left: -48px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #111827 !important;
    font-size: 36px !important;
    font-weight: 900 !important;
    display: block !important;
}

.ak100-map-board > .ak100-node:nth-of-type(6n+3)::after,
.ak100-map-board > .ak100-node:nth-of-type(6n+0)::after {
    content: "⬇" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: -50px !important;
    transform: translateX(-50%) !important;
    color: #111827 !important;
    font-size: 36px !important;
    font-weight: 900 !important;
    display: block !important;
}

.ak100-map-board > .ak100-node:last-child::after {
    display: none !important;
}

/* kolejność snake */
.ak100-map-board > .ak100-node:nth-of-type(1){order:1!important;}
.ak100-map-board > .ak100-node:nth-of-type(2){order:2!important;}
.ak100-map-board > .ak100-node:nth-of-type(3){order:3!important;}
.ak100-map-board > .ak100-node:nth-of-type(4){order:6!important;}
.ak100-map-board > .ak100-node:nth-of-type(5){order:5!important;}
.ak100-map-board > .ak100-node:nth-of-type(6){order:4!important;}
.ak100-map-board > .ak100-node:nth-of-type(7){order:7!important;}
.ak100-map-board > .ak100-node:nth-of-type(8){order:8!important;}
.ak100-map-board > .ak100-node:nth-of-type(9){order:9!important;}
.ak100-map-board > .ak100-node:nth-of-type(10){order:12!important;}
.ak100-map-board > .ak100-node:nth-of-type(11){order:11!important;}
.ak100-map-board > .ak100-node:nth-of-type(12){order:10!important;}
.ak100-map-board > .ak100-node:nth-of-type(13){order:13!important;}
.ak100-map-board > .ak100-node:nth-of-type(14){order:14!important;}
.ak100-map-board > .ak100-node:nth-of-type(15){order:15!important;}
.ak100-map-board > .ak100-node:nth-of-type(16){order:18!important;}
.ak100-map-board > .ak100-node:nth-of-type(17){order:17!important;}
.ak100-map-board > .ak100-node:nth-of-type(18){order:16!important;}
.ak100-map-board > .ak100-node:nth-of-type(19){order:19!important;}
.ak100-map-board > .ak100-node:nth-of-type(20){order:20!important;}
.ak100-map-board > .ak100-node:nth-of-type(21){order:21!important;}
.ak100-map-board > .ak100-node:nth-of-type(22){order:24!important;}
.ak100-map-board > .ak100-node:nth-of-type(23){order:23!important;}
.ak100-map-board > .ak100-node:nth-of-type(24){order:22!important;}
.ak100-map-board > .ak100-node:nth-of-type(25){order:25!important;}
.ak100-map-board > .ak100-node:nth-of-type(26){order:26!important;}
.ak100-map-board > .ak100-node:nth-of-type(27){order:27!important;}
.ak100-map-board > .ak100-node:nth-of-type(28){order:30!important;}
.ak100-map-board > .ak100-node:nth-of-type(29){order:29!important;}
.ak100-map-board > .ak100-node:nth-of-type(30){order:28!important;}
.ak100-map-board > .ak100-node:nth-of-type(31){order:31!important;}
.ak100-map-board > .ak100-node:nth-of-type(32){order:32!important;}
.ak100-map-board > .ak100-node:nth-of-type(33){order:33!important;}
.ak100-map-board > .ak100-node:nth-of-type(34){order:36!important;}
.ak100-map-board > .ak100-node:nth-of-type(35){order:35!important;}
.ak100-map-board > .ak100-node:nth-of-type(36){order:34!important;}
.ak100-map-board > .ak100-node:nth-of-type(37){order:37!important;}
.ak100-map-board > .ak100-node:nth-of-type(38){order:38!important;}
.ak100-map-board > .ak100-node:nth-of-type(39){order:39!important;}
.ak100-map-board > .ak100-node:nth-of-type(40){order:42!important;}
.ak100-map-board > .ak100-node:nth-of-type(41){order:41!important;}
.ak100-map-board > .ak100-node:nth-of-type(42){order:40!important;}
.ak100-map-board > .ak100-node:nth-of-type(43){order:43!important;}
.ak100-map-board > .ak100-node:nth-of-type(44){order:44!important;}
.ak100-map-board > .ak100-node:nth-of-type(45){order:45!important;}
.ak100-map-board > .ak100-node:nth-of-type(46){order:48!important;}
.ak100-map-board > .ak100-node:nth-of-type(47){order:47!important;}
.ak100-map-board > .ak100-node:nth-of-type(48){order:46!important;}
.ak100-map-board > .ak100-node:nth-of-type(49){order:49!important;}
.ak100-map-board > .ak100-node:nth-of-type(50){order:50!important;}
.ak100-map-board > .ak100-node:nth-of-type(51){order:51!important;}
.ak100-map-board > .ak100-node:nth-of-type(52){order:54!important;}
.ak100-map-board > .ak100-node:nth-of-type(53){order:53!important;}
.ak100-map-board > .ak100-node:nth-of-type(54){order:52!important;}
.ak100-map-board > .ak100-node:nth-of-type(55){order:55!important;}
.ak100-map-board > .ak100-node:nth-of-type(56){order:56!important;}
.ak100-map-board > .ak100-node:nth-of-type(57){order:57!important;}
.ak100-map-board > .ak100-node:nth-of-type(58){order:60!important;}
.ak100-map-board > .ak100-node:nth-of-type(59){order:59!important;}
.ak100-map-board > .ak100-node:nth-of-type(60){order:58!important;}
.ak100-map-board > .ak100-node:nth-of-type(61){order:61!important;}
.ak100-map-board > .ak100-node:nth-of-type(62){order:62!important;}
.ak100-map-board > .ak100-node:nth-of-type(63){order:63!important;}
.ak100-map-board > .ak100-node:nth-of-type(64){order:66!important;}
.ak100-map-board > .ak100-node:nth-of-type(65){order:65!important;}
.ak100-map-board > .ak100-node:nth-of-type(66){order:64!important;}
.ak100-map-board > .ak100-node:nth-of-type(67){order:67!important;}
.ak100-map-board > .ak100-node:nth-of-type(68){order:68!important;}
.ak100-map-board > .ak100-node:nth-of-type(69){order:69!important;}
.ak100-map-board > .ak100-node:nth-of-type(70){order:72!important;}
.ak100-map-board > .ak100-node:nth-of-type(71){order:71!important;}
.ak100-map-board > .ak100-node:nth-of-type(72){order:70!important;}
.ak100-map-board > .ak100-node:nth-of-type(73){order:73!important;}
.ak100-map-board > .ak100-node:nth-of-type(74){order:74!important;}
.ak100-map-board > .ak100-node:nth-of-type(75){order:75!important;}
.ak100-map-board > .ak100-node:nth-of-type(76){order:78!important;}
.ak100-map-board > .ak100-node:nth-of-type(77){order:77!important;}
.ak100-map-board > .ak100-node:nth-of-type(78){order:76!important;}
.ak100-map-board > .ak100-node:nth-of-type(79){order:79!important;}
.ak100-map-board > .ak100-node:nth-of-type(80){order:80!important;}
.ak100-map-board > .ak100-node:nth-of-type(81){order:81!important;}
.ak100-map-board > .ak100-node:nth-of-type(82){order:84!important;}
.ak100-map-board > .ak100-node:nth-of-type(83){order:83!important;}
.ak100-map-board > .ak100-node:nth-of-type(84){order:82!important;}
.ak100-map-board > .ak100-node:nth-of-type(85){order:85!important;}
.ak100-map-board > .ak100-node:nth-of-type(86){order:86!important;}
.ak100-map-board > .ak100-node:nth-of-type(87){order:87!important;}
.ak100-map-board > .ak100-node:nth-of-type(88){order:90!important;}
.ak100-map-board > .ak100-node:nth-of-type(89){order:89!important;}
.ak100-map-board > .ak100-node:nth-of-type(90){order:88!important;}
.ak100-map-board > .ak100-node:nth-of-type(91){order:91!important;}
.ak100-map-board > .ak100-node:nth-of-type(92){order:92!important;}
.ak100-map-board > .ak100-node:nth-of-type(93){order:93!important;}
.ak100-map-board > .ak100-node:nth-of-type(94){order:96!important;}
.ak100-map-board > .ak100-node:nth-of-type(95){order:95!important;}
.ak100-map-board > .ak100-node:nth-of-type(96){order:94!important;}
.ak100-map-board > .ak100-node:nth-of-type(97){order:97!important;}
.ak100-map-board > .ak100-node:nth-of-type(98){order:98!important;}
.ak100-map-board > .ak100-node:nth-of-type(99){order:99!important;}
.ak100-map-board > .ak100-node:nth-of-type(100){order:102!important;}

@media (max-width: 1200px) {
    .ak100-game-layout {
        grid-template-columns: 1fr !important;
    }
    .ak100-game-map {
        max-height: 760px !important;
    }
}

@media (max-width: 760px) {
    .ak100-map-board {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        gap: 54px !important;
    }
    .ak100-map-board > .ak100-node,
    .ak100-map-board > .ak100-node:nth-of-type(n) {
        width: 100% !important;
        max-width: none !important;
        flex: none !important;
        order: initial !important;
    }
    .ak100-map-board > .ak100-node:nth-of-type(n)::after {
        content: "⬇" !important;
        left: 50% !important;
        right: auto !important;
        bottom: -48px !important;
        top: auto !important;
        transform: translateX(-50%) !important;
        font-size: 34px !important;
    }
}



/* FULL WIDTH LAYOUT UPGRADE */
.ak100-app {
    padding-left: clamp(18px, 2vw, 34px) !important;
    padding-right: clamp(18px, 2vw, 34px) !important;
}

.ak100-tab,
.ak100-nav {
    max-width: 1760px !important;
}

.ak100-hero {
    grid-template-columns: minmax(0, 1.05fr) minmax(520px, .95fr) !important;
}

.ak100-game-layout {
    grid-template-columns: minmax(760px, 1.15fr) minmax(520px, .85fr) !important;
    gap: 38px !important;
}

.ak100-game-map {
    padding: 42px !important;
}

.ak100-map-board {
    gap: 70px 82px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.ak100-map-board > .ak100-node,
.ak100-map-board > .ak100-node:nth-of-type(n),
.ak100-map-board > .ak100-node:nth-of-type(n+12) {
    height: 168px !important;
    max-width: none !important;
    min-width: 190px !important;
    flex-basis: calc((100% - 164px) / 3) !important;
    width: calc((100% - 164px) / 3) !important;
}

.ak100-map-board > .ak100-node .ak100-node-icon {
    width: 82px !important;
    height: 82px !important;
    min-width: 82px !important;
    font-size: 40px !important;
}

.ak100-map-board > .ak100-node b {
    font-size: 13px !important;
    padding: 6px 12px !important;
}

.ak100-map-board > .ak100-node small {
    display: block !important;
    font-size: 14px !important;
    max-width: 190px !important;
}

.ak100-lesson-panel {
    padding: 30px !important;
}

.ak100-head {
    grid-template-columns: 1fr 240px !important;
}

.ak100-card {
    padding: 32px !important;
}

@media (max-width: 1350px) {
    .ak100-game-layout {
        grid-template-columns: 1fr !important;
    }
}



/* GAME FX: XP counter, animated transitions, CSS icons */
.ak100-xp-counter {
    display: inline-grid;
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    gap: 0 12px;
    align-items: center;
    margin: 18px 0 8px;
    padding: 14px 18px;
    background: linear-gradient(135deg, rgba(255,211,108,.18), rgba(226,59,59,.12));
    border: 1px solid rgba(255,211,108,.42);
    border-radius: 18px;
    box-shadow: 0 18px 42px rgba(0,0,0,.16);
    width: fit-content;
}

.ak100-xp-counter span {
    grid-row: 1 / span 2;
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #ffd36c;
    color: #1b1200;
    font-weight: 950;
    box-shadow: 0 10px 22px rgba(255,211,108,.25);
}

.ak100-xp-counter strong {
    font-size: 32px;
    line-height: 1;
    color: #fff;
}

.ak100-xp-counter small {
    color: #ffd9a3;
    font-weight: 800;
}

/* Smooth lesson transitions */
.ak100-level.active {
    animation: ak100SlideIn .34s ease both;
}

@keyframes ak100SlideIn {
    from {
        opacity: 0;
        transform: translateY(18px) scale(.985);
        filter: blur(3px);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
        filter: blur(0);
    }
}

.ak100-map-board > .ak100-node {
    animation: ak100NodePop .28s ease both;
}

@keyframes ak100NodePop {
    from {
        opacity: 0;
        transform: translateY(14px) scale(.94);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.ak100-map-board > .ak100-node.active .ak100-node-icon {
    animation: ak100Pulse 1.7s ease-in-out infinite;
}

@keyframes ak100Pulse {
    0%, 100% { box-shadow: 0 0 0 5px rgba(139,225,27,.24), 0 14px 28px rgba(15,23,42,.18); }
    50% { box-shadow: 0 0 0 12px rgba(139,225,27,.10), 0 20px 34px rgba(15,23,42,.22); }
}

/* CSS-drawn game icons, no emoji */
.ak100-map-board > .ak100-node .ak100-node-icon {
    position: relative !important;
    overflow: visible !important;
    color: transparent !important;
}

.ak100-node-icon::before,
.ak100-node-icon::after {
    content: "";
    position: absolute;
    display: block;
}

/* sword */
.ak100-node-icon.icon-sword::before {
    width: 12px;
    height: 54px;
    background: linear-gradient(180deg, #dbeafe, #64748b);
    border-radius: 10px 10px 4px 4px;
    transform: rotate(38deg);
    box-shadow: inset 0 0 0 2px rgba(255,255,255,.28);
}

.ak100-node-icon.icon-sword::after {
    width: 48px;
    height: 10px;
    background: linear-gradient(90deg, #7f1d1d, #ef4444, #7f1d1d);
    border-radius: 8px;
    transform: rotate(38deg) translateY(18px);
}

/* book */
.ak100-node-icon.icon-book::before {
    width: 46px;
    height: 34px;
    background: linear-gradient(90deg, #2563eb 0 48%, #1d4ed8 48% 52%, #60a5fa 52% 100%);
    border-radius: 7px;
    box-shadow: 0 0 0 3px #bfdbfe inset;
}

.ak100-node-icon.icon-book::after {
    width: 32px;
    height: 3px;
    background: rgba(255,255,255,.8);
    border-radius: 99px;
    top: 38px;
    left: 25px;
    box-shadow: 0 8px 0 rgba(255,255,255,.65);
}

/* shield */
.ak100-node-icon.icon-shield::before {
    width: 46px;
    height: 54px;
    background: linear-gradient(180deg, #334155, #0f172a);
    clip-path: polygon(50% 0, 92% 18%, 82% 76%, 50% 100%, 18% 76%, 8% 18%);
    box-shadow: 0 0 0 4px #94a3b8 inset;
}

.ak100-node-icon.icon-shield::after {
    width: 24px;
    height: 24px;
    border: 4px solid #cbd5e1;
    border-radius: 50%;
}

/* camp */
.ak100-node-icon.icon-camp::before {
    width: 56px;
    height: 44px;
    background: linear-gradient(135deg, #dc2626, #7f1d1d);
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    bottom: 12px;
}

.ak100-node-icon.icon-camp::after {
    width: 16px;
    height: 28px;
    background: #111827;
    clip-path: polygon(50% 0, 100% 100%, 0 100%);
    bottom: 12px;
}

/* done */
.ak100-node-icon.icon-done::before {
    width: 42px;
    height: 22px;
    border-left: 9px solid #16a34a;
    border-bottom: 9px solid #16a34a;
    transform: rotate(-45deg) translate(4px, -4px);
    border-radius: 4px;
}

/* locked */
.ak100-node-icon.icon-locked::before {
    width: 42px;
    height: 34px;
    background: #cbd5e1;
    border-radius: 8px;
    bottom: 14px;
}

.ak100-node-icon.icon-locked::after {
    width: 28px;
    height: 24px;
    border: 7px solid #cbd5e1;
    border-bottom: none;
    border-radius: 18px 18px 0 0;
    top: 14px;
}

/* completion flash */
.ak100-result.success {
    color: #b7ffcf;
}



/* V2 SIMPLE — better dashboard/certificate polish */
.ak100-grid3 div {
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.ak100-grid3 div:hover {
    transform: translateY(-3px);
    border-color: rgba(226,59,59,.45);
    box-shadow: 0 26px 70px rgba(0,0,0,.25);
}
.ak100-cert {
    box-shadow: 0 30px 90px rgba(0,0,0,.38);
}
.ak100-cert-inner {
    position: relative;
    overflow: hidden;
}
.ak100-cert-inner:before {
    content: "";
    position: absolute;
    inset: 24px;
    border: 1px solid rgba(139,100,46,.28);
    pointer-events: none;
}
.ak100-cert-inner:after {
    content: "AK";
    position: absolute;
    right: 42px;
    bottom: 34px;
    width: 92px;
    height: 92px;
    border-radius: 50%;
    border: 4px double #8b642e;
    color: #8b642e;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    font-weight: 950;
    opacity: .28;
}


/* Paywall / płatności */
.ak100-alert.success{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.10)}
.ak100-paylink{display:inline-block;margin-left:10px;font-weight:800;text-decoration:underline}
.ak100-paywall{border:1px solid rgba(245,158,11,.45);background:linear-gradient(135deg,rgba(245,158,11,.12),rgba(255,255,255,.04))}
.ak100-paywall h3{margin-top:0}
