.login{min-height:100svh;display:grid;grid-template-columns:1.05fr 1fr}
.l-side{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:30px;padding:clamp(28px,5vw,64px);background:var(--glass);border-right:1px solid var(--line);overflow:hidden}
.l-side::before{content:"";position:absolute;right:-18%;bottom:-24%;width:80%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(227,190,107,.35);box-shadow:0 0 0 46px rgba(227,190,107,.05),0 0 0 100px rgba(227,190,107,.035)}
.l-side h1{font-size:clamp(2.4rem,5vw,4.4rem);letter-spacing:-.04em;line-height:1}
.l-side p{color:var(--mut);max-width:34ch;font-size:1.1rem}
.l-form{align-self:center;justify-self:center;width:min(420px,100%);display:grid;gap:16px;padding:32px 22px}
.l-form h2{font-size:1.7rem}
.l-mobile-brand{display:none}
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100svh}
.side{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;gap:26px;padding:calc(22px + var(--safe-t)) 14px 18px;background:var(--glass);border-right:1px solid var(--line)}
.side .brand{padding-left:8px}
#nav{display:grid;gap:4px}
#nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:46px;border-radius:14px;text-decoration:none;font-weight:700;color:var(--mut)}
#nav a svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
#nav a[aria-current="page"]{background:var(--accent);color:var(--accent-ink)}
#nav a:not([aria-current]):hover{background:var(--surface)}
.side-foot{margin-top:auto;display:grid;gap:6px}
.side-foot .btn{justify-content:flex-start;border-color:transparent}
.main{padding:calc(20px + var(--safe-t)) clamp(16px,3vw,40px) 60px;min-width:0}
.mh{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:8px}
.mh h1{font-size:clamp(1.8rem,3.4vw,2.8rem)}
.tab{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;margin-top:18px;min-width:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:20px}
.card h3{font-family:var(--body);font-size:1rem;letter-spacing:0;margin-bottom:12px}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.kpi{padding:18px;border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface)}
.kpi b{display:block;font-family:var(--display);font-size:clamp(1.7rem,3vw,2.5rem);letter-spacing:-.04em;line-height:1.1}
.kpi span{color:var(--mut);font-size:.85rem}
.kpi.warn b{color:var(--warn)}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:0;align-items:stretch}
.node{position:relative;padding:16px 16px 16px 18px;border:1px solid var(--line);background:var(--surface-2);display:grid;gap:4px;align-content:start}
.node:first-child{border-radius:var(--r-m) 0 0 var(--r-m)}.node:last-child{border-radius:0 var(--r-m) var(--r-m) 0}
.node+.node{border-left:0}
.node+.node::before{content:"";position:absolute;left:-7px;top:50%;width:13px;height:13px;transform:translateY(-50%) rotate(45deg);background:var(--surface-2);border-top:1px solid var(--line);border-right:1px solid var(--line);z-index:1}
.node b{font-size:.95rem}.node small{color:var(--mut);font-size:.8rem;line-height:1.3}
.node .dot{width:10px;height:10px;border-radius:50%;background:var(--mut);margin-bottom:4px}
.node.ok .dot{background:var(--ok);box-shadow:0 0 0 5px color-mix(in srgb,var(--ok) 20%,transparent)}
.node.warn .dot{background:var(--warn);box-shadow:0 0 0 5px color-mix(in srgb,var(--warn) 20%,transparent)}
.node.bad .dot{background:var(--bad)}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.list{display:grid;gap:8px}
.li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);font-size:.92rem}
.li b{font-weight:700}
.li .s{font-size:.8rem;text-align:right}.li .s.ok{color:var(--ok)}.li .s.warn{color:var(--warn)}.li .s.bad{color:var(--bad)}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:720px}
th,td{padding:12px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
th:nth-child(-n+2),td:nth-child(-n+2){text-align:left}
td:nth-child(2){white-space:normal;min-width:200px}
th{font-size:.78rem;color:var(--mut);font-weight:700;position:sticky;top:0;background:var(--surface)}
tr:last-child td{border-bottom:0}
td.low{color:var(--warn);font-weight:800}td.out{color:var(--bad);font-weight:800}
.tbar{display:flex;gap:10px;flex-wrap:wrap}.tbar .search{max-width:420px}
@media (max-width:900px){
  .login{grid-template-columns:1fr}.l-side{display:none}.l-mobile-brand{display:block;margin-bottom:6px}
  .app{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;z-index:30;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;padding:6px 8px calc(6px + var(--safe-b));border:0;border-top:1px solid var(--line);gap:0;background:color-mix(in srgb,var(--glass) 94%,transparent);backdrop-filter:blur(14px)}
  .side .brand,.side-foot{display:none}
  #nav{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:4px}
  #nav a{flex-direction:column;gap:2px;font-size:.72rem;padding:8px 4px;min-height:56px;justify-content:center}
  .main{padding-bottom:calc(104px + var(--safe-b))}
  .tw{display:none}.mcards{display:grid}
  .dc{height:150px}.dc-c{min-width:0}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.two{grid-template-columns:minmax(0,1fr)}.kpi b{font-size:1.45rem;overflow-wrap:anywhere}.card{padding:16px}.mh{align-items:flex-start}
  .flow{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.node,.node:first-child,.node:last-child{border-radius:var(--r-m);border:1px solid var(--line)}.node+.node::before{display:none}.node{padding:12px}
}

.mcards{display:none;gap:10px}
@media (max-width:900px){.mcards{display:grid}}
.mc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:14px;display:grid;gap:10px}
.mc-h{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.mc-h b{overflow-wrap:anywhere}
.mc-g{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.mc-g span{display:grid;font-weight:800;font-size:1.05rem}.mc-g small{color:var(--mut);font-weight:500;font-size:.68rem;line-height:1.2;min-height:2.4em}
.mc-g .low{color:var(--warn)}.mc-g .out{color:var(--bad)}
.mc-p{display:flex;justify-content:space-between;color:var(--mut);font-size:.85rem;border-top:1px solid var(--line);padding-top:8px}.mc-p b{color:var(--ink)}
.tbar .search{width:100%}
.dc{display:flex;align-items:flex-end;gap:3px;height:180px;padding-top:18px}
.dc-c{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;position:relative}
.dc-c i{display:block;width:100%;max-width:34px;background:var(--accent);border-radius:5px 5px 0 0;min-height:2px;opacity:.9}
.dc-v{font-size:.7rem;font-weight:800;min-height:1em}
.dc-d{font-size:.66rem;color:var(--mut);min-height:1em;white-space:nowrap;position:absolute;bottom:-20px}
.dc{margin-bottom:22px}
.hb{display:grid;gap:9px}.sh{margin:14px 0 6px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.sh:first-of-type{margin-top:0}
.hb-r{display:grid;grid-template-columns:minmax(80px,38%) 1fr auto;gap:10px;align-items:center;font-size:.88rem}
.hb-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-t{height:10px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden}
.hb-t i{display:block;height:100%;background:var(--accent);border-radius:6px}
.hb-t i.b{background:#7FB5E8}.hb-t i.g{background:var(--ok)}.hb-t i.w{background:var(--warn)}.hb-t i.r{background:var(--bad)}
.chips{display:flex;gap:8px;flex-wrap:wrap}

/* ===== Produkty: karta produktu (zdjęcie/kategoria/opis) ===== */
.pm-grid{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.pm-card{gap:10px}
.pm-thumb{aspect-ratio:4/3;border-radius:var(--r-m);background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.pm-thumb img{width:100%;height:100%;object-fit:cover}
.pm-noph{color:var(--mut);font-size:.75rem;text-align:center;padding:0 10px}
.pm-thumb-lg{aspect-ratio:16/10;max-width:260px}
.pm-tags{display:flex;gap:6px;flex-wrap:wrap}
.tag{display:inline-flex;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:.72rem;font-weight:700;color:var(--mut)}
.tag.pm-warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}

.pm-modal{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:16px;background:rgba(10,10,10,.55);backdrop-filter:blur(2px)}
.pm-box{width:min(560px,100%);max-height:88svh;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);padding:22px}
.pm-box header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.pm-box header h2{font-size:1.25rem;overflow-wrap:anywhere}
.pm-form{display:grid;gap:14px;margin-top:10px}
.pm-form .row2d{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:480px){.pm-form .row2d{grid-template-columns:1fr}}
.pm-ta{min-height:110px;padding:12px 14px;resize:vertical;font:inherit;line-height:1.4}
.pm-photorow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pm-photorow input[type=file]{flex:1;min-width:160px;font-size:.85rem}
.pm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}
@media (max-width:520px){.pm-actions{flex-direction:column-reverse}.pm-actions .btn{width:100%}}


/* ===== Magazyn: przyjęcia i nowe produkty ===== */
.mag-tbar{align-items:center;justify-content:space-between}
.mag-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.ib-status-card{padding:14px 16px}
.ib-status-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:8px}
.ib-status-head h3{margin:0}
.ib-task-list{display:grid;gap:6px}
.ib-task{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.ib-task>div{display:grid;gap:2px;min-width:0}.ib-task .s{font-size:.78rem;font-weight:800;white-space:nowrap}.ib-task .s.ok{color:var(--ok)}.ib-task .s.warn{color:var(--warn)}.ib-task .s.bad{color:var(--bad)}
.ib-box{width:min(1040px,100%)}
.ib-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ib-lines{display:grid;gap:8px}
.ib-line{display:grid;grid-template-columns:110px minmax(180px,1.7fr) 130px 90px 120px 120px 120px 42px;gap:7px;align-items:center}
.ib-line .input{min-width:0}
.ib-rm{min-height:42px;padding:0}
@media(max-width:1100px){.ib-line{grid-template-columns:repeat(2,minmax(0,1fr))}.ib-rm{grid-column:2;justify-self:end;width:44px}.mag-actions{width:100%;margin-left:0}.mag-actions .btn{flex:1}}
@media(max-width:620px){.ib-line{grid-template-columns:1fr}.ib-rm{grid-column:auto;justify-self:stretch;width:auto}.ib-task{align-items:flex-start;flex-direction:column}.ib-status-head{align-items:flex-start;flex-direction:column}}
