/* ================================================================
   Szpigiel — style aplikacji
   Plik generowany automatycznie z index.html
   Edytuj tutaj, nie w index.html
================================================================ */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
*{box-sizing:border-box;margin:0;padding:0}
:root{--black:#000;--bg2:#141414;--bg3:#1C1C1C;--bg4:#242424;--border:#2A2A2A;--border2:#333;--red:#E8001C;--red2:#FF1A35;--red-dim:rgba(232,0,28,.10);--text:#FFF;--text2:#999;--text3:#555;--mono:'IBM Plex Mono',monospace;--sans:'IBM Plex Sans',sans-serif;--popup-bg:#1a1a1a;--popup-shadow:rgba(0,0,0,.7);}
html.light{--black:#F8F8F8;--bg2:#FFFFFF;--bg3:#F0F0F0;--bg4:#E8E8E8;--border:#DEDEDE;--border2:#CCCCCC;--text:#111111;--text2:#555555;--text3:#999999;--popup-bg:#FFFFFF;--popup-shadow:rgba(0,0,0,.15);}
html,body{background:var(--black);color:var(--text);height:100%;font-family:var(--sans)}

/* ── AUTH SCREEN ── */
#authScreen{position:fixed;inset:0;background:var(--black);z-index:9999;display:flex;align-items:center;justify-content:center}
.auth-box{background:var(--bg2);border:1px solid var(--border2);border-radius:10px;padding:36px 40px;width:100%;max-width:380px}
.auth-logo{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.auth-logo-text{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:20px;font-weight:700;color:var(--text)}
.auth-tab-row{display:flex;gap:0;margin-bottom:24px;border:1px solid var(--border2);border-radius:5px;overflow:hidden}
.auth-tab{flex:1;background:transparent;border:none;color:var(--text3);font-family:var(--sans);font-size:13px;font-weight:500;padding:8px;cursor:pointer;transition:background .1s,color .1s}
.auth-tab.active{background:var(--bg4);color:var(--text)}
.auth-field{margin-bottom:12px}
.auth-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.5px;margin-bottom:5px}
.auth-input{width:100%;background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--sans);font-size:13px;padding:9px 12px;border-radius:4px;outline:none;transition:border-color .1s}
.auth-input:focus{border-color:rgba(232,0,28,.5)}
.auth-input::placeholder{color:var(--text3)}
.auth-btn{width:100%;background:var(--red);color:#fff;font-family:var(--sans);font-size:13px;font-weight:600;padding:10px;border:none;border-radius:4px;cursor:pointer;margin-top:4px;transition:background .1s;letter-spacing:.3px}
.auth-btn:hover{background:var(--red2)}
.auth-btn:disabled{background:#333;color:#666;cursor:not-allowed}
.auth-err{font-family:var(--mono);font-size:11px;color:var(--red);margin-top:8px;display:none;line-height:1.5}
.auth-err.show{display:block}
.auth-ok{font-family:var(--mono);font-size:11px;color:#22C55E;margin-top:8px;display:none;line-height:1.5}
.auth-ok.show{display:block}

/* ── USER CHIP in topbar ── */
.user-chip{display:flex;align-items:center;gap:6px;padding:3px 8px;border:1px solid var(--border);border-radius:20px;cursor:pointer;transition:border-color .1s,background .1s;position:relative}
.user-chip:hover{border-color:var(--border2);background:var(--bg3)}
.user-dot{width:7px;height:7px;border-radius:50%;background:#22C55E;flex-shrink:0}
.user-email{font-family:var(--mono);font-size:10px;color:var(--text2);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--popup-bg);border:1px solid var(--border2);border-radius:6px;padding:4px;min-width:160px;z-index:1000;display:none;box-shadow:0 8px 24px var(--popup-shadow)}
.user-menu.open{display:block}
.user-menu-item{font-family:var(--sans);font-size:12px;color:var(--text2);padding:7px 12px;border-radius:4px;cursor:pointer;transition:background .1s,color .1s}
.user-menu-item:hover{background:var(--bg4);color:var(--text)}
.user-menu-item.danger:hover{color:var(--red)}
.user-menu-item.upgrade-pro{color:var(--red);font-weight:500}
.user-menu-item.upgrade-pro:hover{background:var(--red-dim);color:var(--red2)}

/* ── CLOUD SYNC INDICATOR ── */
.cloud-status{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--text3);padding:3px 8px;border-radius:3px;transition:color .2s}
.cloud-dot{width:6px;height:6px;border-radius:50%;background:var(--text3);flex-shrink:0;transition:background .3s}
.cloud-status.syncing .cloud-dot{background:#F59E0B;animation:pulse 1s infinite}
.cloud-status.synced .cloud-dot{background:#22C55E}
.cloud-status.error .cloud-dot{background:var(--red)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* ── LOADING OVERLAY ── */
#appLoading{position:fixed;inset:0;background:var(--black);z-index:9998;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px}
.app-loading-logo{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.app-loading-text{font-family:var(--mono);font-size:11px;color:var(--text3);letter-spacing:1px}
.app-loading-bar{width:120px;height:2px;background:var(--border);border-radius:1px;overflow:hidden}
.app-loading-fill{height:100%;background:var(--red);border-radius:1px;animation:loadbar 1.2s ease-in-out infinite}
@keyframes loadbar{0%{width:0%;margin-left:0}50%{width:60%;margin-left:20%}100%{width:0%;margin-left:100%}}

/* ── REST OF ORIGINAL CSS ── */
#viewList{display:none;height:calc(100vh - 44px - 36px);overflow-y:auto;padding:32px 40px}
.list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.list-title{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text3)}
.sched-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,160px));gap:8px;margin-bottom:16px}
@media(max-width:900px){.sched-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.sched-grid{grid-template-columns:1fr}}
.sched-card{position:relative;background:var(--bg2);border:1px solid var(--border);border-radius:6px;aspect-ratio:1/1;display:flex;flex-direction:column;justify-content:space-between;padding:13px;cursor:pointer;transition:border-color .15s,background .15s;overflow:hidden;max-width:200px;width:100%}
.sched-card:hover{border-color:var(--border2);background:var(--bg3)}
.sched-card-top{flex:1}
.sched-card-name{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;font-weight:700;color:var(--text);line-height:1.3;margin-bottom:5px;transition:color .15s}
.sched-card:hover .sched-card-name{color:var(--red2)}
.sched-card-date{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;color:var(--text3);margin-bottom:3px}
.sched-card-producer{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;color:var(--text3);margin-top:2px}
.sched-card-actions{display:flex;gap:3px;opacity:0;transition:opacity .15s;margin-top:6px;flex-wrap:wrap}
.sched-card:hover .sched-card-actions{opacity:1}
.scard-btn{font-family:var(--sans);font-size:9px;color:var(--text3);background:var(--bg4);border:1px solid var(--border2);border-radius:4px;padding:2px 6px;cursor:pointer;transition:color .1s,border-color .1s,background .1s;white-space:nowrap}
.scard-btn:hover{color:var(--text);border-color:var(--border2);background:var(--bg3)}
.scard-btn.danger:hover{color:var(--red);border-color:var(--red);background:rgba(232,0,28,.08)}
.new-sched-card{background:transparent;border:1px dashed var(--border2);border-radius:6px;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:border-color .15s,background .15s;max-width:200px;width:100%}
.new-sched-card:hover{border-color:var(--text3);background:var(--bg2)}
.new-sched-icon{width:24px;height:24px;border:1px solid var(--border2);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--text3);transition:border-color .15s,color .15s}
.new-sched-card:hover .new-sched-icon{border-color:var(--text2);color:var(--text2)}
.new-sched-label{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:11px;color:var(--text3);transition:color .15s}
.new-sched-card:hover .new-sched-label{color:var(--text2)}
.topbar{display:flex;align-items:center;background:var(--black);border-bottom:1px solid var(--border);height:44px;padding:0 16px;position:sticky;top:0;z-index:300;gap:0}
.topbar-logo{display:flex;align-items:center;margin-right:20px;cursor:pointer;flex-shrink:0;line-height:1}
.topbar-logo:hover svg circle{fill:#FF1A35}.topbar-logo:hover{opacity:.85}
.topbar-title{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text);flex:1;background:transparent;border:none;outline:none;min-width:0}
.topbar-title::placeholder{color:var(--text3)}
.topbar-date{font-family:var(--mono);font-size:13px;color:var(--text3);background:transparent;border:none;outline:none;cursor:pointer;margin-right:16px}
.topbar-sep{width:1px;height:24px;background:var(--border);margin:0 10px;flex-shrink:0}
.topbar-btn{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text3);background:transparent;border:none;cursor:pointer;padding:5px 10px;border-radius:3px;transition:color .1s,background .1s;white-space:nowrap}
.topbar-btn:hover{color:var(--text);background:var(--bg3)}
.topbar-btn.active{color:var(--red);background:var(--red-dim)}
.save-dot{width:6px;height:6px;border-radius:50%;background:var(--text3);margin-left:10px;transition:background .3s;flex-shrink:0}
.save-dot.saved{background:#22C55E}

#viewTable{display:none}#viewTimeline{display:none}
.tbl-outer{overflow-x:auto;overflow-y:auto;height:calc(100vh - 44px - 36px)}
table{border-collapse:collapse;width:100%;min-width:900px;table-layout:fixed}
col.c-drag{width:28px}col.c-num{width:44px}col.c-time{width:100px}col.c-dur{width:52px}col.c-action{width:220px}col.c-custom{width:155px}col.c-del{width:80px}
thead{position:sticky;top:0;z-index:100}
thead th{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text3);padding:8px 10px;text-align:left;background:var(--black);border-bottom:1px solid var(--border2);white-space:nowrap}
thead th.th-num{padding-left:14px}
.th-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 6px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(255,255,255,.03);transition:border-color .15s,background .15s}
.th-pill:hover{border-color:rgba(255,255,255,.15);background:rgba(255,255,255,.06)}
.th-pill--green{border-color:rgba(52,211,153,.25);background:rgba(52,211,153,.07)}
.th-pill--green:hover{border-color:rgba(52,211,153,.5);background:rgba(52,211,153,.13)}
.th-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;cursor:pointer}
.th-pill-name{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.th-del-col{background:none;border:none;color:var(--text3);cursor:pointer;font-size:11px;padding:0 0 0 3px;opacity:0;line-height:1}
thead th:hover .th-del-col{opacity:.6}.th-del-col:hover{color:var(--red)!important;opacity:1!important}
.th-add-col{padding:8px 12px}
.add-col-btn{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;color:var(--text3);background:transparent;border:1px dashed var(--border2);border-radius:20px;padding:3px 10px;cursor:pointer;transition:color .1s,border-color .1s}
.add-col-btn:hover{color:var(--text2);border-color:var(--text3)}
tbody tr{border-bottom:1px solid var(--border);transition:background .08s}tbody tr:hover{background:var(--bg2)}
td{padding:0;vertical-align:top}
.td-num{width:72px;background:var(--black);position:sticky;left:0;z-index:10;border-right:1px solid var(--border);padding:0;vertical-align:top}
.num-inner{display:flex;align-items:flex-start;justify-content:center;padding-top:12px;min-height:32px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text3);position:relative}
tr:hover .td-num{background:var(--bg2)}
.row-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:1px;padding:2px 0 4px;opacity:0;transition:opacity .12s}
tr:hover .row-actions{opacity:1}
.td-del{display:none}.td-time{padding:10px 12px;border-right:1px solid var(--border);min-width:84px;vertical-align:top}
.time-big{font-family:var(--mono);font-size:20px;font-weight:600;line-height:1.15;letter-spacing:-0.5px;color:var(--text);background:transparent;border:none;outline:none;display:block;width:100%;height:auto}
.td-dur{padding:10px 10px;border-right:1px solid var(--border);min-width:58px;vertical-align:top}
.dur-val{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--text2)}
.td-action{padding:8px 14px;border-right:1px solid var(--border);vertical-align:top}
.td-dept{padding:8px 12px;border-right:1px solid var(--border);vertical-align:top}
.cell-area{background:transparent;border:none;color:inherit;font:inherit;width:100%;max-width:100%;outline:none;resize:none;overflow:hidden;line-height:1.5;min-height:1.5em;display:block;word-break:break-word}
.cell-area::placeholder{color:var(--text3)}
td:focus-within{outline:1px solid rgba(232,0,28,.4);outline-offset:-1px;background:rgba(232,0,28,.04)!important}
.action-area{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text)}
.dept-area{font-family:var(--sans);font-size:13px;color:var(--text2);word-break:break-word}
.td-del{text-align:center;vertical-align:top;padding:10px 4px;width:80px;white-space:nowrap}
.del-btn,.dup-btn,.ins-btn{background:none;border:none;color:transparent;cursor:pointer;font-size:11px;padding:2px 4px;border-radius:2px;transition:color .1s;line-height:1;width:28px;text-align:center}
tr:hover .del-btn,tr:hover .dup-btn,tr:hover .ins-btn{color:var(--text3)}.del-btn:hover{color:var(--red)!important}.dup-btn:hover{color:var(--text)!important}.ins-btn:hover{color:var(--green,#10B981)!important}
tbody tr{border-left:2px solid transparent}
.section-row td{padding:0;border:none!important;border-left:none!important;overflow:hidden}.section-row{border:none!important;border-left:none!important}
.section-label{position:relative;display:flex;align-items:center;gap:10px;padding:5px 14px;background:var(--black);font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--red)}
.section-label::before,.section-label::after{content:'';position:absolute;left:0;width:var(--section-line-w, 100%);height:1px;background:var(--red);opacity:.2}
.section-label::before{top:0}
.section-label::after{bottom:0}
.section-line{width:120px;flex-shrink:1;height:1px;background:var(--red);opacity:.35;display:block;min-width:20px}
.section-edit-input{background:transparent;border:none;outline:none;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--red);min-width:60px}
.section-del{background:transparent;border:none;color:var(--text3);cursor:pointer;font-size:11px;padding:2px 4px;opacity:0;transition:opacity .1s}
.section-row:hover .section-del{opacity:.6}.section-del:hover{color:var(--red);opacity:1!important}
.add-row{display:flex;align-items:center;gap:8px;padding:9px 18px;color:var(--text3);font-family:var(--sans);font-size:12px;border:none;background:transparent;width:100%;cursor:pointer;border-top:1px solid var(--border);transition:color .1s,background .1s;text-align:left}
.add-row--auto{width:auto;flex-shrink:0;white-space:nowrap;padding:9px 20px}
.add-row:hover{color:var(--text);background:var(--bg2)}
.add-row-icon{width:17px;height:17px;border:1px solid var(--border2);border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}
.footer{display:flex;align-items:center;gap:16px;padding:0 16px;height:36px;border-top:1px solid var(--border);background:var(--black);position:sticky;bottom:0;z-index:200}
.footer-stat{font-family:var(--mono);font-size:11px;color:var(--text3)}.footer-stat span{color:var(--text2)}
#viewTimeline{height:calc(100vh - 44px - 36px);overflow-y:auto}
.tl-inner{padding:24px 32px}
.tl-row{display:flex;align-items:stretch;margin-bottom:2px;min-height:56px}
.tl-time-col{width:78px;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;padding-top:11px;padding-right:14px}
.tl-time-val{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text2)}
.tl-time-dur{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:3px}
.tl-axis{width:1px;background:var(--border2);flex-shrink:0;position:relative}
.tl-dot{width:9px;height:9px;border-radius:50%;background:var(--text3);position:absolute;top:13px;left:-4px}
.tl-block{flex:1;margin-left:14px;padding:10px 14px;border:1px solid var(--border);border-radius:2px;margin-bottom:2px;transition:border-color .1s,background .1s}
.tl-block:hover{border-color:var(--border2);background:var(--bg2)}
.tl-title{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text);margin-bottom:6px}
.tl-depts{display:flex;flex-wrap:wrap;gap:5px}
.tl-badge{font-family:var(--mono);font-size:10px;padding:2px 7px;border-radius:2px;font-weight:500;letter-spacing:.4px}
.tl-section{font-family:var(--mono);font-size:10px;letter-spacing:2px;color:var(--red);padding:12px 0 4px 92px;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.tl-section-line{flex:1;height:1px;background:var(--red);opacity:.3}
.cpop{position:fixed;background:var(--popup-bg);border:1px solid var(--border2);border-radius:8px;padding:10px;z-index:9999;display:none;box-shadow:0 8px 32px var(--popup-shadow);min-width:180px}
.cpop.show{display:block}
.cpop-swatches{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.cpop-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .12s}
.cpop-swatch:hover{transform:scale(1.2)}.cpop-swatch.sel{border-color:#fff}
.cpop-custom{width:100%;background:var(--bg4);border:1px solid var(--border);color:var(--text);font-size:12px;padding:4px 8px;border-radius:4px;outline:none}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:8000;display:none;align-items:center;justify-content:center}
.modal-backdrop.show{display:flex}
.modal{background:#141414;border:1px solid var(--border2);border-radius:8px;padding:22px 26px;min-width:300px;max-width:400px;width:100%}
.modal h4{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text2);margin-bottom:14px}
.modal-field{margin-bottom:12px}
.modal-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:1px;margin-bottom:5px}
.modal-input{width:100%;background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--sans);font-size:13px;padding:7px 10px;border-radius:4px;outline:none}
.modal-input:focus{border-color:rgba(232,0,28,.5)}
.modal-colors{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.modal-swatch{width:22px;height:22px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .12s}
.modal-swatch:hover{transform:scale(1.15)}.modal-swatch.sel{border-color:#fff}
.modal-btns{display:flex;gap:8px;margin-top:18px;justify-content:flex-end}
.modal-btn{font-family:var(--sans);font-size:12px;font-weight:500;padding:7px 16px;border-radius:4px;cursor:pointer;border:none;transition:background .1s,color .1s}
.modal-btn-cancel{background:transparent;color:var(--text2);border:1px solid var(--border2)}.modal-btn-cancel:hover{color:var(--text)}
.modal-btn-ok{background:var(--red);color:#fff}.modal-btn-ok:hover{background:var(--red2)}
.pdf-col-list{display:flex;flex-direction:column;gap:2px;margin-top:8px;max-height:260px;overflow-y:auto}
.pdf-col-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .1s;user-select:none}
.pdf-col-item:hover{background:var(--bg3)}
.pdf-col-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--red);cursor:pointer;flex-shrink:0}
.pdf-col-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.pdf-col-name{font-family:var(--sans);font-size:13px;color:var(--text2)}
.pdf-col-shortcuts{display:flex;gap:8px;margin-bottom:6px}
.pdf-shortcut-btn{font-family:var(--mono);font-size:10px;color:var(--text3);background:transparent;border:none;cursor:pointer;padding:2px 0;transition:color .1s;text-decoration:underline;text-underline-offset:2px}
.pdf-shortcut-btn:hover{color:var(--text2)}
.pdf-error{font-family:var(--mono);font-size:11px;color:var(--red);margin-top:8px;display:none}
.pdf-error.show{display:block}
.pdf-options{margin-top:10px;border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:6px}
.pdf-orient-row{display:flex;align-items:center;justify-content:space-between;padding:2px 10px}
.pdf-orient-label{font-family:var(--sans);font-size:13px;color:var(--text2)}
.pdf-orient-btns{display:flex;gap:4px}
.pdf-orient-btn{font-family:var(--mono);font-size:11px;color:var(--text3);background:transparent;border:1px solid var(--border2);border-radius:4px;padding:4px 10px;cursor:pointer;transition:all .15s}
.pdf-orient-btn:hover{color:var(--text2);border-color:var(--text3)}
.pdf-orient-btn.active{color:var(--text);border-color:var(--red);background:rgba(232,0,28,.08)}
.ripple-modal-desc{font-family:var(--sans);font-size:13px;color:var(--text2);line-height:1.6;margin-bottom:16px}
.ripple-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}
.ripple-opt{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border2);border-radius:5px;cursor:pointer;transition:border-color .1s,background .1s}
.ripple-opt:hover{background:var(--bg3)}
.ripple-opt.selected{border-color:rgba(232,0,28,.5);background:var(--red-dim)}
.ripple-opt-radio{width:14px;height:14px;border-radius:50%;border:2px solid var(--border2);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.ripple-opt.selected .ripple-opt-radio{border-color:var(--red)}
.ripple-opt-radio-dot{width:6px;height:6px;border-radius:50%;background:var(--red);display:none}
.ripple-opt.selected .ripple-opt-radio-dot{display:block}
.ripple-opt-text{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text)}
.ripple-opt-sub{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:2px}
.ripple-remember{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);cursor:pointer}
.ripple-remember input{width:13px;height:13px;accent-color:var(--red);cursor:pointer}
.ripple-remember-label{font-family:var(--mono);font-size:10px;color:var(--text3)}
.pdf-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:9900;display:none;align-items:center;justify-content:center}
.pdf-overlay.show{display:flex}
.pdf-box{background:#141414;border:1px solid var(--border2);border-radius:10px;padding:28px 32px;text-align:center;min-width:300px}
.pdf-box h3{font-family:var(--mono);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--text2);margin-bottom:8px}
.pdf-box p{font-size:13px;color:var(--text3);margin-bottom:16px}
.pdf-prog{height:2px;background:var(--border2);border-radius:1px;overflow:hidden;margin-bottom:16px}
.pdf-prog-bar{height:100%;background:var(--red);border-radius:1px;transition:width .3s;width:0%}
.editor-only{transition:opacity .15s}.list-mode .editor-only{display:none!important}.list-mode .editor-sep-hide{display:none!important}

