@font-face{font-family:"tabler-icons";font-style:normal;font-weight:400;font-display:swap;src:url("https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@3.44.0/dist/fonts/tabler-icons.woff2?v3.44.0") format("woff2"),url("https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@3.44.0/dist/fonts/tabler-icons.woff?") format("woff"),url("https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@3.44.0/dist/fonts/tabler-icons.ttf?v3.44.0") format("truetype")}.app,.hdr-tabs,.htab{display:flex}.htab,.logo{text-transform:uppercase}.btn,.htab{cursor:pointer;white-space:nowrap}.hdr-right,.sb-right{margin-left:auto}.gfc:hover,.gsa:hover,.ulnk{text-decoration:underline}.btn,.bulk-lbl,.cc-tag,.group-label,.htab,.logo{white-space:nowrap}.gc,.ss-title{margin-bottom:4px}.jc-day-hdr-ratio,.run-time{font-variant-numeric:tabular-nums}*,.jc-day-label{box-sizing:border-box}.asf-pax-chk input,.ij-jrow input[type=checkbox],.iws-row-chk input,.ssm-pax-row input{accent-color:var(--accent)}.jrp-scroll,.vs-pills{scroll-behavior:smooth}.s3-edit-btn,.s3-vendor-badge,.tip-sep{vertical-align:middle}.group-hdr,.run-group-drag,.s2-sec-hdr,.s3-ea-item-hdr,.s3-rbd-toggle,.tdf-cell{user-select:none}.bd-mode-tab,.book-dz,.book-empty,.collapsed-label,.empty-board,.empty-pane,.empty-sub,.grp-empty-msg,.isb-empty,.iws-dropzone,.s3-empty,.tdf-weekdays,.vend-empty-msg{text-align:center}*{margin:0;padding:0}:root{--font-mono:'JetBrains Mono',Consolas,monospace;--bg:#fafafa;--bg2:#fff;--bg3:#f5f5f7;--bg4:#efeff2;--border:#e5e5ea;--b2:#d4d4dc;--b3:#b8b8c4;--accent:#6264ee;--ad:#4f46e5;--al:rgba(99,102,241,.08);--am:rgba(99,102,241,.18);--green:#41825a;--gl:rgba(77,154,106,.1);--amber:#937139;--ml:rgba(196,151,77,.1);--red:#ad5f57;--rl:rgba(212,117,107,.1);--text:#18181b;--t2:#52525b;--t3:#6b6b71;--t4:#75757a;--on-accent:#fff;--on-green:#fff;--radius:4px;--rs:3px;--row-h:32px}[data-theme=dark]{--bg:#18181b;--bg2:#1f1f23;--bg3:#27272a;--bg4:#313135;--border:#2e2e33;--b2:#3a3a40;--b3:#4b4b54;--accent:#9499ff;--ad:#7b7ff5;--al:rgba(148,153,255,.12);--am:rgba(148,153,255,.24);--green:#6fae85;--gl:rgba(111,174,133,.12);--amber:#d4ac6e;--ml:rgba(212,172,110,.12);--red:#e0918a;--rl:hsla(5,58%,71%,.12);--text:#f4f4f5;--t2:#a1a1aa;--t3:#b4b4bd;--t4:#9d9da8;--on-accent:#0d0f12;--on-green:#0d0f12}*{transition:background-color .18s ease,border-color .18s ease,color .18s ease}select{color-scheme:light;background-color:var(--bg2);color:var(--text)}select option{background-color:var(--bg2);color:var(--text)}[data-theme=dark] select{color-scheme:dark}body,html{height:100%;background:var(--bg);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;font-size:12px;color:var(--text)}.app,.gh-pax-rows,body,html{overflow:hidden}.app{flex-direction:column;height:100vh;width:100vw}.s3-body,.scroll-col{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--b3) transparent}.bd-drawer .tdf-cell:hover,.gc.focused,.grp-card-selected,.s3-jchip.active,.vend-pick-row.picked{border-color:var(--accent);background:var(--al)}.book-cc-item.active .book-cc-count,.fb.on,.fchip.on,.iws-chip.on,.ltab.on .ltab-badge{background:var(--al);border-color:var(--am);color:var(--accent)}.asf-input:focus,.group-sel:focus,.iws-search:focus,.iws-textarea:focus{outline:0;border-color:var(--am)}.asf-save:hover,.bd-action-apply:hover,.ij-apply-btn:hover,.iws-confirm-btn:hover,.parse-btn:hover{background:var(--ad)}.hdr{height:44px;background:var(--bg2);border-bottom:1px solid var(--border);padding:0 12px;gap:8px;flex-shrink:0;z-index:20}.logo{font-size:13px;font-weight:700;color:var(--accent);letter-spacing:.08em;gap:6px}.htab,.sys-stat{letter-spacing:.04em}.logo-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.hdr-sep{width:1px;height:20px;background:var(--b2);flex-shrink:0}.hdr-tabs{gap:1px;align-items:stretch;height:100%}.hdr-right,.htab,.sys-stat{gap:6px}.htab{align-items:center;padding:0 14px;font-size:11px;font-weight:600;color:var(--t3);border-bottom:2px solid transparent;transition:color .1s,border-color .1s}.btn,.hdr-right,.sys-stat{align-items:center;display:flex}.htab:hover{color:var(--t2);border-bottom-color:var(--b3)}.htab.active{color:var(--accent);border-bottom-color:var(--accent)}#htab-stepper{background:var(--bg2);color:var(--t3);border:1px solid var(--b2);border-radius:6px;border-bottom:1px solid var(--b2);padding:4px 12px;height:34px;margin:auto 0;font-size:10px;font-weight:700;letter-spacing:.04em;transition:border-color .15s}#htab-stepper:hover{border-color:var(--accent)}.htab-badge{font-size:10px;font-weight:700;background:var(--al);border:1px solid var(--am);border-radius:3px;padding:0 5px;color:var(--accent);line-height:16px;font-family:inherit}.htab:not(.active) .htab-badge{background:var(--bg4);border-color:var(--b2);color:var(--t3)}.sys-stat{font-size:10px;color:var(--t3);padding:0 8px;border-left:1px solid var(--border);border-right:1px solid var(--border)}.btn,.sb-stat .sb-val,.sys-stat b{color:var(--t2);font-weight:600}.btn,.fchip{letter-spacing:.03em;font-family:inherit}.toolbar{height:38px;background:var(--bg2);border-bottom:1px solid var(--border);padding:0 10px;gap:6px;flex-shrink:0}.btn,.toolbar-group{gap:4px}.toolbar-sep{width:1px;height:18px;background:var(--b2)}.btn{font-size:11px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--b2);background:0 0;transition:.1s}.btn:hover{background:var(--bg4);color:var(--text);border-color:var(--b3)}.btn:active{transform:scale(.96)}.bd-close-btn,.bd-drawer .tdf-nav,.bd-drawer-title i,.btn i{font-size:13px}.btn-accent,.dpick-all:hover,.rge-cancel:hover{border-color:var(--am);color:var(--accent)}.btn-accent:hover{background:var(--al);border-color:var(--accent)}.btn-primary{background:var(--accent);color:#0d0f12;border-color:var(--accent);font-weight:700}.btn-primary:hover{background:var(--ad);border-color:var(--ad)}.btn-danger{border-color:rgba(248,113,113,.3);color:var(--red)}.btn-danger:hover{background:var(--rl)}.btn-sm{padding:3px 7px;font-size:10px}.btn[disabled]{opacity:.35;cursor:not-allowed;pointer-events:none}.search-wrap{position:relative;display:flex;align-items:center}.search-wrap i{position:absolute;left:8px;font-size:12px;color:var(--t3);pointer-events:none}.search-input{padding:4px 22px 4px 26px;font-size:11px;border-radius:var(--radius);border:1px solid var(--b2);background:var(--bg);color:var(--text);font-family:inherit;width:200px;transition:border-color .1s}.search-clear,.iws-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:none;width:14px;height:14px;border-radius:50%;background:var(--bg4);color:var(--t3);font-size:9px;align-items:center;justify-content:center;cursor:pointer;border:none;padding:0}.search-clear.show,.iws-search-clear.show{display:flex}.search-clear:hover,.iws-search-clear:hover{background:var(--b3);color:var(--text)}.fchip,.group-label,.sb-stat,.undo-pill{font-size:10px}.fchip,.icon-btn{border-radius:var(--rs);cursor:pointer}.fchip,.sb-stat .sb-lbl{color:var(--t3);font-weight:600;text-transform:uppercase}.fchip{padding:3px 8px;border:1px solid var(--border);background:0 0;transition:.1s}.fchip:active{transform:scale(.96)}.fchip.warn.on,.fchip.warn:hover{border-color:rgba(251,176,64,.4);color:var(--amber);background:var(--ml)}.fchip.err.on,.fchip.err:hover{border-color:rgba(248,113,113,.4);color:var(--red);background:var(--rl)}.fchip.ok.on,.fchip.ok:hover{border-color:rgba(74,222,128,.4);color:var(--green);background:var(--gl)}.step-content{flex:1;overflow:hidden;display:none}.step-content.active{animation:stepFadeIn .18s ease}@keyframes stepFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.bd-pane-cal,.bd-pane-cal-inner,.step-content.active{display:flex;flex-direction:column}.book-body,.iws-body,.workspace{display:flex;flex:1;overflow:hidden}.status-bar{height:28px;flex-shrink:0;background:var(--bg2);border-bottom:1px solid var(--border);padding:0 10px;gap:8px}.sb-stat{gap:5px;letter-spacing:.04em}.isb-stat.warn .isb-num,.iss-row.warn .iss-val,.sb-stat .sb-val.warn{color:var(--amber)}.s3-jchip-dot,.sb-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.sb-sep{width:1px;height:14px;background:var(--border)}.sb-right{gap:8px}.undo-pill{gap:6px;background:var(--bg4);color:var(--t2);padding:2px 10px;border-radius:3px;border:1px solid var(--b2);opacity:0;transform:translateY(4px);transition:opacity .15s,transform .15s;pointer-events:none;overflow:hidden}.undo-pill.visible{opacity:1;transform:translateY(0);pointer-events:all}.undo-bar-wrap{position:absolute;left:0;right:0;bottom:0;height:2px;background:hsla(0,0%,50%,.15)}.undo-bar{height:100%;width:100%;background:var(--accent);transform-origin:left;transition:transform linear}.ulnk{color:var(--accent);cursor:pointer;font-weight:600}.panel-hdr,.s1-left{display:flex;flex-direction:column;flex-shrink:0}.panel-hdr{border-bottom:1px solid var(--border);gap:5px;height:36px;position:relative}.panel-hdr-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.panel-label{color:var(--t3);text-transform:uppercase;letter-spacing:.08em}.group-label,.pax-badge,.pc-badge{letter-spacing:.04em;text-transform:uppercase}.panel-label,.pax-count-badge,.sel-all-btn,.sel-bar-info{font-size:10px;font-weight:700}.pax-count-badge{background:var(--bg4);border:1px solid var(--b2);border-radius:3px;padding:1px 6px;color:var(--t2);font-family:inherit}.group-sel-wrap{display:flex;align-items:center;gap:5px}.group-label{color:var(--t3);font-weight:600}.group-sel{font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);padding:3px 6px;background:var(--bg);color:var(--t2);cursor:pointer;flex:1;font-family:inherit}.pax-row{height:auto;min-height:44px;padding:6px 10px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;gap:6px;cursor:pointer;transition:background .08s;position:relative}.pax-row-main{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pax-row-line1{display:flex;align-items:center;gap:6px;min-width:0}.book-cc-item.active,.pax-row.sel{background:var(--al);border-left:2px solid var(--accent)}.pax-row input[type=checkbox]{margin-top:2px;width:12px;height:12px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}.irs-dot,.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.irs-dot.ok,.sd-ok{background:var(--green)}.irs-dot.warn,.sd-warn{background:var(--amber)}.irs-dot.err,.sd-err{background:var(--red)}.sd-time{background:var(--accent)}.pax-name{font-size:12px;font-weight:600;color:var(--text);flex:0 1 auto}.ghc,.ghn,.j-meta-item i,.miss-sm,.pax-route,.s3-rbd-toggle i{font-size:10px}.pax-name,.pax-route{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pax-route{color:var(--t3);width:100%;display:flex;align-items:center;gap:3px}.irr-loc.miss,.miss-sm,.pax-route .ms,.rf-loc.ms{color:var(--amber);font-style:italic}.cc-tag,.pax-badge,.pc-badge{font-size:9px;padding:1px 5px;font-weight:700}.pax-badge,.pc-badge{border-radius:2px;flex-shrink:0;font-family:inherit}.ba,.bdg-ok,.gbg,.s3-vendor-badge.has{background:var(--gl);color:var(--green);border:1px solid rgba(74,222,128,.25)}.bdg-warn{background:var(--ml);color:var(--amber);border:1px solid rgba(251,176,64,.25)}.bdg-err{background:var(--rl);color:var(--red);border:1px solid rgba(248,113,113,.25)}.bdg-time{background:var(--al);color:var(--accent);border:1px solid rgba(74,158,255,.25)}.pax-actions{display:flex;gap:1px;flex-shrink:0;opacity:0;transition:opacity .08s;margin-top:1px}.cc-tag{color:var(--t3);background:var(--bg3);border:1px solid var(--b2);border-radius:3px;flex-shrink:0;letter-spacing:.03em;font-family:var(--font-mono)}.icon-btn{font-size:11px;color:var(--t3);padding:3px 4px;border:none;background:0 0;transition:.1s;font-family:inherit}.ghn,.gsa{color:var(--accent)}.center-toolbar,.group-hdr{border-bottom:1px solid var(--border);display:flex}.table-group-hdr{display:flex;align-items:center;gap:4px;padding:0 10px;height:24px;background:var(--bg);border-bottom:1px solid var(--border);font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.07em;position:sticky;top:28px;z-index:4}.table-group-cnt{margin-left:auto;font-size:9px;font-weight:800;background:var(--bg4);border:1px solid var(--b2);border-radius:3px;padding:0 5px;color:var(--t3);line-height:15px}.icon-btn:hover{color:var(--text);background:var(--bg4)}.icon-btn:active{transform:scale(.94)}.dpick-day-cap.over,.gc-btn.del:hover,.icon-btn.del:hover,.iws-del-btn:hover,.jc-day-hdr-del:hover,.jc-day-hdr-ratio.over{background:var(--rl);color:var(--red)}.group-hdr{height:24px;padding:0 10px;background:var(--bg);align-items:center;justify-content:space-between;position:sticky;top:0;z-index:2;cursor:pointer}.ghn{font-weight:700;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:4px}.gsa{font-size:10px;cursor:pointer;font-weight:600}.gh-chevron{font-size:10px;color:var(--t3);transition:transform .15s;margin-left:2px;flex-shrink:0}.gc.gc-collapsed .gc-chevron,.group-hdr.collapsed .gh-chevron,.s2-sec-hdr.collapsed .s2-sec-chevron,.s3-ea-item.collapsed .s3-ea-chevron{transform:rotate(-90deg)}.bulk-bar{display:none;height:34px;background:rgba(74,158,255,.08);border-bottom:1px solid rgba(74,158,255,.2);align-items:center;padding:0 10px;gap:6px;flex-shrink:0}.bulk-lbl{font-size:11px;font-weight:700;color:var(--accent);letter-spacing:.03em}.center-title,.s3-topbar-title,.th{font-weight:700;color:var(--t3);letter-spacing:.08em;text-transform:uppercase}.bulk-sep{width:1px;height:14px;background:rgba(74,158,255,.2)}.s1-center{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border)}.center-toolbar{min-height:36px;background:var(--bg2);align-items:center;padding:0 10px;gap:6px;flex-shrink:0}.table-header,.table-row{display:grid;grid-template-columns:40px minmax(0,1.15fr) minmax(0,2fr) 76px 76px 96px 72px 56px;gap:8px;padding:0 10px;border-bottom:1px solid var(--border)}.th-route{padding:0}.route-hdr{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:6px;align-items:center;min-width:0}.route-hdr-label{font-size:9px;font-weight:700;color:var(--t3);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.route-hdr-arrow{font-size:10px;color:var(--t4);text-align:center}.center-title,.s3-topbar-title{font-size:10px}.table-header{height:28px;background:var(--bg);align-items:center;flex-shrink:0;position:sticky;top:0;z-index:5}.th{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rf-loc,.td{font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-row{height:var(--row-h);align-items:center;cursor:pointer;transition:background .08s}.empty-state,.rf-swap,.rp-hdr,.s1-right,.td-acts{display:flex}.td{color:var(--text)}.td-name{font-weight:600}.rf-loc{color:var(--t2);flex:1;min-width:0}.rf-swap{font-size:10px;flex-shrink:0;width:18px;height:18px;border:none;background:0 0;color:var(--t4);cursor:pointer;align-items:center;justify-content:center;padding:0;opacity:0;pointer-events:none;transition:opacity .14s ease,color .14s ease}.td-route .route-flow{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);gap:6px;align-items:center;min-width:0}.td-route:hover .rf-swap,.td-route:focus-within .rf-swap{opacity:1;pointer-events:auto;color:var(--t3)}.td-route .rf-swap:hover{color:var(--accent)}.td-time{font-size:11px;color:var(--t2);font-family:var(--font-mono)}.row-select-cell{display:flex;align-items:center;justify-content:center;overflow:visible;position:relative}.row-select-cell input{width:12px;height:12px;accent-color:var(--accent);opacity:0;transform:scale(.82);pointer-events:none;transition:opacity .14s ease,transform .14s ease,filter .14s ease;filter:drop-shadow(0 0 0 rgba(0,0,0,0))}.table-row:hover .row-select-cell input,.table-row:focus-within .row-select-cell input,.table-row.sel .row-select-cell input,.table-wrap.selection-active .row-select-cell input{opacity:1;transform:scale(1);pointer-events:auto;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08))}.td-sr-num{font-size:11px;font-family:var(--font-mono);color:var(--t3);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity .14s ease,transform .14s ease}.table-row:hover .td-sr-num,.table-row:focus-within .td-sr-num{opacity:0;transform:scale(.7)}.table-row.sel .td-sr-num,.table-wrap.selection-active .td-sr-num{opacity:1;transform:translateX(-16px);font-size:10px;color:var(--accent);font-weight:700}.td-acts{gap:2px;opacity:0;transition:opacity .08s}.empty-state{flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:12px;flex:1}.book-empty i,.empty-board i,.empty-icon,.s3-empty i{font-size:32px;color:var(--t4)}.empty-title{font-size:13px;font-weight:700;color:var(--t3);letter-spacing:.03em}.empty-sub{font-size:11px;color:var(--t4);max-width:260px;line-height:1.5}.s1-right{width:240px;min-width:200px;background:var(--bg2);flex-direction:column;overflow:hidden;flex-shrink:0;transition:width .15s,min-width .15s}.gc-btn:hover,.gc-top:hover,.grp-badge-count,.irr-loc:hover{background:var(--bg4)}.s1-right.collapsed,.s2-left.collapsed{width:32px;min-width:32px}.rp-hdr{padding:0 6px 0 0;border-bottom:1px solid var(--border);align-items:stretch;gap:4px;flex-shrink:0;height:36px}.rp-title{text-transform:uppercase;letter-spacing:.08em;flex:1;white-space:nowrap;overflow:hidden}.grp-badge-count,.rp-title{font-size:10px;font-weight:700;color:var(--t3)}.rp-tabs{display:flex;flex:1;gap:1px;min-width:0}.rp-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;height:100%;font-size:10px;font-weight:700;color:var(--t3);background:0 0;border:none;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit;text-transform:uppercase;letter-spacing:.04em;transition:color .1s,border-color .1s;white-space:nowrap;padding:0 6px}.rp-tab:hover{color:var(--t2)}.rp-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.rp-tab-badge{font-size:9px;font-weight:800;background:var(--bg4);border:1px solid var(--b2);border-radius:3px;padding:0 4px;color:var(--t3);line-height:14px;font-family:inherit}.rp-tab.active .rp-tab-badge{background:var(--al);border-color:var(--am);color:var(--accent)}.rp-pane{display:flex;flex-direction:column}.grp-badge-count{border:1px solid var(--b2);border-radius:3px;padding:1px 5px}.collapse-btn{font-size:12px;color:var(--t3);cursor:pointer;padding:2px;border-radius:var(--rs);border:none;background:0 0;flex-shrink:0;transition:color .1s}.collapsed-label{writing-mode:vertical-rl;font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;padding:8px 0;display:none}.bulk-edit-panel.visible,.pc.sel .pc-chk i,.s1-right.collapsed .collapsed-label,.s3-jchip.vsel-picked .s3-jchip-vchk i,.vend-pick-row.picked .vend-pick-radio i{display:block}.s1-right.collapsed .rp-hdr{justify-content:center;align-items:center;padding:6px 4px;height:auto;flex-direction:column}.grp-list{display:flex;flex-direction:column}.grp-filter-banner{padding:4px 10px;background:var(--al);border-bottom:1px solid var(--am);display:none;align-items:center;justify-content:space-between;font-size:10px;color:var(--accent)}.gc-actions,.gc-btn,.gc-top,.ss-act{display:flex}.gfc{cursor:pointer;font-weight:600}.gc{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg3);overflow:hidden;transition:border-color .1s}.gc:hover,.grp-card:hover,.vend-pick-row:hover{border-color:var(--b3)}.gc.health-orange,.iws-row.row-warn{border-left:2px dashed var(--amber)}.gc.health-green,.iws-row.row-ok{border-left:2px solid var(--green)}.gc-top{padding:6px 8px;cursor:pointer;transition:background .08s;align-items:flex-start;gap:4px}.dpick-day-info,.gc-top-inner,.ter-route .ter-sub,.vend-row-info{flex:1;min-width:0}.gc-chevron{font-size:10px;color:var(--t3);transition:transform .15s;flex-shrink:0;margin-top:2px}.gc-name,.vend-row-name{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-pax-count,.s3-vend-bar-info{font-size:10px;font-weight:700;color:var(--accent)}.gc-route{font-size:10px;color:var(--t3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gc-actions{padding:4px 6px;border-top:1px solid var(--border);gap:3px;background:var(--bg)}.gc-btn{font-size:9px;padding:2px 6px;border-radius:2px;border:1px solid var(--b2);background:0 0;color:var(--t3);cursor:pointer;font-family:inherit;font-weight:600;letter-spacing:.03em;text-transform:uppercase;transition:.08s;align-items:center;gap:2px}.gc-btn:hover{border-color:var(--b3);color:var(--t2)}.gc-btn.del:hover{border-color:rgba(248,113,113,.3)}.grp-empty-msg{padding:24px 12px;color:var(--t4);font-size:11px}.grp-empty-msg i{font-size:24px;display:block;margin-bottom:6px;color:var(--t4)}.ss-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--rs);padding:5px 8px;cursor:pointer;transition:.1s;margin-bottom:3px;display:flex;align-items:center;gap:7px}.ss-card:last-child{margin-bottom:0}.ss-card:hover{border-color:var(--am);background:var(--al)}.bp-row,.ter-input{transition:border-color .1s}.ss-name,.tdf-month-label{font-size:11px;font-weight:700;color:var(--text)}.bp-title,.ss-sub{font-size:10px}.ss-sub{color:var(--t3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-act{font-size:9px;color:var(--accent);font-weight:700;white-space:nowrap;flex-shrink:0;padding:2px 6px;border-radius:2px;border:1px solid var(--am);background:var(--al)}.ss-info{flex:1;min-width:0}.ss-pax-count{font-size:9px;font-weight:800;color:var(--accent);background:var(--al);border:1px solid var(--am);border-radius:3px;padding:1px 5px;flex-shrink:0;font-family:var(--font-mono)}.bulk-edit-panel{background:var(--bg2);border-bottom:2px solid var(--am);padding:8px 10px;display:none;flex-shrink:0}.bp-title{color:var(--accent);font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em;display:flex;align-items:center;gap:5px}.fl,.ter-label{margin-bottom:3px;font-weight:700;text-transform:uppercase}.bp-row{display:flex;align-items:flex-end;gap:0;border:1px solid var(--b2);border-radius:var(--radius);overflow:hidden;background:var(--bg)}.bp-field{display:flex;flex-direction:column;gap:3px;padding:6px 8px;flex:1;min-width:0;border-right:1px solid var(--b2)}.bp-field.time{flex:0 0 100px}.asf-type-seg label:last-child,.bp-field:last-child,.s3-day-pill:last-child,.s3-j-meta-cell:last-child{border-right:none}.bp-divider{width:1px;background:var(--b3);align-self:stretch;flex-shrink:0}.fi,.ter-input{width:100%;font-family:inherit}.fl{font-size:9px;color:var(--t3);letter-spacing:.05em;line-height:1}.fi{padding:3px 0;font-size:11px;border:none;background:0 0;color:var(--text);outline:0}.table-row-edit{display:flex;flex-direction:column;gap:0;border-bottom:2px solid var(--am);background:var(--al)}.ter-fields{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,2fr) 100px 100px 110px;gap:6px;padding:6px 10px;align-items:start}.ter-label{font-size:9px;color:var(--t4);letter-spacing:.07em}.ter-input{padding:4px 7px;font-size:11px;border-radius:var(--rs);border:1px solid var(--b2);background:var(--bg2);color:var(--text)}.ter-actions{display:flex;gap:4px;justify-content:flex-end;padding:4px 10px 6px;border-top:1px solid var(--am)}.ter-route{display:flex;gap:6px;align-items:flex-start}.ter-swap-btn{align-self:flex-end;margin-bottom:1px;width:22px;height:27px;border-radius:var(--rs);border:1px solid var(--b2);background:0 0;color:var(--t3);cursor:pointer;justify-content:center;font-size:11px;transition:.1s;display:flex;align-items:center;flex-shrink:0}.s2-left{width:260px;min-width:220px;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0;transition:width .15s,min-width .15s}.s2-left.collapsed #pane-grp,.s2-left.collapsed #pane-pax{display:none!important}.s2-left-collapsed-strip{display:none;flex-direction:column;align-items:center;padding:6px 0;gap:8px;flex:1}.s2-left-col-label{writing-mode:vertical-rl;font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.1em;cursor:pointer;padding:6px 0}.fb,.ltab,.ltab-badge,.sel-bar-info{color:var(--t3)}.s2-collapse-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:0 0;cursor:pointer;color:var(--t3);font-size:11px;flex-shrink:0;transition:color .1s;border-radius:3px;margin-right:4px}.s2-collapse-btn:hover{color:var(--accent);background:var(--bg3)}.left-tabs{gap:1px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0}.ltab{flex:1;justify-content:center;gap:5px;height:32px;font-size:10px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.05em;transition:.1s}.ltab:hover{color:var(--t2);background:var(--bg3)}.ltab.on{color:var(--accent);background:var(--al);box-shadow:inset 0 -2px 0 var(--accent)}.ltab-badge{font-size:9px;font-weight:700;background:var(--bg4);border:1px solid var(--b2);border-radius:2px;padding:0 4px;line-height:14px}.fb,.pc-chk i{font-size:10px}.lp-hdr,.sel-bar{border-bottom:1px solid var(--border);display:flex}.lp-hdr{padding:6px 8px;flex-shrink:0;flex-direction:column;gap:4px}.filter-row{display:flex;gap:2px}.fb{padding:3px 8px;border-radius:2px;border:1px solid var(--border);background:0 0;cursor:pointer;font-family:inherit;font-weight:700;letter-spacing:.04em;text-transform:uppercase;transition:.08s}.sel-bar{height:28px;background:var(--bg);align-items:center;padding:0 8px;gap:6px;flex-shrink:0}.sel-bar-info{letter-spacing:.03em;flex:1}.grp-card-actions,.sel-all-btn{letter-spacing:.04em;text-transform:uppercase}.sel-all-btn{color:var(--accent);border:none;background:0 0;cursor:pointer;font-family:inherit;padding:0}.pc{min-height:var(--row-h);height:auto;display:flex;flex-wrap:wrap;align-items:center;padding:6px 8px;gap:3px 6px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .08s}.pc.assigned .pc-name{opacity:.6}.pc-chk{order:1;width:14px;height:14px;border:1.5px solid var(--b3);border-radius:2px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.08s}.bu,.grp-card{border:1px solid var(--border)}.pc.sel .pc-chk,.s3-jchip.vsel-picked .s3-jchip-vchk,.s3-vend-toggle.on{background:var(--accent);border-color:var(--accent)}.bu,.jbtn:hover{background:var(--bg4)}.pc-chk i{color:#0d0f12;display:none}.pc-name{order:2;font-size:11px;font-weight:600;color:var(--text);flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-route{order:4;font-size:10px;flex:1 1 100%;min-width:0;margin-left:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pc-badge{order:3}.empty-pane{padding:24px 12px;color:var(--t4);font-size:11px;display:flex;flex-direction:column;align-items:center;gap:6px}.empty-pane i{font-size:22px}.groups-pane{flex:1;overflow-y:auto;scrollbar-width:thin;padding:6px;display:flex;flex-direction:column;gap:4px}.grp-card,.grp-route,.j-name,.jc{overflow:hidden;border-left:3px solid transparent;transition:border-color .15s,border-top-color .15s}.jc.jc-status-ok{border-left-color:#22c55e}.jc.jc-status-warn{border-left-color:#f59e0b;border-left-style:dashed}.jc:not(.jc-status-ok):not(.jc-status-warn){border-left-color:var(--b2)}.jc[data-vclass="sedan"]{border-top:2px solid #6366f1}.jc[data-vclass="mpv"]{border-top:2px solid #0ea5e9}.jc[data-vclass="suv"]{border-top:2px solid #f59e0b}.jc[data-vclass="van"]{border-top:2px solid #14b8a6}.jc[data-vclass="heavy"]{border-top:2px solid #a855f7}.jc[data-vclass="none"]{border-top:2px solid var(--b2)}.grp-route,.s2-sec-hdr{display:flex;align-items:center}.grp-card{border-radius:var(--radius);background:var(--bg3);cursor:pointer;transition:.1s}.grp-card-hdr{padding:6px 8px}.grp-card-name{font-size:11px;font-weight:700;color:var(--text)}.grp-badge{font-size:9px;padding:1px 5px;border-radius:2px;font-weight:700;text-transform:uppercase;font-family:inherit}.grp-badge-sel{background:var(--al);color:var(--accent);border:1px solid var(--am)}.board-hdr,.jc-sel-bar,.s2-sec-hdr{border-bottom:1px solid var(--border)}.grp-card-pax,.grp-route{font-size:10px;color:var(--t3);margin-top:2px}.grp-route{gap:3px;white-space:nowrap;text-overflow:ellipsis}.grp-card-actions{padding:4px 8px;border-top:1px solid var(--border);font-size:10px;font-weight:700}.s2-sec-hdr{height:24px;padding:0 8px;background:var(--bg);justify-content:space-between;cursor:pointer;flex-shrink:0}.j-name,.run-row[draggable=true]{cursor:default}.board-hdr,.s2-sec-label{display:flex;align-items:center}.s2-sec-label{font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;gap:4px}.s2-sec-count,.ssm-pax-orig{font-size:9px;color:var(--t4)}.s2-sec-chevron{font-size:10px;color:var(--t3);transition:transform .15s}.board-hdr{height:38px;background:var(--bg2);padding:0 12px;gap:8px;flex-shrink:0}.board-title{font-size:11px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.06em}.board-stats,.irn-phone,.s3-day-date{font-size:10px;color:var(--t3)}.journey-board{padding:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));grid-auto-rows:min-content;gap:6px;align-content:flex-start}.jc-sel-bar{align-items:center;gap:6px;padding:5px 10px;flex-shrink:0;flex-wrap:wrap}.jc,.jc-sel-bar{display:flex;background:var(--bg2)}.jc{border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s,transform .15s;min-width:0;flex-direction:column;position:relative}.jc:hover{border-color:var(--b3);box-shadow:0 2px 8px rgba(0,0,0,.06)}.jc-hdr{padding:6px 8px 4px;background:var(--bg);display:flex;align-items:flex-start;justify-content:space-between;gap:4px;flex-shrink:0;border-bottom:1px solid var(--border)}.jc-hdr-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.j-name{white-space:nowrap;text-overflow:ellipsis;line-height:1.3}.j-name,.j-name-input{font-size:11px;font-weight:700;color:var(--text);letter-spacing:.02em}.j-meta,.jbtn{color:var(--t3)}.j-name-input{background:0 0;border:none;border-bottom:1px solid var(--accent);outline:0;padding:0;font-family:inherit;width:100%}.add-day-btn,.jbtn{border-radius:var(--rs)}.jrp-time,.run-time{font-family:var(--font-mono)}.j-meta{gap:4px;font-size:10px;font-weight:600;flex-wrap:nowrap;overflow:hidden;min-width:0;width:100%}.j-meta-item{gap:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.jc-acts{display:flex;gap:1px;flex-shrink:0;align-items:flex-start}.jbtn{font-size:12px;cursor:pointer;padding:3px 4px;border:1px solid transparent;background:0 0;transition:.08s;line-height:1}.jrp-fade-left,.jrp-fade-right{top:0;width:28px;pointer-events:none;transition:opacity .15s;bottom:0;opacity:0}.jbtn:hover{color:var(--text);border-color:var(--border)}.jbtn.del:hover{color:var(--red);background:var(--rl);border-color:rgba(248,113,113,.3)}.jbtn.eye-btn.active,.jbtn.eye-btn:hover{color:var(--accent);background:var(--al);border-color:var(--am)}.isb-stat.ok .isb-num,.iss-row.ok .iss-val,.jbtn.confirm-btn.active,.jc-confirmed-pill,.jrp-pax-tag.up,.run-group.pickup-group .run-group-icon,.run-group.pickup-group .run-time,.s3-rs-tag.up,.sb-stat .sb-val.ok{color:var(--green)}.jc-confirmed-pill,.jc.jc-confirmed .jc-hdr{background:var(--gl)}.jbtn.confirm-btn.active:hover{background:var(--gl);border-color:rgba(74,222,128,.35)}.jc.jc-confirmed{border-color:rgba(74,222,128,.4);box-shadow:0 0 0 1px rgba(74,222,128,.15)}.jc-confirmed-pill{font-size:9px;font-weight:800;border:1px solid rgba(74,222,128,.3);border-radius:3px;padding:1px 5px;display:inline-flex;align-items:center;gap:3px;letter-spacing:.02em;text-transform:uppercase;flex-shrink:0}.jc-expanded-body,.jrp-scroll{gap:4px;scrollbar-color:var(--b3) transparent;scrollbar-width:thin}.jc-expanded-body{padding:0 8px 6px;display:none;flex-direction:column;max-height:360px;overflow-y:auto}.jc-route-preview{font-size:10px;color:var(--t2);padding:0;border-bottom:1px solid var(--border);background:var(--bg3);flex-shrink:0;position:relative}.jrp-scroll{display:flex;align-items:flex-start;padding:7px 8px;overflow-x:auto}.jrp-scroll::-webkit-scrollbar{height:3px}.jrp-scroll::-webkit-scrollbar-track{background:0 0}.jrp-scroll::-webkit-scrollbar-thumb{background:var(--b3);border-radius:2px}.jrp-scroll::-webkit-scrollbar-thumb:hover{background:var(--accent)}.jrp-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-radius:2px}.jrp-stop{color:var(--t2);font-weight:500;white-space:nowrap;flex-shrink:0}.jrp-time{font-size:9px;color:var(--t3);font-weight:700;margin-left:4px;letter-spacing:.02em}.jrp-day-marker{display:flex;flex-direction:column;align-items:flex-start;gap:1px;flex-shrink:0;padding:1px 0 1px 7px;border-left:2px solid var(--accent);margin-right:1px}.jrp-day-date{font-size:10px;font-weight:800;color:var(--accent);white-space:nowrap;letter-spacing:.02em;line-height:1.3}.jrp-day-veh,.jrp-pax-tag{font-weight:700;white-space:nowrap}.jrp-day-veh{font-size:9px;color:var(--t2);line-height:1.3}.jrp-day-veh.muted{color:var(--t4);font-style:italic;font-weight:500}.jrp-arr{color:var(--t4);font-size:9px;flex-shrink:0;align-self:flex-start;margin-top:1px}.jrp-stop-block{display:flex;flex-direction:column;align-items:flex-start;gap:2px;flex-shrink:0}.jrp-pax-row{display:flex;gap:3px;flex-wrap:nowrap}.jrp-pax-tag{font-size:8.5px;line-height:14px;flex-shrink:0;letter-spacing:.01em}.isb-stat.err .isb-num,.iss-row.err .iss-val,.jrp-pax-tag.down,.run-group-del:hover,.run-group.drop-group .run-group-icon,.run-group.drop-group .run-time,.s3-rs-tag.down,.sb-stat .sb-val.err{color:var(--red)}.jrp-pax-tag.reboard{color:#ca8a04;background:rgba(202,138,4,.12);border:1px dashed #ca8a04;border-radius:3px;padding:0 3px}.jrp-pax-tag.redrop{color:#9333ea;background:rgba(147,51,234,.1);border:1px dashed #9333ea;border-radius:3px;padding:0 3px}.jrp-fade-right{position:absolute;right:0;background:linear-gradient(to right,transparent,var(--bg3))}.jrp-fade-left{position:absolute;left:0;background:linear-gradient(to left,transparent,var(--bg3));z-index:1}.jc.jc-picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--am)}.jc-sel-badge{display:none;position:absolute;top:6px;left:6px;width:16px;height:16px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:9px;font-weight:800;align-items:center;justify-content:center;z-index:3}.run-group,.run-row{background:0 0;position:relative}.empty-board,.jc-stops-section{flex-direction:column;display:flex}.empty-board{width:100%;padding:60px 20px;align-items:center;justify-content:center;gap:10px}.empty-board p{font-size:11px;color:var(--t4);line-height:1.5}.empty-j{font-size:10px;color:var(--t4);font-style:italic}.jc-stops-section{gap:0}.stop-timeline{display:flex;flex-direction:column;gap:0;margin:0 -8px}.run-row{display:flex;align-items:center;gap:0;padding:0 8px;border:none;border-radius:0;overflow:hidden;height:28px;border-bottom:1px solid var(--border);transition:background .08s}.iss-row:last-child,.run-group:last-child,.run-row:last-child,.s3-day-block:last-child{border-bottom:none}.run-group-drag{font-size:9px;color:var(--b3);cursor:grab;padding:0 4px 0 0;flex-shrink:0;display:flex;align-items:center;opacity:0;transition:opacity .1s;width:0;overflow:hidden}.run-row:hover .run-info{flex:1;min-width:0;display:flex;align-items:center;gap:0;padding:0;white-space:nowrap;overflow:hidden}.run-name{font-weight:600;color:var(--text)}.run-loc-sep,.run-name{font-size:11px;flex-shrink:0}.run-loc-sep{color:var(--b3);margin:0 4px}.run-time{font-size:11px;font-weight:700;flex-shrink:0;letter-spacing:.02em;margin-left:8px}.add-day-btn,.add-stop-btn,.asf-cancel,.asf-input,.asf-save,.asf-time-input,.bd-action-apply,.bd-shift-input,.ij-apply-btn,.ij-jrow input[type=date],.jc-day-label,.seg-tab{font-family:inherit}.run-group.dragging,.run-row.dragging{opacity:.3}.run-ghost-slot{height:26px;margin:3px 8px;border:1.5px dashed var(--accent);border-radius:var(--rs);background:var(--al);opacity:0;transform:scaleY(.6);transform-origin:center;transition:opacity .12s ease,transform .12s ease;pointer-events:none;flex-shrink:0}.run-ghost-slot.visible{opacity:1;transform:scaleY(1)}.run-group{display:flex;flex-direction:column;border-bottom:1px solid var(--border);transition:background .08s}.run-group-top{padding:0 8px;height:28px}.run-group-names,.run-group-top{display:flex;align-items:center;gap:0}.run-group-names{padding:0 8px 4px 29px;font-size:10px;font-weight:600;color:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}.run-pax-pill,.shared-stop-badge{font-weight:800;padding:0 5px;line-height:15px;letter-spacing:.02em;margin-left:4px}.run-group-names.via-pax-names{color:var(--accent);font-size:9px;opacity:.8}.run-pax-pill{font-size:9px;background:var(--al);border:1px solid var(--am);color:var(--accent);border-radius:3px;flex-shrink:0}.shared-stop-badge{font-size:8px;background:var(--indigo,#6366f1);color:#fff;border-radius:3px;flex-shrink:0;display:inline-flex;align-items:center;gap:2px}.shared-stop-group{border-left:2px solid var(--indigo,#6366f1)!important}.s3-all-view,.sharedStopModal .modal-body{padding:12px;display:flex;flex-direction:column;gap:10px}.ssm-pax-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.ssm-pax-row{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:5px;border:1px solid var(--border);cursor:pointer;font-size:11px;background:var(--bg3)}.dpick-day:hover,.ssm-pax-row.ssm-checked{background:var(--al);border-color:var(--am)}.ssm-pax-info{display:flex;flex-direction:column;gap:1px}.ssm-pax-name{font-weight:700;font-size:11px;color:var(--text)}.run-group:hover .run-group-drag{opacity:1;width:auto}.run-group-icon{width:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;margin-right:5px}.run-group-loc{font-size:11px;color:var(--t3);overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;white-space:nowrap}.add-stop-btn,.run-group-del{background:0 0;color:var(--t4);font-size:10px;display:flex;cursor:pointer}.run-group-del{padding:0 0 0 8px;border:none;opacity:0;transition:opacity .08s,color .08s;flex-shrink:0;align-items:center}.add-stop-btn{align-items:center;gap:5px;padding:5px 8px;border-radius:0;border:none;border-top:1px dashed var(--b2);font-weight:600;letter-spacing:.04em;text-transform:uppercase;transition:.1s;width:calc(100% + 16px);margin-left:-8px}.add-stop-btn:hover{color:var(--accent);background:var(--al)}.asf-type-seg input[value=pickup]:checked+label,.dpick-day-cap.ok,.jc-day-hdr-ratio.ok{background:var(--gl);color:var(--green)}.add-stop-form{border:1px solid var(--am);border-radius:var(--rs);background:var(--al);padding:7px 8px;display:flex;flex-direction:column;gap:5px;margin-top:4px}.jc-day-block{padding:0;margin-bottom:0;background:0 0}.jc-day-block+.jc-day-block{margin-top:0;padding-top:0}.jc-day-hdr{display:flex;flex-direction:column;background:var(--bg2);border-bottom:none;border-top:1px solid var(--border);padding:5px 8px;flex-shrink:0;position:relative;overflow:hidden}.jc-day-hdr-del,.jc-day-hdr-r1{align-items:center;display:flex}.bd-drawer,.iws-search-wrap i{position:absolute;pointer-events:none}.jc-day-block+.jc-day-block .jc-day-hdr{border-top:2px solid var(--border);margin-top:2px}.jc-day-hdr-r1{gap:5px;width:100%}.jc-day-hdr-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:background .2s}.jc-day-hdr-day{font-size:9.5px;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.jc-day-hdr-date,.jc-day-hdr-veh{flex-shrink:0;white-space:nowrap}.jc-day-hdr-date{font-size:9px;font-weight:500;color:var(--t3)}.jc-day-hdr-del{margin-left:auto;font-size:10px;color:var(--t4);cursor:pointer;padding:1px 4px;border:none;background:0 0;opacity:0;transition:opacity .1s,color .08s;border-radius:3px;flex-shrink:0}.iws-edit-tip.visible,.iws-row:hover .iws-row-del,.jc-day-hdr:hover .jc-day-hdr-del,.jrp-fade-left.visible,.jrp-fade-right.visible,.pax-row:hover .pax-actions,.run-group:hover .run-edit-btn,.run-group:hover .run-group-del,.table-row:hover .td-acts{opacity:1}.jc-day-hdr-r2{display:flex;align-items:center;margin-top:3px;width:100%}.jc-day-hdr-veh{font-size:9.5px;font-weight:700;color:var(--text)}.jc-day-hdr-noveh{font-size:9px;color:var(--t4);font-style:italic;flex-shrink:0}.jc-day-hdr-spacer{flex:1}.jc-day-hdr-ratio{font-size:9px;font-weight:800;letter-spacing:.02em;padding:1px 5px;border-radius:3px;flex-shrink:0}.dpick-day-cap.full,.jc-day-hdr-ratio.full{color:var(--amber);background:var(--ml)}.dpick-day-cap.none,.jc-day-hdr-ratio.none{color:var(--t4);background:var(--bg3)}.jc-day-hdr-free{font-size:8.5px;font-weight:600;color:var(--t3);white-space:nowrap;margin-left:5px}.jc-day-label{display:block;width:100%;font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);background:var(--bg3);color:var(--t2);padding:4px 8px;margin-bottom:6px;outline:0;transition:border-color .1s,background .1s}.tdf-cal{display:flex;flex-direction:column;gap:4px}.tdf-cal-hdr,.tdf-weekdays span{display:flex;align-items:center}.tdf-cal-hdr{justify-content:space-between}.tdf-nav{border:none;background:0 0;color:var(--accent);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.tdf-weekdays{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase}.tdf-weekdays span{justify-content:center;aspect-ratio:1}.tdf-cell,.tdf-summary{font-size:10px;align-items:center}.tdf-grid,.tdf-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.tdf-cell{display:flex;justify-content:center;aspect-ratio:1;border-radius:4px;cursor:pointer;color:var(--t2);background:var(--bg3);border:1px solid transparent}.rge-input:focus,.rge-time:focus,.tdf-cell:hover{border-color:var(--am)}.tdf-cell.tdf-empty{visibility:hidden;cursor:default}.tdf-cell.tdf-selected{background:var(--accent);color:var(--on-accent);font-weight:700}.tdf-summary{color:var(--t3);display:flex;gap:4px}.add-day-btn,.tdf-clear-btn{background:0 0;color:var(--t4);cursor:pointer}.tdf-clear-btn{align-self:flex-start;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:none;padding:2px 0}.add-day-btn,.bd-drawer-title{font-size:10px;font-weight:700;text-transform:uppercase}.add-day-btn{display:flex;align-items:center;justify-content:center;gap:5px;padding:5px 6px;margin-top:6px;border:1px dashed var(--b2);letter-spacing:.04em;transition:.1s;width:100%}.bd-drawer,.ij-datebar{flex-direction:column;display:flex}.bd-drawer{top:0;right:0;bottom:0;width:304px;background:var(--bg2);border-left:1px solid var(--b2);overflow:hidden;transform:translateX(100%);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s;z-index:10}.bd-drawer.open{transform:translateX(0);pointer-events:all;box-shadow:-8px 0 32px rgba(0,0,0,.18)}.bd-drawer-hdr{height:36px;flex-shrink:0;background:var(--bg);border-bottom:1px solid var(--b2);display:flex;align-items:center;padding:0 10px;gap:8px}.bd-drawer-title{color:var(--accent);letter-spacing:.08em;flex:1;display:flex;align-items:center;gap:6px}.bd-close-btn{color:var(--t3);cursor:pointer;padding:3px;border-radius:var(--rs);border:none;background:0 0;transition:color .1s;display:flex;align-items:center;justify-content:center}.bd-close-btn:hover{color:var(--text)}.bd-pane-cal{flex:0 0 auto;border-bottom:2px solid var(--b2);background:var(--bg2)}.bd-pane-cal-inner{padding:5px 7px;gap:3px}.bd-pane-veh{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.bd-action-apply{flex:1;padding:3px 0;border-radius:3px;border:none;background:var(--accent);color:#0d0f12;font-size:9px;font-weight:700;cursor:pointer;letter-spacing:.04em;text-transform:uppercase;transition:background .1s}.bd-action-apply-main{padding:6px 0;font-size:10px;display:flex;align-items:center;justify-content:center;gap:5px}.bd-action-apply-main.bd-applied{animation:.5s bdApplyPulseBtn}.bd-action-reset{width:28px;height:28px;flex-shrink:0;border-radius:4px;border:1px solid var(--b2);background:var(--bg3);color:var(--t3);font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.12s}.bd-action-reset:hover{background:var(--rl);border-color:var(--red);color:var(--red)}@keyframes bdApplyPulseBtn{0%{transform:scale(.97);background:var(--green)}50%{transform:scale(1.02)}to{transform:scale(1);background:var(--accent)}}.bd-drawer .tdf-cal{gap:3px;background:var(--bg);border:1px solid var(--b2);border-radius:var(--radius);padding:6px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.bd-drawer .tdf-cal-hdr{padding:0 2px 3px;border-bottom:1px solid var(--border);margin-bottom:1px}.bd-drawer .tdf-grid{gap:2px}.bd-drawer .tdf-cell{font-size:11px;font-weight:600;border-radius:4px;height:22px;background:var(--bg3)}.bd-drawer .tdf-cell.tdf-selected{background:var(--accent);color:var(--on-accent);font-weight:700;box-shadow:0 0 0 2px var(--al);border-color:var(--accent)}.bd-drawer .tdf-month-label{font-size:12px;font-weight:700;color:var(--accent)}.bd-drawer .tdf-weekdays{font-size:8px;padding-bottom:2px;color:var(--t3)}.bd-drawer .tdf-weekdays span{display:flex;align-items:center;justify-content:center;height:22px}.bd-drawer .tdf-clear-btn{padding:1px 0;font-size:8px}.bd-date-chips{display:flex;flex-wrap:wrap;gap:3px;min-height:18px}.bd-chip{font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px;background:var(--al);border:1px solid var(--am);color:var(--accent);letter-spacing:.02em}.bd-chip-empty{font-size:9px;color:var(--t4);font-style:italic}.bd-mode-tabs,.ij-mode-tabs{display:flex;gap:2px;background:var(--bg3);border-radius:4px;padding:2px}.seg-tab{font-weight:700;border-radius:3px;border:none;background:0 0;color:var(--t3);cursor:pointer;text-transform:uppercase;letter-spacing:.04em;transition:.1s}.bd-mode-tab{flex:1;padding:3px 6px;font-size:9px}.ij-mode-tab{padding:3px 8px;font-size:10px}.bd-mode-tab.active,.ij-mode-tab.active{background:var(--accent);color:var(--on-accent)}.bd-shift-label{font-size:10px;color:var(--t3);font-weight:600}.bd-shift-input{width:46px;font-size:11px;border:1px solid var(--b2);border-radius:4px;background:var(--bg2);color:var(--text);padding:3px 6px}.ij-apply-btn,.ij-datebar-lbl{font-size:10px;font-weight:700;text-transform:uppercase}.jc.bd-mode{cursor:pointer;outline:transparent solid 2px;transition:outline-color .1s,background .1s}.jc.bd-mode:hover{outline-color:var(--am);background:var(--al)}.jc.bd-applied{animation:.5s bdApplyPulse}@keyframes bdApplyPulse{0%{background:var(--am)}to{background:var(--bg2)}}.journey-board.drawer-open{padding-right:312px;transition:padding-right .2s}.ij-datebar{gap:6px;border:1px solid var(--am);border-radius:var(--rs);background:var(--al);padding:8px}.ij-datebar-lbl{color:var(--t2);letter-spacing:.05em;white-space:nowrap}.ij-datebar input[type=date],.ij-datebar input[type=number]{font-size:11px;border:1px solid var(--b2);border-radius:4px;background:var(--bg2);color:var(--text);padding:3px 6px;font-family:inherit}.ij-datebar input[type=number]{width:46px}.ij-apply-btn{letter-spacing:.04em;padding:4px 9px;border-radius:4px;border:1px solid var(--accent);background:var(--accent);color:var(--on-accent);cursor:pointer}.ij-jlist{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--rs);padding:6px;background:var(--bg)}.asf-pax-all,.asf-type-seg label{border-right:1px solid var(--b2)}.ij-jrow{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;font-size:11px}.ij-jrow-name{flex:1;font-weight:600;color:var(--t2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ij-jrow-pax{font-size:10px;color:var(--t4);white-space:nowrap}.ij-jrow input[type=date]{font-size:10px;border:1px solid var(--b2);border-radius:4px;background:var(--bg2);color:var(--text);padding:2px 5px;width:118px}.ij-jrow input[type=checkbox]{cursor:pointer}.ij-jrow-empty{color:var(--t4);font-style:italic}.asf-section{display:flex;flex-direction:column;gap:3px}.asf-section-label{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:1px}.asf-loc-time-row{display:grid;grid-template-columns:1fr 82px;gap:5px;align-items:stretch}.asf-input{padding:4px 7px}.asf-input,.asf-time-input{font-size:11px;border-radius:var(--rs);border:1px solid var(--b2);background:var(--bg2);color:var(--text);width:100%;transition:border-color .1s}.asf-pax-checklist,.asf-type-seg{display:flex;background:var(--bg3)}.asf-time-input{padding:4px 5px}.asf-type-seg{border:1px solid var(--b2);border-radius:var(--rs);overflow:hidden;width:100%;height:52px}.asf-type-seg label{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0;height:100%;font-size:9px;font-weight:700;color:var(--t3);cursor:pointer;transition:.12s;letter-spacing:.02em;user-select:none;line-height:1.2;text-align:center;white-space:normal;word-break:keep-all}.asf-type-seg label i{font-size:14px;flex-shrink:0;line-height:1}.asf-type-seg label:hover{background:var(--bg4);color:var(--t2)}.asf-type-seg input[value=drop]:checked+label{background:var(--rl);color:var(--red)}.asf-type-seg input[value=visit]:checked+label,.vs-heavy-hdr.ac{background:var(--al);color:var(--accent)}.asf-type-seg input[value=reboard]:checked+label{background:#fef9c3;color:#854d0e}.asf-type-seg input[value=redrop]:checked+label{background:#f3e8ff;color:#7e22ce}.run-group.reboard-group .run-group-icon,.run-group.reboard-group .run-time,.s3-rs-tag.reboard{color:#ca8a04}.s3-rs-tag.visit{color:var(--accent)}.run-group.redrop-group .run-group-icon,.run-group.redrop-group .run-time,.s3-rs-tag.redrop{color:#9333ea}.halt-pill{display:inline-flex;align-items:center;gap:2px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;background:var(--ml);border:1px solid rgba(196,151,77,.3);color:var(--amber);font-family:var(--font-mono);white-space:nowrap;flex-shrink:0;vertical-align:middle;margin-left:4px;line-height:1}.halt-pill.tbd{background:var(--bg4);border-color:var(--b2);color:var(--t3);font-style:italic}.jc-day-note-wrap{padding:4px 8px 6px;border-top:1px dashed var(--b2)}.jc-day-note-toggle{display:flex;align-items:center;gap:5px;font-size:9px;font-weight:700;color:var(--t3);cursor:pointer;text-transform:uppercase;letter-spacing:.06em;border:none;background:0 0;font-family:inherit;padding:2px 0;transition:color .1s}.jc-day-note-toggle:hover{color:var(--accent)}.jc-day-note-toggle i{font-size:11px}.jc-day-note-area{display:none;margin-top:5px;width:100%;font-size:10px;font-family:inherit;border:1px solid var(--b2);border-radius:var(--rs);background:var(--bg3);color:var(--t2);padding:5px 7px;resize:vertical;min-height:48px;outline:0;transition:border-color .1s}.jc-day-note-area:focus{border-color:var(--am);background:var(--bg2)}.jc-day-note-area::placeholder{color:var(--t4)}.jc-day-note-area.has-note{border-color:rgba(196,151,77,.35);background:rgba(196,151,77,.04)}.s3-day-note{margin:0 10px 6px;padding:5px 8px;font-size:10px;color:var(--t2);background:rgba(196,151,77,.07);border:1px solid rgba(196,151,77,.2);border-radius:var(--rs);line-height:1.55;display:none}.s3-day-note.visible{display:block}.s3-day-note-toggle{font-size:9px;font-weight:700;color:var(--amber);cursor:pointer;border:none;background:0 0;font-family:inherit;padding:2px 4px;display:flex;align-items:center;gap:4px;margin-left:auto;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;transition:.1s}.s3-day-note-toggle:hover{background:rgba(196,151,77,.12)}.asf-halt-row{display:none;align-items:center;gap:6px;margin-top:3px}.asf-halt-row.visible{display:flex}.asf-halt-label{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.asf-halt-sel{font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);padding:3px 6px;background:var(--bg2);color:var(--text);font-family:inherit;flex:1;cursor:pointer}.asf-halt-custom{width:60px;font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);padding:3px 6px;background:var(--bg2);color:var(--text);font-family:inherit;display:none}.asf-halt-custom.visible{display:block}.asf-delay-row{display:none;align-items:center;gap:6px;margin-top:3px}.asf-delay-row.visible{display:flex}.asf-delay-label{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.asf-delay-sel{font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);padding:3px 6px;background:var(--bg2);color:var(--text);font-family:inherit;flex:1;cursor:pointer}.asf-delay-custom{width:60px;font-size:11px;border:1px solid var(--b2);border-radius:var(--rs);padding:3px 6px;background:var(--bg2);color:var(--text);font-family:inherit;display:none}.asf-delay-custom.visible{display:block}.run-group.reboard-group{border-left-color:#ca8a04!important;border-left-style:dashed!important}.run-group.redrop-group{border-left-color:#9333ea!important;border-left-style:dashed!important}.asf-pax-checklist,.toast{border:1px solid var(--b2)}[data-theme=dark] .asf-type-seg input[value=reboard]:checked+label{background:#422006;color:#fbbf24}[data-theme=dark] .asf-type-seg input[value=redrop]:checked+label{background:#3b0764;color:#d8b4fe}.asf-pax-checklist{flex-wrap:wrap;gap:4px 8px;border-radius:var(--rs);padding:5px 7px;max-height:80px;overflow-y:auto;transition:border-color .15s}.asf-pax-chk,.asf-save{align-items:center;display:flex}.asf-pax-chk{gap:3px;font-size:10px;color:var(--t2);cursor:pointer;white-space:nowrap}.asf-pax-chk input{margin:0;cursor:pointer}.asf-pax-all{padding-right:6px;margin-right:2px}.asf-actions{display:flex;gap:5px;justify-content:flex-end;padding-top:3px}.asf-save{padding:4px 12px;border-radius:var(--rs);border:none;background:var(--accent);color:#0d0f12;letter-spacing:.04em;text-transform:uppercase;transition:background .1s;gap:4px}.asf-cancel,.asf-save{font-size:10px;font-weight:700;cursor:pointer}.asf-cancel{padding:4px 8px;border-radius:var(--rs);border:1px solid var(--b2);background:0 0;color:var(--t3);transition:.1s}.asf-cancel:hover{border-color:var(--b3);color:var(--text)}.toast{position:fixed;bottom:16px;left:50%;transform:translateX(-50%) translateY(10px);background:var(--bg4);border-radius:4px;padding:7px 14px;font-size:11px;color:var(--text);opacity:0;transition:opacity .18s,transform .18s;pointer-events:none;z-index:999;display:flex;align-items:center;gap:6px;white-space:nowrap;font-weight:600;letter-spacing:.02em;max-width:420px;overflow:hidden}.iws,.iws-edit-tip{border:1px solid var(--b2)}.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}.toast.on #toastIcon{animation:toastIconPop .32s cubic-bezier(.34,1.56,.64,1)}@keyframes toastIconPop{0%{transform:scale(0)}60%{transform:scale(1.25)}100%{transform:scale(1)}}.toast-bar-wrap{position:absolute;left:0;right:0;bottom:0;height:2px;background:hsla(0,0%,50%,.15)}.toast-bar{height:100%;width:100%;background:var(--accent);transform-origin:left;transition:transform linear}#ffSyncBar{position:fixed;top:0;left:0;height:2px;width:100%;z-index:1000;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .2s}#ffSyncBar.on{opacity:1}#ffSyncBar.on::before{content:"";position:absolute;top:0;left:0;height:100%;width:40%;background:var(--accent);border-radius:2px;animation:ffSyncSlide 1.1s ease-in-out infinite}@keyframes ffSyncSlide{0%{left:-40%}100%{left:100%}}.pulse-success{animation:pulseSuccessAnim .5s cubic-bezier(.34,1.56,.64,1)}@keyframes pulseSuccessAnim{0%{transform:scale(1)}35%{transform:scale(.94);box-shadow:0 0 0 0 rgba(74,222,128,.5)}70%{transform:scale(1.04);box-shadow:0 0 0 6px rgba(74,222,128,0)}100%{transform:scale(1)}}.iws{background:var(--bg2);border-radius:6px;width:900px;max-width:95vw;height:80vh;max-height:680px;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6)}.book-hdr,.iws-hdr{height:44px;background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 14px;gap:10px;flex-shrink:0}.book-subtitle,.iws-subtitle{font-size:10px;color:var(--t3);letter-spacing:.04em}.iws-hdr-center{flex:1;justify-content:center}.iws-close-btn,.parse-btn{align-items:center;display:flex}.iws-quality{gap:8px;font-size:10px}.iqbar-wrap{width:80px;height:4px;background:var(--b2);border-radius:2px;overflow:hidden}.iqbar{height:100%;border-radius:2px;transition:width .3s,background .3s}.iq-label{color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.iq-score,.iss-val{font-size:12px;font-weight:700;color:var(--text)}.imp-tab,.iws-close-btn{text-transform:uppercase;letter-spacing:.04em;color:var(--t3);font-family:inherit;transition:.1s;cursor:pointer}.iws-close-btn{font-size:11px;padding:4px 10px;border-radius:var(--rs);border:1px solid var(--b2);background:0 0;font-weight:600;gap:4px}.iws-close-btn:hover{border-color:var(--b3);color:var(--text);background:var(--bg4)}.iws-left{width:220px;min-width:200px;background:var(--bg);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;scrollbar-width:thin}.iws-left-inner{padding:10px;display:flex;flex-direction:column;gap:8px}.imp-tabs{display:flex;gap:2px;background:var(--bg3);border-radius:var(--rs);padding:2px}.imp-tab{flex:1;padding:5px;font-size:10px;font-weight:700;border-radius:2px;border:none;background:0 0}.imp-tab.active{background:var(--bg2);color:var(--accent);border:1px solid var(--am)}.imp-panel{display:flex;flex-direction:column;gap:6px}.iws-dropzone{border:1.5px dashed var(--b2);border-radius:var(--radius);padding:20px 12px;cursor:pointer;transition:.12s;background:var(--bg3)}.dz-icon-wrap{font-size:24px;color:var(--t4);margin-bottom:6px}.dz-headline{font-size:11px;font-weight:700;color:var(--t2);letter-spacing:.03em}.dz-browse-btn,.parse-btn{cursor:pointer;font-family:inherit;letter-spacing:.04em;font-weight:700;text-transform:uppercase}.dz-formats{font-size:10px;color:var(--t4);margin-top:2px}.dz-browse-btn{margin-top:8px;font-size:10px;padding:4px 12px;border-radius:var(--rs);border:1px solid var(--b2);background:var(--bg);color:var(--t2);transition:.1s}.paste-hint{font-size:10px;color:var(--t3);padding:2px 0}.iws-textarea{width:100%;height:100px;padding:7px;font-size:10px;border-radius:var(--rs);border:1px solid var(--border);background:var(--bg3);color:var(--t2);font-family:inherit;resize:vertical;min-height:60px}.parse-btn{padding:6px;border-radius:var(--rs);border:none;background:var(--accent);color:#0d0f12;font-size:11px;transition:background .1s;justify-content:center;gap:5px}.iss-row,.iss-title,.iws-summary-bar,.s3-day-block{border-bottom:1px solid var(--border)}.imp-stats-sidebar{background:var(--bg3);border:1px solid var(--border);border-radius:var(--rs);overflow:hidden}.iss-title{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;padding:5px 8px}.iss-row{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:11px}.iss-row i{font-size:12px;color:var(--t3);flex-shrink:0}.iss-label{flex:1;color:var(--t3);font-size:10px;font-weight:600}.smart-detect{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--t4);padding:5px 8px;background:var(--bg3);border-radius:var(--rs);border:1px solid var(--border)}.smart-detect i{font-size:12px;color:var(--accent);flex-shrink:0}.iws-summary-bar{background:var(--bg);flex-shrink:0}.isb-empty{padding:20px;display:flex;flex-direction:column;align-items:center;gap:6px}.isb-empty-title,.iws-list-empty-title{font-size:12px;font-weight:700;color:var(--t3)}.isb-empty-sub{font-size:11px;color:var(--t4)}.isb-stats{padding:6px 12px;gap:8px;flex-wrap:wrap}.isb-stat{flex-direction:column;min-width:36px}.isb-num{font-size:16px;font-weight:700;color:var(--text);line-height:1;font-family:var(--font-mono)}.isb-lbl{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.06em;margin-top:1px}.iws-chip,.iws-confirm-btn{font-family:inherit;letter-spacing:.04em;display:flex;font-weight:700;cursor:pointer;text-transform:uppercase}.isb-divider{width:1px;height:24px;background:var(--border);flex-shrink:0}.iws-search-wrap{position:relative;flex-shrink:0}.iws-search-wrap i{left:7px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--t4)}.iws-search{padding:4px 22px 4px 24px;font-size:11px;border:1px solid var(--border);border-radius:var(--rs);background:var(--bg3);color:var(--text);width:160px;font-family:inherit;transition:border-color .1s}.iws-chips{display:flex;gap:3px;flex-wrap:wrap}.iws-chip{font-size:10px;padding:2px 7px;border-radius:2px;border:1px solid var(--border);background:0 0;color:var(--t3);transition:.08s;align-items:center;gap:3px}.irr-swap-btn:hover,.iws-confirm-btn{background:var(--accent);color:#0d0f12}.iws-chip.err.on{background:var(--rl);border-color:rgba(248,113,113,.35);color:var(--red)}.iws-chip.warn.on{background:var(--ml);border-color:rgba(251,176,64,.35);color:var(--amber)}.iws-chip.ok.on{background:var(--gl);border-color:rgba(74,222,128,.35);color:var(--green)}.iws-confirm-btn{margin-left:auto;font-size:11px;padding:5px 14px;border-radius:var(--radius);border:none;align-items:center;gap:5px;transition:background .1s;flex-shrink:0}.iws-list-hdr,.iws-row{grid-template-columns:28px minmax(0,1.2fr) minmax(0,1.7fr) 84px 82px 82px 28px;gap:8px;padding:0 12px;border-bottom:1px solid var(--border)}.iws-list-hdr{display:none;height:26px;background:var(--bg);align-items:center;position:sticky;top:0;z-index:5}.iws-list-hdr.visible,.iws-row{display:grid}.book-imp-title,.book-th,.iws-th{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.08em}.iws-row{align-items:center;transition:background .08s;cursor:default;height:36px}.vend-form,.vs-grid-row{grid-template-columns:1fr 1fr}.iws-row-chk input{width:12px;height:12px;cursor:pointer}.iws-row-name{display:flex;flex-direction:column;gap:1px;min-width:0}.book-row-name,.irn-name{font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.irr-loc{font-size:11px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;border-radius:2px;padding:2px 4px;transition:background .1s;cursor:text}.irr-swap-btn,.iws-del-btn{color:var(--t3);cursor:pointer;background:0 0}.irr-swap-btn{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1px solid var(--b2);display:flex;align-items:center;justify-content:center;font-size:11px;transition:.12s}.irr-swap-btn:hover{border-color:var(--accent);transform:rotate(180deg)}.irr-swap-btn i{font-size:11px;pointer-events:none}.iws-row-status{display:flex;align-items:center;gap:4px}.iab-btn,.iws-action-bar{align-items:center;display:flex}.irs-label{font-size:10px;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.iws-row-time{font-size:11px;color:var(--t3);font-family:var(--font-mono)}.iab-btn,.inline-edit,.iws-edit-tip kbd,.vs-input{font-family:inherit}.iws-row-del{opacity:0;transition:opacity .08s}.iws-del-btn{font-size:11px;padding:3px;border:none;border-radius:2px;transition:.08s}[data-editable]{cursor:text;border-radius:2px;transition:background .1s,outline .1s;padding:2px 4px;margin:-2px -4px}[data-editable]:hover{background:hsla(0,0%,100%,.05)}[data-editable].editing-cell{background:var(--bg4);outline:1px solid var(--am)}[data-editable].cell-error{outline:1px solid var(--red);background:var(--rl)}.inline-edit{width:100%;background:0 0;border:none;outline:0;color:var(--text);font-size:11px}#vsClr,.iws-edit-tip{background:var(--bg4);color:var(--t3)}.iws-edit-tip{position:fixed;border-radius:3px;padding:3px 8px;font-size:10px;pointer-events:none;z-index:200;opacity:0;transition:opacity .1s;letter-spacing:.02em}.iab-btn,.iab-info{color:#fff;font-weight:700;font-size:11px}.iws-edit-tip kbd{background:var(--bg3);border:1px solid var(--b2);border-radius:2px;padding:1px 4px;font-size:9px}.sc-kbd{background:var(--bg3);border:1px solid var(--b2);border-radius:3px;padding:2px 6px;font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--t2)}.tip-sep{display:inline-block;width:1px;height:10px;background:var(--b2)}.iws-action-bar{position:absolute;bottom:0;left:0;right:0;height:38px;background:var(--accent);padding:0 12px;gap:10px;z-index:10;opacity:0;pointer-events:none;transform:translateY(4px);transition:.15s}.iws-action-bar.visible{opacity:1;pointer-events:all;transform:translateY(0)}.ink-trail,.vs-sg:after,.vs-srch-icon{pointer-events:none}.iab-info{letter-spacing:.03em;flex:1}.drop-invite,.iab-btn{letter-spacing:.04em;transition:.1s;cursor:pointer;text-transform:uppercase}.iab-actions{display:flex;gap:5px}.iab-btn{padding:4px 10px;border-radius:var(--rs);border:1px solid hsla(0,0%,100%,.3);background:0 0;gap:4px}#vs-card,.drop-invite,.modal{background:var(--bg2);overflow:hidden}.iab-btn:hover{background:hsla(0,0%,100%,.15)}.modal{border:1px solid var(--b2);border-radius:6px;min-width:300px}.drop-invite,.modal-foot{border-top:1px solid var(--border);display:flex}.modal-hdr,.vs-hdr{border-bottom:1px solid var(--border)}.modal-hdr{padding:10px 14px;display:flex;align-items:center;justify-content:space-between}.modal-body{padding:14px}.modal-foot{padding:10px 14px;gap:6px;justify-content:flex-end}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--b3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--b2)}.iws-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:8px;color:var(--t4)}.iws-list-empty i{font-size:28px}.iws-list-empty-sub{font-size:11px}.drop-invite{padding:6px 8px;font-size:10px;color:var(--t4);align-items:center;gap:5px;font-weight:600;position:sticky;bottom:0;z-index:2;flex-shrink:0;white-space:nowrap}.drop-invite i{flex-shrink:0}.drop-invite.has-sel{color:var(--accent);background:var(--al);border-top-color:var(--am)}#vs-card{border:1px solid var(--b2);border-radius:var(--radius);display:flex;flex-direction:column}.vs-hdr{background:var(--bg);padding:0 5px;flex-shrink:0}.vs-srch-wrap{flex:1;position:relative}#vsClr,.vs-sg:after,.vs-srch-icon{position:absolute}.vs-input{width:100%;background:0 0;border:none;outline:0;padding:5px 20px 5px 22px;font-size:10px;font-weight:500;color:var(--text)}.vs-srch-icon{left:5px;width:10px;height:10px;color:var(--t4);stroke-width:2.5}#vsClr{right:4px;width:13px;height:13px;border-radius:50%;border:none;font-size:7px;font-weight:800;cursor:pointer;display:none;line-height:1;padding:0}#vsClr:hover{background:var(--b3);color:var(--text)}.vs-pills-wrap{background:var(--bg);border-bottom:1px solid var(--border)}.vs-pill-arrow,.vs-pills-wrap{display:flex;align-items:center;height:22px;flex-shrink:0}.vs-pill-arrow{width:18px;background:0 0;border:none;cursor:pointer;color:var(--t4);justify-content:center;font-size:8px}.vs-pill-arrow:disabled{opacity:.2;cursor:default}.vs-pills{flex:1;display:flex;flex-wrap:nowrap;gap:3px;padding:0 3px;overflow-x:auto;scrollbar-width:none}.s3-jstrip,.vs-body{scrollbar-width:thin;scrollbar-color:var(--b3) transparent}.vs-pills-empty{font-size:7.5px;color:var(--t4);font-weight:700;font-style:italic;text-transform:uppercase}.vs-body{flex:1;min-height:0;overflow-y:auto;background:var(--bg2)}.rp-body{display:flex;flex-direction:column;flex:1;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--b3) transparent}.s3-wrap,.table-wrap,.vs-heavy,.vs-sg{overflow:hidden}.vs-body::-webkit-scrollbar{width:3px}.vs-body::-webkit-scrollbar-thumb{background:var(--b3);border-radius:3px}.vs-body::-webkit-scrollbar-thumb:hover{background:var(--accent)}.vs-grid-row{display:grid;border-bottom:1px solid var(--border)}.vs-col{padding:4px}.vs-col-r{border-right:1px solid var(--border)}.vs-sg{position:relative;border-radius:4px;background:var(--bg3);border:1px solid var(--border);height:26px}.vs-sg:after{content:"";inset:0;z-index:2;background:linear-gradient(to bottom,var(--bg3) 0,transparent 28%,transparent 72%,var(--bg3) 100%)}.vs-fsl{transition:transform .3s cubic-bezier(.2,1,.3,1)}.vs-ir{display:flex;align-items:center;justify-content:space-between;padding:0 5px;cursor:pointer}.hdr,.isb-stat,.isb-stats,.iws-hdr-center,.iws-quality,.j-meta,.j-meta-item,.left-tabs,.logo,.ltab,.sb-right,.sb-stat,.status-bar,.toolbar,.toolbar-group,.undo-pill,.vs-badge,.vs-hdr,.vs-srch-wrap{display:flex;align-items:center}.vs-ir span{font-size:9.5px;font-weight:600;color:var(--t2)}.vs-badge{min-width:16px;height:16px;border-radius:3px;background:var(--bg4);border:1px solid var(--b2);justify-content:center;font-size:8px;font-weight:800;color:var(--t3);transition:.16s}.dpick-box,.vs-heavy{border:1px solid var(--border)}.vs-badge.hc{background:var(--text)!important;color:var(--bg2)!important;border-color:var(--text)!important;transform:scale(1.08)}.vs-badge.bk{background:var(--green)!important;color:var(--on-green)!important;border-color:var(--green)!important;transform:scale(1.08)}.vs-heavy{border-radius:5px;margin:4px}.vs-heavy-hdr{font-size:7px;font-weight:800;padding:2px 6px;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.vs-heavy-hdr.na{background:var(--bg3);color:var(--t3);border-top:1px solid var(--border)}.add-day-btn:hover,.book-row.book-sel,.iws-row.sel,.jc.jc-picked,.jc.jc-picked .jc-hdr,.pc.sel,.run-group.drag-over,.run-row.drag-over,.s3-ea-item-hdr:hover,.table-row.sel,.tdf-nav:hover{background:var(--al)}.asf-type-seg input[type=radio],.bulk-bar,.gc.gc-collapsed .gc-actions,.gh-pax-rows.collapsed,.run-group-names.hidden,.s1-right.collapsed .grp-badge-count,.s1-right.collapsed .rp-title,.s1-right.collapsed .rp-tabs,.s1-right.collapsed .rp-body,.s2-left.collapsed .left-tabs,.s2-sec-rows.collapsed,.vs-pills::-webkit-scrollbar{display:none}.iws-overlay,.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:100;display:none;align-items:center;justify-content:center}.collapse-btn:hover,.pax-row.sel .pax-name,.pc.sel .pc-name,.run-edit-btn:hover,.s2-left-col-label:hover,.table-row.sel .td-name,.tdf-clear-btn:hover{color:var(--accent)}.book-title,.iws-title,.modal-title{font-size:12px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.06em}.fb:hover,.fchip:hover,.iws-chip:hover{border-color:var(--b3);color:var(--t2)}.book-cc-item:hover,.book-row:hover,.group-hdr:hover,.ij-jrow:hover,.iws-row:hover,.pax-row:hover,.pc:hover,.run-group:hover,.run-row:hover,.s2-sec-hdr:hover,.table-row:hover{background:var(--bg3)}.add-day-btn:hover,.add-stop-btn:hover,.bd-preset-btn:hover,.dz-browse-btn:hover,.gc-btn.focus-btn.active,.gc-btn.focus-btn:hover,.ter-swap-btn:hover{border-color:var(--am);color:var(--accent);background:var(--al)}.iws-right,.s2-center{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.bulk-bar.visible,.dpick-overlay.open,.grp-filter-banner.visible,.iws,.iws-overlay.visible,.jc.jc-expanded .jc-expanded-body,.jc.jc-picked .jc-sel-badge,.modal-overlay.visible,.run-group.editing .run-group-edit,.s2-left.collapsed .s2-left-collapsed-strip,.s3-detail-view.active,.s3-expand-all-view.active,.s3-jchip.vsel-mode .s3-jchip-vchk,.s3-vend-bar.visible{display:flex}.fi::placeholder,.jc-day-label::placeholder,.td-time.empty,.vs-input::placeholder{color:var(--t4)}.gc-title-row,.grp-card-title{display:flex;align-items:center;justify-content:space-between;gap:4px}.search-input:focus,.ter-input:focus{outline:0;border-color:var(--am);background:var(--bg2)}.run-group-drag:active{cursor:grabbing}.rp-body,.table-wrap{flex:1;display:flex;flex-direction:column}.book-dz.drag,.book-dz:hover,.iws-dropzone.drag,.iws-dropzone:hover,.ss-card:hover{border-color:var(--am);background:var(--al)}.bu,.ghc,.jbtn.eye-btn,.pc-route,.search-input::placeholder{color:var(--t3)}.bd-shift-row,.ij-datebar-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.iws-row-route,.route-flow{display:flex;align-items:center;gap:4px;min-width:0}.bp-row:focus-within,.jc-day-label:focus{border-color:var(--am);background:var(--bg2)}.dpick-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:200;display:none;align-items:center;justify-content:center}.dpick-box{background:var(--bg);border-radius:8px;padding:16px;min-width:260px;max-width:320px;box-shadow:0 8px 32px rgba(0,0,0,.18)}.dpick-title{font-size:11px;font-weight:800;color:var(--text);margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}.dpick-sub{font-size:10px;color:var(--t3);margin-bottom:12px}.dpick-days{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.dpick-day{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:var(--rs);cursor:pointer;transition:background .1s,border-color .1s}.dpick-day-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.dpick-day-label{font-size:10px;font-weight:700;color:var(--text)}.dpick-day-sub{font-size:9px;color:var(--t3);margin-top:1px}.dpick-day-cap{font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0}.dpick-all,.dpick-cancel{width:100%;background:0 0;font-size:10px;cursor:pointer}.dpick-all{padding:6px;border:1px dashed var(--b2);border-radius:var(--rs);color:var(--t3);transition:border-color .1s,color .1s}.dpick-cancel{margin-top:6px;padding:5px;border:none;color:var(--t4)}.dpick-cancel:hover,.s3-rbd-toggle:hover{color:var(--t2)}.s3-wrap{display:flex;flex-direction:column;flex:1}.s3-topbar{height:38px;background:var(--bg2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:10px;flex-shrink:0}.s3-jstrip-wrap{flex-shrink:0;background:var(--bg2);border-bottom:2px solid var(--border);padding:8px 10px 0;position:relative}.s3-vf-bar{display:flex;align-items:center;gap:5px;padding:0 0 7px;flex-wrap:wrap}.s3-vf-chip{font-size:10px;font-weight:700;padding:3px 10px;border-radius:3px;border:1px solid var(--border);background:0 0;color:var(--t3);cursor:pointer;font-family:inherit;letter-spacing:.03em;transition:.1s;display:flex;align-items:center;gap:4px}.s3-vf-chip:hover{border-color:var(--b3);color:var(--t2)}.s3-vf-chip.active{background:var(--al);border-color:var(--am);color:var(--accent)}.s3-vf-chip .s3-vf-cnt{font-size:9px;font-weight:800;background:var(--bg4);border:1px solid var(--b2);border-radius:2px;padding:0 4px;line-height:14px;color:var(--t3)}.s3-vf-chip.active .s3-vf-cnt{background:var(--am);border-color:var(--accent);color:var(--accent)}.s3-expand-all-view{display:none;flex-direction:column;gap:0;overflow-y:auto;flex:1;background:var(--bg3)}.s3-ea-item{margin:10px 12px 0;border-radius:6px;border:1.5px solid var(--border);background:var(--bg2);box-shadow:0 2px 8px rgba(0,0,0,.06);overflow:hidden;transition:box-shadow .15s}.s3-jchip-dates,.vend-row-sub{margin-top:1px;white-space:nowrap;text-overflow:ellipsis}.s3-ea-item:last-child{margin-bottom:10px}.s3-ea-item-hdr{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--bg);cursor:pointer;border-bottom:2px solid var(--accent);position:relative}.s3-ea-item-hdr::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);border-radius:0}.s3-ea-chevron{font-size:11px;color:var(--accent);transition:transform .15s;flex-shrink:0}.s3-ea-item.collapsed .s3-ea-body{display:none}.s3-ea-item.collapsed{box-shadow:0 1px 3px rgba(0,0,0,.04)}.s3-ea-num{font-size:9px;font-weight:800;background:var(--accent);color:var(--on-accent);border-radius:3px;padding:1px 6px;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}.s3-ea-name{font-size:12px;font-weight:700;color:var(--text);flex:1}.s3-ea-meta,.s3-jchip-meta{display:flex;align-items:center}.s3-ea-meta{font-size:10px;color:var(--t3);gap:6px}.s3-ea-summary{display:none;align-items:center;gap:6px;flex:1;min-width:0;font-size:10px;color:var(--t2);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s3-ea-summary-name{font-size:11px;font-weight:700;color:var(--text);flex-shrink:0}.s3-ea-ssep{color:var(--b3);flex-shrink:0}.s3-ea-item.collapsed .s3-ea-name,.s3-ea-item.collapsed .s3-ea-meta{display:none}.s3-ea-item.collapsed .s3-ea-summary{display:flex}.s3-jstrip-label{font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}#s3StripLabel{display:none!important}.s3-jstrip{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}.s3-jstrip::-webkit-scrollbar{height:4px}.s3-jstrip::-webkit-scrollbar-thumb{background:var(--b3);border-radius:2px}.s3-jstrip::-webkit-scrollbar-thumb:hover{background:var(--accent)}.s3-jchip,.vend-row{border:1px solid var(--border)}.s3-jchip{flex-shrink:0;display:flex;flex-direction:column;gap:2px;background:var(--bg3);border-radius:var(--radius);padding:5px 9px;cursor:pointer;transition:.1s;min-width:130px;max-width:180px;position:relative}.s3-jchip:hover{border-color:var(--b3);background:var(--bg4)}.s3-jchip-name{font-size:10px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.s3-jchip-meta{gap:5px;font-size:9px;color:var(--t3);font-weight:600}.s3-jchip-dates{font-size:8.5px;color:var(--t4);overflow:hidden}.s3-jchip-bar{position:absolute;bottom:0;left:0;right:0;height:2px;border-radius:0 0 var(--radius) var(--radius);background:var(--b2);overflow:hidden}.s3-jchip-fill{height:100%;border-radius:inherit;background:var(--green);transition:width .3s}.s3-jchip.vsel-mode{cursor:pointer}.s3-jchip.vsel-picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--am);background:var(--al)}.s3-jchip-vchk{display:none;position:absolute;top:5px;right:5px;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--b3);background:var(--bg2);align-items:center;justify-content:center}.s3-jchip-vchk i{font-size:9px;color:#fff;display:none}.s3-vend-toggle{width:28px;height:15px;border-radius:8px;background:var(--b2);border:1px solid var(--b3);cursor:pointer;position:relative;transition:background .15s;flex-shrink:0}.s3-vend-thumb{width:11px;height:11px;border-radius:50%;background:#fff;position:absolute;top:1px;left:1px;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.ink-trail-wrap,.s3-route-strip{position:relative}.s3-vend-toggle.on .s3-vend-thumb{left:14px}.s3-vend-bar{display:none;align-items:center;gap:8px;padding:5px 9px;border:1px solid var(--am);background:var(--al);border-radius:var(--radius);margin-bottom:6px;flex-wrap:wrap}.s3-vendor-badge{font-size:9px;font-weight:700;padding:1px 5px;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px;display:inline-block}.s3-vendor-badge.none{background:var(--bg4);color:var(--t4);border:1px solid var(--b2);font-style:italic}.vend-list{display:flex;flex-direction:column;gap:4px;max-height:240px;overflow-y:auto;margin-bottom:10px}.vend-row{border-radius:var(--radius);background:var(--bg3);padding:6px 8px;display:flex;align-items:center;gap:8px}.vend-row-sub{font-size:10px;color:var(--t3);overflow:hidden}.vend-row-acts{display:flex;gap:2px;flex-shrink:0}.vend-empty-msg{padding:18px 8px;color:var(--t4);font-size:11px}.vend-form{display:grid;gap:8px;border-top:1px solid var(--border);padding-top:10px}.vend-form .fl{margin-bottom:3px}.vend-form-locs{grid-column:1/-1}.vend-picker-list{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow-y:auto;margin-bottom:8px}.vend-pick-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg3);padding:6px 8px;cursor:pointer;transition:.1s;display:flex;align-items:center;gap:8px}.vend-pick-radio{width:13px;height:13px;border-radius:50%;border:1.5px solid var(--b3);flex-shrink:0;display:flex;align-items:center;justify-content:center}.vend-pick-row.picked .vend-pick-radio{border-color:var(--accent);background:var(--accent)}.vend-pick-radio i{font-size:8px;color:#fff;display:none}.s3-detail-view{display:none;padding:12px;flex-direction:column;gap:10px}.s3-day-hdr,.s3-sec-hdr{align-items:center;border-bottom:1px solid var(--border);display:flex}.s3-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.ink-dash,.s3-cap-badge,.s3-rs-tag{border-radius:2px}.s3-sec-hdr{padding:7px 10px;gap:7px;background:var(--bg)}.s3-sec-title{font-size:10px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.06em;flex:1}.s3-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:10px}.book-empty-title,.s3-empty-title{font-size:13px;font-weight:700;color:var(--t3)}.book-empty-sub,.s3-empty-sub{font-size:11px;color:var(--t4);max-width:260px;line-height:1.5}.s3-day-hdr{padding:5px 10px;background:var(--bg3);gap:8px}.s3-day-label{font-size:10px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}.s3-day-veh{font-size:10px;font-weight:600;color:var(--t2);margin-left:auto}.s3-day-route-label{font-size:9px;font-weight:600;color:var(--accent);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;display:inline-flex;align-items:center}.s3-cap-badge{font-size:9px;font-weight:700;padding:1px 5px;margin-left:5px}.s3-route-strip{padding:6px 10px 8px;display:flex;align-items:flex-start;flex-wrap:nowrap;gap:4px 0;border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}.s3-route-strip::-webkit-scrollbar{display:none}.s3-rs-stop{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.s3-rs-loc{font-size:10px;font-weight:600;color:var(--t2);white-space:nowrap}.s3-rs-pax{display:flex;gap:2px;flex-wrap:nowrap}.s3-rs-tag{font-size:8px;font-weight:700;padding:0 3px;white-space:nowrap;line-height:14px}.s3-rs-arr{font-size:10px;color:var(--t4);padding:0 5px;flex-shrink:0;align-self:center}.ink-dash,.ink-trail{position:absolute;bottom:0;height:2px}.ink-trail{left:0;right:0;overflow:hidden;z-index:4}.ink-dash{background:var(--accent);opacity:.22;transition:opacity .35s,width .12s cubic-bezier(.2,1,.3,1),left .07s linear}.ink-trail-wrap:hover .ink-dash{opacity:.65}.ink-dash.scrolling{opacity:1;transition:opacity .08s,width .08s cubic-bezier(.2,1,.3,1),left .05s linear}.s3-j-meta-bar{display:flex;align-items:center;gap:0;border-bottom:1px solid var(--border);background:var(--bg)}.s3-j-meta-cell{padding:6px 12px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.s3-j-meta-val{font-size:13px;font-weight:700;color:var(--text);font-family:var(--font-mono);line-height:1}.s3-edit-btn{font-size:10px;color:var(--t3);cursor:pointer;padding:2px 4px;border-radius:3px;border:1px solid var(--b2);background:var(--bg2);margin-left:4px;transition:.1s}.s2-confirmed-strip,.s2-confirmed-strip-btn{color:var(--green);display:flex;align-items:center}.s3-edit-btn:hover{color:var(--accent);border-color:var(--am);background:var(--al)}.jc.jc-edit-flash{animation:1.6s jcEditFlash}@keyframes jcEditFlash{0%,70%{box-shadow:0 0 0 3px var(--am)}100%{box-shadow:none}}.jc.jc-auto-confirmed-flash{animation:1.8s jcAutoConfirmFlash}@keyframes jcAutoConfirmFlash{0%,60%{box-shadow:0 0 0 3px rgba(34,197,94,.5)}100%{box-shadow:none}}.s2-confirmed-strip{grid-column:1/-1;gap:6px;padding:6px 10px;margin-bottom:4px;background:var(--gl);border:1px solid rgba(74,222,128,.3);border-radius:var(--radius);font-size:11px;font-weight:600}.s2-confirmed-strip-btn,.s3-rbd-toggle{margin-left:auto;gap:4px;cursor:pointer}.s2-confirmed-strip-btn{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:var(--bg2);border:1px solid rgba(74,222,128,.35);border-radius:3px;padding:3px 8px;font-family:inherit;transition:.1s}.s3-day-pill,.s3-day-sep{border-right:1px solid var(--border)}.s3-day-pill-row,.s3-print-manifest-table td,.s3-print-manifest-table th{border-bottom:1px solid var(--border)}.s3-day-pill-hdr,.s3-rbd-toggle{align-items:center;display:flex}.s2-confirmed-strip-btn:hover{background:var(--green);color:var(--on-green)}.s3-j-meta-lbl{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.06em}.s3-day-pill-label,.s3-rbd-toggle{font-weight:700;letter-spacing:.05em;font-size:9px;text-transform:uppercase}.s3-rbd-toggle{padding:0 10px;color:var(--t3);border-left:1px solid var(--border)}.s3-day-pill-row{display:flex;align-items:stretch;flex-wrap:nowrap;gap:0;overflow-x:auto;scrollbar-width:none;position:relative}.s3-day-pill-row::-webkit-scrollbar{display:none}.s3-day-pill{display:flex;flex-direction:column;gap:2px;padding:5px 10px;flex-shrink:0;min-width:200px;width:max-content}.s3-day-pill-hdr{gap:5px;margin-bottom:3px}.s3-day-pill-label{color:var(--accent)}.s3-day-pill-date{font-size:9px;color:var(--t3)}.s3-day-pill-veh{font-size:9px;font-weight:600;color:var(--t2)}.s3-day-sep{display:flex;align-items:center;padding:0 4px;font-size:11px;color:var(--b3);flex-shrink:0;background:var(--bg3)}#s3PrintArea{display:none}.s3-print-journey-block{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden;break-inside:avoid;page-break-inside:avoid}.s3-print-journey-block .s3-day-pill-row{overflow-x:visible}.s3-print-journey-block .s3-day-pill{min-width:0;width:auto}.s3-print-manifest{padding:8px 10px 10px;border-top:1px solid var(--border)}.s3-print-manifest-title{font-size:10px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px}.rge-input,.rge-time{background:var(--bg);color:var(--text);font-family:inherit;outline:0;font-size:10px}.s3-print-manifest-table{width:100%;border-collapse:collapse;font-size:10px}.s3-print-manifest-table th{text-align:left;font-size:9px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.04em;padding:3px 6px}.s3-print-manifest-table td{padding:3px 6px;color:var(--text)}@media print{body.s3-printing .modal-overlay,body.s3-printing .toast,body.s3-printing>.app{display:none!important}body.s3-printing #s3PrintArea{display:block!important;position:static;width:100%}#s3PrintArea .s3-day-pill-row{flex-wrap:wrap!important}#s3PrintArea .s3-print-journey-block{box-shadow:none}@page{size:landscape;margin:10mm}}.run-group-edit{display:none;padding:5px 8px 7px 29px;gap:5px;flex-direction:column}.run-group.editing .run-group-top{background:var(--al);border-radius:var(--rs) var(--rs) 0 0}.rge-row{display:flex;gap:5px;align-items:center}.rge-input{flex:1;padding:3px 6px;border:1px solid var(--b2);border-radius:var(--rs);transition:border-color .1s}.rge-time{width:80px;flex-shrink:0;padding:3px 5px;border:1px solid var(--b2);border-radius:var(--rs)}.book-row-cc,.book-row-time{font-family:var(--font-mono)}.rge-actions{display:flex;gap:5px;justify-content:flex-end}.rge-save{font-size:10px;padding:3px 10px;border:none;border-radius:var(--rs);background:var(--accent);color:var(--on-accent);cursor:pointer;font-weight:700}.rge-cancel,.run-edit-btn{cursor:pointer;background:0 0}.rge-save:hover{opacity:.88}.rge-cancel{font-size:10px;padding:3px 8px;border:1px solid var(--b2);border-radius:var(--rs);color:var(--t3)}.book-sb-title,.run-edit-btn{font-size:9px;color:var(--t4)}.run-edit-btn{padding:2px 4px;border:none;opacity:0;transition:opacity .1s;flex-shrink:0}.book-cc-item,.book-row{transition:background .08s;cursor:pointer}.book-modal{background:var(--bg2);border:1px solid var(--b2);border-radius:6px;width:860px;max-width:96vw;height:82vh;max-height:700px;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6)}.book-cc-item,.book-sb-hdr{border-bottom:1px solid var(--border)}.book-sidebar{width:200px;min-width:180px;background:var(--bg);border-right:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;overflow:hidden}.book-sb-hdr{padding:8px 10px 6px;flex-shrink:0}.book-sb-title{font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.book-cc-list,.book-list{flex:1;overflow-y:auto;scrollbar-width:thin}.book-cc-item{display:flex;align-items:center;justify-content:space-between;padding:5px 10px}.book-cc-name{font-size:11px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.book-cc-count,.book-sel-info{font-weight:700;color:var(--t3)}.book-cc-count{font-size:9px;background:var(--bg4);border:1px solid var(--b2);border-radius:3px;padding:1px 5px;flex-shrink:0}.book-sel-bar,.book-toolbar{border-bottom:1px solid var(--border);display:flex;padding:0 10px;gap:8px}.book-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.book-toolbar{height:38px;background:var(--bg2);align-items:center;flex-shrink:0}.book-list-hdr,.book-sel-bar{background:var(--bg);align-items:center}.book-sel-bar{height:30px;flex-shrink:0}.book-list-hdr,.book-row{display:grid;grid-template-columns:28px minmax(0,1.4fr) 70px minmax(0,1.6fr) 64px 64px;gap:6px;padding:0 10px;border-bottom:1px solid var(--border)}.book-sel-info{font-size:10px;flex:1}.book-list-hdr{height:26px;position:sticky;top:0;z-index:5}.book-row{height:32px;align-items:center}.book-row-badge,.book-row-cc{padding:1px 5px;font-weight:700}.book-row.book-in-dispatch{opacity:.5}.book-row-cc{font-size:9px;color:var(--t3);background:var(--bg3);border:1px solid var(--b2);border-radius:3px;white-space:nowrap}.book-row-loc{font-size:10px;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-row-time{font-size:10px;color:var(--t3)}.book-row-badge{font-size:9px;border-radius:2px;font-family:inherit}.book-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:50px 20px;flex:1}.book-import-panel{border-top:1px solid var(--border);padding:10px;background:var(--bg);flex-shrink:0;display:flex;flex-direction:column;gap:6px}.book-dz{border:1.5px dashed var(--b2);border-radius:var(--radius);padding:14px 12px;cursor:pointer;transition:.12s;background:var(--bg3)}.book-dz-text{font-size:11px;font-weight:700;color:var(--t2);margin-bottom:4px}.book-dz-sub{font-size:10px;color:var(--t4)}.book-action-bar{height:44px;background:var(--bg2);border-top:2px solid var(--border);display:flex;align-items:center;padding:0 12px;gap:8px;flex-shrink:0}.book-add-badge{font-size:10px;font-weight:700;background:rgba(0,0,0,.18);border-radius:3px;padding:1px 5px;margin-left:2px}.grp-pane-wrap{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}#pane-pax,#pane-grp{min-height:0}.grp-pane-hdr{height:24px;padding:0 10px;background:var(--bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;position:sticky;top:0;z-index:2;user-select:none}.grp-pane-hdr-label{font-size:9px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:5px}.grp-pane-hdr-count{color:var(--accent);font-weight:700;font-variant-numeric:tabular-nums}.grp-card-expand-hdr{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px;cursor:pointer;transition:background .08s}.grp-card-expand-hdr:hover{background:var(--bg4)}.grp-card-expand-title{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.grp-card-expand-chevron{font-size:10px;color:var(--t3);transition:transform .15s;flex-shrink:0}.grp-card.grp-expanded .grp-card-expand-chevron{transform:rotate(180deg)}.grp-manifest{display:none;border-top:1px solid var(--border)}.grp-card.grp-expanded .grp-manifest{display:block}.grp-manifest-summary{padding:5px 8px 4px;background:var(--bg);border-bottom:1px solid var(--border)}.grp-manifest-loc-row{display:flex;gap:12px;flex-wrap:wrap}.grp-manifest-loc-group{display:flex;flex-direction:column;gap:1px}.grp-manifest-loc-label{font-size:8px;font-weight:700;color:var(--t4);text-transform:uppercase;letter-spacing:.06em}.grp-manifest-loc-items{font-size:10px;color:var(--t2);font-weight:600}.grp-manifest-pax-list{padding:4px 0}.grp-pax-row{padding:4px 8px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.grp-pax-row:last-child{border-bottom:none}.grp-pax-row:hover{background:var(--bg4)}.grp-pax-name{font-size:11px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:5px;flex-wrap:nowrap}.grp-pax-route{font-size:10px;color:var(--t3);display:flex;align-items:center;gap:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grp-pax-route .ms{color:var(--amber);font-style:italic}#groups-pane.scroll-col{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:6px;display:flex;flex-direction:column;gap:4px;scrollbar-width:thin;scrollbar-color:var(--b3) transparent}#groups-pane .grp-card{flex:0 0 auto}.scroll-col::-webkit-scrollbar,#groups-pane::-webkit-scrollbar{width:8px;height:8px}.scroll-col::-webkit-scrollbar-track,#groups-pane::-webkit-scrollbar-track{background:transparent}.scroll-col::-webkit-scrollbar-thumb,#groups-pane::-webkit-scrollbar-thumb{background:var(--b3);border-radius:4px;border:2px solid transparent;background-clip:padding-box}.scroll-col::-webkit-scrollbar-thumb:hover,#groups-pane::-webkit-scrollbar-thumb:hover{background:var(--t3);background-clip:padding-box;border:2px solid transparent}@keyframes ffSpin{to{transform:rotate(360deg)}}.ff-spin{display:inline-block;animation:ffSpin .8s linear infinite}.dz-busy{opacity:.65;pointer-events:none}.run-move-btn{font-size:11px;cursor:pointer;padding:3px 4px;border:1px solid transparent;background:0 0;color:var(--t3);border-radius:var(--rs);transition:.08s;line-height:1;opacity:0}.run-move-btn:hover{color:var(--text);border-color:var(--border)}.run-move-btn[disabled]{opacity:.15!important;cursor:not-allowed;pointer-events:none}.run-group:hover .run-move-btn,.run-group:focus-within .run-move-btn,.run-move-btn:focus-visible{opacity:1}.ff-modal-overlay-top{display:none;position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.6);align-items:center;justify-content:center}.ff-flex-gap4{display:flex;align-items:center;gap:4px}.ff-muted-italic{color:var(--t4);font-style:italic}.grp-pax-preview-row{border-color:var(--border)}.grp-pax-preview-row:hover{border-color:var(--b3)}.ff-icon-btn-plain{background:none;border:none;color:var(--t3);cursor:pointer;font-size:16px}
.s3-action-group{position:relative;display:flex}
.s3-dropdown{position:absolute;top:calc(100% + 4px);right:0;width:200px;min-width:200px;max-width:200px;background:var(--bg2);border:1px solid var(--b2);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.18);z-index:200;display:none;flex-direction:column;overflow:hidden}
.s3-dropdown-item,#s3ExportScope{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s3-dropdown.open{display:flex}
.s3-dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 12px;font-size:11px;font-weight:600;color:var(--t2);cursor:pointer;transition:background .08s;white-space:nowrap;background:0 0;border:none;font-family:inherit;width:100%;text-align:left}
.s3-dropdown-item:hover{background:var(--bg3);color:var(--text)}
.s3-dropdown-item i{font-size:13px;color:var(--t3)}
.s3-dropdown-item:hover i{color:var(--accent)}
.s3-dropdown-sep{height:1px;background:var(--border);margin:2px 0}
.s3-export-secret{display:none}
.s3-dropdown.s3-export-revealed .s3-export-secret{display:flex}
.s3-dropdown.s3-export-revealed .s3-dropdown-sep.s3-export-secret{display:block}

