[hidden]{display:none!important}

/* Layout: narzędzie biurowe — górny pasek z menu F-klawiszy jak w FAN, pod nim jeden ekran roboczy */
:root{
 --bg:#f3f5f7; --panel:#ffffff; --fg:#17202a; --muted:#5b6876; --line:#d7dde4;
 --accent:#1d5a86; --accent-fg:#ffffff; --ccd:#1d5a86; --ct:#7a4f12;
 --ok:#1f7a45; --ok-bg:#e3f3e9; --warn:#8a5a00; --warn-bg:#fbf0d9; --bad:#a32727; --bad-bg:#fbe4e4;
 --key:#e8edf2;
 --f-body:"IBM Plex Sans",system-ui,sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,monospace; --f-head:"IBM Plex Sans Condensed","IBM Plex Sans",sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --bg:#10161c; --panel:#18212a; --fg:#e6ecf1; --muted:#9aa8b5; --line:#2b3743;
 --accent:#6fb0e0; --accent-fg:#0d1720; --ccd:#6fb0e0; --ct:#e0b36a;
 --ok:#6fd39a; --ok-bg:#16301f; --warn:#f0c36a; --warn-bg:#33270f; --bad:#f08b8b; --bad-bg:#3a1a1a; --key:#24303b; color-scheme:dark}}
:root[data-theme="dark"]{
 --bg:#10161c; --panel:#18212a; --fg:#e6ecf1; --muted:#9aa8b5; --line:#2b3743;
 --accent:#6fb0e0; --accent-fg:#0d1720; --ccd:#6fb0e0; --ct:#e0b36a;
 --ok:#6fd39a; --ok-bg:#16301f; --warn:#f0c36a; --warn-bg:#33270f; --bad:#f08b8b; --bad-bg:#3a1a1a; --key:#24303b; color-scheme:dark}
html,body{background:var(--bg);color:var(--fg)}
body{font-family:var(--f-body);font-size:15px;line-height:1.45}
.wrap{max-width:1180px;margin:0 auto;padding-block:16px 40px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;gap:16px}
header{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px}
h1{font-family:var(--f-head);font-size:26px;margin:0;letter-spacing:.01em}
.note{font-size:13px;color:var(--muted)}
.tag{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--warn-bg);color:var(--warn)}
nav{display:flex;flex-wrap:wrap;gap:6px}
nav button{font:500 14px var(--f-body);border:1px solid var(--line);background:var(--panel);color:var(--fg);padding:7px 12px;border-radius:6px;cursor:pointer;display:flex;gap:8px;align-items:center}
nav button kbd{font:500 11px var(--f-mono);background:var(--key);padding:1px 5px;border-radius:3px;color:var(--muted)}
nav button[aria-pressed="true"]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
nav button[aria-pressed="true"] kbd{background:transparent;color:var(--accent-fg)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
section.screen{display:grid;gap:14px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px 16px;display:grid;gap:12px;min-width:0}
h2{font-family:var(--f-head);font-size:19px;margin:0}
.row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:end}
label{display:grid;gap:3px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
input,select{font:15px var(--f-body);padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);min-width:0}
input.scan{font:500 20px var(--f-mono);width:min(320px,100%);border:2px solid var(--accent)}
.btn{font:600 14px var(--f-body);padding:8px 14px;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-fg);cursor:pointer}
.btn.ghost{background:transparent;color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{font:12px var(--f-mono);border:1px dashed var(--line);background:transparent;color:var(--muted);padding:4px 8px;border-radius:4px;cursor:pointer}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;border-bottom:1px solid var(--line);padding:6px 8px;white-space:nowrap}
td{border-bottom:1px solid var(--line);padding:6px 8px;vertical-align:top}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.mono{font-family:var(--f-mono);font-size:13px}
.firm{font-size:12px;font-weight:600;padding:1px 7px;border-radius:10px;border:1px solid currentColor;white-space:nowrap}
.firm.ccd{color:var(--ccd)} .firm.ct{color:var(--ct)}
.st{font-size:12px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap}
.st.ok{background:var(--ok-bg);color:var(--ok)} .st.warn{background:var(--warn-bg);color:var(--warn)} .st.bad{background:var(--bad-bg);color:var(--bad)}
.msg{padding:8px 12px;border-radius:6px;font-size:14px}
.msg.ok{background:var(--ok-bg);color:var(--ok)} .msg.warn{background:var(--warn-bg);color:var(--warn)} .msg.bad{background:var(--bad-bg);color:var(--bad)}
.sum{display:flex;flex-wrap:wrap;gap:8px 28px;font-size:14px}
.sum b{font-variant-numeric:tabular-nums;font-size:18px;display:block}
td input{width:90px;padding:4px 6px;font-size:14px}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}
@media (prefers-reduced-motion:no-preference){.flash{animation:fl .6s ease-out}@keyframes fl{from{background:var(--ok-bg)}to{background:transparent}}}

.top{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}
.top form{margin:0}
.login{max-width:360px;margin:12vh auto}
a{color:var(--accent)}
nav a{font:500 14px var(--f-body);border:1px solid var(--line);background:var(--panel);color:var(--fg);padding:7px 12px;border-radius:6px;display:flex;gap:8px;align-items:center;text-decoration:none}
nav a kbd{font:500 11px var(--f-mono);background:var(--key);padding:1px 5px;border-radius:3px;color:var(--muted)}
nav a.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
nav a.on kbd{background:transparent;color:var(--accent-fg)}
.pager{display:flex;gap:10px;align-items:center}
textarea{font:14px var(--f-body);padding:7px 9px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg);width:100%}
