.pf-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.pf-toolbar{display:flex;align-items:center;gap:8px;padding:0 14px;height:44px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--bg-sidebar)}.pf-toolbar-breadcrumb{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.pf-toolbar-breadcrumb-sep,.pf-toolbar-breadcrumb-sub{color:var(--text-muted);font-weight:400}.pf-toolbar-breadcrumb-sub{font-size:12.5px}.pf-toolbar-spacer{flex:1 1}.pf-toolbar-date-card{display:flex;align-items:center;gap:5px;background:var(--bg-hover);border:1px solid var(--border);padding:4px 10px;border-radius:7px;font-size:12px;color:var(--text);white-space:nowrap;flex-shrink:0}.pf-toolbar-right{display:flex;align-items:center;gap:8px}.pf-toolbar-realtime{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text-secondary)}.pf-realtime-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px rgba(34,197,94,.18);flex-shrink:0}.pf-autoscroll-row{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-secondary)}.pf-autoscroll-toggle{width:34px;height:20px;border-radius:10px;border:none;cursor:pointer;background:var(--border);position:relative;transition:background .2s;flex-shrink:0}.pf-autoscroll-toggle.is-on{background:#22c55e}.pf-autoscroll-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s}.pf-autoscroll-toggle.is-on:after{transform:translateX(14px)}.pf-toolbar-sep{width:1px;height:16px;background:var(--border);margin:0 2px}.pf-filters-btn{display:flex;align-items:center;gap:5px;font-size:11.5px;font-family:inherit;font-weight:500;padding:5px 11px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:var(--bg-sidebar);color:var(--text-secondary)}.pf-filters-btn:hover{background:var(--bg-hover)}.pf-help-btn{width:26px;height:26px;border-radius:13px;border:1px solid var(--border);background:var(--bg-sidebar);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;font-family:inherit}.pf-help-btn:hover{background:var(--bg-hover)}.pf-metrics-bar{display:flex;gap:1px;border-bottom:1px solid var(--border);background:var(--border);flex-shrink:0}.pf-metric-card{flex:1 1;padding:9px 14px;background:var(--bg-sidebar);display:flex;flex-direction:column;gap:1px;min-width:0}.pf-metric-label{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.3px}.pf-metric-value{font-size:22px;font-weight:700;color:var(--text);line-height:1.1}.pf-metric-sub{font-size:10px;color:var(--text-muted);display:flex;align-items:center;gap:4px}.pf-metric-value.is-danger{color:#ef4444}.pf-metric-value.is-warn{color:#f59e0b}.pf-metric-sub.is-good{color:#22c55e}.pf-metric-sub.is-warn{color:#f59e0b}.pf-metric-delta{font-weight:600}.pf-metric-delta.is-pos{color:#22c55e}.pf-metric-delta.is-neg{color:#ef4444}.pf-main{display:flex;flex:1 1;overflow:hidden;min-height:0}.pf-board-outer{flex:1 1;overflow:auto;min-width:0;scroll-behavior:smooth}.pf-grid{display:grid;background:color-mix(in srgb,var(--border) 60%,transparent);grid-gap:1px;gap:1px;min-width:max-content}:root:not(.light) .pf-grid{background:#2b2a27}.pf-grid-corner{padding:7px 4px 7px 10px;font-size:9px;left:0}.pf-grid-corner,.pf-grid-wip-head{background:var(--bg-sidebar);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);position:-webkit-sticky;position:sticky;top:0;z-index:3}.pf-grid-wip-head{padding:0 6px;font-size:8.5px;display:flex;align-items:center;justify-content:center;left:162px}.pf-grid-job-head{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;box-shadow:inset 0 -2px 0 transparent;background:var(--bg-sidebar);padding:8px 7px 7px;text-align:center;cursor:pointer;position:-webkit-sticky;position:sticky;top:0;z-index:2;transition:background .12s,box-shadow .12s}.pf-grid-job-head:hover{background:var(--bg-hover)}.pf-grid-job-head.is-selected{background:rgba(var(--accent-rgb,180,140,60),.1);box-shadow:inset 0 -2px 0 var(--accent)}.pf-job-num{font-size:11.5px;font-weight:600;letter-spacing:-.1px;color:var(--text)}.pf-job-cust,.pf-job-num{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf-job-cust{margin-top:2px;font-size:9.5px;color:var(--text-muted)}.pf-grid-new-head{background:var(--bg-sidebar);flex-direction:column;gap:2px;font-size:10px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.pf-grid-new-head,.pf-new-plus{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.pf-new-plus{width:18px;height:18px;border-radius:9px;border:1.5px solid var(--border);font-size:12px;cursor:pointer;background:none;font-family:inherit}.pf-new-plus:hover{border-color:var(--accent);color:var(--accent)}.pf-stage-label{background:var(--bg-sidebar);font-size:11px;color:var(--text-secondary);position:-webkit-sticky;position:sticky;left:0;z-index:1;white-space:nowrap}.pf-drag-handle,.pf-stage-label{display:flex;align-items:center;height:34px}.pf-drag-handle{justify-content:center;width:20px;cursor:-webkit-grab;cursor:grab;color:var(--text-muted);opacity:0;transition:opacity .12s;font-size:9px;letter-spacing:-1px;flex-shrink:0}.pf-stage-label:hover .pf-drag-handle{opacity:1}.pf-stage-name{padding:0 8px 0 2px}.pf-wip-cell{background:var(--bg-sidebar);height:34px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text-muted);position:-webkit-sticky;position:sticky;left:162px;z-index:1}.pf-wip-cell.is-full{color:#f59e0b}.pf-wip-cell.is-over{color:#ef4444}.pf-cell{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;padding:0;box-shadow:none;height:34px;display:flex;align-items:center;justify-content:center;font-size:9.5px;font-weight:500;cursor:pointer;position:relative;transition:filter .1s,background-color .15s;gap:3px;background-image:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 62%)}.pf-cell:hover{filter:brightness(1.06)}.pf-cell.is-selected-job{outline:1.5px solid rgba(var(--accent-rgb,180,140,60),.4) inset}.pf-cell--saving{opacity:.5;pointer-events:none}:root:not(.light) .pf-cell{background-image:none}:root:not(.light) .pf-cell--done{background-color:#7d9668;color:#f4f3ee}:root:not(.light) .pf-cell--active{background-color:#c2ab5e;color:#f4f3ee}:root:not(.light) .pf-cell--queued{background-color:#706b9e;color:#f4f3ee}:root:not(.light) .pf-cell--blocked{background-color:#aa5a52;color:#f4f3ee}:root:not(.light) .pf-cell--pending{background-color:#202022;color:transparent}:root:not(.light) .pf-cell--pending:hover{background-color:#292a2c;color:var(--text-muted)}:root.light .pf-cell--done{background-color:rgba(58,148,80,.16);color:#14532d}:root.light .pf-cell--active{background-color:rgba(196,154,40,.19);color:#78350f}:root.light .pf-cell--blocked{background-color:rgba(192,80,32,.22);color:#7c2d12}:root.light .pf-cell--queued{background-color:rgba(56,94,168,.15);color:#1e3a8a}:root.light .pf-cell--pending{background-color:rgba(255,255,255,.9)}.pf-cell-time{bottom:3px;font-size:9px;font-weight:700}.pf-cell-icon,.pf-cell-time{position:absolute;right:4px;line-height:1}.pf-cell-icon{bottom:2px;font-size:13px}.pf-cell-flag{font-size:8px;position:absolute;top:3px;right:3px;line-height:1}.pf-cell.is-held:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(135deg,rgba(192,80,32,.34) 0 3px,transparent 3px 7px);box-shadow:inset 0 0 0 1.5px rgba(192,80,32,.75)}:root:not(.light) .pf-cell.is-held:after{background:repeating-linear-gradient(135deg,rgba(219,122,97,.42) 0 3px,transparent 3px 7px);box-shadow:inset 0 0 0 1.5px rgba(219,122,97,.85)}.pf-cell-hold{position:absolute;top:2px;left:3px;font-size:8px;line-height:1;z-index:1}.pf-hold-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;background:rgba(192,80,32,.18);color:#7c2d12}:root:not(.light) .pf-hold-badge{background:rgba(219,122,97,.22);color:#e8a893}.pf-hold-reason{margin-top:3px}.pf-derived-note,.pf-hold-reason{font-size:10.5px;color:var(--text-muted)}.pf-derived-note{padding-left:15px}.pf-source-chip{font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:1px 5px;border-radius:3px;margin-left:6px;background:rgba(56,94,168,.15);color:#1e3a8a}:root:not(.light) .pf-source-chip{background:rgba(112,107,158,.3);color:#b9b5e0}.pf-source-chip.is-override{background:rgba(196,154,40,.2);color:#78350f}:root:not(.light) .pf-source-chip.is-override{background:rgba(194,171,94,.28);color:#e3d3a0}.pf-scroll-bar{display:flex;align-items:center;height:28px;background:var(--bg-sidebar);border-top:.5px solid var(--border);flex-shrink:0}.pf-scroll-section{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--text-muted);padding:0 14px}.pf-scroll-section:first-child{flex:1 1}.pf-scroll-section:last-child{flex:1 1;justify-content:flex-end}.pf-scroll-center-divider{width:1px;height:16px;background:var(--border)}.pf-scroll-speed-label{font-size:10px;color:var(--text-muted);white-space:nowrap}.pf-scroll-speed-btn{width:16px;height:16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-sidebar);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;font-family:inherit}.pf-scroll-speed-btn:hover{background:var(--bg-hover)}.pf-scroll-track{width:48px;height:4px;background:var(--border);border-radius:2px;position:relative;cursor:pointer}.pf-scroll-thumb{width:10px;height:10px;border-radius:50%;background:var(--accent);position:absolute;top:-3px;transition:left .1s}.pf-detail{width:300px;flex-shrink:0;border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.pf-detail-empty{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);font-size:12px;text-align:center;padding:24px}.pf-detail-header{padding:14px 16px 13px;border-bottom:1px solid var(--border);flex-shrink:0}.pf-detail-title-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.pf-detail-num{font-size:17px;font-weight:700;color:var(--text)}.pf-detail-close{width:22px;height:22px;border-radius:5px;border:none;background:var(--bg-hover);color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:13px;font-family:inherit}.pf-detail-close:hover{background:var(--bg-active)}.pf-detail-badge-row{display:flex;align-items:center;gap:6px;margin-bottom:4px}.pf-status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:10px}.pf-status-badge--active{background:rgba(196,154,40,.22);color:#c49a28}.pf-status-badge--blocked{background:rgba(192,80,32,.22);color:#c05020}.pf-status-badge--done{background:rgba(58,148,80,.22);color:#3a9450}.pf-status-badge--pending{background:var(--bg-hover);color:var(--text-muted)}.pf-status-badge-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.pf-risk-badge{font-size:10px;color:#f59e0b;font-weight:600}.pf-detail-subtitle{font-size:11.5px;color:var(--text-secondary)}.pf-detail-tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0}.pf-detail-tab{flex:1 1;padding:8px;font-size:12px;font-family:inherit;background:transparent;color:var(--text-muted);cursor:pointer;border:none;border-bottom:2px solid transparent}.pf-detail-tab.is-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.pf-detail-body{padding:16px;display:flex;flex-direction:column;gap:18px;flex:1 1}.pf-detail-section-title{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:9px}.pf-detail-dl{display:grid;grid-template-columns:86px 1fr;grid-gap:7px 10px;gap:7px 10px}.pf-detail-dt{font-size:11px;color:var(--text-muted);align-self:start;padding-top:1px}.pf-detail-dd{font-size:11.5px;color:var(--text);margin:0}.pf-detail-dd.is-danger{color:#ef4444;font-weight:600}.pf-detail-dd.is-warn{color:#f59e0b;font-weight:600}.pf-detail-dd a{color:var(--accent);text-decoration:none}.pf-detail-dd a:hover{text-decoration:underline}.pf-status-list{display:flex;flex-direction:column;gap:6px}.pf-status-row{display:flex;align-items:center;gap:8px;font-size:11px}.pf-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.pf-status-dot--done{background:#3a9450}.pf-status-dot--active{background:#c49a28}.pf-status-dot--blocked{background:#c05020}.pf-status-dot--queued{background:#385ea8}.pf-status-dot--pending{background:var(--border)}.pf-status-name{flex:1 1;color:var(--text-secondary)}.pf-status-state{font-size:10px}.pf-status-state.is-active{color:#c49a28;font-weight:600}.pf-status-state.is-blocked{color:#c05020;font-weight:600}.pf-status-state.is-done{color:#3a9450}.pf-status-state.is-queued{color:#385ea8}.pf-next-action{background:var(--bg-hover);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.pf-next-action-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--text)}.pf-next-action-eta{font-size:10.5px;color:var(--accent)}.pf-next-action-row{font-size:11px;color:var(--text-secondary);display:flex;gap:5px}.pf-next-action-key{color:var(--text-muted)}.pf-action-btns{display:flex;flex-direction:column;gap:5px}.pf-open-job-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:7px;background:var(--accent);color:#fff;font-size:12px;font-weight:600;font-family:inherit;border:none;cursor:pointer;text-decoration:none;justify-content:center;transition:opacity .1s}.pf-open-job-btn:hover{opacity:.88}.pf-action-btn{display:flex;align-items:center;gap:6px;padding:7px 12px;border-radius:7px;background:var(--bg-hover);color:var(--text-secondary);font-size:11.5px;font-weight:500;font-family:inherit;border:1px solid var(--border);cursor:pointer;text-decoration:none;justify-content:center}.pf-action-btn:hover{background:var(--bg-active)}.pf-bottom{display:grid;grid-template-columns:1.15fr .85fr .9fr 1.1fr;border-top:1px solid var(--border);flex-shrink:0;max-height:215px;background:var(--border);grid-gap:1px;gap:1px}.pf-bottom-panel{background:var(--bg-sidebar);overflow-y:auto;display:flex;flex-direction:column}.pf-bottom-head{padding:7px 12px 6px;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.pf-bottom-body{padding:7px 12px;flex:1 1;overflow-y:auto;gap:7px}.pf-bottom-body,.pf-queue-group{display:flex;flex-direction:column}.pf-queue-group{gap:2px}.pf-queue-label{font-size:11px;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.pf-queue-badge{min-width:18px;height:18px;border-radius:9px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700}.pf-queue-badge--blue{background:rgba(56,94,168,.2);color:#4a72c8}.pf-queue-badge--orange{background:rgba(192,80,32,.2);color:#c05020}.pf-queue-badge--red{background:rgba(239,68,68,.18);color:#ef4444}.pf-queue-badge--green{background:rgba(58,148,80,.2);color:#3a9450}.pf-queue-badge--amber{background:rgba(196,154,40,.2);color:#c49a28}.pf-queue-jobs{display:flex;flex-direction:column;gap:1px;padding-left:6px;margin-top:1px}.pf-queue-job{font-size:10.5px;color:var(--text-muted);display:flex;gap:5px;align-items:baseline}.pf-queue-job-id{font-weight:600;color:var(--text-secondary);flex-shrink:0}.pf-bottom-link{font-size:10px;color:var(--accent);text-decoration:none;margin-top:3px;display:inline-flex;align-items:center;gap:3px}.pf-bottom-link:hover{opacity:.8}.pf-legend-cols{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px 10px;gap:6px 10px}.pf-legend-col{display:flex;flex-direction:column;gap:3px}.pf-legend-section{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-bottom:3px}.pf-legend-row{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--text-secondary)}.pf-legend-swatch{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 12%,transparent)}.pf-legend-swatch--done{background:#3a9450;color:#3a9450}.pf-legend-swatch--active{background:#c49a28;color:#c49a28}.pf-legend-swatch--queued{background:#385ea8;color:#385ea8}.pf-legend-swatch--blocked{background:#c05020;color:#c05020}.pf-legend-swatch--pending{background:var(--text-muted);color:var(--text-muted);opacity:.5}.pf-legend-icon{font-size:11px;width:14px;text-align:center;flex-shrink:0}.pf-legend-board{font-size:9px;color:var(--text-muted);display:flex;align-items:flex-start;gap:4px;line-height:1.4}.pf-legend-bullet{color:var(--text-muted);flex-shrink:0}.pf-load-row{display:flex;flex-direction:column;gap:2px}.pf-load-label-row{display:flex;align-items:center;justify-content:space-between;font-size:10.5px}.pf-load-name{color:var(--text-secondary);font-weight:600}.pf-load-stat{font-size:10px;color:var(--text-muted)}.pf-load-stat.is-over{color:#ef4444;font-weight:700}.pf-load-stat.is-warn{color:#f59e0b;font-weight:600}.pf-load-stat.is-ok{color:#22c55e}.pf-load-bar-wrap{height:4px;border-radius:2px;background:var(--border);overflow:hidden}.pf-load-bar{height:100%;border-radius:2px;background:var(--accent);transition:width .3s}.pf-load-bar.is-over{background:#ef4444}.pf-load-bar.is-warn{background:#f59e0b}.pf-ai-refresh-btn{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-muted);background:none;border:none;cursor:pointer;font-family:inherit;padding:0}.pf-ai-refresh-btn:hover{color:var(--text)}.pf-ai-card{display:flex;gap:9px;padding-bottom:7px;border-bottom:1px solid var(--border)}.pf-ai-card:last-of-type{border-bottom:none;padding-bottom:0}.pf-ai-icon{width:28px;height:28px;border-radius:14px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:12px}.pf-ai-icon--orange{background:rgba(192,80,32,.18)}.pf-ai-icon--amber{background:rgba(196,154,40,.18)}.pf-ai-icon--green{background:rgba(58,148,80,.18)}.pf-ai-icon--blue{background:rgba(56,94,168,.18)}.pf-ai-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.pf-ai-msg{font-size:10.5px;color:var(--text-secondary);line-height:1.4}.pf-ai-msg.is-critical{color:#ef4444}.pf-ai-btn{display:inline-flex;align-items:center;font-size:10px;font-family:inherit;font-weight:600;padding:3px 9px;border-radius:5px;cursor:pointer;align-self:flex-start;border:1px solid var(--border);background:var(--bg-hover);color:var(--text-secondary)}.pf-ai-btn:hover{background:var(--bg-active)}.pf-empty,.pf-error,.pf-loading{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);font-size:13px;text-align:center;padding:40px}.pf-error{color:#ef4444}.pf-stage-overdue{color:#ef4444;font-weight:600}.pf-stage-planned{color:var(--text-muted);font-style:italic}@media (max-width:1024px){.pf-page{height:100dvh}.pf-main{overflow:visible;flex-direction:column}.pf-board-outer{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;min-height:0}.pf-detail{width:100%;border-left:none;border-top:1px solid var(--border);max-height:320px}.pf-bottom{grid-template-columns:1fr 1fr;max-height:none}.pf-metrics-bar{flex-wrap:wrap}.pf-metric-card{min-width:120px}}.flo-page{flex-direction:column;height:100vh;height:100dvh;overflow:hidden;color:var(--text);font-family:var(--font)}.flo-page,.flo-toolbar{display:flex;background:var(--bg)}.flo-toolbar{align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0;position:-webkit-sticky;position:sticky;top:0;z-index:5}.flo-toolbar-title{font-size:var(--fs-title);font-weight:600}.flo-back{font-size:var(--fs-sm);color:var(--text-secondary);text-decoration:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 10px}.flo-back:hover{background:var(--bg-hover);color:var(--text)}.flo-toolbar-spacer{flex:1 1}.flo-tbtn{font:inherit;font-size:var(--fs-sm);color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 10px;cursor:pointer}.flo-tbtn.is-update{color:var(--accent);border-color:var(--accent);display:inline-flex;align-items:center;gap:6px;font-weight:600}.flo-tbtn.is-update:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.flo-update-dot{width:7px;height:7px;border-radius:50%;background:#e5484d;flex:none}.flo-tbtn:hover:not(:disabled){background:var(--bg-hover);color:var(--text)}.flo-tbtn:disabled{opacity:.4;cursor:default}.flo-tbtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.flo-zoom-level{font-size:var(--fs-xs);color:var(--text-muted);min-width:34px;text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:inherit;background:none;border:none;padding:2px 4px;border-radius:var(--r-sm);cursor:pointer}.flo-zoom-level:hover{color:var(--text);background:var(--bg-hover)}.flo-shelf{display:flex;align-items:stretch;gap:8px;padding:8px 14px;border-bottom:2px solid var(--border);overflow-x:auto;flex-shrink:0}.flo-shelf-label{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);text-align:center;flex-shrink:0}.flo-shelf-empty{font-size:var(--fs-sm);color:var(--text-muted);align-self:center;padding:8px 4px}.flo-fcard{flex-shrink:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-hover);padding:6px 10px;min-width:180px;max-width:260px;text-align:left;font:inherit;color:inherit;cursor:default}.flo-fcard-number{font-weight:600;font-size:var(--fs-body);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-fcard-who{font-size:var(--fs-xs);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flo-fcard-hours{font-size:var(--fs-micro);color:var(--text-muted);margin-top:3px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-fcard-missing{color:#c25b4e;font-weight:600}.flo-cal{flex:1 1;min-height:0;min-width:0;overflow:auto;padding:10px 14px 60px}.flo-cal-frame{position:relative;margin-inline:auto}.flo-cal-scale{transform-origin:top left;width:max-content}.flo-week-label{font-size:var(--fs-micro);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);padding:12px 2px 5px}.flo-week{display:flex;gap:var(--flo-gap);align-items:flex-start}.flo-day{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;flex:0 0 var(--flo-day-min);min-width:var(--flo-day-min);max-width:var(--flo-day-min)}.flo-day.is-sunday{flex:0 0 var(--flo-sun-w);min-width:var(--flo-sun-w);max-width:var(--flo-sun-w)}.flo-day.is-sunday.is-open{flex:0 0 var(--flo-day-min);min-width:var(--flo-day-min);max-width:var(--flo-day-min)}.flo-dayhead.is-sunquiet{white-space:normal;text-align:center;padding:calc(var(--flo-fs) * .3) 1px;line-height:1.1}.flo-sun-abbr,.flo-sun-date{display:block}.flo-sun-abbr{font-size:calc(var(--flo-fs) * .95);letter-spacing:.04em}.flo-sun-date{font-size:calc(var(--flo-fs) * 1.15);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-sun-quiet{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 2px 8px;color:var(--text-muted)}.flo-sun-expand{background:none;border:1px dashed var(--border);border-radius:2px;color:var(--text-muted);font-size:var(--flo-fs);line-height:1;padding:2px 5px;cursor:pointer;font-family:inherit}.flo-sun-expand:hover{color:var(--accent);border-color:var(--accent)}.flo-dayhead{font-size:calc(var(--flo-fs) * 1.25);font-weight:600;padding:calc(var(--flo-fs) * .35) calc(var(--flo-fs) * .8);border-bottom:1px solid var(--border);background:var(--bg-active);white-space:nowrap;overflow:hidden}.flo-day.is-today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.flo-day.is-today>.flo-dayhead{border-bottom:2px solid var(--accent)}.flo-today-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-right:5px;vertical-align:middle}.flo-dayhead.is-warn{background:rgba(212,174,39,.28)}.flo-dayhead.is-hot{background:rgba(194,91,78,.32)}.flo-ops{display:grid;grid-template-columns:repeat(var(--flo-op-count,6),minmax(0,1fr));grid-gap:2px;gap:2px;padding:3px}.flo-week-label{font-size:calc(var(--flo-fs) * 1.05)}.flo-opcol{display:flex;flex-direction:column;gap:1px;min-width:0}.flo-measure{position:absolute;visibility:hidden;pointer-events:none;top:0;left:0;white-space:nowrap}.flo-measure.is-head{font-size:calc(var(--flo-sem-fs, var(--flo-fs)) * 1.02);font-weight:600;letter-spacing:.03em}.flo-measure.is-run{font-size:var(--flo-sem-fs,var(--flo-fs));font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.25}.flo-ophead{font-size:calc(var(--flo-sem-fs, var(--flo-fs)) * 1.02);font-weight:600;text-align:center;padding:2px 0;border-radius:2px;letter-spacing:.03em;color:#33383f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flo-opcap{font-size:calc(var(--flo-fs) * .95);color:var(--text-muted);text-align:center;padding-bottom:1px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-blocked,.flo-free,.flo-run{border-radius:1.5px;font-size:var(--flo-fs);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--flo-cell) - 1px),rgba(0,0,0,.1) calc(var(--flo-cell) - 1px),rgba(0,0,0,.1) var(--flo-cell))}.flo-run{font-size:var(--flo-sem-fs,var(--flo-fs));flex-direction:column;line-height:1.25;color:#33383f;cursor:pointer;border:none;padding:0;font-family:inherit;width:100%}.flo-run-id,.flo-run-sub{max-width:100%;overflow:hidden;text-overflow:ellipsis}.flo-run-sub{font-weight:500;opacity:.78}.flo-run-id.is-tight,.flo-run-sub.is-tight{font-size:.84em;letter-spacing:-.01em}.flo-run:hover{filter:brightness(.93)}.flo-run:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.flo-run.is-selected{outline:2px solid var(--accent);outline-offset:-2px}.flo-run[draggable=true]{cursor:-webkit-grab;cursor:grab}.flo-run.is-moving{opacity:.32}.flo-run.is-over{background-color:transparent!important;border:1px solid #c25b4e;color:#c25b4e}.flo-blocked{background-color:var(--bg-active)!important;color:var(--text-muted);font-style:italic;font-weight:400}.flo-free{border:1px dashed var(--border);background-color:transparent;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--flo-cell) - 1px),var(--border) calc(var(--flo-cell) - 1px),var(--border) var(--flo-cell))}.flo-over-line{height:0;border-bottom:2px solid var(--text-secondary);opacity:.55;margin:1px 0}.flo-popover{position:fixed;z-index:60;width:260px;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:10px 12px;font-size:var(--fs-sm)}.flo-popover-number{font-size:var(--fs-title);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-popover-sub{color:var(--text-secondary);margin-bottom:6px}.flo-popover-rows{display:flex;flex-direction:column;gap:2px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-popover-row{display:flex;justify-content:space-between;gap:10px}.flo-popover-phase,.flo-popover-row .k{color:var(--text-muted)}.flo-popover-phase{font-weight:400;font-size:var(--fs-sm)}.flo-popover-missing{color:var(--text-muted);font-style:italic}.flo-popover-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);display:flex;gap:6px}.flo-popover-close{position:absolute;top:6px;right:8px;background:none;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:2px}.flo-popover-close:hover{color:var(--text)}.flo-fcard[draggable=true]{cursor:-webkit-grab;cursor:grab}.flo-fcard.is-proposing{border:1.5px dashed var(--accent);color:var(--accent)}.flo-fcard.is-undraggable{cursor:not-allowed}.flo-day.is-droppable{outline:1px dashed var(--accent);outline-offset:1px}.flo-day.is-drophover{outline:2px solid var(--accent);outline-offset:1px}.flo-run.is-preview{background-color:transparent!important;background-image:repeating-linear-gradient(45deg,transparent 0 3px,var(--bg-active) 3px 6px);border:1.5px dashed var(--accent);color:var(--accent)}.flo-cellbtns{display:flex;gap:2px;margin-top:2px}.flo-minus,.flo-plus{flex:1 1;height:calc(var(--flo-fs) * 1.7);border:1px dashed var(--border);border-radius:2px;background:none;color:var(--text-muted);font-size:calc(var(--flo-fs) * 1.1);line-height:1;cursor:pointer;padding:0;font-family:inherit}.flo-minus:hover,.flo-plus:hover{color:var(--accent);border-color:var(--accent)}.flo-minus:focus-visible,.flo-plus:focus-visible{outline:2px solid var(--accent)}.flo-propbar{position:fixed;left:50%;transform:translateX(-50%);bottom:16px;z-index:70;display:flex;align-items:center;gap:12px;background:var(--bg-sidebar);border:1.5px dashed var(--accent);border-radius:var(--r-md);padding:8px 14px;box-shadow:var(--shadow);font-size:var(--fs-sm);max-width:min(720px,calc(100vw - 40px))}.flo-propbar .num{font-weight:600;color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.flo-propbar .short{color:#c25b4e}.flo-propbar-confirm{background:var(--accent);color:var(--bg);border:none;border-radius:var(--r-sm);padding:5px 14px;font-weight:600;font-family:inherit;font-size:var(--fs-sm);cursor:pointer}.flo-propbar-confirm:disabled{opacity:.45;cursor:default}.flo-propbar-cancel{padding:5px 12px;font-size:var(--fs-sm)}.flo-popover-action,.flo-propbar-cancel{background:none;border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--r-sm);font-family:inherit;cursor:pointer}.flo-popover-action{padding:4px 10px;font-size:var(--fs-xs)}.flo-popover-action:hover{color:var(--text);border-color:var(--accent)}.flo-set{max-width:980px;font-size:var(--fs-body)}.flo-set-title{font-size:var(--fs-title);font-weight:600;margin:0 0 4px}.flo-set-sub{margin:0 0 14px}.flo-set-h,.flo-set-sub{color:var(--text-secondary)}.flo-set-h{font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin:18px 0 6px}.flo-set-note{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 8px;max-width:70ch}.flo-set-days{display:flex;gap:12px;flex-wrap:wrap}.flo-set-day{display:flex;align-items:center;gap:5px;font-size:var(--fs-sm)}.flo-set-tblwrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-sm)}.flo-set-tbl{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.flo-set-tbl th{font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);text-align:left;padding:6px 8px}.flo-set-tbl td,.flo-set-tbl th{border-bottom:1px solid var(--border);white-space:nowrap}.flo-set-tbl td{padding:4px 8px}.flo-set-tbl tr:last-child td{border-bottom:none}.flo-set-in{width:68px;padding:5px 7px;font-size:var(--fs-sm);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--bg);color:var(--text);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-family:inherit}.flo-set-in-text{width:120px;text-align:left}.flo-set-in:disabled{opacity:.55}.flo-set-color{width:34px;height:26px;padding:0;border:1px solid var(--border);border-radius:var(--r-sm);background:none}.flo-set-gap{border-style:dashed;border-color:#c2954e}.flo-set-usable{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--text-secondary)}.flo-set-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:6px 16px;gap:6px 16px}.flo-set-maprow{justify-content:space-between;gap:8px}.flo-set-maprow,.flo-set-thresholds{display:flex;align-items:center;font-size:var(--fs-sm)}.flo-set-thresholds{gap:20px}.flo-set-thresholds label{display:flex;align-items:center;gap:6px}.flo-set-footer{display:flex;align-items:center;gap:12px;margin-top:18px;padding-top:12px;border-top:1px solid var(--border)}.flo-set-save{background:var(--accent);color:var(--bg);border:none;border-radius:var(--r-sm);padding:7px 16px;font-weight:600;font-family:inherit;font-size:var(--fs-sm);cursor:pointer}.flo-set-save:disabled{opacity:.45;cursor:default}.flo-set-saved{color:#6fa15c;font-size:var(--fs-sm)}.flo-set-error{color:#c25b4e;font-size:var(--fs-sm)}.flo-set-loading{color:var(--text-muted);font-size:var(--fs-sm)}.flo-set-overlay{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:40px 20px}.flo-set-panel{background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px 22px;max-height:calc(100vh - 80px);overflow-y:auto;position:relative}.flo-set-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:4px}.flo-set-close:hover{color:var(--text)}.flo-error,.flo-loading{padding:40px;text-align:center;color:var(--text-muted);font-size:var(--fs-body)}.flo-error{color:#c25b4e}.flo-popover-docs{display:flex;flex-direction:column;gap:4px;margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}.flo-popover-doc{display:flex;align-items:center;gap:6px;width:100%;text-align:left;font:inherit;font-size:var(--fs-sm);color:var(--text);background:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:5px 8px;cursor:pointer}.flo-popover-doc:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent)}.flo-popover-doc:disabled{opacity:.5;cursor:default}.flo-popover-doc-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flo-popover-doc-tag,.q-doc-tag{flex:none;font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 6px}.q-doc-tag{margin-left:8px}.q-doc-sheet{font:inherit;font-size:11px;color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:3px 8px;cursor:pointer;white-space:nowrap}.q-doc-sheet:hover{color:var(--text);border-color:var(--accent)}.q-doc-sheet.is-on{color:var(--accent);border-color:var(--accent);font-weight:600}.flo-doc-overlay{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:24px}.flo-doc-panel{display:flex;flex-direction:column;width:min(1100px,100%);height:100%;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.flo-doc-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0}.flo-doc-name{font-size:var(--fs-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.flo-doc-badge{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:1px 6px;flex:none}.flo-doc-open{font-size:var(--fs-sm);color:var(--text-secondary);text-decoration:none;border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 10px}.flo-doc-open:hover{color:var(--text);background:var(--bg-hover)}.flo-doc-done{font:inherit;font-size:var(--fs-sm);font-weight:600;color:#1a1917;background:var(--accent);border:none;border-radius:var(--r-sm);padding:5px 14px;cursor:pointer}.flo-doc-frame{flex:1 1;min-height:0;width:100%;border:none;background:#fff}.flo-run.is-done{filter:saturate(.45) brightness(1.06);opacity:.78;box-shadow:inset 0 0 0 1px rgba(0,0,0,.14)}.flo-run.is-done .flo-run-id{opacity:.95}.flo-run.is-done .flo-run-sub{opacity:.7}.flo-run-check{position:absolute;right:2px;bottom:1px;font-size:.9em;line-height:1;color:#2f6b45;opacity:.85;pointer-events:none}.flo-run{position:relative}.flo-run .sx-staffcode-row{margin-bottom:1px;max-width:100%;overflow:hidden}.flo-wpop{width:264px}.flo-wpop-id{display:flex;align-items:center;gap:8px;color:var(--text)}.flo-wpop-name{font-size:14px;font-weight:700}.flo-wpop-inactive{margin-left:6px;font-size:10px;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.flo-wpop-ops{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;font-size:11px;color:var(--text-muted)}.flo-wpop-op{display:inline-flex;align-items:center;gap:4px}.flo-wpop-swatch{width:8px;height:8px;border-radius:2px;border:1px solid var(--border)}.flo-wpop-today{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.flo-wpop-today-head{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.flo-wpop-today .sw-list{padding:6px 0 0;gap:8px;max-height:220px;height:auto}.flo-wpop-today .sw-card{padding:6px 8px;border-radius:7px;background:var(--bg-hover);border-color:var(--border);color:var(--text)}.flo-wpop-today .sw-card-number{font-size:12px;color:var(--text)}.flo-wpop-today .sw-card-op{display:none}.flo-wpop-today .sw-card-time{font-size:11px;color:var(--text-muted);margin-top:0}.flo-wpop-today .sw-card-done{color:#2f6b45}.flo-wpop-today .sw-group-head{font-size:9px;color:var(--text-muted)}.flo-wpop-today .sw-empty{padding:10px 0;text-align:left}.flo-wpop-today .sw-empty-title{font-size:11px;color:var(--text-muted);font-weight:500}.flo-wpop-today .sw-empty-sub{display:none}.flo-assign{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:8px;border-top:1px solid var(--border);padding-top:8px;font-size:11px;color:var(--text)}.flo-assign .k{color:var(--text-muted);font-weight:600;min-width:62px}.flo-assign-current{display:flex;flex-wrap:wrap;gap:4px 8px;flex:1 1}.flo-assign-chip{display:inline-flex;align-items:center;gap:4px;color:var(--text-muted)}.flo-assign-edit{border:0;background:none;color:#c8785a;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;padding:0}.flo-assign-picker{flex-basis:100%;display:flex;flex-direction:column;gap:5px;max-height:200px;overflow-y:auto}.flo-assign-row{display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-muted)}.flo-assign-name{color:var(--text)}.flo-assign-actions{display:flex;align-items:center;gap:10px;margin-top:4px}.flo-wvpop{position:fixed;z-index:95;display:flex;overflow:hidden;border-radius:26px;border:1px solid var(--fa-border,rgba(255,255,255,.11));box-shadow:0 18px 48px rgba(0,0,0,.34),0 2px 8px rgba(0,0,0,.22);animation:flo-wvpop-in .12s ease-out}@keyframes flo-wvpop-in{0%{opacity:0;transform:translateY(-4px)}}@media (prefers-reduced-motion:reduce){.flo-wvpop{animation:none}}.flo-wvpop .fa-root{position:relative;inset:auto;height:100%;width:100%;overflow:hidden;border-radius:25px}.flo-wvpop .fa-frame{max-width:none;border-left:0;border-right:0}.flo-wvpop .fa-header{padding-top:10px;padding-bottom:10px;gap:6px}.flo-wvpop .sw-actionbar{display:none}.flo-wvpop-tag{margin-left:auto;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fa-text-muted);border:1px solid;border-radius:3px;padding:1px 4px}.jt-page{display:flex;flex-direction:column;overflow:hidden}.jt-page,.jt-scroll{flex:1 1;min-height:0}.jt-scroll{overflow-y:auto}.jt-body{min-height:0}.jt-body,.jt-main{display:flex;flex:1 1}.jt-main{min-width:0;flex-direction:column;padding:14px 22px 18px}.jt-back{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12.5px;font-family:inherit;padding:0;margin-bottom:14px;transition:color .12s}.jt-back:hover{color:var(--text)}.jt-titlerow{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.jt-title{font-size:19px;font-weight:700;color:var(--text);letter-spacing:-.3px;margin:0}.jt-jobno{font-size:13px;color:var(--text-muted);font-weight:500}.jt-status-badge{font-size:11.5px;font-weight:600;text-transform:capitalize;padding:3px 11px;border-radius:20px;background:rgba(196,154,40,.16);color:var(--accent);border:1px solid rgba(196,154,40,.3)}.jt-status-badge--completed{background:rgba(46,158,91,.16);color:#2e9e5b;border-color:rgba(46,158,91,.35)}.jt-status-badge--cancelled{background:rgba(200,70,60,.14);color:#c8463c;border-color:rgba(200,70,60,.32)}.jt-title-actions{margin-left:auto;display:flex;gap:8px}.jt-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:9px;border:1px solid var(--border);background:var(--bg-sidebar);color:var(--text-secondary);font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.jt-btn:hover{background:var(--bg-hover);color:var(--text)}.jt-btn--gold{border-color:var(--accent);font-weight:600}.jt-btn--gold,.jt-btn--gold:hover{background:var(--accent);color:#1a1505}.jt-btn--gold:hover{opacity:.92}.jt-meta{display:flex;gap:0;border:1px solid var(--border);border-radius:12px;background:var(--bg-sidebar);padding:9px 0;margin-bottom:12px;flex-wrap:wrap}.jt-meta-cell{padding:0 14px;border-right:1px solid var(--border);flex:1 1;min-width:120px}.jt-meta-cell:last-child{border-right:none}.jt-meta-k{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:4px;white-space:nowrap}.jt-meta-v{font-size:13px;color:var(--text)}.jt-meta-v .sx-staffcode{margin-left:6px;font-size:.68em;vertical-align:.1em}.jt-progress-strip{display:flex;gap:0;border:1px solid var(--border);border-radius:12px;background:var(--bg-sidebar);margin-bottom:12px;overflow:hidden}.jt-ps-cell{padding:10px 16px;border-right:1px solid var(--border)}.jt-ps-cell:last-child{border-right:none}.jt-ps-cell.is-progress{flex:1.3 1;min-width:220px}.jt-ps-cell.is-dates{flex:1.5 1;min-width:300px}.jt-ps-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:5px}.jt-ps-pct{font-size:20px;font-weight:700;color:var(--text);line-height:1;margin-bottom:4px}.jt-ps-bar{height:6px;border-radius:4px;background:var(--bg-active);overflow:hidden}.jt-ps-bar-fill{height:100%;border-radius:4px;background:var(--accent);transition:width .4s ease}.jt-ps-sub{font-size:11px;color:var(--text-muted);margin-top:4px}.jt-ps-stage{display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--text)}.jt-ps-stage-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.jt-ps-stage-sub{font-size:11px;color:var(--text-muted);margin-top:6px}.jt-ps-dates{display:grid;grid-template-columns:auto auto;grid-gap:5px 16px;gap:5px 16px}.jt-ps-dategrid{display:grid;grid-template-columns:auto 1fr auto 1fr;grid-gap:8px 14px;gap:8px 14px;align-items:baseline}.jt-ps-date-k{font-size:11px;color:var(--text-muted);white-space:nowrap}.jt-ps-date-v{font-size:12px;color:var(--text);font-weight:500;white-space:nowrap}.jt-infeasible{display:flex;align-items:center;gap:8px;padding:7px 13px;margin-bottom:12px;border-radius:10px;border:1px solid rgba(214,76,76,.35);background:rgba(214,76,76,.08);color:var(--text-secondary);font-size:12px;line-height:1.4}.jt-infeasible-icon{color:#d64c4c;flex-shrink:0}.jt-infeasible b{color:#d64c4c;font-weight:700}.jt-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.jt-seg{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden;background:var(--bg-sidebar)}.jt-seg button{padding:7px 14px;font-size:12.5px;font-family:inherit;background:none;border:none;cursor:pointer;color:var(--text-muted);transition:background .1s,color .1s;border-right:1px solid var(--border)}.jt-seg button:last-child{border-right:none}.jt-seg button:hover{color:var(--text)}.jt-seg button.is-active{background:var(--bg-active);color:var(--text);font-weight:600}.jt-tb-range{font-size:13.5px;font-weight:600;color:var(--text);white-space:nowrap}.jt-tb-spacer{flex:1 1}.jt-gantt{border:1px solid var(--border);border-radius:12px;background:var(--bg-sidebar);overflow:hidden}.jt-gantt-head{display:grid;grid-template-columns:170px 120px 1fr;border-bottom:1px solid var(--border)}.jt-gantt-head-assigned,.jt-gantt-head-label{padding:8px 16px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);border-right:1px solid var(--border);display:flex;align-items:center}.jt-gantt-days{display:grid;position:relative}.jt-gantt-day{padding:6px 4px;text-align:center;border-right:1px solid var(--border)}.jt-gantt-day:last-child{border-right:none}.jt-gantt-day-wd{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}.jt-gantt-day-num{font-size:13px;font-weight:600;color:var(--text);margin-top:1px}.jt-gantt-day.is-today .jt-gantt-day-wd{color:var(--accent)}.jt-gantt-day.is-weekend{background:rgba(255,255,255,.012)}.jt-row{display:grid;grid-template-columns:170px 120px 1fr;border-bottom:1px solid var(--border);min-height:44px}.jt-row:last-child{border-bottom:none}.jt-row:hover{background:rgba(255,255,255,.014)}.jt-row.is-selected{background:rgba(196,154,40,.05)}.jt-row-stage{padding:8px 14px;border-right:1px solid var(--border);display:flex;align-items:center;gap:9px}.jt-row-stage-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.jt-row-stage-short{font-size:9.5px;font-weight:700;letter-spacing:.5px;color:var(--text-muted)}.jt-row-stage-label{font-size:13px;font-weight:600;color:var(--text)}.jt-row-assigned{padding:10px 16px;border-right:1px solid var(--border);display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-secondary)}.jt-row-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#fff;flex-shrink:0}.jt-row-track{position:relative;display:grid}.jt-track-cell{border-right:1px solid var(--border)}.jt-track-cell:last-child{border-right:none}.jt-track-cell.is-weekend{background:rgba(255,255,255,.012)}.jt-today-line{top:0;width:2px;z-index:4;transform:translateX(-1px)}.jt-today-flag,.jt-today-line{position:absolute;bottom:0;background:var(--accent);pointer-events:none}.jt-today-flag{transform:translateX(-50%);font-size:8.5px;font-weight:800;letter-spacing:.6px;color:#1a1505;padding:2px 7px;border-radius:5px 5px 0 0;white-space:nowrap;z-index:6}.jt-bar{position:absolute;top:50%;transform:translateY(-50%);height:30px;border-radius:8px;display:flex;align-items:center;gap:6px;padding:0 9px;cursor:pointer;z-index:3;border:1px solid transparent;overflow:hidden;transition:box-shadow .13s,transform .1s,filter .12s;min-width:30px}.jt-bar:hover{filter:brightness(1.08);box-shadow:0 4px 14px rgba(0,0,0,.4)}.jt-bar.is-selected{box-shadow:0 0 0 1.5px var(--accent),0 0 14px rgba(196,154,40,.35)}.jt-bar-date{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.jt-bar-check,.jt-bar-pct{margin-left:auto;flex-shrink:0;display:flex}.jt-bar-pct{font-size:10.5px;font-weight:800;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.16);align-self:stretch;align-items:center;margin-right:-4px}.jt-bar-fill{position:absolute;inset:0;border-radius:7px;pointer-events:none}.jt-bar--done{background:rgba(46,158,91,.92);color:#eafff2}.jt-bar--active{background:rgba(196,154,40,.92);color:#1a1505}.jt-bar--scheduled{background:rgba(122,162,214,.9);color:#0c1626}.jt-bar--blocked{background:rgba(200,70,60,.92);color:#fff}.jt-bar--pending{background:var(--bg-active);color:var(--text-secondary);border-color:var(--border)}.jt-dot--done{background:#2e9e5b}.jt-dot--active{background:var(--accent)}.jt-dot--scheduled{background:#7aa2d6}.jt-dot--blocked{background:#c8463c}.jt-dot--pending{background:var(--text-muted)}.jt-legend{display:flex;gap:18px;flex-wrap:wrap;padding:14px 4px 0}.jt-legend-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-muted)}.jt-legend-dot{width:8px;height:8px;border-radius:50%}.jt-empty{padding:40px 20px;text-align:center;color:var(--text-muted);font-size:13px}.jt-inspector{width:320px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-sidebar);display:flex;flex-direction:column;overflow:hidden}.jt-insp-head{padding:12px 18px 0;flex-shrink:0}.jt-insp-titlerow{display:flex;align-items:center;gap:9px;margin-bottom:10px}.jt-insp-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.jt-insp-title{font-size:15px;font-weight:700;color:var(--text);flex:1 1}.jt-insp-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:3px;border-radius:5px;display:flex;transition:background .12s,color .12s}.jt-insp-close:hover{background:var(--bg-hover);color:var(--text)}.jt-insp-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.jt-insp-tab{padding:7px 13px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:12.5px;font-family:inherit;color:var(--text-muted);margin-bottom:-1px;transition:color .12s,border-color .12s}.jt-insp-tab:hover{color:var(--text)}.jt-insp-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.jt-insp-body{flex:1 1;overflow-y:auto;padding:14px 18px 18px;display:flex;flex-direction:column;gap:12px}.jt-field-label{font-size:11px;font-weight:600;color:var(--text-secondary);margin-bottom:4px}.jt-field-hint{margin-top:4px;font-size:10.5px;line-height:1.35;color:var(--text-muted)}.jt-field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.jt-input,.jt-select{width:100%;padding:8px 10px;background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:12.5px;font-family:inherit;outline:none;box-sizing:border-box;transition:border-color .12s}.jt-input:focus,.jt-select:focus{border-color:rgba(196,154,40,.45)}.jt-select{cursor:pointer}.jt-assignee{padding:7px 10px}.jt-assignee,.jt-file{display:flex;align-items:center;gap:9px;background:var(--bg-hover);border:1px solid var(--border);border-radius:8px}.jt-file{padding:8px 10px;font-size:12px;color:var(--text-secondary)}.jt-file+.jt-file{margin-top:6px}.jt-file-ext{margin-left:auto;font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;background:var(--bg-active);color:var(--text-muted)}.jt-check{display:flex;align-items:center;gap:9px;padding:5px 2px;font-size:12.5px;color:var(--text-secondary);cursor:pointer}.jt-check input{accent-color:var(--accent);cursor:pointer}.jt-add-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);background:none;border:none;cursor:pointer;padding:6px 0 0;font-family:inherit}.jt-add-link:hover{color:var(--text)}.jt-insp-empty{padding:8px 0;font-size:12px;color:var(--text-muted);font-style:italic}@media (max-width:1100px){.jt-inspector{width:280px}}@media (max-width:900px){.jt-inspector{display:none}}.jt-offscreen{position:absolute;top:50%;transform:translateY(-50%);background:none;border:1px dashed var(--border);border-radius:4px;color:var(--text-muted);font-size:10px;line-height:1;padding:3px 6px;cursor:pointer;white-space:nowrap}.jt-offscreen:hover{color:var(--text);border-color:var(--text-muted)}.jt-offscreen.is-after{right:4px}.jt-offscreen.is-before{left:4px}