/* Vendor Confirmation button (offline import/export flow) is hidden by  */
/* default — online confirmation already covers this. Triple right-click */
/* beside it, on the Export button, reveals it again.                    */
#s3ConfirmGroup{display:none!important}
#s3ConfirmGroup.s3-confirm-revealed{display:flex!important}


/* ============================================================ */
/* HOVER-REVEAL CHECKBOX PATCH (Linear / Notion style)           */
/* Hides checkboxes by default; reveals them on row hover,       */
/* on keyboard focus, on selected rows, or when the user is      */
/* already in multi-select mode (body.ff-selection-mode).        */
/* ============================================================ */

/* --- Sidebar passenger rows (.pax-row) ---------- */
.pax-row > input[type=checkbox]{
  opacity:0;
  transform:scale(.85);
  transition:opacity .12s ease, transform .12s ease, width .12s ease, margin .12s ease;
  pointer-events:none;
}
.pax-row:hover > input[type=checkbox],
.pax-row:focus-within > input[type=checkbox],
.pax-row.sel > input[type=checkbox],
body.ff-selection-mode .pax-row > input[type=checkbox]{
  opacity:1;
  transform:scale(1);
  pointer-events:auto;
}
/* Collapse the checkbox slot when idle so the card breathes */
body:not(.ff-selection-mode) .pax-row:not(:hover):not(:focus-within):not(.sel) > input[type=checkbox]{
  width:0;
  margin-right:-6px;
  overflow:hidden;
}

