/* WZ-Lab AI — style. Ciemny motyw "lab" + złoty akcent. */
:root{
  --bg:#0a0d12; --bg2:#0d1117; --card:#12161d; --card2:#161b24;
  --line:#1f2530; --line2:#2a3140;
  --txt:#e6e9ee; --txt2:#8b93a1; --txt3:#5b6472;
  --gold:#f0b429; --gold2:#e8a33d; --gold-dim:rgba(240,180,41,.14);
  --ok:#3fb950; --err:#f85149;
  --r:14px; --r-sm:9px;
  --shadow:0 8px 30px rgba(0,0,0,.45);
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{
  background:
    radial-gradient(1200px 600px at 70% -10%, rgba(240,180,41,.06), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(60,120,240,.05), transparent 60%),
    var(--bg);
  color:var(--txt);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased; line-height:1.55;
}
a{color:var(--gold);text-decoration:none}
button{font-family:inherit}

/* ── LOGO ── */
.logo{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.2px}
.logo .mark-img{width:34px;height:34px;border-radius:50%;flex:0 0 auto;object-fit:cover}
.logo .name{font-size:17px}
.logo .name b{color:var(--gold)}
.hero-logo{width:150px;height:150px;margin-bottom:20px;filter:drop-shadow(0 6px 24px rgba(140,90,255,.35))}

/* ── LANDING (public) — ogromne animowane logo ── */
#landing{min-height:100vh;min-height:100dvh;display:grid;place-items:center;position:relative;overflow:hidden}
.landing-wrap{
  display:flex;align-items:center;justify-content:center;gap:60px;
  padding:40px;flex-wrap:wrap;max-width:1200px;
}
.landing-logo-wrap{flex:0 0 auto;width:min(58vh,520px);height:min(58vh,520px)}
/* logo 2D: nieruchome; niebieskie elementy (nakładki .spark) mrugają pojedynczo z app.js */
.logo2d{position:relative;width:100%;height:100%}
.logo2d-base{width:100%;height:100%;display:block;filter:drop-shadow(0 0 40px rgba(60,170,255,.18))}
.spark{position:absolute;opacity:0;pointer-events:none;mix-blend-mode:screen;will-change:opacity}
.landing-cta{max-width:420px}
.landing-cta h1{font-size:44px;line-height:1.1;margin:0 0 16px;font-weight:800;letter-spacing:-.5px}
.landing-cta h1 .g{
  background:linear-gradient(90deg,var(--gold),#ffd479);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.landing-cta .lead{font-size:17px;color:var(--txt2);margin:0 0 28px}
.btn.big{
  width:auto;padding:16px 52px;font-size:17px;border-radius:12px;
  box-shadow:0 6px 24px rgba(240,180,41,.3);
}
.vip-note{margin-top:20px;font-size:13px;color:var(--txt3)}

/* modal logowania */
.login-modal{width:min(400px,92vw)}
.login-modal input:focus{border-color:var(--gold)}

/* login card */
.card{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:30px;
}
.card h2{margin:0 0 4px;font-size:20px}
.card .sub{color:var(--txt2);font-size:13.5px;margin:0 0 22px}
.field{margin-bottom:14px}
.field label{display:block;font-size:12.5px;color:var(--txt2);margin-bottom:6px}
.field input{
  width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);
  color:var(--txt);padding:12px 14px;font-size:15px;outline:none;transition:border .15s;
}
.field input:focus{border-color:var(--gold)}
.btn{
  width:100%;background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0a0d12;
  border:none;border-radius:var(--r-sm);padding:13px;font-size:15px;font-weight:700;cursor:pointer;
  transition:transform .05s,filter .15s;
}
.btn:hover{filter:brightness(1.06)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--txt2);border:1px solid var(--line2);font-weight:600}
.btn.ghost:hover{color:var(--txt);border-color:var(--txt3)}
.vip{
  margin-top:20px;padding:14px;border-radius:var(--r-sm);
  background:var(--gold-dim);border:1px solid rgba(240,180,41,.25);
  font-size:13px;color:var(--txt2);
}
.vip b{color:var(--gold)}
.msg{margin-top:14px;font-size:13.5px;min-height:18px}
.msg.err{color:var(--err)} .msg.ok{color:var(--ok)}
.reg-note{margin-top:14px;font-size:12.5px;color:var(--txt3);text-align:center}

/* ═══════════ APP: dwukolumnowy layout ═══════════ */
#app{display:none;height:100vh;height:100dvh;grid-template-columns:1fr 360px}
#app.on{display:grid}

/* ── LEWA: czat ── */
.main{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.appbar{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 24px;border-bottom:1px solid var(--line);background:rgba(13,17,23,.7);
  backdrop-filter:blur(8px);flex:0 0 auto;
}
.appbar .right{display:flex;align-items:center;gap:14px}
.appbar .who{font-size:13px;color:var(--txt2)}
.appbar .who b{color:var(--txt)}
.iconbtn{
  background:var(--card);border:1px solid var(--line2);color:var(--txt2);
  border-radius:var(--r-sm);padding:7px 12px;font-size:13px;cursor:pointer;transition:.15s;
}
.iconbtn:hover{color:var(--txt);border-color:var(--txt3)}
.iconbtn.on{color:var(--gold);border-color:rgba(240,180,41,.4);background:var(--gold-dim)}

.chatwrap{flex:1;display:flex;flex-direction:column;max-width:860px;width:100%;margin:0 auto;padding:18px 24px 0;min-height:0}
.sess-title{font-size:13px;color:var(--txt3);padding:6px 4px 10px;font-weight:600;letter-spacing:.3px;flex:0 0 auto}
.chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:8px 10px 20px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line2) var(--bg2)}
.chat::-webkit-scrollbar{width:10px}
.chat::-webkit-scrollbar-track{background:var(--bg2);border-radius:5px}
.chat::-webkit-scrollbar-thumb{background:var(--line2);border-radius:5px}
.chat::-webkit-scrollbar-thumb:hover{background:var(--txt3)}
.msgrow{display:flex;gap:12px;max-width:100%}
.msgrow .av{
  width:30px;height:30px;border-radius:8px;flex:0 0 auto;display:grid;place-items:center;
  font-size:12px;font-weight:700;
}
.msgrow.user .av{background:var(--gold-dim);color:var(--gold);border:1px solid rgba(240,180,41,.3)}
.msgrow.ai .av{background:transparent;border:none;padding:0}
.av-img{width:30px;height:30px;border-radius:50%;display:block;filter:drop-shadow(0 0 6px rgba(140,90,255,.4))}
.bubble-search{
  display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--txt2);
  background:var(--card2);border:1px dashed var(--line2);border-radius:var(--r-sm);
  padding:7px 12px;margin-bottom:8px;
}
.bubble-search .spin{display:inline-block;animation:rot 1s linear infinite}
@keyframes rot{to{transform:rotate(360deg)}}
.bubble{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:13px 16px;font-size:15px;white-space:pre-wrap;word-wrap:break-word;flex:1;
}
.msgrow.user .bubble{background:var(--card2)}
.bubble .think{
  color:var(--txt3);font-size:13px;font-style:italic;border-left:2px solid var(--line2);
  padding-left:10px;margin-bottom:8px;white-space:pre-wrap;
}
.bubble .memchip{
  display:inline-block;margin-top:8px;font-size:12px;color:var(--ok);
  background:rgba(63,185,80,.1);border:1px solid rgba(63,185,80,.3);
  padding:3px 9px;border-radius:20px;
}
.typing{display:inline-block;color:var(--txt3);font-size:13px}

