
:root{--blue:#0075BE;--pink:#C2457E;--blue2:#2a95d8;--pink2:#d668a0;--vio:#966ef0;
 --bg:#f4f6fb;--panel:rgba(255,255,255,.66);--solid:#fff;--board:#eef1f8;--border:rgba(20,28,54,.12);--ink:#141c2e;--soft:#5a6478;--mute:#93a0af;
 --grad:linear-gradient(120deg,var(--blue),var(--pink));--e:cubic-bezier(.16,1,.3,1);--dot:0,117,190;--line:194,69,126;}
[data-theme="dark"]{--bg:#080a14;--panel:rgba(255,255,255,.05);--solid:#0f1220;--board:#0c1020;--border:rgba(255,255,255,.12);--ink:#eef1fb;--soft:rgba(238,241,251,.68);--mute:rgba(238,241,251,.42);--dot:120,185,245;--line:214,120,168;}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .5s,color .5s}
#bg{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.7}
.wrap{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 4% 4rem}
nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 4%;background:color-mix(in srgb,var(--bg) 74%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--border)}
nav .l{display:flex;align-items:center;gap:.8rem}
.logo{height:34px}
.brand{font-weight:700;letter-spacing:.5px}.brand b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
nav .r{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:999px;font-weight:600;font-size:.9rem;cursor:pointer;border:1px solid transparent;transition:.3s var(--e);text-decoration:none;color:var(--ink);background:var(--panel);border-color:var(--border);font-family:inherit}
.btn:hover{border-color:var(--blue);color:var(--blue2)}
.btn.pri{background:var(--grad);color:#fff;border-color:transparent;box-shadow:0 6px 16px -8px var(--pink)}.btn.pri:hover{transform:translateY(-1px);color:#fff}
.btn.sm{padding:.45rem .9rem;font-size:.82rem}
.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none;filter:grayscale(.4)}
.ico{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--panel);display:grid;place-items:center;cursor:pointer;color:var(--ink)}.ico svg{width:17px;height:17px}
.hidden{display:none!important}
.screen{padding-top:2.2rem;animation:fade .5s var(--e)}
@keyframes fade{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
h1{font-size:clamp(2rem,5vw,3rem);font-weight:800;letter-spacing:-1.5px;line-height:1.05}
h1 span{background:linear-gradient(120deg,var(--blue2),var(--pink2));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--soft);font-weight:300;margin-top:.8rem;max-width:640px}
.pill{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--pink);margin-bottom:.8rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:1.2rem;margin-top:2.4rem}
.card{background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:18px;padding:1.6rem;transition:transform .4s var(--e),box-shadow .4s;cursor:pointer;position:relative;overflow:hidden;text-decoration:none;color:inherit;display:block}
.card:hover{transform:translateY(-6px);box-shadow:0 20px 40px -28px rgba(20,28,54,.5)}
.card .tag{font-size:.68rem;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--pink2)}
.card h3{font-size:1.3rem;font-weight:700;margin:.5rem 0 .5rem}
.card p{color:var(--soft);font-size:.9rem;font-weight:300;min-height:3.4em}
.card .go{margin-top:1rem;font-weight:600;color:var(--blue2);display:inline-flex;align-items:center;gap:.4rem}
.thumb{height:96px;border-radius:12px;margin-bottom:1rem;background:var(--board);border:1px solid var(--border);position:relative;overflow:hidden}
.ghead{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.ghead h2{font-size:1.6rem;font-weight:800;letter-spacing:-.5px}
.hud{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center;margin:.4rem 0 1rem}
.stat{text-align:center}.stat b{display:block;font-size:1.3rem;font-weight:800;letter-spacing:-.5px}.stat span{font-size:.7rem;color:var(--mute)}
.stat.b1 b{color:var(--blue)}.stat.b2 b{color:var(--pink)}
.scores{display:flex;gap:.7rem;flex-wrap:wrap}.sc{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;font-size:.98rem;opacity:.65}.sc i{width:13px;height:13px;border-radius:50%;display:inline-block}
.legend{display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.76rem;color:var(--soft);margin:-.2rem 0 .9rem}
.legend span{display:inline-flex;align-items:center;gap:.4rem}
.legend i{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 auto}
.canwrap{background:var(--board);border:1px solid var(--border);border-radius:16px;overflow:hidden;position:relative;touch-action:none}
canvas{display:block;width:100%;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.overlay{position:absolute;inset:0;display:grid;place-items:center;text-align:center;background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(4px)}
.overlay .box{background:var(--solid);border:1px solid var(--border);border-radius:16px;padding:1.6rem 2rem;box-shadow:0 20px 50px -30px rgba(0,0,0,.5);max-width:360px}
.overlay h3{font-size:1.4rem;font-weight:800;margin-bottom:.4rem}
.overlay p{color:var(--soft);font-size:.9rem;margin-bottom:1rem}
.outgfx{font-size:3.2rem;line-height:1;margin-bottom:.3rem;animation:gfxpop .45s var(--e)}
@keyframes gfxpop{0%{transform:scale(.4);opacity:0}62%{transform:scale(1.18)}100%{transform:scale(1);opacity:1}}
.ctrls{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem;align-items:center}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--panel)}
.seg button{padding:.5rem 1rem;font-size:.82rem;font-weight:600;background:transparent;border:none;color:var(--soft);cursor:pointer;font-family:inherit}
.seg button.on{background:var(--grad);color:#fff}
.cust{display:inline-flex;gap:.3rem;align-items:center}
.cust input{width:76px;padding:.45rem .6rem;border-radius:10px;border:1px solid var(--border);background:var(--solid);color:var(--ink);font-family:inherit;font-size:.82rem}
.turn{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;font-size:.9rem}
/* ==== lifting 3D: bardziej „growy" feel przycisków, segmentów, kart ==== */
.btn{box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 2px 6px -3px rgba(20,28,54,.28)}
.btn:hover{transform:translateY(-1.5px);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 9px 18px -8px rgba(20,28,54,.4)}
.btn:active{transform:translateY(.5px);box-shadow:0 1px 3px -1px rgba(20,28,54,.4) inset}
.btn.pri{box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 8px 18px -8px var(--pink)}
.btn.pri:hover{transform:translateY(-1.5px);box-shadow:0 1px 0 rgba(255,255,255,.4) inset,0 12px 26px -8px var(--pink)}
.ico{transition:.25s var(--e);box-shadow:0 2px 6px -3px rgba(20,28,54,.3)}
.ico:hover{transform:translateY(-1.5px);border-color:var(--blue);color:var(--blue2)}
.ico:active{transform:translateY(.5px)}
.seg{box-shadow:0 1px 3px -2px rgba(20,28,54,.35) inset}
.seg button{transition:.2s var(--e)}
.seg button.on{box-shadow:0 4px 12px -6px var(--pink)}
.seg button:not(.on):hover{color:var(--ink);background:color-mix(in srgb,var(--blue) 13%,transparent)}
.card{background-image:linear-gradient(162deg,color-mix(in srgb,var(--blue) 6%,transparent),transparent 55%)}
.card .go{transition:gap .3s var(--e)}.card:hover .go{gap:.75rem}
.card::after{content:"";position:absolute;inset:0;border-radius:18px;box-shadow:0 1px 0 rgba(255,255,255,.45) inset;pointer-events:none}
.canwrap{box-shadow:0 12px 34px -22px rgba(20,28,54,.5)}
.overlay .box{background-image:linear-gradient(165deg,color-mix(in srgb,var(--blue) 8%,transparent),transparent 60%)}
.turn i{box-shadow:0 1px 3px rgba(0,0,0,.25),0 0 0 3px color-mix(in srgb,var(--panel) 70%,transparent)}
.pill{padding:.15rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--pink) 12%,transparent)}
.ladgfx{margin:0 auto .4rem;line-height:0;animation:gfxpop .5s var(--e)}
.ladgfx svg{filter:drop-shadow(0 5px 12px rgba(52,199,132,.42))}
.ladgfx .lg-edge path{stroke-dasharray:140;stroke-dashoffset:140;animation:lgdraw .8s var(--e) forwards}
@keyframes lgdraw{to{stroke-dashoffset:0}}
.supad{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin:.9rem auto;max-width:420px}
.supad button{min-height:46px;aspect-ratio:1.15;border:1px solid var(--border);background:var(--panel);border-radius:12px;font-size:1.25rem;font-weight:700;color:var(--ink);cursor:pointer;font-family:inherit;transition:.15s var(--e);box-shadow:0 1px 0 rgba(255,255,255,.3) inset,0 2px 6px -3px rgba(20,28,54,.28)}
.supad button:hover{border-color:var(--blue);color:var(--blue2);transform:translateY(-1.5px)}
.supad button:active{transform:translateY(.5px)}
.supad button.done{opacity:.35}
.supad button.er{color:var(--pink2);font-size:1.1rem}
#suNotes.on,#suAssist.on{background:var(--grad);color:#fff;border-color:transparent}
.turn i{width:14px;height:14px;border-radius:50%;display:inline-block}
@keyframes thinkpulse{0%,100%{transform:scale(1);opacity:.6}50%{transform:scale(1.55);opacity:1}}
.turn i.think{animation:thinkpulse .8s ease-in-out infinite}
.board{margin-top:1.2rem;background:var(--panel);backdrop-filter:blur(8px);border:1px solid var(--border);border-radius:14px;padding:1rem 1.3rem;max-width:440px}
.board h4{font-size:.72rem;letter-spacing:1.5px;text-transform:uppercase;color:var(--pink);margin-bottom:.5rem}
.board ol{list-style:none;counter-reset:l}
.board li{counter-increment:l;display:flex;align-items:center;gap:.7rem;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.92rem}
.board li:last-child{border-bottom:0}
.board li::before{content:counter(l)".";width:24px;color:var(--mute);font-weight:700;text-align:right;flex:0 0 auto}
.board li .nm{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.board li .sc{color:var(--blue2);font-weight:700}
.board li.empty{color:var(--mute);font-weight:400}.board li.empty::before{content:""}
.board li.top::before{content:""}
.board li .rk{width:24px;text-align:center;flex:0 0 auto;font-size:1.05rem;line-height:1}
.board li.me{background:color-mix(in srgb,var(--blue2) 15%,transparent);border-radius:9px;padding-left:8px;padding-right:8px;margin:0 -8px}
.board li.me .nm{color:var(--blue2);font-weight:700}
.board li.me .sc{color:var(--pink2)}
#oSave,#kmSave,#spSaveW,#mmSaveW,#ppSaveW,#kSaveW{display:flex;gap:.5rem;justify-content:center;margin-bottom:.9rem;flex-wrap:wrap}
#oName,#kmName,#spName,#mmNameI,#ppNameI,#kNameI{padding:.55rem .8rem;border-radius:10px;border:1px solid var(--border);background:var(--solid);color:var(--ink);font-family:inherit;font-size:.9rem;width:150px}
.mmwrap{position:relative;background:var(--board);border:1px solid var(--border);border-radius:16px;padding:1.2rem;margin-top:.4rem}
#mmBoard{display:flex;flex-direction:column;gap:.5rem;align-items:center;min-height:60px}
.mmrow{display:flex;align-items:center;gap:.5rem}
.peg{width:30px;height:30px;border-radius:50%;display:inline-block;border:2px solid transparent}
.peg.empty{border:2px dashed var(--border);background:transparent!important}
.peg.fill{position:relative;box-shadow:inset 0 -3px 7px rgba(0,0,0,.32),inset 0 2px 4px rgba(255,255,255,.3),0 3px 6px -2px rgba(0,0,0,.4),0 0 0 1px rgba(128,132,148,.4)}
.peg.fill::after{content:"";position:absolute;top:13%;left:15%;width:44%;height:36%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(255,255,255,.8),rgba(255,255,255,0) 70%);pointer-events:none}
.mmrow.act .peg[data-clr]{cursor:pointer}
.fbg{display:inline-grid;grid-template-columns:repeat(2,10px);grid-auto-rows:10px;gap:3px;margin-left:.5rem}
.fbg.ghost{visibility:hidden}
.fb{width:10px;height:10px;border-radius:50%;background:var(--border)}
.fb.ok{background:var(--ink)}
.fb.pres{background:transparent;border:2px solid var(--soft)}
.mmpal{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin-top:1.1rem}
.mmpal .peg{cursor:pointer;width:34px;height:34px;transition:transform .15s var(--e)}
.mmpal .peg:hover{transform:scale(1.12)}
.mmact{display:flex;gap:.6rem;justify-content:center;margin-top:1rem}
@media(max-width:440px){.peg{width:26px;height:26px}.mmpal .peg{width:30px;height:30px}}
.peg.sym{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:15px;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.mmpal .peg.sym{font-size:17px}
.peg.tok{display:inline-flex;align-items:center;justify-content:center;background:var(--panel);color:var(--ink);border:2px solid var(--soft);font-size:16px;line-height:1;font-weight:700}
.mmpal .peg.tok{font-size:18px}
.dpad{display:grid;grid-template-columns:repeat(3,46px);grid-template-rows:repeat(3,46px);gap:.35rem;justify-content:center;margin-top:1rem}
.dpad button{border:1px solid var(--border);background:var(--panel);border-radius:12px;font-size:1.15rem;color:var(--ink);cursor:pointer;font-family:inherit}
.dpad button:active{background:var(--grad);color:#fff}
.dpad .up{grid-column:2;grid-row:1}.dpad .left{grid-column:1;grid-row:2}.dpad .right{grid-column:3;grid-row:2}.dpad .down{grid-column:2;grid-row:3}
#slots{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(6px)}
#slots .box{background:var(--solid);border:1px solid var(--border);border-radius:16px;padding:1.4rem 1.6rem;max-width:430px;width:90%;box-shadow:0 24px 60px -30px rgba(0,0,0,.6)}
#slots h3{font-size:1.2rem;font-weight:800;margin-bottom:.7rem}
.slot{display:flex;justify-content:space-between;align-items:center;gap:.7rem;padding:.6rem 0;border-bottom:1px solid var(--border)}
.slot .si b{display:block;font-size:.92rem}.slot .si span{font-size:.76rem;color:var(--mute)}
.slot .si .smeta{display:block;font-size:.72rem;color:var(--soft);margin-top:.15rem}.slot .si .smeta b{display:inline;color:var(--blue2)}
.slotname{margin:.2rem 0 .9rem}.slotname label{display:block;font-size:.72rem;color:var(--soft);margin-bottom:.3rem}
.slotname input{width:100%;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--border);background:var(--board);color:var(--ink);font-family:inherit;font-size:.9rem}
.slot .sa{display:flex;gap:.4rem;flex-wrap:wrap}
.btn.off{opacity:.35;pointer-events:none}
#sharebox{position:fixed;inset:0;z-index:400;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 55%,transparent);backdrop-filter:blur(6px)}
#sharebox .box{background:var(--solid);border:1px solid var(--border);border-radius:16px;padding:1.4rem 1.6rem;max-width:420px;width:90%;box-shadow:0 24px 60px -30px rgba(0,0,0,.6)}
#sharebox h3{font-size:1.2rem;font-weight:800;margin-bottom:.8rem}
#shareUrl{width:100%;padding:.55rem .7rem;border-radius:10px;border:1px solid var(--border);background:var(--board);color:var(--soft);font-family:inherit;font-size:.82rem;margin-bottom:.7rem}
.sharerow{display:flex;gap:.5rem}
.sharerow input{flex:1;min-width:0;padding:.6rem .8rem;border-radius:10px;border:1px solid var(--border);background:var(--solid);color:var(--ink);font-family:inherit;font-size:.9rem}
.sharemsg{font-size:.82rem;margin:.6rem 0 0;min-height:1em}
.sharemsg.ok{color:var(--blue2)}.sharemsg.err{color:var(--pink)}
.shareact{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.9rem}
#updbar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:560;display:flex;align-items:center;gap:.7rem;background:var(--ink);color:var(--bg);padding:.5rem .6rem .5rem 1.1rem;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:0 14px 34px -14px rgba(0,0,0,.55);animation:updpop .3s var(--e)}
@keyframes updpop{from{opacity:0;transform:translateX(-50%) translateY(16px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
#toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:.6rem 1.1rem;border-radius:999px;font-size:.85rem;font-weight:600;opacity:0;pointer-events:none;transition:.3s var(--e);z-index:500}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.foot{margin-top:2.5rem;text-align:center;color:var(--mute);font-size:.78rem}
.foot a{color:var(--soft)}
@media(max-width:720px){.cards{grid-template-columns:1fr}.hud{gap:1rem}.ghead h2{font-size:1.4rem}}
@media(max-width:440px){.brand{display:none}nav{padding:.7rem 4%}.seg button{padding:.45rem .8rem;font-size:.78rem}}
@media(prefers-reduced-motion:reduce){.screen{animation:none}}
