:root{--ink: #16203a;--ink-soft: #3a4767;--accent: #2f6fed;--accent-press: #2257c4;--bg: #f5f6f8;--card: #ffffff;--line: #e3e7ee;--line-strong: #cdd4e0;--ok: #1f9d6b;--warn: #c9821b;--err: #d14343;--muted: #6b7689;--radius: 10px;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;background:var(--bg)}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.appbar{position:sticky;top:0;z-index:20}.topbar{display:flex;align-items:center;gap:16px;padding:12px 22px;background:var(--ink);color:#fff}.topbar .brand{font-weight:700;letter-spacing:-.01em}.topbar .brand small{display:block;font-weight:500;opacity:.6;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.topbar .spacer{flex:1}.topbar .who{font-size:13px;opacity:.85}.chip{font-family:var(--mono);font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:#ffffff1f;letter-spacing:.02em}.chip.role{background:var(--accent)}.btn-ghost{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 12px;border-radius:8px;font-size:13px}.btn-ghost:hover{background:#ffffff1a}.tabs{display:flex;gap:4px;padding:6px 22px 0;background:var(--ink);flex-wrap:wrap;border-bottom:1px solid rgba(255,255,255,.08)}.tabs button{background:transparent;border:none;color:#fff9;padding:10px 16px;font-size:14px;font-weight:500;border-bottom:2px solid transparent}.tabs button.active{color:#fff;border-bottom-color:var(--accent)}.wrap{max-width:1180px;margin:0 auto;padding:24px 22px 64px}.grid{display:grid;grid-template-columns:1fr 320px;gap:22px;align-items:start}@media (max-width: 900px){.grid{grid-template-columns:1fr}}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:16px}.card h2{margin:0 0 14px;font-size:15px;font-weight:600}.card h3{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--ink-soft)}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:5px}.field .num{color:var(--muted);font-family:var(--mono);margin-right:6px}input[type=text],input[type=number],input[type=email],input[type=password],textarea,select{width:100%;padding:9px 11px;border:1px solid var(--line-strong);border-radius:8px;font-size:14px;color:var(--ink);background:#fff}textarea{resize:vertical;min-height:70px;line-height:1.5}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:8px;font-size:14px;font-weight:600;border:1px solid transparent}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-press)}.btn-primary:disabled{background:var(--line-strong);cursor:not-allowed}.btn-line{background:#fff;border-color:var(--line-strong);color:var(--ink)}.btn-line:hover{border-color:var(--accent);color:var(--accent)}.btn-sm{padding:6px 10px;font-size:12px;font-weight:600}.btn-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:6px}.keycap{font-family:var(--mono);font-weight:600;font-size:15px;color:var(--ink)}.status{font-family:var(--mono);font-size:11px;font-weight:600;padding:4px 9px;border-radius:6px;text-transform:uppercase;letter-spacing:.03em}.status.SZKIC,.status.ZAREJESTROWANY,.status.NOWY{background:#eef1f6;color:var(--ink-soft)}.status.OCZEKUJE_ZGODY{background:#fbf1de;color:var(--warn)}.status.W_REALIZACJI{background:#e3f5ed;color:var(--ok)}.rail{position:sticky;top:100px}.rail .meter{height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin:10px 0 16px}.rail .meter>div{height:100%;background:var(--ok);transition:width .3s ease}.check{display:flex;align-items:flex-start;gap:9px;padding:7px 0;font-size:13px;border-bottom:1px solid var(--line)}.check:last-child{border-bottom:none}.check .i{flex-shrink:0;margin-top:1px}.check.ok{color:var(--ink-soft)}.check.no{color:var(--ink)}.check .gate{font-size:10px;font-weight:700;color:var(--err);margin-left:auto;letter-spacing:.04em}.verdict{padding:12px 14px;border-radius:8px;font-size:13px;font-weight:500;margin-top:14px}.verdict.ok{background:#e3f5ed;color:#137a51}.verdict.no{background:#fdecec;color:#a82f2f}.row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.row .grow{flex:1}.row .del{background:transparent;border:none;color:var(--muted);padding:8px;border-radius:6px}.row .del:hover{color:var(--err);background:#fdecec}.banner{padding:11px 14px;border-radius:8px;font-size:13px;margin-bottom:16px}.banner.err{background:#fdecec;color:#a82f2f;border:1px solid #f4caca}.banner.ok{background:#e3f5ed;color:#137a51;border:1px solid #bfe6d3}.muted{color:var(--muted);font-size:13px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inline-load{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:13px}.login-wrap{min-height:100vh;display:grid;place-items:center;background:var(--ink)}.login-card{background:#fff;border-radius:14px;padding:32px;width:360px;box-shadow:0 20px 60px #0000004d}.login-card .brand{font-weight:700;font-size:20px;margin-bottom:2px}.login-card .sub{color:var(--muted);font-size:13px;margin-bottom:22px}.login-card .btn-primary{width:100%;justify-content:center;margin-top:6px}.comments{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}.comments-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.comment{background:var(--surface-2, #f7f8fa);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:6px 0}.comment.closed{opacity:.6}.comment.reply{margin-left:18px;background:transparent;border-style:dashed}.comment-meta{font-size:12px}.comment-body{white-space:pre-wrap;margin:3px 0;font-size:14px}.comment-actions{display:flex;gap:12px}.comment-form{display:flex;gap:8px;align-items:flex-start;margin-top:6px}.comment-form textarea{flex:1;min-height:38px}.linkbtn{background:none;border:none;color:var(--accent, #2563eb);cursor:pointer;font-size:12px;display:inline-flex;align-items:center;gap:4px;padding:2px 0}.linkbtn:disabled{opacity:.5;cursor:default}.chip.closed{background:var(--line);color:var(--muted, #667);margin-left:6px}.tbl{width:100%;border-collapse:collapse}.tbl th,.tbl td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);font-size:14px}.tbl th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #667)}.signoff-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.chip.ok{background:#e7f6ec;color:#1a7f3c}.chip.no{background:#fdecec;color:#b3261e}.assistant .chat-log{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 0}.chat-msg{display:flex}.chat-msg.user{justify-content:flex-end}.chat-msg .chat-bubble{max-width:92%;padding:8px 10px;border-radius:10px;background:var(--surface-2,#f2f4f7);font-size:13px}.chat-msg.user .chat-bubble{background:var(--accent-soft,#e8efff)}.chat-msg.assistant .chat-bubble{background:var(--surface-2,#f2f4f7)}.proposal{border-top:1px dashed var(--line);margin-top:6px;padding-top:6px}.prop-text{font-size:12px;white-space:pre-wrap;max-height:120px;overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:6px;padding:5px 7px;margin-top:3px}.chat-input{resize:vertical;min-height:40px}.pbs-row .lvls{display:inline-flex;align-items:flex-end;gap:5px}.pbs-row .lvl{display:inline-flex;flex-direction:column;align-items:center;font-size:9px;color:var(--muted,#667)}.pbs-row .lvl select{padding:1px 2px;font-size:12px}.pbs-row input[type=date]{font-size:12px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:40}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(420px,92vw);background:var(--bg,#fff);box-shadow:-8px 0 24px #0000002e;z-index:41;padding:14px;overflow-y:auto}.drawer .assistant{border:none;box-shadow:none;padding:0}.progress{width:100%;height:6px;background:var(--surface-2,#eef0f3);border-radius:99px;overflow:hidden}.progress .bar{height:100%;background:var(--accent,#2f6fed);transition:width .3s ease}.check.neutral{opacity:.8}.check .gate{font-size:10px;background:var(--err,#d33);color:#fff;padding:1px 5px;border-radius:99px;margin-left:auto}.qtab{width:100%;border-collapse:collapse}.qtab th{text-align:left;font-size:11px;color:var(--muted,#667);font-weight:600;padding:4px 6px;border-bottom:1px solid var(--line)}.qtab td{padding:4px 6px;vertical-align:top;border-bottom:1px solid var(--line)}.qtab textarea{width:100%;resize:vertical;min-height:38px}.qtab select{width:100%}.qlist{display:flex;flex-direction:column;gap:8px}.qitem{border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:var(--card-bg, #fff)}.qitem.done{opacity:.65}.qhead{display:flex;align-items:center;gap:6px;margin-bottom:5px}.qhead .qnum{font-size:12px;font-weight:700;color:var(--muted, #667);min-width:18px}.qhead .qprio{font-size:11px;font-weight:600}.qicon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--line);border-radius:6px;background:transparent;cursor:pointer;padding:0}.qicon:hover{background:var(--hover, #f1f5f9)}.qitem textarea{width:100%;font-size:13px;line-height:1.4;border:1px solid var(--line);border-radius:6px;padding:6px 8px;resize:none;overflow:hidden;display:block;box-sizing:border-box}.qitem .qq{font-weight:500}.qitem .qa{margin-top:6px;color:var(--ink);background:var(--soft, #fafafa)}.qitem.done .qq{text-decoration:line-through;text-decoration-color:var(--muted, #94a3b8)}.sechdr{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.sechdr label{display:flex;align-items:center;gap:4px;font-weight:600}.sectext{width:100%;box-sizing:border-box;resize:vertical;overflow:hidden;min-height:80px;line-height:1.45}.secprev{margin-top:6px;font-size:13px;line-height:1.4;cursor:pointer;white-space:pre-wrap;max-height:3.2em;overflow:hidden}.secbar{display:flex;align-items:center;gap:8px;margin:2px 0 8px}.pbs-sum{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12px;margin-top:8px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2, #f7f8fa)}.pbs-sum b{font-weight:700}.pbs-row.sm{width:max-content;min-width:100%}.pbs-row.sm>*{flex-shrink:0}.pbs-row.sm input,.pbs-row.sm select{font-size:12px;padding:3px 6px}.pbs-row.sm .keycap{font-size:11px}.pbs-row.sm input[readonly]{background:var(--surface-2, #f3f4f6);color:var(--muted, #667)}.lvlsel.lvl-zero{background:#fdecec;border-color:#f0a9a9;color:#a11}.lvlsel.lvl-half{background:#fff6da;border-color:#ecca6e;color:#7a5800}.lvlsel.lvl-done{background:#e6f6ec;border-color:#93d2a8;color:#15794a}.usage-tab{width:100%;border-collapse:collapse;font-size:13px}.usage-tab th,.usage-tab td{padding:5px 8px;border-bottom:1px solid var(--line);text-align:left}.usage-tab th{font-weight:600;color:var(--muted, #667);white-space:nowrap}.usage-tab td.r,.usage-tab th.r{text-align:right;white-space:nowrap}.usage-tab tr.subtot td{background:var(--surface-2, #f7f8fa);font-weight:600}.usage-tab tfoot tr.tot td{border-top:2px solid var(--line);font-weight:700}.prog-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:12px;margin:4px 0 2px}.prog-legend .dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}.prog-legend .dot.ok{background:#7fcf9c}.prog-legend .dot.warn{background:#f0c560}.prog-legend .dot.red{background:#e88}.prog-tab{border-collapse:separate;border-spacing:0;font-size:12px}.prog-tab th,.prog-tab td{padding:5px 7px;border-bottom:1px solid var(--line);vertical-align:top}.prog-tab th{font-weight:600;color:var(--muted,#667);text-align:left;white-space:nowrap}.prog-tab th.wk{text-align:center;min-width:64px}.prog-tab th.wk.cur{color:var(--ink,#111);border-bottom:2px solid var(--brand,#3b5bdb)}.prog-tab th.wk.fut{color:#9aa;font-style:italic}.prog-tab .sticky-l{position:sticky;left:0;background:var(--bg,#fff);z-index:1;min-width:150px;box-shadow:1px 0 0 var(--line)}.prog-tab .wkcell{padding:3px}.prog-tab .notes-col{min-width:180px}.pcell{border-radius:6px;padding:4px 6px;line-height:1.25;text-align:center}.pcell .pl{font-size:11px;color:#555}.pcell .wy{font-size:11px;font-weight:600}.pcell .dev{font-size:12px;font-weight:700}.pcell.ok{background:#e7f6ec}.pcell.ok .dev{color:#15794a}.pcell.warn{background:#fff4d6}.pcell.warn .dev{color:#8a5a00}.pcell.red{background:#fde4e4}.pcell.red .dev{color:#b42318}.pcell.future{background:var(--surface-2,#f5f6f8);color:#8aa}.prog-notes{width:100%;font-size:12px;min-height:38px;resize:vertical}.savetag{position:absolute;right:4px;top:2px;font-size:10px;color:var(--muted,#888)}.savetag.ok{color:#15794a}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;flex:0 0 auto}.pbs-name{resize:none;overflow:hidden;line-height:1.3;min-height:26px;font-size:12px;padding:3px 6px;font-family:inherit}.pbs-date{display:inline-flex;align-items:center;justify-content:center;width:70px;flex:0 0 70px;font-size:12px;white-space:nowrap;padding:3px 4px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2, #f3f4f6)}.fld{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-soft, #475569);margin-bottom:8px}.fld input,.fld select,.fld textarea{font-weight:400;font-size:14px}.fld input:not([type=checkbox]):not([type=radio]),.fld select{height:40px}.fld textarea{height:auto}.tablewrap{overflow-x:auto}.tbl td input,.tbl td select,.tbl td textarea{font-size:13px;padding:4px 6px}.tbl td textarea{resize:vertical;line-height:1.35}.tbl.compact th,.tbl.compact td{padding:6px 8px;vertical-align:top}.btn-xs{padding:2px 8px;font-size:12px}