.composer{padding:14px 0 8px}
.controls{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.seg{display:flex;background:var(--card);border:1px solid var(--line2);border-radius:var(--r-sm);overflow:hidden}
.seg button{
  background:transparent;border:none;color:var(--txt2);padding:7px 13px;font-size:13px;cursor:pointer;
  border-right:1px solid var(--line);
}
.seg button:last-child{border-right:none}
.seg button.on{background:var(--gold-dim);color:var(--gold);font-weight:600}
.ctl-label{font-size:12.5px;color:var(--txt3);margin-right:2px}
.hint{font-size:11.5px;color:var(--txt3);margin-left:2px;cursor:help}
.inputrow{display:flex;gap:10px;align-items:flex-end}
.inputrow textarea{
  flex:1;background:var(--card);border:1px solid var(--line2);border-radius:var(--r);
  color:var(--txt);padding:13px 15px;font-size:15px;font-family:inherit;resize:none;
  outline:none;max-height:180px;line-height:1.5;
}
.inputrow textarea:focus{border-color:var(--gold)}
.send{
  background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0a0d12;border:none;
  border-radius:var(--r);width:46px;height:46px;font-size:18px;cursor:pointer;flex:0 0 auto;
  display:grid;place-items:center;
}
.send:disabled{opacity:.4;cursor:default}
.foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 4px 14px;font-size:12px;color:var(--txt3);
}
.foot .tok{font-family:var(--mono)}
.foot .tok b{color:var(--txt2)}

/* ── PRAWA: pionowy panel ── */
.side{
  border-left:1px solid var(--line);background:var(--bg2);
  display:flex;flex-direction:column;overflow-y:auto;
}
.side-sec{border-bottom:1px solid var(--line)}
.side-head{
  display:flex;justify-content:space-between;align-items:center;
  padding:12px 14px;font-size:13px;font-weight:600;color:var(--txt2);
  cursor:pointer;user-select:none;
}
.side-head:hover{color:var(--txt)}
.side-head .chev{font-size:11px;color:var(--txt3)}
.side-body{overflow:hidden;max-height:420px;transition:max-height .2s}
.side-body.closed{max-height:0}