/* --- Step 2 PC cards (.pc with custom .pc-chk box) --- */
.pc > .pc-chk{
  opacity:0;
  transform:scale(.85);
  transition:opacity .12s ease, transform .12s ease, background .08s, border-color .08s, width .12s ease, margin .12s ease;
}
.pc:hover > .pc-chk,
.pc:focus-within > .pc-chk,
.pc.sel > .pc-chk,
body.ff-selection-mode .pc > .pc-chk{
  opacity:1;
  transform:scale(1);
}
body:not(.ff-selection-mode) .pc:not(:hover):not(:focus-within):not(.sel) > .pc-chk{
  width:0;
  margin-right:-6px;
  overflow:hidden;
}

/* --- Center table rows: row-select-cell already handles hide/show via main CSS --- */
/* Selected-state accent reinforcement */
.pc.sel{ box-shadow: inset 2px 0 0 var(--accent); }
.table-row.sel{ background:var(--al); box-shadow: inset 2px 0 0 var(--accent); }

/* Keyboard accessibility */
.pax-row:focus-visible, .pc:focus-visible, .table-row:focus-visible{
  outline:2px solid var(--am);
  outline-offset:-2px;
}

/* Tiny dot hint near the left edge so users discover the checkbox affordance */
.pax-row::before{
  content:"";
  position:absolute;
  left:3px; top:50%;
  width:3px; height:3px;
  border-radius:50%;
  background:var(--t4);
  opacity:0;
  transform:translateY(-50%);
  transition:opacity .15s ease;
  pointer-events:none;
}
body:not(.ff-selection-mode) .pax-row:hover::before{ opacity:.55; }
body.ff-selection-mode .pax-row::before,
.pax-row.sel::before{ opacity:0; }