.time-conflict{color:#ef4444;font-size:12px;padding:4px 14px;border-left:2px solid #ef4444;margin:0;opacity:.9;font-family:var(--mono);letter-spacing:.3px;background:rgba(239,68,68,.06);display:flex;align-items:center;gap:6px}
::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
.import-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:11px}
.import-table th{text-align:left;color:var(--text3);font-weight:400;padding:5px 8px;border-bottom:1px solid var(--border2);letter-spacing:.5px}
.import-table td{padding:3px 4px;border-bottom:1px solid var(--border);vertical-align:middle}
.import-table tr:last-child td{border-bottom:none}
.import-td-input{background:var(--bg2);border:1px solid transparent;border-radius:3px;color:var(--text);font-family:var(--mono);font-size:11px;padding:4px 6px;width:100%;box-sizing:border-box}
.import-td-input:focus{outline:none;border-color:var(--border2)}
.import-td-time{width:70px}
.import-row-del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:3px}
.import-row-del:hover{color:var(--red)}
.info-icon{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:1px solid var(--text3);color:var(--text3);font-size:9px;font-family:var(--mono);cursor:default;margin-left:5px;flex-shrink:0;position:relative;vertical-align:middle;line-height:1}
.info-icon:hover{border-color:var(--text2);color:var(--text2)}
.info-icon .itooltip{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translateX(-50%);background:#1C1C1C;border:1px solid var(--border2);border-radius:5px;padding:9px 11px;font-family:var(--sans);font-size:11px;color:var(--text2);line-height:1.55;width:250px;pointer-events:none;opacity:0;transition:opacity .15s;z-index:10000;white-space:normal;box-shadow:0 6px 20px rgba(0,0,0,.6)}
.info-icon:hover .itooltip{opacity:1}
.nsm-checkbox-row{display:flex;align-items:center;gap:8px;padding:9px 0 4px;cursor:pointer;user-select:none;grid-column:1/-1}
.nsm-checkbox-row input[type=checkbox]{width:13px;height:13px;accent-color:var(--red);cursor:pointer;flex-shrink:0}
.nsm-checkbox-row span{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.5px}
.nsm-alt-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:4px}
.modal-close-x{position:absolute;top:14px;right:16px;background:none;border:none;color:var(--text3);font-size:18px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:3px;transition:color .1s}
.modal-close-x:hover{color:var(--text)}
.drag-handle{cursor:grab;color:var(--text3);font-size:14px;padding:0 6px;user-select:none;opacity:0;transition:opacity .1s;flex-shrink:0;line-height:1}
tr:hover .drag-handle{opacity:.5}
.drag-handle:hover{opacity:1!important;color:var(--text2);cursor:grab}
.drag-handle:active{cursor:grabbing}
tr.dragging{opacity:.35}
tr.drag-over-above td{box-shadow:inset 0 2px 0 0 var(--red);}
th.col-drag-over-left{box-shadow:inset 2px 0 0 0 var(--red);}
th.col-drag-over-right{box-shadow:inset -2px 0 0 0 var(--red);}
th[draggable="true"]{cursor:grab}
tr.drag-over-below td{box-shadow:inset 0 -2px 0 0 var(--red);}
.nsm-modal{background:#141414;border:1px solid var(--border2);border-radius:8px;padding:24px 28px;min-width:360px;max-width:480px;width:100%}
.nsm-modal h4{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text2);margin-bottom:20px}
.nsm-section{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.nsm-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.nsm-field{display:flex;flex-direction:column;gap:4px}
.nsm-field.full{grid-column:1/-1}
.nsm-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.5px}
.nsm-input{background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--sans);font-size:13px;padding:7px 10px;border-radius:4px;outline:none;width:100%}
.nsm-input:focus{border-color:rgba(232,0,28,.5)}
.nsm-input::placeholder{color:var(--text3)}
.details-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:4px}
.details-field{display:flex;flex-direction:column;gap:4px}
.details-field.full{grid-column:1/-1}
.details-label{font-family:var(--mono);font-size:10px;color:var(--text3);letter-spacing:.5px;margin-bottom:2px}
.details-section{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin:16px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--border);grid-column:1/-1}
.details-value{font-family:var(--sans);font-size:13px;color:var(--text2)}
.details-edit{background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--sans);font-size:13px;padding:6px 10px;border-radius:4px;outline:none;width:100%}
.details-edit:focus{border-color:rgba(232,0,28,.5)}
.details-edit::placeholder{color:var(--text3)}

