/* Kolory tła, paneli, linii i tekstu — z motywu aplikacji pakietu (jasny / ciemny); zieleń modułu własna. */
/* Gospodarka odpadami — moduł aplikacji pakietu (ekran s-odp). Wszystkie reguły zawężone do .odp (bez wpływu na resztę aplikacji). */
.odp{--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--text:var(--txt);--muted:var(--txt2);--accent:#5cc07a;--accent-2:#1f3326;--on-accent:#0c1a10;
  --warn:#e2a93c;--warn-soft:#3a2e15;--neg:#ef7a6f;--neg-soft:#3b1f1c;--info:#7fa9e3;--info-soft:#1d2a3b;--shadow:none}
html[data-theme="light"] .odp{--text:var(--txt);--muted:var(--txt2);--accent:#2f8a4f;--accent-2:#e8f4ec;--on-accent:#fff;
  --warn:#c98a1b;--warn-soft:#fdf2dc;--neg:#c4483d;--neg-soft:#fbe7e5;--info:#3a6fb0;--info-soft:#e6eef8;--shadow:0 6px 22px rgba(0,0,0,.07);
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:light){html:not([data-theme="dark"]) .odp{--text:var(--txt);--muted:var(--txt2);--accent:#2f8a4f;--accent-2:#e8f4ec;--on-accent:#fff;
  --warn:#c98a1b;--warn-soft:#fdf2dc;--neg:#c4483d;--neg-soft:#fbe7e5;--info:#3a6fb0;--info-soft:#e6eef8;--shadow:0 6px 22px rgba(0,0,0,.07);
  --safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px)}}
