:root{--bg:#0E1014;--surface:#171A20;--surface2:#20242C;--border:#2A2F38;--line:#242830;--text:#E8EAEE;--muted:#A3A9B3;
  --accent:#E0307A;--accent2:#ff8a3d;--in:#7FDCA6;--in-bg:#14261C;--in-b:#1E4B31;--flag:#FFB866;--flag-bg:#3A2712;--bad:#ff7aa0;--bad-bg:#3a1622;
  --sel:#2C1823;--av-bg:#3A1A2A;--av-fg:#F59CC1;--head:#08090B;color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;font-size:15px}
button{font:inherit;color:inherit}
h1,h2,h3,.disp{font-family:'Space Grotesk',Inter,sans-serif;margin:0}
/* 1.26: pasek menu „przyklejony” (sticky) zamiast fixed – na iPhonie fixed potrafił wisieć wyżej, dopóki nie przewinąć strony */
body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}
.app{flex:1 0 auto;width:100%;max-width:560px;align-self:center;margin:0 auto;padding:calc(env(safe-area-inset-top) + 14px) 16px 18px;display:flex;flex-direction:column;gap:12px}
.app [id$=Box]{display:flex;flex-direction:column;gap:12px}
.grid3 .card{padding:12px 12px;min-width:0}.grid3 .card .mut{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loading{display:flex;justify-content:center;padding:80px 0}.spin{width:34px;height:34px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:sp 0.8s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.hello{display:flex;gap:12px;align-items:center}
.av{width:54px;height:54px;border-radius:50%;background:var(--av-bg);color:var(--av-fg);display:grid;place-items:center;font:700 20px 'Space Grotesk';flex:none;overflow:hidden}
.av svg,.av img{width:100%;height:100%;display:block;object-fit:cover}
.av.s{width:34px;height:34px;font-size:13px}
.hello h1{font-size:23px;line-height:1.15}
.mut{color:var(--muted)}.sm{font-size:13px}.xs{font-size:12px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:14px 16px}
.card h3{font-size:15px;margin-bottom:6px}
.big{font:700 28px 'Space Grotesk';line-height:1.1}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.in{background:var(--in-bg);border-color:var(--in-b)}
.ann{border-left:4px solid var(--accent)}.ann.read{border-left-color:var(--border)}
.label{font:700 11px Inter;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px}
.warn{background:var(--flag-bg);color:var(--flag);border:0}.bad{background:var(--bad-bg);color:var(--bad);border:0}
.bar{height:10px;border-radius:6px;background:var(--surface2);overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:6px}
.bar.ok i{background:linear-gradient(90deg,#34b36f,#ffd36a)}
.nav{position:sticky;left:0;right:0;bottom:0;width:100%;flex:none;background:var(--head);border-top:1px solid var(--border);display:flex;justify-content:space-around;
  padding:8px 6px max(8px, env(safe-area-inset-bottom));z-index:20}
.nav button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--muted);
  flex:1;min-width:0;padding:7px 2px;border-radius:12px;cursor:pointer}
.nav button b{font-size:20px;line-height:1}.nav button.on{color:#fff;background:var(--accent)}
.nav .s{display:none}
@media (max-width:380px){.nav .l{display:none}.nav .s{display:inline}}
.nav span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.days div.d{display:flex;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.days div.d:last-child{border-bottom:0}
.pill{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:var(--surface2);white-space:nowrap}
.pill.in{background:var(--in-bg);color:var(--in)}.pill.warn{background:var(--flag-bg);color:var(--flag)}.pill.bad{background:var(--bad-bg);color:var(--bad)}
.mnav{display:flex;align-items:center;justify-content:space-between}
.mnav button{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:44px;height:40px;font-size:18px;cursor:pointer}
.mnav h2{font-size:21px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.cal .h{font:600 11px Inter;color:var(--muted);padding-bottom:2px}
.cal button{aspect-ratio:1;border-radius:11px;background:var(--surface2);border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  font:600 15px Inter;cursor:pointer;padding:0;position:relative}
.cal button small{font-size:9px;font-weight:700;line-height:1.1}
.cal button.x{background:#4a1d2a;color:#ff8fb1}.cal button.p{background:#43311a;color:#ffc56b}
.cal button.past{opacity:.3;cursor:default}.cal button.today{outline:2px solid var(--accent)}
.cal .e{visibility:hidden}
.legend{display:flex;gap:14px;font-size:11px;color:var(--muted);margin-top:10px}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}.legend i.x{background:#4a1d2a}.legend i.p{background:#43311a}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40;display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:560px;background:var(--surface);border-radius:24px 24px 0 0;border-top:1px solid var(--border);
  padding:18px 18px calc(env(safe-area-inset-bottom) + 22px);box-shadow:0 -20px 40px rgba(0,0,0,.5);animation:up .2s ease-out}
@keyframes up{from{transform:translateY(40px);opacity:.4}}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}
.opts button{border:1.5px solid var(--border);border-radius:12px;padding:12px 8px;background:none;font-weight:600;font-size:14px;cursor:pointer}
.opts button.on{border-color:var(--accent);background:var(--sel)}
input.inp,select.inp{width:100%;border:1px solid var(--border);background:#11141A;border-radius:12px;padding:12px;font:inherit;color:var(--text);min-height:46px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;border-radius:12px;border:0;background:var(--accent);color:#fff;
  font-weight:700;font-size:15px;cursor:pointer}
.btn.ghost{background:none;border:1.5px solid var(--border);color:var(--text)}
.btn:disabled{opacity:.5}
.err{color:var(--bad);font-size:13px;min-height:18px;margin-top:6px}
.medals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.md{background:var(--surface2);border-radius:14px;padding:10px 4px;text-align:center;font-size:11px;font-weight:600;line-height:1.2;border:0;cursor:pointer}
.md b{display:block;font-size:26px;margin-bottom:3px;font-weight:400}
.md.m3{box-shadow:inset 0 0 0 2px #e8b931}.md.m2{box-shadow:inset 0 0 0 2px #b9c2cc}.md.m1{box-shadow:inset 0 0 0 2px #c27c45}
.md.neg{box-shadow:inset 0 0 0 2px #7a2340}.md.lock{opacity:.32}
.rk .r{display:flex;align-items:center;gap:10px;padding:7px 0;font-size:14px}.rk .r.me{background:var(--sel);border-radius:10px;padding:7px 8px;margin:0 -8px}
.rk .pos{width:26px;text-align:center}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom) + 92px);transform:translateX(-50%);background:var(--text);color:var(--bg);
  padding:11px 18px;border-radius:12px;font-weight:600;font-size:14px;z-index:60;max-width:90vw;text-align:center}
.bell{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;width:44px;height:44px;font-size:19px;cursor:pointer;flex:none}
.bell i{position:absolute;top:-4px;right:-4px;background:var(--accent);color:#fff;font:700 11px Inter;font-style:normal;min-width:19px;height:19px;border-radius:10px;display:grid;place-items:center;padding:0 4px}
.empty{text-align:center;padding:40px 10px;color:var(--muted)}
.empty b{display:block;font-size:46px;margin-bottom:6px}
.inb .i{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.inb .i:last-child{border:0}
.inb .i b.ic{font-size:22px;flex:none}.inb .i.new{font-weight:600}
.welcome{text-align:center;padding:20px 6px}
.welcome b{font-size:54px;display:block}
.tip{font-size:13px;color:var(--muted);line-height:1.45}
.tip b{color:var(--text)}
.md{min-width:0;overflow-wrap:break-word}.app>*{min-width:0}
@media (max-width:360px){.medals{grid-template-columns:repeat(3,minmax(0,1fr))}.cal{gap:3px}.cal button{font-size:14px;border-radius:9px}.big{font-size:24px}}
.motd{background:linear-gradient(135deg,#2a2410,#1d1a12);border-color:#4a3d1a}.motd .label{color:#ffcf5a}
.nshift{border-left:4px solid var(--accent)}
.plw .d.tod{background:var(--sel);margin:0 -16px;padding:10px 16px}
.swbtn{margin-top:4px;background:none;border:1px solid var(--border);border-radius:8px;padding:3px 8px;font-size:12px;color:var(--muted);cursor:pointer}
.swc .swi{padding:10px 0;border-bottom:1px solid var(--line)}.swc .swi:last-child{border:0;padding-bottom:0}
.swl{display:flex;flex-wrap:wrap;gap:6px}.swl button{border:1.5px solid var(--border);background:none;border-radius:10px;padding:9px 11px;font-weight:600;font-size:14px;cursor:pointer}
.swl button.on{border-color:var(--accent);background:var(--sel)}.swl button:disabled{opacity:.4}.swl small{font-weight:400;color:var(--muted)}

.swi.mk{border-left:3px solid var(--accent);padding-left:10px}

/* 1.24 moje dokumenty */
.dkl{display:flex;flex-direction:column}
.dk{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line,#23262d);color:inherit;text-decoration:none}
.dk:last-child{border-bottom:0}
.dk .ic{width:42px;height:42px;border-radius:10px;background:#2a2e37;display:grid;place-items:center;font-size:11px;font-weight:800;color:#ff7ab0;flex:none}
.dk .nm{flex:1;min-width:0}.dk .nm b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dk .nm small{color:var(--muted);font-size:12px}
.dk .go{font-size:22px;color:var(--muted)}

/* 1.25 ankiety */
.poll{margin-top:10px}
.poll .po{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line,#2a2e37);border-radius:12px;margin-top:6px;font-size:15px}
.poll .po input{width:20px;height:20px;accent-color:var(--accent,#e0307a)}
.poll .pr{margin-top:8px;font-size:14px}.poll .pr .row{margin-bottom:4px}
.poll .pr .bar{height:8px}.poll .pr.me b,.poll .pr.me span{color:var(--accent,#ff5c9d)}
.d.click{cursor:pointer}

/* 1.25: jasny motyw (Ustawienia: ciemny / jasny / jak w telefonie) */
:root[data-theme="light"]{--bg:#F3F4F7;--surface:#FFFFFF;--surface2:#ECEEF2;--border:#DCDFE5;--line:#E6E8EC;--text:#16181D;--muted:#5F6672;
  --in:#167A45;--in-bg:#E3F5EA;--in-b:#B6E2C6;--flag:#8A5300;--flag-bg:#FFF0DA;--bad:#B3123F;--bad-bg:#FDE3EA;
  --sel:#FCE4EF;--av-bg:#FCE4EF;--av-fg:#B81E61;--head:#FFFFFF;color-scheme:light}
:root[data-theme="light"] input.inp,:root[data-theme="light"] select.inp{background:#fff}
:root[data-theme="light"] .cal button.x,:root[data-theme="light"] .legend i.x{background:#FBD5E0;color:#A3123E}:root[data-theme="light"] .legend i.p{background:#FFE7C2}
:root[data-theme="light"] .cal button.p{background:#FFE7C2;color:#8A5300}
:root[data-theme="light"] .motd{background:linear-gradient(135deg,#FFF6D8,#FFF1C9);border-color:#F1D98A}:root[data-theme="light"] .motd .label{color:#9A6B00}
:root[data-theme="light"] .dk .ic{background:#FCE4EF;color:#B81E61}
:root[data-theme="light"] .md.neg{box-shadow:inset 0 0 0 2px #E58FAB}
:root[data-theme="light"] .sheet-bg{background:rgba(20,22,28,.35)}
:root[data-theme="light"] .sheet{box-shadow:0 -12px 30px rgba(0,0,0,.15)}
:root[data-theme="light"] .bday{background:linear-gradient(135deg,#FCE4EF,#FFF1C9)!important}
.themesw{display:flex;gap:6px;margin-top:8px}
.themesw button{flex:1;border:1px solid var(--border);background:var(--surface2);border-radius:12px;padding:10px 4px;font-size:13px;font-weight:600;cursor:pointer}
.themesw button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.nav[hidden]{display:none}

/* 1.26: zgłoś problem */
.repbtn{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
.reptop{display:flex;flex-wrap:wrap;gap:6px}
.reptop button{border:1px solid var(--border);background:var(--surface2);border-radius:999px;padding:8px 12px;font-size:13px;font-weight:600;cursor:pointer}
.reptop button.on{background:var(--accent);border-color:var(--accent);color:#fff}
textarea.inp{width:100%;border:1px solid var(--border);background:#11141A;border-radius:12px;padding:12px;font:inherit;font-size:15px;color:var(--text);min-height:110px;display:block}
:root[data-theme="light"] textarea.inp{background:#fff}
.card.flag{background:var(--flag-bg);border-color:transparent;color:var(--flag)}.card.flag b{color:var(--flag)}

/* 1.27 */
.annconf{margin-top:10px;width:100%}
.annok{margin-top:10px;font-size:13px;font-weight:600;color:var(--in)}
.remseg{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.remseg button{flex:1 1 auto;min-width:64px;font:inherit;font-size:13px;font-weight:600;padding:9px 8px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}
.remseg button.on{background:var(--accent);border-color:var(--accent);color:#fff}