/* ── EXPORT MODAL ── */
.export-sched-list{display:flex;flex-direction:column;gap:2px;margin-top:8px;max-height:300px;overflow-y:auto}
.export-sched-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .1s;user-select:none}
.export-sched-item:hover{background:var(--bg3)}
.export-sched-item input[type=checkbox]{width:14px;height:14px;accent-color:var(--red);cursor:pointer;flex-shrink:0}
.export-sched-name{font-family:var(--sans);font-size:13px;color:var(--text2);flex:1}
.export-sched-date{font-family:var(--mono);font-size:10px;color:var(--text3);white-space:nowrap}
.export-shortcuts{display:flex;gap:8px;margin-bottom:6px}
.export-shortcut-btn{font-family:var(--mono);font-size:10px;color:var(--text3);background:transparent;border:none;cursor:pointer;padding:2px 0;transition:color .1s;text-decoration:underline;text-underline-offset:2px}
.export-shortcut-btn:hover{color:var(--text2)}

/* ── SHARE MODAL ── */
/* ── SHARE MODAL ── */
.share-loading{font-family:var(--mono);font-size:11px;color:var(--text3);padding:20px 0;text-align:center}
.share-section-label{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:8px}
.share-col-group{margin-bottom:14px}
.share-col-item{display:flex;align-items:center;gap:8px;padding:5px 0;cursor:pointer}
.share-col-item input[type=checkbox]{accent-color:var(--red);width:13px;height:13px;cursor:pointer;flex-shrink:0}
.share-col-item-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.share-col-name{font-family:var(--sans);font-size:12px;color:var(--text2)}
.share-col-item.disabled{opacity:.4;cursor:not-allowed}
.share-col-item.disabled input{cursor:not-allowed}
.share-name-field{margin-bottom:16px}
.share-name-input{width:100%;background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--sans);font-size:13px;padding:8px 10px;border-radius:4px;outline:none;transition:border-color .1s}
.share-name-input:focus{border-color:rgba(232,0,28,.5)}
.share-name-input::placeholder{color:var(--text3)}
.share-create-btn{width:100%;background:var(--red);color:#fff;font-family:var(--sans);font-size:13px;font-weight:600;padding:9px;border:none;border-radius:4px;cursor:pointer;transition:background .1s;margin-top:4px}
.share-create-btn:hover{background:var(--red2)}
.share-create-btn:disabled{background:#333;color:#666;cursor:not-allowed}
.share-created-box{background:var(--bg2);border:1px solid var(--border2);border-radius:6px;padding:12px;margin-bottom:14px}
.share-created-label{font-family:var(--mono);font-size:10px;color:#22C55E;margin-bottom:8px;display:flex;align-items:center;gap:5px}
.share-copy-row{display:flex;gap:6px;align-items:center}
.share-copy-btn{background:var(--bg4);border:1px solid var(--border2);color:var(--text2);font-family:var(--mono);font-size:11px;padding:7px 12px;border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .1s,color .1s;flex-shrink:0}
.share-copy-btn:hover{background:var(--bg3);color:var(--text)}
.share-copy-btn.copied{color:#22C55E;border-color:#22C55E}
.share-note{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:6px;line-height:1.5}
.share-divider{height:1px;background:var(--border);margin:16px 0}
.share-links-label{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--text3);margin-bottom:10px}
.share-link-item{background:var(--bg2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;margin-bottom:6px;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.share-link-item-info{flex:1;min-width:0}
.share-link-item-name{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.share-link-item-cols{font-family:var(--mono);font-size:10px;color:var(--text3);line-height:1.5}
.share-link-item-actions{display:flex;gap:5px;flex-shrink:0;align-items:center}
.share-link-action-btn{font-family:var(--mono);font-size:10px;color:var(--text3);background:var(--bg3);border:1px solid var(--border2);border-radius:3px;padding:4px 8px;cursor:pointer;transition:color .1s,border-color .1s}
.share-link-action-btn:hover{color:var(--text);border-color:var(--text3)}
.share-link-action-btn.danger:hover{color:var(--red);border-color:var(--red)}
.share-link-action-btn.copied{color:#22C55E;border-color:#22C55E}

/* ── SHARE BUTTON w topbarze ── */
.share-icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--border2);background:transparent;cursor:pointer;color:var(--text3);transition:color .15s,border-color .15s,background .15s;flex-shrink:0}
.share-icon-btn:hover{color:var(--text);border-color:var(--text2);background:var(--bg3)}
.share-icon-btn svg{display:block}

/* ── ZGODY REJESTRACJA ── */
.auth-consents{display:none;flex-direction:column;gap:10px;margin-top:4px;margin-bottom:2px}
.auth-consents.show{display:flex}
.consent-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border2);border-radius:5px;background:var(--bg3);cursor:pointer;transition:border-color .1s}
.consent-row:hover{border-color:var(--text3)}
.consent-row.required.checked{border-color:rgba(34,197,94,.4)}
.consent-row.optional.checked{border-color:rgba(99,102,241,.35)}
.consent-cb{width:15px;height:15px;accent-color:var(--red);cursor:pointer;flex-shrink:0;margin-top:2px}
.consent-text{font-family:var(--sans);font-size:11px;color:var(--text2);line-height:1.55;user-select:none}
.consent-text a{color:var(--text2);text-decoration:underline;text-underline-offset:2px}
.consent-text a:hover{color:var(--text)}
.consent-required-star{color:var(--red);margin-left:2px}
.consent-more-btn{background:none;border:none;color:var(--text3);font-size:11px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;font-family:var(--sans)}
.consent-more-btn:hover{color:var(--text2)}
.consent-more-text{display:none}
.consent-more-text.show{display:inline}

/* ── RESET HASŁA ── */
.reset-step{display:none}.reset-step.active{display:block}

/* ── TRYB CZASU DROPDOWN ── */
.time-mode-btn{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--text2);background:transparent;border:1px solid var(--border2);border-radius:3px;cursor:pointer;padding:4px 8px;transition:background .1s,color .1s;position:relative;white-space:nowrap}
.time-mode-btn:hover{background:var(--bg3);color:var(--text)}
.time-mode-btn.active{color:var(--red);border-color:rgba(232,0,28,.3);background:var(--red-dim)}
.time-mode-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.time-mode-menu{position:absolute;top:calc(100% + 6px);left:0;background:var(--popup-bg);border:1px solid var(--border2);border-radius:6px;padding:4px;min-width:200px;z-index:1000;display:none;box-shadow:0 8px 24px var(--popup-shadow)}
.time-mode-menu.open{display:block}
.time-mode-item{display:flex;flex-direction:column;padding:8px 10px;border-radius:4px;cursor:pointer;transition:background .1s}
.time-mode-item:hover{background:var(--bg4)}
.time-mode-item.selected{background:var(--red-dim)}
.time-mode-item-label{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--text);display:flex;align-items:center;gap:6px}
.time-mode-item-sub{font-family:var(--mono);font-size:10px;color:var(--text3);margin-top:2px}
.time-mode-check{font-size:11px;color:var(--red);width:12px;flex-shrink:0}

/* ── BŁĄD GODZINY — czerwona ramka 2s ── */
@keyframes timeErrorFlash {
  0%   { background:rgba(232,0,28,.18); box-shadow:inset 0 0 0 1px var(--red); }
  100% { background:transparent; box-shadow:none; }
}
.time-error{ animation: timeErrorFlash 2s ease-out; }

/* ── KONFLIKT CZASU ── */
.dur-val.duration-conflict{color:var(--red);background:rgba(232,0,28,.12);border-radius:4px;padding:2px 6px;display:inline-flex;align-items:center;gap:4px;border:1px solid rgba(232,0,28,.3);cursor:help}
.dur-val.duration-conflict::before{content:'⚠';font-size:11px}
/* ── FREE LIMIT MODAL ── */
.free-limit-sched-list{max-height:280px;overflow-y:auto;margin:12px 0}
.free-limit-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:5px;margin-bottom:6px;cursor:pointer;transition:border-color .1s,background .1s}
.free-limit-item:hover{border-color:var(--border2);background:var(--bg3)}
.free-limit-item input[type=checkbox]{accent-color:var(--red);width:14px;height:14px;flex-shrink:0;cursor:pointer}
.free-limit-item-name{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text);flex:1}
.free-limit-item-date{font-family:var(--mono);font-size:10px;color:var(--text3)}
.free-limit-counter{font-family:var(--mono);font-size:11px;color:var(--text2);margin-bottom:10px}
.free-limit-counter span{color:var(--red);font-weight:600}

