/* POWSTALO: 2026-09-28 — Zaxon 1.0, na zlecenie ZaXu. */
:root {
  --tlo: #f6f6f4; --panel: #ffffff; --menu: #ecebe7; --tekst: #1d1f23; --slaby: #6b6f76;
  --linia: #dcdad4; --akcent: #2f6fdb; --akcent-t: #ffffff; --moja: #e4ecfb; --kod: #efeee9;
  --czerwony: #c23b32; --zielony: #2c8a4b;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --tlo: #14161a; --panel: #1b1e23; --menu: #111317; --tekst: #e6e6e3; --slaby: #979ba3;
    --linia: #2b2f36; --akcent: #5b8ff0; --akcent-t: #0d0f12; --moja: #22314d; --kod: #23272e;
    --czerwony: #f0776d; --zielony: #5cc27f;
  }
}
:root[data-theme="dark"] {
  --tlo: #14161a; --panel: #1b1e23; --menu: #111317; --tekst: #e6e6e3; --slaby: #979ba3;
  --linia: #2b2f36; --akcent: #5b8ff0; --akcent-t: #0d0f12; --moja: #22314d; --kod: #23272e;
  --czerwony: #f0776d; --zielony: #5cc27f;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { background: var(--tlo); color: var(--tekst); font: 15px/1.5 system-ui, -apple-system, "Segoe UI", sans-serif; }
button { font: inherit; cursor: pointer; border: 0; border-radius: 8px; padding: 8px 14px; background: var(--akcent); color: var(--akcent-t); }
button.maly { padding: 2px 8px; font-size: 12px; }
[hidden] { display: none !important; }

.logowanie { display: grid; place-items: center; height: 100%; padding: 16px; }
.logowanie form { background: var(--panel); border: 1px solid var(--linia); border-radius: 12px; padding: 24px; width: min(360px, 100%); display: grid; gap: 10px; }
.logowanie h1 { margin: 0; }
.logowanie input { font: inherit; padding: 10px; border-radius: 8px; border: 1px solid var(--linia); background: var(--tlo); color: var(--tekst); }
.blad { color: var(--czerwony); min-height: 1em; margin: 0; }

.aplikacja { display: flex; height: 100dvh; }
.menu { width: 260px; flex: none; background: var(--menu); border-right: 1px solid var(--linia); display: flex; flex-direction: column; overflow: hidden; }
.marka { font-weight: 700; font-size: 18px; padding: 16px; }
nav a, .rozmowy a { display: block; padding: 8px 16px; color: var(--tekst); text-decoration: none; border-radius: 8px; margin: 1px 8px; cursor: pointer; }
nav a:hover, .rozmowy a:hover { background: var(--linia); }
nav a.aktywna, .rozmowy a.aktywna { background: var(--panel); font-weight: 600; }
.sekcja-tytul { display: flex; justify-content: space-between; align-items: center; padding: 16px 16px 6px; color: var(--slaby); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; }
.rozmowy { overflow-y: auto; flex: 1; padding-bottom: 12px; }
.rozmowy a { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rozmowy a .kropka { color: var(--zielony); }
.zaslona { display: none; }

.glowne { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.gora { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--linia); background: var(--panel); }
.hamburger { display: none; background: none; color: var(--tekst); font-size: 20px; padding: 4px 8px; }
.tytul { font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.widok { flex: 1; min-height: 0; }
.czat-uklad { display: flex; }
.lista-rozmow { width: 250px; flex: none; display: flex; flex-direction: column; background: var(--tlo); border-right: 1px solid var(--linia); overflow: hidden; }
.czat { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.przycisk-rozmowy { display: none; margin-left: auto; flex: none; padding: 4px 10px; font-size: 13px; background: var(--menu); color: var(--tekst); border: 1px solid var(--linia); }
.wiadomosci { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 12px; }
.pusto { color: var(--slaby); margin: auto; }
.msg { max-width: 780px; width: fit-content; padding: 10px 14px; border-radius: 12px; overflow-wrap: anywhere; }
.msg.user { align-self: flex-end; background: var(--moja); white-space: pre-wrap; }
.msg.assistant { align-self: flex-start; background: var(--panel); border: 1px solid var(--linia); }
.msg.partial { opacity: .75; }
.msg p:first-child { margin-top: 0; } .msg p:last-child { margin-bottom: 0; }
.msg pre, .msg code { background: var(--kod); border-radius: 6px; font-size: 13px; }
.msg pre { padding: 10px; overflow-x: auto; } .msg code { padding: 1px 4px; } .msg pre code { padding: 0; }
.msg table { border-collapse: collapse; display: block; overflow-x: auto; }
.msg th, .msg td { border: 1px solid var(--linia); padding: 4px 8px; text-align: left; }
.stan { padding: 4px 16px; color: var(--slaby); font-size: 13px; }
.pisz { display: flex; gap: 8px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--linia); background: var(--panel); }
.pisz textarea { flex: 1; font: inherit; resize: none; max-height: 40vh; padding: 10px; border-radius: 10px; border: 1px solid var(--linia); background: var(--tlo); color: var(--tekst); }
.stop { background: var(--czerwony); }

.app { overflow-y: auto; }
.app-tresc { padding: 16px; max-width: 900px; }
.app-tresc h2 { font-size: 16px; margin: 20px 0 8px; }
.karta { background: var(--panel); border: 1px solid var(--linia); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; overflow-wrap: anywhere; }
.karta .meta { color: var(--slaby); font-size: 12px; }
.po-terminie { color: var(--czerwony); }
.uwaga { color: var(--slaby); font-size: 13px; font-style: italic; }
.gdzie-stoimy { font-size: 14px; }

/* konsola (29.09) */
.konsola { display: flex; flex-direction: column; min-height: 0; }
.pin { margin: auto; background: var(--panel); border: 1px solid var(--linia); border-radius: 12px; padding: 24px; width: min(360px, calc(100% - 32px)); display: grid; gap: 10px; }
.pin input { font: inherit; padding: 10px; border-radius: 8px; border: 1px solid var(--linia); background: var(--tlo); color: var(--tekst); }
.konsola-cala { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.terminal { flex: 1; min-height: 0; background: #0d0f12; padding: 4px; overflow: hidden; }
.klawisze { display: flex; gap: 6px; padding: 6px 10px; overflow-x: auto; background: var(--menu); border-top: 1px solid var(--linia); }
.klawisze button { flex: none; padding: 6px 10px; font-size: 13px; background: var(--panel); color: var(--tekst); border: 1px solid var(--linia); }
.klawisze button.wcisniety { background: var(--akcent); color: var(--akcent-t); }

@media (max-width: 760px) {
  .menu { position: fixed; inset: 0 auto 0 0; z-index: 20; transform: translateX(-100%); transition: transform .2s; width: 82vw; max-width: 300px; }
  .menu.otwarte { transform: none; }
  .zaslona.otwarte { display: block; position: fixed; inset: 0; background: #0006; z-index: 10; }
  .hamburger { display: block; }
  .przycisk-rozmowy { display: block; }
  .lista-rozmow { position: fixed; inset: 0 auto 0 0; z-index: 20; transform: translateX(-100%); transition: transform .2s; width: 82vw; max-width: 300px; }
  .lista-rozmow.otwarte { transform: none; }
  .wiadomosci, .app-tresc { padding: 12px 16px; }
  .msg { max-width: 100%; }
}

/* kalendarz inwestora (12.11) — projektowany pod telefon */
.kal { --wysoka: #d0453a; --srednia: #d99a1e; --niska: #9aa0a8; }
.kal h2 { margin-top: 22px; }
.kal-legenda { color: var(--slaby); font-size: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin-top: 4px; }
.kal-kropka { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--niska); }
.kal-kropka.kal-wysoka { background: var(--wysoka); } .kal-kropka.kal-srednia { background: var(--srednia); }
.kal-dzien { padding: 8px 12px; }
.kal-dzis { border-color: var(--akcent); box-shadow: inset 3px 0 0 var(--akcent); }
.kal-pusty { padding: 6px 12px; }
.kal-naglowek { font-weight: 600; font-size: 14px; margin-bottom: 2px; }
.kal-pusty .kal-naglowek { margin: 0; font-weight: 500; color: var(--slaby); }
.kal-poz { display: grid; grid-template-columns: 64px 1fr; gap: 8px; padding: 7px 0 7px 10px; border-top: 1px solid var(--linia); border-left: 3px solid var(--niska); margin-left: -2px; }
.kal-naglowek + .kal-poz { border-top: 0; }
.kal-poz.kal-wysoka { border-left-color: var(--wysoka); } .kal-poz.kal-srednia { border-left-color: var(--srednia); }
.kal-poz.kal-wysoka .kal-tresc { font-weight: 600; }
.kal-poz .meta { font-weight: 400; }
.kal-czas { color: var(--slaby); font-size: 13px; font-variant-numeric: tabular-nums; line-height: 1.35; }
.kal-czas b { color: var(--tekst); font-weight: 600; }
.kal-tresc { font-size: 14px; line-height: 1.35; min-width: 0; }
.kal-bylo { opacity: .45; }
.kal-wiecej summary, .kal-wszystko summary { cursor: pointer; color: var(--akcent); font-size: 13px; padding: 6px 0; list-style-position: inside; }
.kal-wszystko > summary { font-size: 14px; padding: 10px 0; }
.kal-alarm { border-color: var(--czerwony); color: var(--czerwony); }
.kal-alarm div { margin-top: 4px; font-size: 14px; }
@media (max-width: 760px) { .kal-poz { grid-template-columns: 58px 1fr; } }

/* podatki 2026 (12.11) */
.pod-wyslij { display: grid; gap: 6px; text-align: center; padding: 14px; }
.pod-przycisk { display: block; background: var(--akcent); color: var(--akcent-t); border-radius: 10px; padding: 14px; font-weight: 600; font-size: 16px; cursor: pointer; }
.pod-plik { display: flex; align-items: center; gap: 10px; }
.pod-plik-tresc { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.pod-usun { background: var(--menu); color: var(--czerwony); border: 1px solid var(--linia); flex: none; }
.pod-grupa { font-size: 13px; font-weight: 600; margin: 12px 0 6px; color: var(--slaby); }
.pod-zad { display: flex; align-items: flex-start; gap: 10px; border-left: 4px solid var(--linia); }
.pod-zad.pod-pilne { border-left-color: #d0453a; } .pod-zad.pod-warto { border-left-color: #d99a1e; }
.pod-odhacz { flex: none; background: var(--menu); color: var(--tekst); border: 1px solid var(--linia); }
.pod-instr summary { cursor: pointer; list-style: none; position: relative; padding-right: 24px; }
.pod-instr summary::-webkit-details-marker { display: none; }
.pod-instr summary::after { content: '›'; position: absolute; right: 0; top: 0; color: var(--slaby); font-size: 20px; line-height: 1; }
.pod-instr[open] summary::after { content: '⌄'; }
.pod-instr ol { margin: 8px 0 2px; padding-left: 20px; font-size: 14px; }
.pod-instr li { margin: 4px 0; }
/* Trading — misje (13.11) */
.tr-spelniona { border-color: var(--zielony, #2e9d57); }
.tr-polowa { border-color: var(--zolty, #c99a1e); }
.tr-szansa { margin-top: 6px; font-size: 14px; }
.tr-form { display: grid; gap: 8px; margin-top: 8px; }
.tr-form input[type=number] { width: 70px; }
.tr-tab { width: 100%; border-collapse: collapse; font-size: 14px; }
.tr-tab th, .tr-tab td { text-align: right; padding: 3px 4px; }
.tr-tab th:first-child, .tr-tab td:first-child { text-align: left; }
/* Podatki — wynik (13.11) */
.pod-wynik { display: grid; gap: 6px; text-align: center; }
.pod-w { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px solid var(--linia); font-size: 14px; }
.pod-w-mocny { font-weight: 600; }
