:root{--bg:#0f0f10;--panel:#17171a;--panel2:#1e1e22;--panel3:#26262b;--line:#2a2a30;--text:#ececec;--muted:#8a8a93;--red:#e52020;--red2:#ff3b30;--ok:#2ecc71;--warn:#f1c40f;--blue:#7fb3ff;--radius:10px;--font:system-ui,-apple-system,"Segoe UI",Roboto,Inter,sans-serif;--head:"Oswald",var(--font)}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--red2);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--head);font-weight:500;letter-spacing:.02em;margin:0 0 10px}
h1{font-size:26px}h2{font-size:17px;text-transform:uppercase;letter-spacing:.1em;color:#d8d8dc;display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--red);padding-bottom:6px;margin-bottom:12px}
h2 small{margin-left:auto;font:13px var(--font);letter-spacing:0;text-transform:none;color:var(--muted)}
h3{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin:12px 0 6px}h3.red{color:var(--red2)}
.brand{font-family:"Bebas Neue",var(--head);font-size:22px;letter-spacing:.08em;color:#fff}.brand span{color:var(--red)}.brand.big{font-size:34px;margin-bottom:6px}
nav.top{display:flex;gap:4px;align-items:center;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;overflow-x:auto}
nav.top a{color:var(--muted);padding:6px 10px;border-radius:8px;white-space:nowrap;font-weight:500}nav.top a:hover{background:var(--panel2);color:var(--text);text-decoration:none}nav.top a.on{color:#fff;background:var(--panel3)}nav.top .brand{margin-right:14px;padding:0}nav.top .sp{flex:1}
.wrap{max-width:1280px;margin:0 auto;padding:22px 20px 60px}.wrap.narrow{max-width:900px}
.flash{background:#152615;border:1px solid #234023;color:#bfe8bf;padding:10px 20px;margin:0}
.muted{color:var(--muted)}.small{font-size:12px}.red{color:var(--red2)}.green{color:var(--ok)}.r{text-align:right}.n{text-align:right;white-space:nowrap}
.row{display:flex;align-items:center}.gap{gap:10px}.wrapr{flex-wrap:wrap}.sp{flex:1}.inline{display:inline}
.ph{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.ph h1{margin:0}.ph .btn{margin-left:auto}
.grid{display:grid;gap:16px}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.dash{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.grid.two,.grid.three,.grid.dash{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}.grid .card{margin:0}
.kpis{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.kpi{flex:1;min-width:140px;background:var(--panel2);border-radius:8px;padding:12px 14px}.kpi b{display:block;font:500 28px var(--head)}.kpi span{color:var(--muted);font-size:12px}.kpi em{display:block;font-style:normal;font-size:12px;color:var(--muted)}.kpi em.up{color:var(--ok)}.kpi em.down{color:var(--red2)}.kpi.alert{outline:1px solid var(--red)}
.digest{grid-column:1/-1;background:#131a13;border-color:#234023}.digest h2{border-color:#2f6b2f;color:var(--ok)}.digest pre{white-space:pre-wrap;font:14px var(--font);margin:0;color:#cfd8cf}
ul.list,ul.tasks,ul.feed,ul.files,ul.comments,ul.clist{list-style:none;margin:0;padding:0}
ul.list li{padding:6px 0;border-bottom:1px solid var(--line)}ul.list li:last-child{border:0}
ul.tasks li{padding:5px 0;display:flex;gap:10px;align-items:baseline}ul.tasks li.over{color:#ffb3ad}.due{font:12px var(--head);color:var(--warn);min-width:38px}.cl{color:var(--blue);font-style:normal;font-size:12px}
ul.feed li{display:flex;gap:10px;padding:5px 0;border-bottom:1px solid var(--line);font-size:14px}ul.feed .t{color:var(--muted);min-width:52px;font-size:12px}ul.feed .ty{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:70px}.ty.zamówienie,.ty.uwaga{color:var(--red2)}.ty.brief{color:var(--blue)}.ty.akcept{color:var(--ok)}
.badge{display:inline-block;border-radius:6px;padding:1px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line);color:var(--muted);vertical-align:middle}.badge.green{color:var(--ok);border-color:#245}.badge.red{color:var(--red2);border-color:#522}.badge.yellow{color:var(--warn);border-color:#553}.badge.blue{color:var(--blue);border-color:#245}.badge.purple{color:#c9a3ff;border-color:#436}
.spark{width:100%;height:100px;display:block}.spark polyline{fill:none;stroke:var(--red2);stroke-width:2}
table.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th{text-align:left;font:500 12px var(--head);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:8px 8px;border-bottom:2px solid var(--red)}.tbl td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}.tbl tr.cat td{font:500 12px var(--head);text-transform:uppercase;letter-spacing:.12em;color:var(--red2);padding-top:14px}.tbl.compact td,.tbl.compact th{padding:4px 6px;font-size:13px}
.form label,.form .label{display:block;font-size:12px;color:var(--muted);margin:10px 0 0}.form input,.form select,.form textarea{width:100%;display:block;margin-top:4px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 11px;font:inherit;outline:none}.form input:focus,.form textarea:focus,.form select:focus{border-color:var(--red)}
.form input[type=file]{padding:8px}.form textarea{resize:vertical}.form .btn{margin-top:14px}
.form label.chk,.checks label.chk{display:inline-flex;align-items:center;gap:6px;color:var(--text);font-size:14px;margin:6px 12px 0 0}.chk input{width:auto;margin:0}.checks{margin-top:4px}
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:600 14px var(--font);cursor:pointer;text-decoration:none!important}.btn:hover{background:var(--red2)}.btn.ghost{background:var(--panel3);color:var(--text)}.btn.small{padding:6px 11px;font-size:13px}.btn.big{padding:14px 26px;font-size:17px}.btn.danger{background:#511}
select,input[readonly]{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:inherit}
.linkrow input{flex:1;min-width:220px;font-size:13px;color:var(--blue)}
#newclient{display:none;margin-top:6px}#newclient.show{display:grid}
.items input{margin:0;padding:6px 8px}.items td{padding:5px 6px}.items .rm{color:var(--muted);cursor:pointer}.items .rm:hover{color:var(--red2)}
.thumbs{display:flex;gap:10px;flex-wrap:wrap}.thumb{width:160px;display:block;color:var(--muted);font-size:12px}.thumb img{width:100%;height:110px;object-fit:cover;border-radius:6px;border:1px solid var(--line);display:block}.ph-file{width:100%;height:110px;display:flex;align-items:center;justify-content:center;background:var(--panel2);border-radius:6px;font:500 20px var(--head)}
ul.comments li{padding:8px 0;border-bottom:1px solid var(--line)}ul.comments li.done{opacity:.5}ul.comments .ct{white-space:pre-wrap}
.brief-view .qa{padding:8px 0;border-bottom:1px solid var(--line)}.brief-view .q{font-size:12px;color:var(--muted)}.brief-view .a{white-space:pre-wrap}
.login{max-width:340px;margin:12vh auto;text-align:center}.login input{width:100%;margin:6px 0;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:11px;font:inherit}.login .btn{width:100%;margin-top:8px}.err{color:var(--red2)}
/* ===== strona klienta ===== */
body.client{background:#0f0f10}body.client .wrap{padding-top:34px}.lead{font-size:17px;color:#d8d8dc}.hint{color:var(--muted);font-size:14px}
.cfoot{text-align:center;color:var(--muted);font-size:12px;padding:20px;border-top:1px solid var(--line)}
.brief-form h2{margin-top:26px}.req{color:var(--red2)}.ok{background:#152615;border:1px solid #2f6b2f;color:#bfe8bf;padding:14px;border-radius:8px}.warn{background:#2a1f10;border:1px solid #6b4a1a;color:#f2d6a2;padding:14px;border-radius:8px}
.oact{margin-top:26px}.accept label{display:block;font-size:12px;color:var(--muted)}.accept input{display:block;width:100%;max-width:360px;margin:4px 0 12px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}.accept .q{margin-top:16px}.accept .q summary{cursor:pointer;color:var(--muted)}.accept textarea{width:100%;margin:8px 0;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}
/* oferta */
.offer{background:#fff;color:#111;padding:44px 48px;border-radius:6px;font-size:14px;line-height:1.5}.offer .oh{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:4px solid var(--red);padding-bottom:10px;margin-bottom:22px}.offer .brand{color:#111;font-size:38px}.offer .brand span{color:var(--red)}.offer .oc{text-align:right;font-size:12px;color:#444}
.offer .ot{font-family:"Bebas Neue",var(--head);font-size:34px;letter-spacing:.03em;color:#111;margin:0 0 6px}.offer .om{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;color:#444;margin-bottom:18px}.offer .om b{color:#111;margin-right:4px}
.offer h2{font-family:"Oswald",var(--head);font-size:15px;letter-spacing:.12em;color:#111;border-bottom:2px solid var(--red);padding-bottom:4px;margin:22px 0 8px;display:block}.offer ul{margin:0;padding-left:18px}.offer li{margin:3px 0}.offer .olead{font-size:15px;color:#222}
.ot-tbl{width:100%;border-collapse:collapse;font-size:13.5px}.ot-tbl th{text-align:left;font:500 11px "Oswald",var(--head);letter-spacing:.1em;text-transform:uppercase;color:#666;border-bottom:1px solid #ccc;padding:6px 6px}.ot-tbl td{padding:7px 6px;border-bottom:1px solid #eee;vertical-align:top}.ot-tbl small{color:#666}.ot-tbl tr.sum td{border-top:2px solid var(--red);border-bottom:0;font-weight:700;font-size:15px}.ot-tbl tr.pkg td{color:var(--red);font-weight:700;font-size:16px}
.offer .terms li{font-size:12.5px;color:#333}.offer .of{margin-top:30px;padding-top:8px;border-top:1px solid #ddd;font-size:12px;color:#666;text-align:center}.offer .muted{color:#666}
.offer-preview{padding:0;overflow:hidden}
body.pdf .wrap{max-width:none;padding:0}body.pdf .offer{border-radius:0}
@media print{body{background:#fff}.noprint,nav.top,.cfoot{display:none!important}.wrap{max-width:none;padding:0}.offer{padding:0;border-radius:0}@page{margin:16mm 14mm}}
/* akcept */
.afile{margin:22px 0}.pinwrap{position:relative;display:inline-block;max-width:100%;cursor:crosshair;border:1px solid var(--line);border-radius:6px}.pinwrap img{display:block;max-width:100%;height:auto}.pin{position:absolute;width:24px;height:24px;margin:-12px 0 0 -12px;border-radius:50%;background:var(--red);color:#fff;font:700 12px var(--font);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff,0 2px 8px rgba(0,0,0,.6);cursor:default}.pin.done{background:#666}
.afile video{max-width:100%;border-radius:6px}.afile .pdf{width:100%;height:70vh;border:1px solid var(--line);border-radius:6px;background:#fff}
ul.clist li{padding:5px 0;font-size:14px}ul.clist li.done{opacity:.5}.cform textarea{width:100%;margin:8px 0 6px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px;font:inherit}
.pinbox{position:absolute;z-index:5;background:var(--panel);border:1px solid var(--red);border-radius:8px;padding:8px;width:260px;box-shadow:0 10px 30px rgba(0,0,0,.6)}.pinbox textarea{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:8px;font:inherit}