/* ── READ-ONLY SCHEDULE ── */
.sched-card.readonly{opacity:.6}
.sched-card.readonly::after{content:'tylko odczyt';position:absolute;bottom:8px;right:8px;font-family:var(--mono);font-size:8px;letter-spacing:.5px;text-transform:uppercase;color:var(--text3);background:var(--bg3);border:1px solid var(--border);border-radius:3px;padding:2px 5px}
.readonly-banner{background:rgba(232,0,28,.08);border:1px solid rgba(232,0,28,.2);border-radius:4px;padding:8px 12px;font-family:var(--mono);font-size:11px;color:var(--red);margin-bottom:10px;display:none}
.readonly-banner.show{display:block}

/* ── PLAN BADGE W TOPBARZE ── */
.user-plan-badge{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;padding:2px 6px;border-radius:3px;flex-shrink:0}
.user-plan-badge.plan-pro{background:rgba(245,158,11,.15);color:#F59E0B;border:1px solid rgba(245,158,11,.3)}
.user-plan-badge.plan-trial{background:rgba(96,165,250,.12);color:#60A5FA;border:1px solid rgba(96,165,250,.25)}
.user-plan-badge.plan-free{background:var(--bg3);color:var(--text3);border:1px solid var(--border2)}

/* ── SMART EXCEL IMPORT ── */
.import-mapper{display:grid;gap:6px;margin-bottom:4px}
.import-mapper-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:5px;min-width:0}
.import-mapper-col-name{font-family:var(--mono);font-size:11px;color:var(--text2);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;max-width:140px}
.import-mapper-col-sample{font-family:var(--mono);font-size:10px;color:var(--text3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.import-mapper-select{background:var(--bg3);border:1px solid var(--border2);color:var(--text);font-family:var(--mono);font-size:11px;padding:4px 6px;border-radius:4px;outline:none;cursor:pointer;width:180px;flex-shrink:0}
.import-mapper-select.mapped-time{border-color:#60A5FA;color:#60A5FA}
.import-mapper-select.mapped-action{border-color:#34D399;color:#34D399}
.import-mapper-select.mapped-custom{border-color:var(--border2)}
.import-tabular-preview table{border-collapse:collapse;width:100%;font-size:11px}
.import-tabular-preview th{font-family:var(--mono);font-size:9px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text3);padding:5px 8px;border-bottom:1px solid var(--border2);text-align:left;white-space:nowrap}
.import-tabular-preview td{font-family:var(--mono);font-size:11px;color:var(--text2);padding:4px 8px;border-bottom:1px solid var(--border);white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.import-tabular-preview tr:hover td{background:var(--bg3)}
.import-tabular-badge{display:inline-block;font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:2px 5px;border-radius:3px;margin-left:4px}
.import-tabular-badge.time{background:rgba(96,165,250,.12);color:#60A5FA}
.import-tabular-badge.action{background:rgba(52,211,153,.12);color:#34D399}
.import-tabular-badge.custom{background:var(--bg3);color:var(--text3)}
.import-tabular-badge.skip{background:transparent;color:var(--text3);opacity:.5}

/* ── SZABLONY ── */
.templates-section-title{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--text3);margin:16px 0 10px;display:flex;align-items:center;gap:10px}
.templates-section-title::after{content:'';flex:1;height:1px;background:var(--border)}
.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:16px}
.template-card{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:14px;position:relative;transition:border-color .15s}
.template-card:hover{border-color:var(--border2)}
.template-card-name{font-family:var(--sans);font-size:14px;font-weight:500;color:var(--text);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.template-card-meta{font-family:var(--mono);font-size:10px;color:var(--text3);margin-bottom:10px}
.template-card-actions{display:flex;gap:6px;flex-wrap:wrap}
.template-action-btn{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.3px;padding:4px 10px;border-radius:4px;border:1px solid var(--border2);background:var(--bg3);color:var(--text2);cursor:pointer;transition:background .1s,color .1s,border-color .1s}
.template-action-btn:hover{background:var(--bg4);color:var(--text)}
.template-action-btn.primary{background:var(--red);color:#fff;border-color:var(--red)}
.template-action-btn.primary:hover{background:#ff1a35}
.template-action-btn.danger:hover{color:var(--red);border-color:var(--red)}
.new-template-card{background:transparent;border:1px dashed var(--border2);border-radius:8px;padding:14px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:var(--text3);font-family:var(--mono);font-size:11px;transition:border-color .15s,color .15s;min-height:80px}
.new-template-card:hover{border-color:var(--text3);color:var(--text2)}
.templates-pro-gate{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:16px 20px;font-family:var(--mono);font-size:11px;color:var(--text3);text-align:center;margin-bottom:16px}
.templates-pro-gate strong{color:var(--text2)}

/* ── FREE LIMIT MODAL ── */
.free-limit-sched-list{max-height:280px;overflow-y:auto;margin:12px 0}
.free-limit-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:5px;margin-bottom:6px;cursor:pointer;transition:border-color .1s}
.free-limit-item input[type=checkbox]{accent-color:var(--red);width:14px;height:14px;flex-shrink:0;cursor:pointer}
.free-limit-item-name{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--text);flex:1}
.free-limit-item-date{font-family:var(--mono);font-size:10px;color:var(--text3)}
.readonly-banner{background:rgba(232,0,28,.08);border:1px solid rgba(232,0,28,.2);border-radius:4px;padding:8px 12px;font-family:var(--mono);font-size:11px;color:var(--red);margin-bottom:10px;display:none}
.readonly-banner.show{display:block}

/* ── QUILL RICH TEXT ── */
#quillFloatingToolbar{position:fixed;z-index:9000;display:none;align-items:center;gap:3px;background:var(--bg2);border:1px solid var(--border2);border-radius:6px;padding:4px 6px;box-shadow:0 4px 20px rgba(0,0,0,.4)}
#quillFloatingToolbar.show{display:flex}
#quillFloatingToolbar button{background:transparent;border:none;cursor:pointer;font-family:var(--sans);font-size:13px;color:var(--text2);padding:3px 7px;border-radius:4px;line-height:1;transition:background .1s,color .1s}
#quillFloatingToolbar button:hover{background:var(--bg4);color:var(--text)}
#quillFloatingToolbar button.active{background:rgba(232,0,28,.15);color:var(--red)}
#quillFloatingToolbar .qtb-sep{width:1px;height:18px;background:var(--border2);margin:0 2px;flex-shrink:0}
#quillFloatingToolbar .qtb-label{font-family:var(--mono);font-size:9px;color:var(--text3);letter-spacing:.3px;white-space:nowrap;flex-shrink:0}
.qtb-hl{width:20px;height:20px;padding:0;border-radius:3px;border:1px solid rgba(255,255,255,.15)!important;flex-shrink:0;cursor:pointer;background:transparent}
.qtb-hl-remove{background:var(--bg3)!important;font-size:10px;color:var(--text3)!important}
.qtb-hl-remove:hover{color:var(--red)!important}
.qtb-recent-colors{display:inline-flex;gap:3px;align-items:center}
.qtb-recent{transition:transform .1s,box-shadow .1s!important}
.qtb-recent:hover{transform:scale(1.2);box-shadow:0 0 0 2px rgba(255,255,255,.3)}
.qtb-custom-color{position:relative;cursor:pointer;display:inline-flex;align-items:center}
.qtb-custom-color input[type=color]{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}
.qtb-custom-color .qtb-hl-custom{width:20px;height:20px;border-radius:3px;border:1px solid rgba(255,255,255,.2)!important}
.qtb-cell-bg-preview{width:20px;height:20px;border-radius:3px;font-size:9px;display:inline-flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);flex-shrink:0}
.qtb-text-color-preview{width:20px;height:20px;border-radius:3px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;color:#111;flex-shrink:0;border:1px solid rgba(255,255,255,.2)!important}
#qtbClearFormatting{font-size:16px!important;padding:2px 6px!important}
.quill-cell{min-height:34px;padding:4px 6px;font-family:var(--sans);font-size:13px;color:var(--text);line-height:1.5;cursor:text;outline:none;word-break:break-word}
.quill-cell .ql-editor{padding:0;min-height:inherit;font-family:var(--sans);font-size:13px;color:var(--text);line-height:1.5}
.quill-cell .ql-editor:focus{outline:none}
.quill-cell .ql-editor p{margin:0}
.quill-cell .ql-editor ol,.quill-cell .ql-editor ul{margin:0;padding:0;list-style:none}
.quill-cell .ql-editor li{padding-left:1.5em;position:relative}
.quill-cell .ql-editor li[data-list="bullet"]{list-style-type:disc;margin-left:1.5em}
.quill-cell .ql-editor li[data-list="ordered"]{list-style-type:decimal;margin-left:1.5em}
.quill-cell .ql-editor li .ql-ui{display:none}
.quill-cell .ql-editor strong{font-weight:700}
.quill-cell .ql-editor em{font-style:italic}
.quill-cell .ql-editor u{text-decoration:underline}
.quill-cell.ql-container{border:none!important;font-size:inherit}

/* ── TRIAL BAR ── */
#trialBar{display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(232,0,28,0.08);border-bottom:1px solid rgba(232,0,28,0.18);padding:7px 20px;font-family:var(--mono);font-size:11px;color:rgba(255,255,255,0.65);letter-spacing:.2px}
#trialBarText{flex:0 0 auto}
#trialBarText strong{color:#fff}
.trial-bar-btn{display:inline-flex;align-items:center;padding:4px 12px;border-radius:3px;background:var(--red);color:#fff;font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.5px;text-decoration:none;white-space:nowrap;transition:background .15s}
.trial-bar-btn:hover{background:#c0001a}

/* ── THEME TOGGLE ───────────────────────────────────────────────── */
.theme-toggle-btn{font-size:14px;border:1px solid var(--border2);border-radius:4px;padding:3px 8px;transition:border-color .15s,background .15s;color:var(--text2)!important}
.theme-toggle-btn:hover{border-color:var(--text3);background:var(--bg3);color:var(--text)!important}

/* ── TRYB JASNY — poprawki specyficzne ──────────────────────────── */
html.light body{background:var(--black)}
html.light .topbar{background:var(--bg2);border-bottom-color:var(--border)}
html.light .td-num{background:var(--bg2)}
html.light tr:hover .td-num{background:var(--bg3)}
html.light .tbl-outer{background:var(--black)}
html.light .quill-cell .ql-editor{color:var(--text)}
html.light .sched-card{background:var(--bg2);border-color:var(--border)}
html.light .sched-card:hover{background:var(--bg3)}
html.light .modal{background:var(--bg2);border-color:var(--border)}
html.light .modal-input,.html.light .modal-select{background:var(--bg3);color:var(--text);border-color:var(--border2)}
html.light #trialBarText strong{color:var(--text)}
html.light #trialBar{color:var(--text2)}
html.light .topbar-logo{color:var(--text)}
html.light .cell-area{color:var(--text);background:transparent}
html.light thead th{background:var(--bg2);color:var(--text2);border-bottom-color:var(--border2)}
html.light tbody tr{border-bottom-color:var(--border)}
html.light tbody tr:hover{background:var(--bg3)}

/* ═══════════════════════════════════════════════════════════════════
   ONBOARDING STYLES (Driver.js)
   ═══════════════════════════════════════════════════════════════════ */

/* Wyłącz ciemne tło — aplikacja jest już ciemna */
.driver-overlay { display: none !important; }

/* Wyłącz wszystkie warstwy blokujące kliknięcia — oprócz samego popovera */
/* Popover musi pozostać klikalny */
.driver-popover,
.driver-popover * {
  pointer-events: auto !important;
}

/* driver-active-element na body (krok bez elementu) nie może blokować kliknięć */
body.driver-active-element {
  pointer-events: auto !important;
}

/* Podświetlenie aktywnego elementu — delikatna czerwona ramka */
.driver-active-element,
.driver-highlighted-element {
  outline: 2px solid #E8001C !important;
  outline-offset: 3px !important;
  border-radius: 6px !important;
  box-shadow: 0 0 0 4px rgba(232, 0, 28, 0.15) !important;
  z-index: 10000 !important;
  position: relative !important;
}

/* Główny kontener popovera */
.driver-popover {
  background: #1a1a1a !important;
  color: #fff !important;
  border: 1px solid #444 !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.8) !important;
  border-radius: 10px !important;
  max-width: 360px !important;
  font-family: var(--sans) !important;
  z-index: 10001 !important;
}

.driver-popover-title {
  font-family: var(--sans) !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  color: #fff !important;
  margin-bottom: 8px !important;
  line-height: 1.3 !important;
}

.driver-popover-description {
  font-family: var(--sans) !important;
  font-size: 13px !important;
  line-height: 1.65 !important;
  color: #bbb !important;
}

.driver-popover-description strong { color: #fff; font-weight: 600; }
.driver-popover-description em { color: #E8001C; font-style: normal; font-weight: 500; }
.driver-popover-description code { background: rgba(232,0,28,.15); color: #E8001C; padding: 2px 6px; border-radius: 3px; font-family: var(--mono); font-size: 11px; }

.driver-popover-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-top: 14px !important;
  padding-top: 10px !important;
  border-top: 1px solid #2a2a2a !important;
}

.driver-popover-progress-text {
  font-family: var(--mono) !important;
  font-size: 11px !important;
  color: #555 !important;
}

.driver-popover-next-btn,
.driver-popover-prev-btn {
  font-family: var(--sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  padding: 6px 14px !important;
  border-radius: 6px !important;
  border: none !important;
  cursor: pointer !important;
  transition: all .15s ease !important;
}

.driver-popover-next-btn { background: #E8001C !important; color: #fff !important; }
.driver-popover-next-btn:hover { background: #ff1a35 !important; }
.driver-popover-prev-btn { background: #2a2a2a !important; color: #888 !important; }
.driver-popover-prev-btn:hover { background: #333 !important; color: #ccc !important; }

/* Strzałka */
.driver-popover-arrow-side-top { border-bottom-color: #1a1a1a !important; }
.driver-popover-arrow-side-bottom { border-top-color: #1a1a1a !important; }
.driver-popover-arrow-side-left { border-right-color: #1a1a1a !important; }
.driver-popover-arrow-side-right { border-left-color: #1a1a1a !important; }

/* Drugorzędne highlighty */
.onboarding-secondary-highlight {
  outline: 2px solid rgba(232,0,28,.4) !important;
  outline-offset: 3px !important;
  border-radius: 6px !important;
}

@media(max-width:768px){
  .driver-popover { max-width: calc(100vw - 24px) !important; }
  .driver-popover-title { font-size: 15px !important; }
  .driver-popover-description { font-size: 12px !important; }
}

@keyframes driver-popover-fade-in {
  from { opacity: 0; transform: scale(.97) translateY(-6px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.driver-popover { animation: driver-popover-fade-in .2s ease-out !important; }

/* Podczas onboardingu — zablokuj kliknięcia w podświetlone przyciski które otwierają modale */
body.onboarding-active button[onclick="openPdfModal()"],
body.onboarding-active button[onclick*="openShareModal"] {
  pointer-events: none !important;
}

/* ═══════════════════════════════════════════════════════════════
   MOBILE OPTIMIZATION — UX dla urządzeń mobilnych (≤768px)
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Zadanie 3: Ukrycie footera na małych ekranach */
  .footer {
    display: none !important;
  }
  
  /* Zadanie 3: Korekta wysokości kontenerów bez footera (44px topbar) */
  #viewList {
    height: calc(100vh - 44px);
  }
  
  .tbl-outer {
    height: calc(100vh - 44px);
  }
  
  #viewTimeline {
    height: calc(100vh - 44px);
  }
  
  /* Zadanie 5: Mobilny topbar — tylko logo, tytuł i hamburger */
  .topbar {
    padding: 0 12px;
    gap: 8px;
  }
  
  .topbar-logo {
    margin-right: 8px;
  }
  
  .topbar-title {
    flex: 1;
    min-width: 0;
    text-overflow: ellipsis;
    white-space: nowrap;
    overflow: hidden;
  }
  
  .topbar-date {
    margin-right: 0;
  }
  
  /* Ukryj elementy topbaru na mobilnych — będą w menu */
  #btnUndo,
  #btnRedo,
  #btnRundown,
  #btnTimeline,
  .time-mode-btn,
  .topbar-btn.editor-only,
  .share-icon-btn,
  .cloud-status,
  .user-chip,
  .topbar-sep {
    display: none !important;
  }
  
  /* W widoku listy pokaż cloud status i user chip bezpośrednio w topbarze */
  .list-mode .cloud-status,
  .list-mode .user-chip {
    display: flex !important;
  }
  
  /* Trial bar - responsywne dla mobilnych */
  #trialBar {
    flex-direction: column;
    gap: 8px;
    padding: 10px 12px;
    text-align: center;
  }
  
  #trialBarText {
    font-size: 10px;
    line-height: 1.5;
  }
  
  .trial-bar-btn {
    font-size: 9px;
    padding: 6px 12px;
    width: 100%;
    max-width: 200px;
    justify-content: center;
  }
  
  /* Hamburger button */
  #hamburgerBtn {
    display: none !important; /* Domyślnie ukryty */
  }
  
  /* Hamburger widoczny tylko w trybie edycji (nie w .list-mode) */
  body:not(.list-mode) #hamburgerBtn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text3);
    font-size: 18px;
    cursor: pointer;
    transition: all .15s;
    flex-shrink: 0;
  }
  
  #hamburgerBtn:hover,
  #hamburgerBtn.active {
    background: var(--bg3);
    border-color: var(--border2);
    color: var(--text);
  }
  
  /* Mobile menu dropdown */
  #mobileMenuDropdown {
    position: fixed;
    top: 44px;
    left: 0;
    right: 0;
    background: var(--black);
    border-bottom: 1px solid var(--border);
    padding: 12px;
    z-index: 299;
    display: none;
    flex-direction: column;
    gap: 8px;
    max-height: calc(100vh - 44px);
    overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  }
  
  #mobileMenuDropdown.show {
    display: flex;
  }
  
  /* Menu items styling — touch friendly */
  #mobileMenuDropdown .topbar-btn,
  #mobileMenuDropdown .time-mode-btn,
  #mobileMenuDropdown .share-icon-btn {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg2);
    gap: 8px;
  }
  
  #mobileMenuDropdown .topbar-btn:hover,
  #mobileMenuDropdown .time-mode-btn:hover {
    background: var(--bg3);
    border-color: var(--border2);
  }
  
  #mobileMenuDropdown .topbar-btn.active {
    border-color: var(--red);
    background: var(--red-dim);
    color: var(--red);
  }
  
  /* Cloud status i user chip w menu */
  #mobileMenuDropdown .cloud-status,
  #mobileMenuDropdown .user-chip {
    display: flex !important;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg2);
  }
  
  /* Separatory w menu */
  #mobileMenuDropdown .mobile-menu-separator {
    height: 1px;
    background: var(--border);
    margin: 4px 0;
  }
  
  /* Time mode menu w mobile dropdown */
  #mobileMenuDropdown .time-mode-btn {
    position: relative;
  }
  
  #mobileMenuDropdown .time-mode-menu {
    position: static;
    display: none;
    margin-top: 8px;
    border: 1px solid var(--border2);
    border-radius: 6px;
    background: var(--bg3);
  }
  
  #mobileMenuDropdown .time-mode-menu.show {
    display: block;
  }
  
  #mobileMenuDropdown .time-mode-item {
    min-height: 44px;
    padding: 10px 14px;
  }
  
  /* Zadanie 4: Quill floating toolbar na mobilnych */
  #quillFloatingToolbar.mobile-mode {
    position: fixed !important;
    top: 44px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    border-radius: 0 !important;
    border-left: none !important;
    border-right: none !important;
    max-width: none !important;
  }
}

/* Desktop: hamburger i mobile menu ukryte */
@media (min-width: 769px) {
  #hamburgerBtn {
    display: none !important;
  }
  
  #mobileMenuDropdown {
    display: none !important;
  }
}