/* sesje */
.sess-tools{display:flex;gap:6px}
.sess-search{padding:0 10px 8px}
.sess-search input{
  width:100%;background:var(--bg);border:1px solid var(--line2);border-radius:var(--r-sm);
  color:var(--txt);padding:8px 11px;font-size:13px;outline:none;
}
.sess-search input:focus{border-color:var(--gold)}
.sess-list{max-height:210px;overflow-y:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:6px}
.sess-hit{font-size:11px;color:var(--gold);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sess{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:8px 10px;cursor:pointer;position:relative;transition:.15s;
}
.sess:hover{border-color:var(--line2)}
.sess.on{border-color:rgba(240,180,41,.5);background:var(--gold-dim)}
.sess-t{font-size:13px;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:16px}
.sess.on .sess-t{color:var(--gold)}
.sess-d{font-size:11px;color:var(--txt3)}
.sess-del{
  position:absolute;top:6px;right:6px;background:none;border:none;color:var(--txt3);
  cursor:pointer;font-size:14px;line-height:1;padding:2px;
}
.sess-del:hover{color:var(--err)}
.mini{
  background:var(--card2);border:1px solid var(--line2);color:var(--txt2);
  border-radius:6px;padding:3px 9px;font-size:11.5px;cursor:pointer;
}
.mini:hover{color:var(--gold);border-color:rgba(240,180,41,.4)}

/* mini-czaty (grupowy + wojtek) */
.mini-chat{max-height:200px;overflow-y:auto;padding:0 12px 8px;display:flex;flex-direction:column;gap:7px}
.mmsg{
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);
  padding:7px 10px;font-size:13px;
}
.mmsg .mm-meta{font-size:10.5px;color:var(--txt3);margin-bottom:2px}
.mmsg.me{background:var(--gold-dim);border-color:rgba(240,180,41,.3)}
.mmsg.me .mm-meta{color:var(--gold)}
.mmsg.owner{background:var(--gold-dim);border-color:rgba(240,180,41,.4)}
.mmsg.owner .mm-meta{color:var(--gold)}
.mini-empty{font-size:12px;color:var(--txt3);text-align:center;padding:10px 0}
.mini-input{display:flex;gap:6px;padding:6px 12px 12px}
.mini-input input{
  flex:1;background:var(--bg);border:1px solid var(--line2);border-radius:var(--r-sm);
  color:var(--txt);padding:8px 11px;font-size:13px;outline:none;
}
.mini-input input:focus{border-color:var(--gold)}
.mini-send{
  background:var(--gold);color:#0a0d12;border:none;border-radius:var(--r-sm);
  width:34px;font-size:14px;cursor:pointer;
}
.mini-send:hover{filter:brightness(1.08)}

/* sekcja Wojtek — osobny kolor */
.side-sec.wojtek{background:linear-gradient(180deg,rgba(240,180,41,.07),transparent)}
.side-sec.wojtek .side-head{color:var(--gold)}
.side-sec.wojtek .side-head:hover{color:#ffd479}

/* przyciski czatów w panelu */
.side-btns{padding:14px;display:flex;flex-direction:column;gap:10px}
.side-btn.wojtek{background:linear-gradient(135deg,var(--gold),var(--gold2));color:#0a0d12}
.side-btn.wojtek:hover{filter:brightness(1.06)}
.side-btn.grp{background:var(--card);color:var(--txt);border:1px solid var(--line2)}
.side-btn.grp:hover{border-color:var(--gold);color:var(--gold)}

/* dolne przyciski */
.side-bottom{margin-top:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.side-btn{width:100%}

/* ── MODAL CZATU (rozbudowany) ── */
.chat-modal{width:min(680px,94vw);display:flex;flex-direction:column;max-height:86vh;padding:0;overflow:hidden}
.chat-modal .cm-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}
.chat-modal .cm-head h2{margin:0;font-size:17px}
.chat-modal .cm-head .close{float:none;cursor:pointer;color:var(--txt3);font-size:24px;line-height:1;order:2}
.chat-modal .cm-head .close:hover{color:var(--txt)}
.cm-list{flex:1;overflow-y:auto;padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-height:280px}
.cmsg2{display:flex;gap:10px;align-items:flex-start}
.cav{
  width:34px;height:34px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  font-size:13px;font-weight:700;color:#fff;
}
.cbody{flex:1;min-width:0}
.chead{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.chead b{font-size:13px}
.chead span{font-size:11px;color:var(--txt3)}
.ctxt{
  background:var(--card);border:1px solid var(--line);border-radius:4px 12px 12px 12px;
  padding:9px 13px;font-size:14px;white-space:pre-wrap;word-wrap:break-word;display:inline-block;max-width:100%;
}
.cmsg2.me .ctxt{background:var(--gold-dim);border-color:rgba(240,180,41,.3);border-radius:12px 4px 12px 12px}
.caudio{width:100%;max-width:320px;margin-top:4px;height:36px}
.cdel{
  background:none;border:none;color:var(--txt3);cursor:pointer;font-size:13px;
  padding:2px 6px;border-radius:6px;opacity:0;transition:.15s;
}
.cmsg2:hover .cdel{opacity:1}
.cdel:hover{color:var(--err);background:rgba(248,81,73,.1)}
.cm-composer{border-top:1px solid var(--line);padding:12px 16px}
.rec-row{
  display:flex;align-items:center;gap:10px;font-size:13px;color:var(--err);
  background:rgba(248,81,73,.08);border:1px solid rgba(248,81,73,.3);
  border-radius:var(--r-sm);padding:8px 12px;margin-bottom:10px;
}
.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--err);animation:blink 1s infinite}
@keyframes blink{50%{opacity:.3}}
.cm-input{display:flex;gap:8px;align-items:flex-end}
.cm-input textarea{
  flex:1;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r);
  color:var(--txt);padding:11px 14px;font-size:14px;font-family:inherit;resize:none;
  outline:none;max-height:120px;line-height:1.4;
}
.cm-input textarea:focus{border-color:var(--gold)}
.cimg{max-width:280px;max-height:220px;border-radius:10px;margin-top:6px;display:block;border:1px solid var(--line2)}

