*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:#f3f5f8;color:#1c2430}
a{color:#0b5cad}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.1rem;margin:.2rem 0 .8rem}small{color:#667}
.topbar{display:flex;align-items:center;gap:.8rem;background:#12263f;color:#fff;padding:.6rem 1rem}
.topbar .grow{flex:1}.who{font-size:.85rem;opacity:.85}.burger{display:none;cursor:pointer;font-size:1.4rem}
.navtoggle{display:none}
.shell{display:flex;min-height:calc(100vh - 90px)}
.side{width:220px;background:#fff;border-right:1px solid #dde3ea;padding:.6rem 0;flex-shrink:0}
.side a{display:block;padding:.55rem 1.1rem;color:#1c2430;text-decoration:none}
.side a:hover{background:#eef3f9}.side a.active{background:#e1ecf8;border-left:3px solid #0b5cad;font-weight:600}
main{flex:1;padding:1.2rem;min-width:0}
.foot{padding:.6rem 1rem;color:#778;font-size:.8rem}
.card{background:#fff;border:1px solid #dde3ea;border-radius:8px;padding:1rem;margin-bottom:1rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.8rem;margin-bottom:1rem}
.stat{margin:0;text-align:center}.stat span{display:block;font-size:2rem;font-weight:700;color:#0b5cad}.stat small{display:block}
.tablewrap{overflow-x:auto;background:#fff;border:1px solid #dde3ea;border-radius:8px;margin-bottom:1rem}
table{border-collapse:collapse;width:100%}th,td{padding:.45rem .7rem;text-align:left;border-bottom:1px solid #eef1f5;font-size:.9rem;vertical-align:top}
th{background:#f7f9fb;white-space:nowrap}
label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.6rem}
input,select{display:block;width:100%;padding:.45rem .6rem;border:1px solid #c5ced9;border-radius:6px;font:inherit;margin-top:.2rem;background:#fff}
.inline{display:inline-flex;gap:.3rem;align-items:center;margin:0}.inline select{width:auto;margin:0}
.row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:flex-end}.row label{flex:1 1 200px;margin:0}
.toolbar{display:flex;gap:.5rem;margin-bottom:1rem}.toolbar input{max-width:360px;margin:0}
.btn{display:inline-block;padding:.45rem .9rem;border:1px solid #b8c3d0;border-radius:6px;background:#fff;color:#1c2430;cursor:pointer;text-decoration:none;font:inherit}
.btn-primary{background:#0b5cad;border-color:#0b5cad;color:#fff}.btn-sm{padding:.2rem .6rem;font-size:.85rem}
.alert{padding:.7rem 1rem;border-radius:6px;margin-bottom:1rem;border:1px solid}
.alert-danger{background:#fdecec;border-color:#f3b7b7}.alert-success{background:#e7f6ec;border-color:#a9dcb9}
.alert-warning{background:#fff6e0;border-color:#f0d58a}.alert-info{background:#e8f1fb;border-color:#b3d0ee}
.thumb{display:block;width:48px;height:48px;object-fit:contain;background:#fff;border:1px solid #eef1f5;border-radius:4px}
.bulkbar{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;background:#fff;border:1px solid #dde3ea;border-radius:8px;padding:.5rem .8rem;margin-bottom:.6rem}
.bulkbar .chk{margin:0;font-weight:400;display:flex;gap:.4rem;align-items:center}.bulkbar .chk input{width:auto;margin:0}
.chkcol{width:34px}.chkcol input{width:18px;height:18px;margin:0}
.toolbar .narrow{width:auto;margin:0}
.warn{color:#9a5b00}
.badge{padding:.1rem .5rem;border-radius:10px;font-size:.8rem;background:#e6eaf0}
.b-aktywny{background:#d6f0de}.b-blad{background:#fbd5d5}.b-wstrzymany{background:#fdecc0}
.login{display:flex;justify-content:center;padding:2rem 1rem}
.login-card{width:100%;max-width:380px}.install-card{width:100%;max-width:640px}
.checks{list-style:none;padding:0}.checks .ok{color:#17803d}.checks .fail{color:#b42318;font-weight:600}
.stack label{margin-bottom:.6rem}pre{background:#f0f3f7;padding:.6rem;overflow-x:auto;border-radius:6px}
@media(max-width:800px){
 .burger{display:block}
 .shell{display:block}
 .side{display:none;width:auto;border-right:0;border-bottom:1px solid #dde3ea}
 .navtoggle:checked~.shell .side{display:block}
 .who{display:none}
}