/* ── Inline filter chips in Step 1 toolbar ── */
.center-toolbar > div { flex-wrap: wrap; }
#chip-all,#chip-pu,#chip-do,#chip-bt,#chip-at,#chip-groups { font-size:10px; padding:2px 7px; }

/* ── KPI Strip ── */
.kpi-item { display:flex; align-items:center; gap:5px; padding:0 12px; position:relative; }
.kpi-lbl { font-size:10px; font-weight:600; color:var(--t3); text-transform:uppercase; letter-spacing:.06em; white-space:nowrap; }
.kpi-val { font-size:12px; font-weight:700; color:var(--text); font-family:var(--font-mono); }
.kpi-val.kpi-warn { color:var(--amber); }
.kpi-val.kpi-err  { color:var(--red); }
.kpi-missing-tooltip { display:none; position:absolute; top:calc(100% + 8px); right:0; background:var(--bg2); border:1px solid var(--b2); border-radius:5px; padding:7px 10px; min-width:160px; box-shadow:0 4px 16px rgba(0,0,0,.14); z-index:200; gap:4px; flex-direction:column; }
.kpi-item:hover .kpi-missing-tooltip { display:flex; }
.kmt-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.kmt-lbl { font-size:10px; color:var(--t3); font-weight:600; white-space:nowrap; }
.kmt-val { font-size:10px; font-weight:700; color:var(--amber); font-family:var(--font-mono); }
.kmt-val.zero { color:var(--t4); }
.kpi-clickable { cursor:pointer; border-radius:4px; transition:background .1s; }
.kpi-clickable:hover { background:var(--bg3); }
.kpi-clickable:hover .kpi-lbl { color:var(--t2); }
.kpi-clickable:hover .kpi-val { color:var(--accent); }
.kpi-warn-item:hover .kpi-val { color:var(--amber) !important; }
.kpi-err-item:hover .kpi-val  { color:var(--red)   !important; }
.kpi-sep { width:1px; height:14px; background:var(--border); flex-shrink:0; }