/* ── MODAL USTAWIEŃ (rozbudowany) ── */
.settings-modal{width:min(620px,94vw);max-height:88vh}
.set-sec{border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:12px}
.set-sec h3{margin:0 0 10px;font-size:14px;color:var(--gold);letter-spacing:.3px}
.acct{display:flex;flex-direction:column;gap:8px}
.acct-row{display:flex;justify-content:space-between;font-size:14px;color:var(--txt2)}
.acct-row b{color:var(--txt);font-weight:600}
.acct-row b.gold{color:var(--gold)}
.usage-t{width:100%;border-collapse:collapse;font-size:13px}
.usage-t th{color:var(--txt3);font-size:11px;text-transform:uppercase;letter-spacing:.4px;text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}
.usage-t td{padding:7px 8px;border-bottom:1px solid var(--line);color:var(--txt2)}
.usage-t td b{color:var(--txt);font-family:var(--mono)}
.settings-modal select{
  width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);
  color:var(--txt);padding:10px 12px;font-size:14px;outline:none;
}
.settings-modal select:focus{border-color:var(--gold)}
.chat-modal .cm-head select{flex:1;margin:0 14px;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--txt);padding:7px 10px;font-size:14px;outline:none}
.mic{
  background:var(--card);border:1px solid var(--line2);border-radius:var(--r);
  width:44px;height:44px;font-size:17px;cursor:pointer;flex:0 0 auto;
}
.mic:hover{border-color:var(--gold)}
.mic.rec{background:rgba(248,81,73,.15);border-color:var(--err);animation:blink 1s infinite}

/* ── MODALE ── */
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;place-items:center;z-index:50;backdrop-filter:blur(3px)}
.modal-bg.on{display:grid}
.modal{width:min(560px,92vw);max-height:80vh;overflow-y:auto}
.modal h2{font-size:18px}
.modal .close{float:right;cursor:pointer;color:var(--txt3);font-size:22px;line-height:1}
.modal .close:hover{color:var(--txt)}
.keybox{
  background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);
  padding:12px;font-family:var(--mono);font-size:13px;word-break:break-all;color:var(--gold);margin:12px 0;
}
.chk{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);
  border-radius:var(--r-sm);margin-bottom:10px;font-size:14px;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--gold)}

/* ── ADMIN (owner) ── */
#admin{
  display:none;position:absolute;inset:57px 0 0 0;background:var(--bg);
  overflow-y:auto;z-index:20;
}
#admin.on{display:block}
#admin .inner{max-width:1180px;margin:0 auto;padding:30px 24px}
#admin h1{font-size:24px;margin:0 0 20px}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line)}
th{color:var(--txt3);font-size:12px;text-transform:uppercase;letter-spacing:.5px}
td .pill{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--card2);border:1px solid var(--line2);color:var(--txt2)}
td .pill.owner{color:var(--gold);border-color:rgba(240,180,41,.4)}
.pill{font-size:11px;padding:2px 8px;border-radius:20px;background:var(--card2);border:1px solid var(--line2);color:var(--txt2);white-space:nowrap;display:inline-block}
.pill.owner{color:var(--gold);border-color:rgba(240,180,41,.4)}
.pill.agent{color:#7cc4ff;border-color:rgba(80,170,255,.35)}
.pill.vip{color:var(--gold);border-color:rgba(240,180,41,.5);background:var(--gold-dim)}
.pill.ban{color:var(--err);border-color:rgba(248,81,73,.4);background:rgba(248,81,73,.08)}
.pill.warn{color:#e3b341;border-color:rgba(227,179,65,.4)}
.sub2{font-size:11.5px;color:var(--txt3);font-weight:400}
.ok-txt{color:var(--ok);font-size:13px}
.gold{color:var(--gold)}
.plus{color:var(--ok)} .minus{color:var(--err)}
.usage-t td.plus b{color:var(--ok)} .usage-t td.minus b{color:var(--err)}
#saldo.low{color:var(--err)}
.btn.sm{width:auto;padding:7px 14px;font-size:13px}
.btn.danger{background:rgba(248,81,73,.14);color:var(--err);border:1px solid rgba(248,81,73,.4)}
.btn.danger:hover{background:rgba(248,81,73,.24)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--line2);margin-right:8px;vertical-align:middle}
.dot.on{background:var(--ok);box-shadow:0 0 8px rgba(63,185,80,.7)}
.badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;
  background:var(--err);color:#fff;font-size:11.5px;font-weight:700;margin-left:6px}

/* ── panel admina ── */
.adm-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.adm-head h1{margin:0}
.adm-actions{display:flex;gap:10px}
.adm-box{border:1px solid rgba(240,180,41,.3);background:var(--gold-dim);border-radius:var(--r-sm);padding:12px 16px;margin-bottom:18px}
.adm-box h3{margin:0 0 8px;font-size:14px;color:var(--gold)}
.adm-req{display:flex;align-items:center;gap:10px;margin-top:6px}
.adm-req>span{flex:1}
.adm-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:10px}
.adm-toolbar input,.um-powod,.um-funds input,.um-funds select,.um-act select,
.form-modal select,.user-modal select,.user-modal .field input{
  background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--txt);
  padding:9px 12px;font-size:14px;outline:none;font-family:inherit}