.odp,.odp *{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
.odp{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;-webkit-text-size-adjust:100%}
.odp button,.odp input,.odp select,.odp textarea{font:inherit;color:inherit}
.odp a{color:var(--accent)}
.odp .ladowanie{padding:40vh 20px;text-align:center;color:var(--muted)}
.odp .top{position:sticky;top:0;z-index:10;background:var(--panel);border-bottom:1px solid var(--line);padding:calc(10px + var(--safe-t)) 14px 10px;display:flex;align-items:center;gap:10px}
.odp .top .wst{border:0;background:transparent;font-size:26px;line-height:1;padding:4px 8px 4px 0;color:var(--accent);min-width:34px}
.odp .top h1{margin:0;font-size:18px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.odp .top .menu{border:1px solid var(--line);background:transparent;border-radius:10px;padding:6px 10px;font-size:14px}
.odp .demo{background:var(--warn);color:#fff;font-size:11px;font-weight:800;letter-spacing:.06em;padding:3px 7px;border-radius:6px}
.odp .pasdemo{background:var(--warn-soft);color:var(--text);border-bottom:2px dashed var(--warn);padding:7px 14px;font-size:13px}
.odp .pasjako{background:var(--info-soft);padding:7px 14px;font-size:13px}
.odp main{padding:14px;display:flex;flex-direction:column;gap:14px;max-width:720px;margin:0 auto}
.odp .kafle{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.odp .kafel{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:16px 14px;min-height:104px;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:6px;box-shadow:var(--shadow)}
.odp .kafel b{display:block;font-size:16px}
.odp .kafel small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.odp .kafel.szer>span:nth-child(2){flex:1;text-align:left}
.odp .kafel .ik{font-size:26px;line-height:1}
.odp .kafel.gl{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.odp .kafel.gl small{color:inherit;opacity:.85}
.odp .kafel .lic{align-self:flex-start;background:var(--neg);color:#fff;border-radius:10px;padding:0 8px;font-size:13px;font-weight:700}
.odp .kafel.szer{grid-column:1/-1;min-height:74px;flex-direction:row;align-items:center}
.odp .karta{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px}
.odp .karta h2{margin:0;font-size:16px}
.odp .karta h3{margin:4px 0 0;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.odp .wiersz{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;border-top:1px solid var(--line);background:transparent;padding:12px 0;text-align:left;width:100%}
.odp .wiersz:first-of-type{border-top:0}
.odp .wiersz small{display:block;color:var(--muted);font-size:13px}
.odp .wiersz .nr{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700}
.odp .st{display:inline-block;font-size:12px;font-weight:700;padding:3px 9px;border-radius:10px;white-space:nowrap}
.odp .st.info{background:var(--info-soft);color:var(--info)}
.odp .st.ok{background:var(--accent-2);color:var(--accent)}
.odp .st.hold{background:var(--warn-soft);color:var(--warn)}
.odp .st.neg{background:var(--neg-soft);color:var(--neg)}
.odp .st.off{background:var(--bg);color:var(--muted)}
.odp .dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:14.5px}
.odp .dl dt{color:var(--muted)}
.odp .dl dd{margin:0;font-weight:500;word-break:break-word}
.odp .big{font-size:28px;font-weight:800;letter-spacing:-.5px;font-family:ui-monospace,Menlo,Consolas,monospace}
.odp .btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:15px 16px;font-size:16.5px;font-weight:650;min-height:54px}
.odp .btn.pri{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.odp .btn.neg{color:var(--neg);border-color:var(--neg)}
.odp .btn:disabled{opacity:.5}
.odp .btny{display:flex;flex-direction:column;gap:9px}
.odp .dwa{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.odp label.pole{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}
.odp label.pole input,.odp label.pole select,.odp label.pole textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:13px 12px;font-size:17px;font-weight:500;color:var(--text);width:100%}
.odp label.pole small{font-weight:400}
.odp .zinput{display:flex;gap:8px}
.odp .zinput input{flex:1}
.odp .zinput .btn{width:auto;min-height:0;padding:0 14px}
.odp label.chk{display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.35;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px}
.odp label.chk input{width:26px;height:26px;flex:0 0 auto;margin:0;accent-color:var(--accent)}
.odp .rng{display:flex;align-items:center;gap:12px}
.odp .rng input{flex:1;accent-color:var(--accent);height:34px}
.odp .rng b{min-width:58px;text-align:right;font-size:20px}
.odp .pasek{height:12px;border-radius:7px;background:var(--line);overflow:hidden}
.odp .pasek i{display:block;height:100%;background:var(--accent)}
.odp .pasek.wys i{background:var(--warn)}
.odp .pasek.pel i{background:var(--neg)}
.odp .info{background:var(--info-soft);border-radius:12px;padding:11px 12px;font-size:14px;line-height:1.45}
.odp .info.warn{background:var(--warn-soft)}
.odp .info.neg{background:var(--neg-soft)}
.odp .pusto{color:var(--muted);text-align:center;padding:18px 6px;font-size:14px}
.odp .kroki{display:flex;gap:4px;margin:2px 0}
.odp .kroki span{flex:1;height:5px;border-radius:3px;background:var(--line)}
.odp .kroki span.on{background:var(--accent)}
.odp .skaner{position:relative;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:3/4;max-height:62vh}
.odp .skaner video{width:100%;height:100%;object-fit:cover;display:block}
.odp .skaner .ramka{position:absolute;inset:18% 14%;border:3px solid rgba(255,255,255,.85);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.35)}
.odp .skaner .kom{position:absolute;left:0;right:0;bottom:12px;text-align:center;color:#fff;font-size:14px;text-shadow:0 1px 3px #000}
#odp-toast{position:fixed;left:12px;right:12px;bottom:calc(14px + var(--safe-b));z-index:60;display:flex;flex-direction:column;gap:8px;pointer-events:none}
#odp-toast div{background:#222;color:#fff;border-radius:14px;padding:13px 15px;font-size:15px;box-shadow:0 8px 26px rgba(0,0,0,.25);pointer-events:auto}
#odp-toast div.err{background:var(--neg)}
#odp-toast div.ok{background:var(--accent);color:var(--on-accent)}
.odp .login{max-width:420px;margin:12vh auto 0;padding:20px;display:flex;flex-direction:column;gap:12px}
.odp .login .logo{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:800}
.odp .login .logo img{width:44px;height:44px;border-radius:12px}
.odp .lub{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}
.odp .lub::before,.odp .lub::after{content:"";flex:1;height:1px;background:var(--line)}
.odp .blad{color:var(--neg);font-weight:600;min-height:1em}
.odp .hist{display:flex;flex-direction:column;gap:9px;font-size:14px}
.odp .hist div{border-left:3px solid var(--line);padding-left:10px}
.odp .hist span{color:var(--muted);font-size:12.5px}
.odp .hist small{display:block;color:var(--muted)}
.odp .seg{display:flex;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.odp .seg button{flex:1;border:0;background:transparent;padding:12px;font-weight:650}
.odp .seg button.on{background:var(--accent);color:var(--on-accent)}
#odp-toast.odp{background:transparent;min-height:0}
