:root{--navy:#092260;--navy2:#1e3a8a;--bg:#f3f5f9;--line:#d9dee8;--mut:#667085;--ok:#1a7f4b;--bad:#b42318;--warn:#b54708}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 Inter,system-ui,Segoe UI,Arial,sans-serif;background:var(--bg);color:#1e293b}
a{color:var(--navy2);text-decoration:none}h1,h2,h3{font-family:Fraunces,Georgia,serif;color:var(--navy);margin:.2em 0 .5em}
.top{display:flex;align-items:center;gap:20px;background:#fff;border-bottom:3px solid var(--navy);padding:6px 20px;position:sticky;top:0;z-index:20}
.logo{height:44px;display:block}.top nav{display:flex;gap:4px;flex:1;flex-wrap:wrap}.top nav a{padding:7px 12px;border-radius:6px;font-weight:600;color:#334155}.top nav a:hover{background:var(--bg)}.usr{color:var(--mut);font-size:13px}
main{padding:20px;max-width:1600px;margin:auto}.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px}
.btn{background:var(--navy);color:#fff;border:0;border-radius:6px;padding:8px 14px;font:600 13px inherit;cursor:pointer}.btn:hover{background:var(--navy2)}.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)}.btn.danger{background:var(--bad)}
input,select,textarea{font:inherit;border:1px solid var(--line);border-radius:6px;padding:7px 9px;background:#fff;width:100%}
.bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.bar input,.bar select{width:auto}.sp{flex:1}.muted{color:var(--mut)}
/* login */
.login{display:grid;place-items:center;min-height:100vh;background:linear-gradient(160deg,#e8edf8,#fff)}.loginbox{width:380px;display:grid;gap:12px;padding:30px;box-shadow:0 10px 40px #09226022}
.biglogo{width:100%}.loginbox label{display:grid;gap:4px;font-weight:600;font-size:13px}.loginbox h2{font-size:17px;text-align:center}.err{color:var(--bad);margin:0;font-weight:600}
/* dashboard */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:22px}
.kpi{background:#fff;border:1px solid var(--line);border-left:4px solid var(--navy);border-radius:8px;padding:12px 14px}.kpi b{display:block;font-size:26px;color:var(--navy)}.kpi span{color:var(--mut);font-size:12px}.kpi.alert{border-left-color:var(--warn);background:#fff7ed}
.mods{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;margin-bottom:22px}
.mod{display:block;background:#fff;border:1px solid var(--line);border-radius:10px;padding:18px;color:inherit;transition:.15s}.mod:hover{transform:translateY(-2px);box-shadow:0 6px 20px #09226022;border-color:var(--navy)}
.mod i{font-style:normal;font-size:30px}.mod h3{margin:6px 0 2px}.mod p{margin:0;color:var(--mut);font-size:13px}.mod.off{opacity:.5;pointer-events:none}.mod .soon{font-size:11px;font-weight:700;color:var(--warn)}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px}
table.t{border-collapse:collapse;width:100%}table.t th,table.t td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}table.t th{background:#eef1f7;color:var(--navy);font-size:12px;white-space:nowrap}
.pill{padding:2px 8px;border-radius:99px;font-size:12px;font-weight:600;background:#eef1f7}.pill.ok{background:#dcfae6;color:var(--ok)}.pill.bad{background:#fee4e2;color:var(--bad)}.pill.warn{background:#fef0c7;color:var(--warn)}
.scroll{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:8px;background:#fff}
/* kalendarz – wygląd jak w arkuszu */
table.cal{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}
.cal th,.cal td{border-right:1px solid #cfcfcf;border-bottom:1px solid #cfcfcf;padding:3px 5px;vertical-align:top}
.cal thead th{background:#404040;color:#fff;text-align:center;position:sticky;top:0;z-index:3;font-size:12px}.cal thead tr:nth-child(2) th{top:24px}
.cal thead .dt{background:#dce6f1;color:#1e293b;font-weight:700}
.cal .b{background:#f0ece5;font-weight:700;position:sticky;left:0;z-index:2;min-width:230px;max-width:230px}.cal thead th.b{background:#404040;z-index:4}
.cal td{min-width:150px;height:42px;white-space:pre-wrap;cursor:pointer}.cal td.today{outline:2px solid var(--navy);outline-offset:-2px}.cal td.we{background:#fafafa}
.cal td:hover{background:#eef4ff}.tk{display:block;padding:2px 4px;margin:1px 0;border-radius:3px;cursor:pointer}.tk:hover{filter:brightness(.93)}.tk.x{text-decoration:line-through;opacity:.55}
.t-Dostawa{background:#f4c7c3}.t-Odbiór{background:#c6e0b4}.t-Transport{background:#ffe699}.t-Tankowanie{background:#bdd7ee}.t-Inne,.t-Pomoc{background:#e5e7eb}
.legend span{display:inline-block;padding:3px 10px;border-radius:4px;margin-right:6px;font-weight:600}
/* modal */
.modal{position:fixed;inset:0;background:#0f172a88;display:grid;place-items:center;z-index:50;padding:14px}.modal form{width:min(780px,100%);max-height:92vh;overflow:auto}
.fg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin-bottom:14px}.fg label{display:grid;gap:3px;font-weight:600;font-size:12px;color:#475569}.fg .w{grid-column:1/-1}
@media print{.top,.bar,.noprint{display:none!important}.scroll{max-height:none;border:0}body{background:#fff}main{padding:0}@page{size:A3 landscape;margin:8mm}}
/* widoki kalendarza */
.tabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:2px solid var(--line)}.tabs button{background:none;border:0;padding:9px 16px;font:600 14px inherit;color:var(--mut);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-2px}.tabs button.on{color:var(--navy);border-color:var(--navy)}
.ck{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1.5px solid #64748b;font-size:10px;line-height:1;margin-right:3px;background:#fff;color:transparent;cursor:pointer;vertical-align:-1px}
.done .ck,.ck.on{background:#1a7f4b;border-color:#1a7f4b;color:#fff}.tk.done{border-left:4px solid #1a7f4b}
.cal td .tk{font-size:12px}table.t tr[data-id]{cursor:pointer}table.t tr[data-id]:hover td{background:#f5f8ff}th[data-s]{cursor:pointer}
table.gt{border-collapse:collapse;font-size:12px}.gt td,.gt th{border:1px solid #e3e6ee;padding:0;height:24px}.gt th{background:#404040;color:#fff;font-size:10px;position:sticky;top:0;z-index:2}.gt th.today,.gt td.today{box-shadow:inset 0 0 0 1px var(--navy)}
.gt .l{min-width:330px;max-width:330px;padding:2px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;left:0;background:#fff;z-index:1;text-align:left}.gt .gh td{background:#f0ece5;font-weight:700;padding:3px 8px}.gt td.d{width:28px;min-width:28px}.gt td.we{background:#f7f7f7}
.gt td.bar{text-align:center;color:#1e293b;font-weight:700}.gt tr.dn td.bar{box-shadow:inset 0 -3px #1a7f4b}.gt tr.cx td.bar{opacity:.4}
.kb{display:grid;grid-template-columns:repeat(5,minmax(220px,1fr));gap:12px;align-items:start;overflow-x:auto}.kc{background:#e9edf5;border-radius:10px;padding:10px;min-height:200px}.kc.over{outline:2px dashed var(--navy)}.kc h3{font:700 13px inherit;display:flex;justify-content:space-between;margin:0 0 8px}.kcs{display:grid;gap:8px;max-height:68vh;overflow:auto}
.kd{background:#fff;border-radius:8px;padding:9px 10px;border-left:5px solid #94a3b8;cursor:grab;box-shadow:0 1px 3px #0001}.kd.t-Dostawa{border-color:#e57368}.kd.t-Odbiór{border-color:#6bb34a}.kd.t-Transport{border-color:#e6b422}.kd.t-Tankowanie{border-color:#5b9bd5}.kd small{color:var(--mut);display:block}.kd.done{background:#f0faf4}
.bm{display:grid;grid-template-columns:1fr auto;gap:6px;margin-bottom:6px}.bm div{display:flex;gap:4px}.bm button{padding:4px 9px}
.cg{display:grid;grid-template-columns:repeat(auto-fit,minmax(440px,1fr));gap:14px}.cg .wide{grid-column:1/-1}.cv{position:relative;height:300px}

.pub{background:linear-gradient(160deg,#e8edf8,#fff);min-height:100vh}.pubbox{max-width:640px;margin:auto;padding:18px}.pf{display:grid;gap:12px}.pf label{display:grid;gap:4px;font-weight:600;font-size:13px}.pf label small{font-weight:400;color:var(--mut)}.pf .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pf input,.pf select,.pf textarea{padding:11px;font-size:16px}.btn.big{padding:14px;font-size:16px}.okbox{text-align:center;display:grid;gap:10px;border-top:4px solid var(--ok)}
@media(max-width:480px){.pf .row{grid-template-columns:1fr}}
.tk.pend{border:1px dashed #d97706;background-image:repeating-linear-gradient(45deg,#fff7ed,#fff7ed 6px,#fde9c8 6px,#fde9c8 12px)}.banner{background:#fff7ed;border:1px solid #fdba74;border-radius:8px;padding:10px 14px;margin-bottom:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.kd.pend{background:#fff7ed}
a.kpi{display:block;color:inherit}

.subnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.subnav a{padding:7px 14px;border-radius:99px;background:#fff;border:1px solid var(--line);font-weight:600;color:#334155}.subnav a.on{background:var(--navy);color:#fff;border-color:var(--navy)}.subnav .muted{font-size:12px;margin-left:8px}
table.g{border-collapse:separate;border-spacing:0;font-size:12px}.g th,.g td{border-right:1px solid #e3e6ee;border-bottom:1px solid #e3e6ee;padding:2px 4px;text-align:center;white-space:nowrap}.g thead th{background:#404040;color:#fff;position:sticky;top:0;z-index:3}
.g .n{text-align:left;position:sticky;left:0;background:#f0ece5;font-weight:700;z-index:2;min-width:210px;max-width:210px;overflow:hidden;text-overflow:ellipsis}.g thead .n{background:#404040;z-index:4}.g td.we,.g th.we{background:#f4f4f4}.g thead th.we{background:#5b5b5b}
.g td.c{cursor:pointer;min-width:26px}.g td.c:hover{outline:2px solid var(--navy);outline-offset:-2px}.g td.v{font-weight:700;color:#0b3d91}.g td.adj{background:#ffedd5}.g td.imp{background:#e8eefc}.g td.mk{background:#092260;color:#fff;font-weight:700}.g td.mk.gps{background:#1a7f4b}
.g input{width:80px;padding:3px 5px;font-size:12px;text-align:right}.g .sum{font-weight:700;background:#f5f8ff}.g tr.hd td{border-top:2px solid #94a3b8}
.num{text-align:right;font-variant-numeric:tabular-nums}.ovr{background:#fff3cd!important;cursor:pointer}.t td.cl{cursor:pointer}.t td.cl:hover{background:#eef4ff}

.rzh{position:absolute;top:0;right:-3px;width:8px;height:100%;cursor:col-resize;z-index:6;user-select:none}.rzh:hover{background:#2563eb66}
table.rz td,table.rz th{min-width:0!important;max-width:none!important}table.rz td{overflow:hidden}table.rz.t td{text-overflow:ellipsis}
th[data-s]:hover{background:#dfe6f5}.g td.bdo{box-shadow:inset 0 -3px #1a7f4b}.g td.unc{outline:2px dashed #d97706;outline-offset:-2px}


/* Nowy formularz zadania i układ kolumnowy */
.dash-hero{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.cta-btn{font-size:15px;padding:12px 20px;box-shadow:0 4px 14px #09226033}
.nav-cta{background:var(--navy)!important;color:#fff!important;border-radius:6px;font-weight:700}
.nav-cta:hover{background:var(--navy2)!important}
.pill-role{background:#dbeafe;color:#1e40af;font-size:11px}
.form-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:18px;align-items:start}
@media(max-width:980px){.form-grid{grid-template-columns:1fr}}
.quick-days{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.qchip{background:#fff;border:1px solid var(--line);border-radius:99px;padding:4px 11px;font:600 12px inherit;color:#334155;cursor:pointer}
.qchip:hover{border-color:var(--navy);color:var(--navy)}
.type-chips{display:flex;gap:8px;flex-wrap:wrap}
.type-chip{display:inline-flex;align-items:center;gap:4px;padding:8px 14px;border-radius:8px;border:2px solid transparent;cursor:pointer;font-weight:700;font-size:13px;user-select:none}
.type-chip input{display:none}
.type-chip.active{border-color:var(--navy);box-shadow:0 0 0 3px #09226033}
.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
.recent-list{display:grid;gap:10px}
.recent-item{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.ri-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px}
.ri-meta{font-size:12px;color:var(--mut)}
.ri-actions{display:flex;gap:6px;margin-top:8px}