.adm-toolbar input{width:280px}
.adm-toolbar input:focus,.um-powod:focus,.um-funds input:focus,.user-modal .field input:focus{border-color:var(--gold)}
.form-modal select,.user-modal .field select,.user-modal .field input{width:100%}
.adm-sum{font-size:13px;color:var(--txt3)}
.adm-scroll{overflow-x:auto}
.adm-table td{vertical-align:middle}
.adm-table tbody tr:hover{background:var(--card)}
.gear{background:var(--card2);border:1px solid var(--line2);color:var(--txt2);border-radius:8px;
  width:34px;height:34px;font-size:17px;cursor:pointer;transition:.15s}
.gear:hover{color:var(--gold);border-color:rgba(240,180,41,.5);transform:rotate(45deg)}

/* ── okienko szczegółów konta ── */
.user-modal{width:min(900px,96vw);max-height:90vh}
.um-head{display:flex;align-items:center;gap:16px;margin-bottom:18px;padding-right:24px}
.um-head h2{margin:0}
.um-id{flex:1;min-width:0}
.cav.big{width:52px;height:52px;font-size:22px}
.um-saldo{text-align:right}
.um-saldo b{font-size:22px;font-family:var(--mono)}
.um-tabs,.um-okres,.bill-tabs{margin-bottom:14px;width:fit-content}
.um-okres{margin-bottom:10px}
.um-tabs button,.um-okres button,.bill-tabs button{padding:8px 16px}
.um-note{margin:6px 0 14px}
.um-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.um-grid div{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:2px}
.um-grid span{font-size:12px;color:var(--txt3)}
.um-grid b{font-size:16px}
.um-h{margin:20px 0 10px;font-size:14px;color:var(--gold);letter-spacing:.3px}
.um-funds{display:flex;gap:8px;flex-wrap:wrap}
.um-funds select{flex:1 1 230px} .um-funds input{flex:1 1 120px}
.um-powod{width:100%;margin-bottom:8px}
.um-bans td{vertical-align:middle}
.um-act{text-align:right;white-space:nowrap}
.um-act select{padding:6px 8px;font-size:13px;margin-right:6px}
.um-access{display:flex;gap:10px;flex-wrap:wrap}
.bill-box{max-height:320px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm)}
.bill-box .mini-empty{padding:16px}
.bill-box .usage-t th{position:sticky;top:0;background:var(--card)}

/* ── okienka: powiadomienie, formularze ── */
.notice-modal{width:min(420px,92vw);text-align:center}
.notice-ico{font-size:54px;line-height:1;margin:6px 0 12px}
.notice-text{font-size:16px;color:var(--txt);margin:8px 0 22px;line-height:1.5}
.form-modal{width:min(460px,92vw)}
.form-modal .keybox{font-size:18px;text-align:center;letter-spacing:1px}

/* ── skrzynka ownera: lista userów + wątek ── */
.chat-modal .cm-users{display:none}
.cm-main{display:flex;flex-direction:column;min-width:0;min-height:0;flex:1}
.chat-modal.inbox{width:min(1040px,96vw);flex-direction:row;height:min(760px,88vh)}
.chat-modal.inbox .cm-users{display:flex;flex-direction:column;width:300px;flex:0 0 auto;border-right:1px solid var(--line);min-height:0}
.cmu-head{padding:14px;border-bottom:1px solid var(--line)}
.cmu-head input{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--txt);padding:9px 12px;font-size:14px;outline:none}
.cmu-head input:focus{border-color:var(--gold)}
.cmu-list{flex:1;overflow-y:auto}
.cmu{display:flex;align-items:center;gap:10px;padding:11px 14px;cursor:pointer;border-bottom:1px solid var(--line)}
.cmu:hover{background:var(--card2)}
.cmu.on{background:var(--gold-dim);box-shadow:inset 3px 0 0 var(--gold)}
.cmu-b{flex:1;min-width:0}
.cmu-t{display:flex;justify-content:space-between;gap:8px}
.cmu-t b{font-size:14px} .cmu-t span{font-size:11px;color:var(--txt3)}
.cmu-p{font-size:12.5px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmu.unread .cmu-p{color:var(--txt)}
@media(max-width:760px){
  .chat-modal.inbox .cm-users{width:120px}
  .um-grid{grid-template-columns:1fr 1fr}
}

/* responsive */
@media(max-width:960px){
  #app.on{grid-template-columns:1fr}
  .hero{grid-template-columns:1fr;gap:32px;padding:40px 24px}
  .hero h1{font-size:38px}
  .feat{grid-template-columns:1fr}
  .topbar{padding:18px 24px}
}

/* ── landing: dwa przyciski ── */
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn.big.ghost{box-shadow:none}

/* ── lampka SERWERY AI ── */
.ai-status{display:flex;align-items:center;gap:7px;margin-left:14px;padding:5px 11px;border-radius:20px;
  background:var(--card);border:1px solid var(--line2);color:var(--txt2);font-size:11.5px;font-weight:700;
  letter-spacing:.5px;cursor:pointer;font-family:inherit}
.ai-status.on{color:var(--ok);border-color:rgba(63,185,80,.4)}
.ai-status.off{color:var(--err);border-color:rgba(248,81,73,.4)}
.lamp{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--txt3);flex:0 0 auto}
.lamp.on,.ai-status.on .lamp{background:var(--ok);box-shadow:0 0 10px rgba(63,185,80,.9)}
.lamp.off,.ai-status.off .lamp{background:var(--err);box-shadow:0 0 10px rgba(248,81,73,.8)}