/* ── Cost center inline tag ── */
.pc-cc-tag { font-size:9px; font-weight:700; color:var(--t3); background:var(--bg4); border:1px solid var(--b2); border-radius:2px; padding:0 4px; margin-left:5px; font-family:var(--font-mono); letter-spacing:.03em; vertical-align:middle; display:inline-block; flex-shrink:0; }
.hdr-hover-label{display:none;white-space:nowrap}.hdr-hover-group:hover .hdr-hover-label{display:inline}

/* --- merged from additional style blocks --- */

.s3vc-modal{width:660px;max-width:94vw;height:580px;max-height:82vh;display:flex;flex-direction:column;background:var(--bg2);border:1px solid var(--b2);border-radius:8px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.s3vc-hdr{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.s3vc-tabs{display:flex;gap:6px;padding:12px 18px 0;flex-shrink:0}
.s3vc-tab{padding:5px 11px;border-radius:5px;border:1px solid var(--b2);cursor:pointer;font-size:11px;font-weight:600;background:0 0;color:var(--t2);transition:.1s;font-family:inherit}
.s3vc-tab:hover{border-color:var(--b3);background:var(--bg3)}
.s3vc-tab.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.s3vc-body{padding:12px 18px 16px;overflow-y:auto;flex:1;min-height:0;font-size:12px}
.s3vc-foot{padding:12px 18px;border-top:1px solid var(--border);flex-shrink:0}
.s3vc-reset-btn{width:100%;padding:8px;background:none;border:1px solid #ef4444;color:#ef4444;border-radius:4px;cursor:pointer;font-size:11px;transition:.1s}
.s3vc-reset-btn:hover{background:rgba(239,68,68,.08)}
.s3vc-card{padding:12px;border:1px solid var(--b2);border-radius:6px;margin-bottom:8px;background:var(--bg3)}
.s3vc-card:last-child{margin-bottom:0}
.s3vc-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.s3vc-vendor{font-weight:700;font-size:12.5px;color:var(--text)}
.s3vc-meta{color:var(--t3);font-size:11px;margin-top:2px;line-height:1.5}
.s3vc-chips{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px}
.s3vc-actions{display:flex;gap:6px;flex-wrap:nowrap;justify-content:flex-end;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.s3vc-btn{padding:6px 12px;border-radius:4px;font-size:11px;font-weight:600;white-space:nowrap;cursor:pointer;font-family:inherit;text-align:center;min-width:84px;transition:.1s}
.s3vc-btn[disabled]{cursor:not-allowed;opacity:.5}

/* --- merged from additional style blocks --- */

.al-time{position:relative;color:var(--t3);font-size:11px;white-space:nowrap;flex-shrink:0;cursor:default;border-bottom:1px dotted var(--b2)}
.al-time:hover{border-bottom-color:var(--b3)}
.al-time:hover::after{content:attr(data-full);position:absolute;right:0;bottom:calc(100% + 6px);background:var(--bg2);border:1px solid var(--b2);color:var(--text);padding:4px 8px;border-radius:4px;font-size:11px;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:100000;pointer-events:none}

/* --- merged from additional style blocks --- */

.ff-v-root{display:block;width:100%;}
.ff-v-header,.ff-v-items,.ff-v-spacer{width:100%;}
.ff-v-spacer{pointer-events:none;}

/* --- merged from additional style blocks --- */

.skip-link{position:absolute;left:-9999px;top:0;background:#111;color:#fff;padding:10px 16px;z-index:99999;border-radius:0 0 6px 0;font-weight:700;font-size:13px;text-decoration:none}
.skip-link:focus{left:0;top:0}

/* ===== Edit lock (single-editor-at-a-time) ===== */
.ff-lock-badge{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:12px;cursor:pointer;transition:.12s;white-space:nowrap;font-family:inherit;letter-spacing:.02em}
.ff-lock-badge i{font-size:11px}
.ff-lock-badge.free{background:var(--bg4);color:var(--t3);border:1px solid var(--b2)}
.ff-lock-badge.free:hover{border-color:var(--am);color:var(--accent);background:var(--al)}
.ff-lock-badge.mine{background:var(--gl);color:var(--green);border:1px solid rgba(74,222,128,.3)}
.ff-lock-badge.mine:hover{background:var(--rl);color:var(--red);border-color:rgba(248,113,113,.3)}
.ff-lock-badge.locked{background:var(--rl);color:var(--red);border:1px solid rgba(248,113,113,.3);cursor:default}
.ff-lock-badge[disabled]{opacity:.6;cursor:wait;pointer-events:none}
.ff-lock-banner{display:none;align-items:center;gap:6px;font-size:10px;font-weight:600;color:var(--red);padding:0 10px;height:100%;white-space:nowrap}
.ff-lock-banner.visible{display:flex}
.ff-lock-banner i{font-size:12px}

/* ===== View-only mode: block every action-triggering element in Step 1/2/3 =====
   Instead of listing button/input tags (which misses icon-only delete
   controls, spans, etc.), this blocks anything with a data-action attribute
   inside the three step panes — the same attribute the click dispatcher uses
   to decide what to run. A short allow-list keeps read-only things (search,
   filters, opening reports) usable. saveState() also refuses to persist
   while not editing, as a second, code-level backstop in case any control
   here was missed. */
body.ff-view-locked #step1-content [data-action],
body.ff-view-locked #step2-content [data-action],
body.ff-view-locked #step3-content [data-action],
body.ff-view-locked #step1-content input:not(.search-input),
body.ff-view-locked #step2-content input,
body.ff-view-locked #step2-content select,
body.ff-view-locked #step2-content [contenteditable],
body.ff-view-locked #step2-content [data-editable],
body.ff-view-locked #step3-content [contenteditable],
body.ff-view-locked #step3-content [data-editable],
body.ff-view-locked .bulk-edit-panel {
  pointer-events:none;
  opacity:.5;
  cursor:not-allowed;
}
/* read-only exceptions — allowed even while view-only */
body.ff-view-locked [data-action="closeOverlay"],
body.ff-view-locked [data-action="s3CloseVendorConfirmations"],
body.ff-view-locked [data-action="showCostCenterReportModal"],
body.ff-view-locked [data-action="closeCostCenterReportModal"],
body.ff-view-locked [data-action="renderCostCenterReport"],
body.ff-view-locked [data-action="closeActivityLogModal"],
body.ff-view-locked #step1-content .search-wrap .search-input,
body.ff-view-locked #step1-content .group-sel-wrap select {
  pointer-events:auto;opacity:1;cursor:pointer;
}
body.ff-view-locked #step1-content .search-wrap .search-input{cursor:text}