/* ── „Jak to działa” ── */
.intro-modal{width:min(820px,96vw);max-height:90vh}
.intro-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.intro-head img{width:56px;height:56px}
.intro-head .sub{margin:0}
.intro-status{border:1px solid rgba(240,180,41,.35);background:var(--gold-dim);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:16px}
.intro-status h4{margin:0 0 10px;color:var(--gold);font-size:15px}
.intro-status p{margin:10px 0 0;font-size:13.5px;color:var(--txt2)}
.intro-lamps{display:flex;flex-direction:column;gap:6px;font-size:14px}
.intro-lamps div,.intro-now{display:flex;align-items:center;gap:10px}
.intro-now{margin-top:12px;padding-top:10px;border-top:1px solid rgba(240,180,41,.25);font-size:14px}
.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.intro-grid div{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px}
.intro-grid h4{margin:0 0 4px;font-size:14px}
.intro-grid p{margin:0;font-size:13px;color:var(--txt2);line-height:1.5}

/* ── czat z AI: zdjęcie do pytania ── */
.attach{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);width:46px;height:46px;
  font-size:18px;cursor:pointer;flex:0 0 auto}
.attach:hover{border-color:var(--gold)}
.ai-img-prev{align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px;color:var(--txt2)}
.ai-img-prev img{height:48px;border-radius:8px;border:1px solid var(--line2)}
.bimg{display:block;max-width:260px;max-height:220px;border-radius:10px;margin-bottom:6px;border:1px solid var(--line2)}

/* ── czat grupowy: komunikaty systemu, wyciszenie ── */
.csys{align-self:center;font-size:12px;color:var(--txt3);background:var(--card2);border:1px solid var(--line);
  border-radius:20px;padding:4px 12px}
.mute-row{font-size:13px;color:var(--err);background:rgba(248,81,73,.08);border:1px solid rgba(248,81,73,.3);
  border-radius:var(--r-sm);padding:8px 12px;margin-bottom:10px}
.cm-input textarea:disabled,.cm-input button:disabled{opacity:.4;cursor:not-allowed}

/* ── zaproszenia ── */
.form-modal.wide{width:min(760px,96vw);max-height:88vh}
.inv-p{margin:0 0 10px}
.inv-box{margin-top:12px;max-height:220px}
code{font-family:var(--mono);font-size:12.5px;color:var(--gold)}
@media(max-width:760px){ .intro-grid{grid-template-columns:1fr} }

/* ── role ── */
.pill.moderator{color:#7cc4ff;border-color:rgba(80,170,255,.35)}

/* ── czat w stylu Discorda: kanały | wiadomości | osoby ── */
.chat-modal .cx-side,.chat-modal .cx-members{display:none}
.chat-modal.community{width:min(1320px,98vw);height:min(860px,92vh);flex-direction:row}
.chat-modal.community .cx-side{display:flex;flex-direction:column;width:250px;flex:0 0 auto;background:var(--bg2);border-right:1px solid var(--line);min-height:0}
.chat-modal.community .cx-members{display:block;width:240px;flex:0 0 auto;background:var(--bg2);border-left:1px solid var(--line);overflow-y:auto;padding:8px 8px 14px}
.cx-brand{display:flex;align-items:center;gap:9px;padding:14px 16px;border-bottom:1px solid var(--line);font-weight:700}
.cx-brand img{width:28px;height:28px}
.cx-scroll{flex:1;overflow-y:auto;padding:6px 8px 14px}
.cx-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt3);padding:14px 8px 6px}
.cx-item,.cx-mem{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;cursor:pointer;color:var(--txt2);font-size:14px}
.cx-item:hover,.cx-mem:hover{background:var(--card2);color:var(--txt)}
.cx-item.on{background:var(--gold-dim);color:var(--gold)}
.cx-hash{font-size:19px;color:var(--txt3);width:24px;text-align:center}
.cx-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cx-empty{font-size:12px;color:var(--txt3);padding:4px 9px}
.cav.sm{width:28px;height:28px;font-size:12px;position:relative}
.pres{position:absolute;right:-2px;bottom:-2px;width:11px;height:11px;border-radius:50%;background:var(--txt3);border:2px solid var(--bg2)}
.pres.on{background:var(--ok)}
.cx-mem.off{opacity:.55}
.role{font-size:10px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:5px;background:var(--gold-dim);color:var(--gold)}
.role.moderator{background:rgba(80,170,255,.12);color:#7cc4ff}
.cx-menu{display:none;position:fixed;z-index:80;width:230px;background:var(--card);border:1px solid var(--line2);
  border-radius:var(--r-sm);box-shadow:var(--shadow);padding:6px}
.cx-menu.on{display:block}
.cx-mh{padding:8px 10px 10px;font-weight:700;border-bottom:1px solid var(--line);margin-bottom:4px}
.cx-menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--txt2);
  padding:8px 10px;border-radius:6px;font-size:13.5px;cursor:pointer}
.cx-menu button:hover{background:var(--card2);color:var(--txt)}
@media(max-width:1000px){ .chat-modal.community .cx-members{display:none} }
@media(max-width:700px){ .chat-modal.community .cx-side{width:150px} }

/* ── regulamin ── */
.terms-modal{width:min(760px,94vw);max-height:88vh}
.terms-body h4,.terms-box h4{margin:16px 0 4px;color:var(--gold);font-size:14px}
.terms-body p,.terms-box p{margin:0;font-size:13.5px;color:var(--txt2);line-height:1.55}
.terms-box{max-height:220px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-sm);padding:4px 14px 14px;margin:6px 0 12px}
.intro-terms{margin:-6px 0 14px}

/* ── ogłoszenie administracji ── */
.bc-modal{width:min(560px,94vw)}
.bc-tag{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:.4px;text-transform:uppercase;margin-bottom:8px}
.bc-text{white-space:pre-wrap;font-size:15px;line-height:1.6;color:var(--txt);margin:10px 0 18px;max-height:46vh;overflow-y:auto}
.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}

/* ── trybik: podgląd rozmów, incydenty ── */
.um-text{width:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--txt);
  padding:10px 12px;font-size:14px;font-family:inherit;outline:none;resize:vertical;margin-bottom:12px}
.um-text:focus{border-color:var(--gold)}
.um-pick{max-height:200px}
.um-row{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);cursor:pointer;font-size:13.5px}
.um-row:hover{background:var(--card2)}
.um-transcript{max-height:420px;padding:6px 12px}
.um-msg{padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.um-msg b{margin-right:8px}
.wrap{white-space:pre-wrap;word-break:break-word}

/* ── małe logo na płótnie (mruga jak na stronie startowej) ── */
canvas.logo-live{display:block}
.cx-brand canvas{width:28px;height:28px}
.intro-head canvas{width:56px;height:56px;flex:0 0 auto}

/* ── profil, rejestracja, pomoc ── */
.reg-names{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.alias-row{display:flex;gap:8px;margin-top:4px}
.alias-row input{flex:1;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r-sm);color:var(--txt);
  padding:9px 12px;font-size:14px;outline:none}
.alias-row input:focus{border-color:var(--gold)}
.info-btn{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;margin-left:6px;vertical-align:1px;
  background:var(--card2);border:1px solid var(--line2);color:var(--txt2);font:700 12px/1 Georgia,serif;font-style:italic;cursor:pointer}
.info-btn:hover{color:var(--gold);border-color:var(--gold)}
.help p{font-size:14px;color:var(--txt2);margin:0 0 10px;line-height:1.55}
.help b{color:var(--txt)}
.help-ex{background:var(--gold-dim);border:1px solid rgba(240,180,41,.3);border-radius:var(--r-sm);padding:9px 12px}
.intro-off{margin:0 0 12px}
.gear.eye{margin-right:6px}

/* ── strona startowa: logo na płótnie, przyciski u góry, tajemniczy napis ── */
.logo-big{width:100%;height:100%;display:block;filter:drop-shadow(0 0 40px rgba(60,170,255,.18))}
.landing-cta .cta-row{margin-bottom:30px}
.landing-cta .lead{font-size:16px;line-height:1.6}
.lead-1{display:block;font-size:24px;line-height:1.3;color:var(--txt);font-weight:800;letter-spacing:-.3px;margin-bottom:8px}
.landing-cta .vip-note{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:34px}
.secret{font-family:var(--mono);font-size:12.5px;letter-spacing:3.5px;color:#7cc4ff;text-shadow:0 0 14px rgba(80,170,255,.65);min-height:18px}
.caret{color:var(--gold);margin-left:2px;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}

/* ── panel: wybór animacji logo ── */
.logo-pick{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.logo-opt{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line2);border-radius:var(--r);padding:12px;cursor:pointer}
.logo-opt.on{border-color:var(--gold);background:var(--gold-dim)}
.logo-opt canvas{width:100%;height:auto;aspect-ratio:1}
.landing-cta .cta-row{flex-wrap:nowrap}
.landing-cta .cta-row .btn.big{flex:1;padding:15px 22px;white-space:nowrap}


/* ═══════════ TELEFON I TABLET (iPhone, Android) ═══════════ */
*{-webkit-tap-highlight-color:transparent}
.menu-btn,.side-mob,.side-backdrop,.pane-btn{display:none}
.close-x{background:none;border:none;color:var(--txt2);font-size:26px;line-height:1;cursor:pointer;padding:2px 6px}
.pane-btn{background:var(--card2);border:1px solid var(--line2);color:var(--txt2);border-radius:8px;
  width:38px;height:36px;font-size:17px;cursor:pointer;flex:0 0 auto;place-items:center}
@media (hover:none){ .cdel{opacity:.6} .sess-del{opacity:.8} }   /* dotyk: przyciski widoczne bez najechania */

@media (max-width:1000px){
  /* czat: lista osób wysuwana z prawej */
  .chat-modal.community{position:relative}
  .chat-modal.community .cx-members{display:block!important;position:absolute;top:0;bottom:0;right:0;width:min(300px,80%);
    z-index:6;transform:translateX(102%);transition:transform .22s ease;box-shadow:-12px 0 32px rgba(0,0,0,.55)}
  .chat-modal.community.show-r .cx-members{transform:none}
  .chat-modal.community .pane-r{display:inline-grid}
}
@media (max-width:960px){
  /* panel boczny = wysuwana szuflada pod ☰ */
  .side{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);z-index:45;transform:translateX(105%);
    transition:transform .25s ease;box-shadow:-12px 0 40px rgba(0,0,0,.55);
    padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}
  #app.side-open .side{transform:none}
  .side-backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:44;opacity:0;pointer-events:none;transition:opacity .25s}
  #app.side-open .side-backdrop{opacity:1;pointer-events:auto}
  .menu-btn{display:inline-flex;align-items:center;gap:4px;font-size:18px;padding:5px 12px}
  .sess-list{max-height:42vh}
  .landing-logo-wrap{width:min(70vw,50vh,520px);height:min(70vw,50vh,520px)}
}
@media (max-width:760px){
  .hide-m{display:none!important}
  input,select,textarea{font-size:16px!important}          /* iOS nie powiększa strony przy pisaniu */

  /* strona startowa: jedna kolumna */
  .landing-wrap{flex-direction:column;gap:22px;padding:calc(26px + env(safe-area-inset-top)) 18px calc(26px + env(safe-area-inset-bottom))}
  .landing-logo-wrap{width:min(82vw,46vh,360px);height:min(82vw,46vh,360px)}
  .landing-cta{max-width:100%;width:100%;text-align:center}
  .landing-cta .cta-row{flex-direction:column;gap:10px;margin-bottom:22px}
  .landing-cta .cta-row .btn.big{width:100%}
  .lead-1{font-size:20px}
  .landing-cta .vip-note{flex-direction:column;justify-content:center;gap:12px;margin-top:22px}

  /* pasek górny */
  .appbar{height:calc(56px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;gap:8px}
  .appbar .who{display:none}
  .appbar .right{gap:8px}
  .logo{gap:8px}
  .logo .mark-img{width:30px;height:30px}
  .logo .name{font-size:15px;white-space:nowrap}
  .ai-status{margin-left:4px;padding:4px 9px;font-size:10.5px;letter-spacing:.3px}
  .ai-status .st-k{display:none}
  .side-mob{display:block;padding:14px;border-bottom:1px solid var(--line)}
  .side-mob-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--txt2);margin-bottom:10px}
  .side-mob-top b{color:var(--txt)}
  .side-mob-btns{display:flex;gap:8px;flex-wrap:wrap}

  /* czat z AI */
  .chatwrap{padding:6px 12px 0}
  .sess-title{padding:4px 2px 6px}
  .chat{padding:6px 2px 14px;gap:12px}
  .msgrow{gap:8px}
  .bubble{font-size:15px}
  .bimg{max-width:100%}
  .ctl-label,.hint{display:none}
  .controls{margin-bottom:8px}
  .seg button{padding:7px 9px;font-size:12px;white-space:nowrap}
  .inputrow{gap:8px}
  .inputrow textarea{padding:11px 13px}
  .attach,.send{width:44px;height:44px}
  .composer{padding:8px 0 calc(4px + env(safe-area-inset-bottom))}
  .foot{padding:6px 2px 8px;font-size:11px}
  .foot>span:first-child{display:none}

  /* panel admina */
  #admin{inset:calc(56px + env(safe-area-inset-top)) 0 0 0}
  #admin .inner{padding:16px 12px calc(24px + env(safe-area-inset-bottom))}
  .adm-head h1{font-size:20px}
  .adm-actions{flex-wrap:wrap;gap:6px}
  .adm-actions .iconbtn{font-size:12px;padding:6px 9px}
  .adm-toolbar{flex-wrap:wrap}
  .adm-toolbar input{width:100%}
  .adm-table{min-width:780px}

  /* okna */
  .modal{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important}
  .card{padding:20px 16px}
  .seg{max-width:100%;overflow-x:auto}
  .um-head{flex-wrap:wrap;padding-right:28px}
  .um-saldo{text-align:left}
  .um-grid{grid-template-columns:1fr 1fr}
  .um-act{white-space:normal}
  .logo-pick{grid-template-columns:1fr}
  .notice-ico{font-size:46px}

  /* czat (kanały, rozmowy, skrzynka) — pełny ekran, listy wysuwane */
  .chat-modal,.chat-modal.community,.chat-modal.inbox{width:100vw!important;height:100dvh!important;max-height:100dvh!important;
    border-radius:0;border:none;position:relative}
  .chat-modal .cm-head{padding:calc(8px + env(safe-area-inset-top)) 10px 8px;gap:8px}
  .chat-modal .cm-head h2{flex:1;min-width:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cm-list{padding:12px 10px;min-height:0}
  .cm-composer{padding:8px 10px calc(8px + env(safe-area-inset-bottom))}
  .cimg{max-width:100%}
  .caudio{max-width:100%}
  .chat-modal.community .cx-side,.chat-modal.inbox .cm-users{position:absolute;top:0;bottom:0;left:0;width:min(320px,84%)!important;
    z-index:6;transform:translateX(-102%);transition:transform .22s ease;box-shadow:12px 0 32px rgba(0,0,0,.55)}
  .chat-modal.show-l .cx-side,.chat-modal.show-l .cm-users{transform:none}
  .chat-modal.community .pane-l,.chat-modal.inbox .pane-l{display:inline-grid}
}
.alias-row input,.um-funds input,.um-funds select,.cm-input textarea,.inputrow textarea{min-width:0}
@media (max-width:960px){
  .appbar .who{display:none}
  .appbar .iconbtn,.ai-status,.logo .name{white-space:nowrap}
  .appbar .right{gap:8px}
}
