.bsp-app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.bsp-app.collapsed{grid-template-columns:64px 1fr}.bsp-content-wide{padding:28px 40px 64px;max-width:1440px}.bsp-sidebar{background:var(--bsp-surface);border-right:1px solid var(--bsp-border);display:flex;flex-direction:column}.bsp-sb-logo{padding:16px 20px;border-bottom:1px solid var(--bsp-border);display:flex;align-items:center;justify-content:center;min-height:64px}.bsp-sb-logo-img{display:block;height:36px;width:auto;max-width:100%}.bsp-app.collapsed .bsp-sb-logo{padding:16px 8px}.bsp-app.collapsed .bsp-sb-logo-img{height:28px}.bsp-sb-section{padding:16px 20px 6px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bsp-fg-muted)}.bsp-sb-item{display:flex;align-items:center;gap:10px;padding:9px 14px;margin:1px 8px;font-size:13px;font-weight:500;color:var(--bsp-fg);text-decoration:none;border-radius:4px;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard)}.bsp-sb-item:hover{background:var(--bsp-blue-pale);color:var(--bsp-blue)}.bsp-sb-item-active,.bsp-sb-item.active{background:var(--bsp-blue);color:var(--ink-000)}.bsp-topbar{height:64px;background:var(--bsp-surface);border-bottom:1px solid var(--bsp-border);display:flex;align-items:center;justify-content:space-between;padding:0 24px}.bsp-topbar-title{font-family:var(--bsp-font-display);font-size:22px;font-weight:700;color:var(--bsp-blue);text-transform:uppercase;letter-spacing:.04em;line-height:1}.bsp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 18px;border:1px solid transparent;border-radius:4px;font:700 13px/1 var(--bsp-font-sans);text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.bsp-btn:focus-visible{outline:none;box-shadow:var(--bsp-shadow-focus)}.bsp-btn:disabled{opacity:.55;cursor:not-allowed}.bsp-btn-primary{background:var(--bsp-blue);color:var(--ink-000);border-color:var(--bsp-blue)}.bsp-btn-primary:hover:not(:disabled){background:var(--bsp-blue-deep);border-color:var(--bsp-blue-deep)}.bsp-btn-secondary{background:var(--bsp-surface);color:var(--bsp-fg);border-color:var(--bsp-border-strong)}.bsp-btn-secondary:hover:not(:disabled){background:var(--bsp-blue-pale);color:var(--bsp-blue);border-color:var(--bsp-blue)}.bsp-btn-ghost{background:transparent;color:var(--bsp-fg-muted);text-transform:none;letter-spacing:0;font-weight:600}.bsp-btn-ghost:hover:not(:disabled){color:var(--bsp-blue);background:var(--bsp-blue-pale)}.bsp-btn-danger{background:var(--bsp-red);color:var(--ink-000);border-color:var(--bsp-red)}.bsp-btn-sm{height:30px;padding:0 12px;font-size:11px}.bsp-btn-icon{width:36px;height:36px;padding:0}.bsp-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:8px;padding:20px 22px;box-shadow:var(--bsp-shadow-card)}.bsp-card-title-row{display:flex;align-items:center;gap:10px;margin-bottom:14px}.bsp-page-title{margin:0;font-family:var(--bsp-font-display);font-weight:700;font-size:26px;line-height:1.1;text-transform:uppercase;letter-spacing:.02em;color:var(--bsp-dark)}.bsp-page-header{display:flex;align-items:center;gap:14px;margin-bottom:22px}.bsp-page-icon{width:40px;height:40px;flex:0 0 40px;background:var(--bsp-blue-tint);color:var(--bsp-blue);border-radius:6px;display:flex;align-items:center;justify-content:center}.bsp-eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bsp-blue)}.bsp-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);margin-bottom:6px}.bsp-tool-tile{display:flex;flex-direction:column;gap:8px;padding:18px 20px;background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:8px;text-decoration:none;color:inherit;transition:box-shadow var(--dur-base) var(--ease-standard),transform var(--dur-base) var(--ease-standard)}.bsp-tool-tile:hover{box-shadow:var(--bsp-shadow-hover);transform:translateY(-1px)}.bsp-tool-tile h3{margin:0;font-size:16px;font-weight:700;color:var(--bsp-dark)}.bsp-tool-tile p{margin:0;font-size:13px;color:var(--bsp-fg-muted);line-height:1.45}.bsp-chip{display:inline-flex;align-items:center;height:22px;padding:0 10px;font:700 10px/1 var(--bsp-font-sans);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;white-space:nowrap}.bsp-chip-blue{background:var(--bsp-blue-tint);color:var(--bsp-blue)}.bsp-chip-green{background:var(--bsp-green-tint);color:var(--bsp-green-fg)}.bsp-chip-orange{background:var(--bsp-orange-tint);color:var(--bsp-orange-fg)}.bsp-chip-red{background:var(--bsp-red-tint);color:var(--bsp-red-fg)}.bsp-chip-grey{background:var(--ink-200);color:var(--ink-700)}.bsp-mono{font-family:var(--bsp-font-mono);font-variant-numeric:tabular-nums}.bsp-input,.bsp-select{height:38px;padding:0 12px;background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);border-radius:4px;font:400 14px/1 var(--bsp-font-sans);color:var(--bsp-fg);width:100%}.bsp-input:focus,.bsp-select:focus{outline:none;border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-focus)}.bsp-input::placeholder{color:var(--bsp-fg-subtle)}.bsp-table{width:100%;border-collapse:collapse;font-size:13px}.bsp-table th{font:700 10px/1 var(--bsp-font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);background:var(--bsp-surface-muted);text-align:left;padding:10px 12px;border-bottom:1px solid var(--bsp-border)}.bsp-table td{padding:12px;border-bottom:1px solid var(--bsp-border);vertical-align:top}.bsp-table tr:last-child td{border-bottom:0}.bsp-table tr:hover td{background:var(--bsp-blue-pale)}.tp-page-header{display:flex;align-items:center;gap:14px;margin-bottom:4px}.tp-page-icon{width:40px;height:40px;flex:0 0 40px;background:var(--bsp-blue-tint);color:var(--bsp-blue);border-radius:6px;display:flex;align-items:center;justify-content:center}.tp-icon-action{display:inline-flex;align-items:center;justify-content:center;height:36px;width:36px;border-radius:4px;border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);color:var(--bsp-fg-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.tp-icon-action:hover{color:var(--bsp-blue);border-color:var(--bsp-blue);background:var(--bsp-blue-pale)}.tp-stats-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.tp-stat-tile{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:8px;padding:16px 20px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--bsp-shadow-card)}.tp-stat-label{font:700 10px/1 var(--bsp-font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bsp-fg-muted)}.tp-stat-value{font-family:var(--bsp-font-display);font-weight:700;font-size:32px;line-height:1;color:var(--bsp-blue)}.tp-stat-value.tone-green{color:var(--bsp-green)}.tp-stat-value.tone-red{color:var(--bsp-red)}.tp-stat-value.tone-orange{color:var(--bsp-orange)}.tp-stat-value.tone-muted{color:var(--bsp-fg-muted)}.tp-tabbar{display:flex;flex-wrap:wrap;gap:2px;border-bottom:1px solid var(--bsp-border);padding-bottom:0}.tp-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 16px 12px;border:none;background:transparent;cursor:pointer;font:700 11px/1 var(--bsp-font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color var(--dur-fast),border-color var(--dur-fast)}.tp-tab:hover{color:var(--bsp-blue)}.tp-tab[aria-selected=true]{color:var(--bsp-blue);border-bottom-color:var(--bsp-blue)}.tp-scope{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--bsp-border-strong);border-radius:999px;background:var(--bsp-surface)}.tp-scope-btn{padding:6px 14px;border:none;background:transparent;border-radius:999px;font:700 10px/1 var(--bsp-font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);cursor:pointer}.tp-scope-btn[aria-checked=true]{background:var(--bsp-blue);color:var(--ink-000)}.tp-saved-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tp-saved-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--bsp-border-strong);border-radius:999px;background:var(--bsp-surface);color:var(--bsp-fg-muted);font:600 11px/1 var(--bsp-font-sans);cursor:pointer}.tp-saved-filter:hover{color:var(--bsp-blue);border-color:var(--bsp-blue)}.tp-kanban{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.tp-kanban-column{background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:240px}.tp-kanban-col-head{display:flex;justify-content:space-between;align-items:center;font:700 10px/1 var(--bsp-font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--bsp-fg-muted);padding-bottom:6px;border-bottom:1px solid var(--bsp-border)}.tp-kanban-col-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--bsp-surface);font:700 10px/1 var(--bsp-font-mono);color:var(--bsp-fg)}.tp-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;cursor:pointer;box-shadow:var(--bsp-shadow-card);transition:box-shadow var(--dur-base),transform var(--dur-base)}.tp-card:hover{box-shadow:var(--bsp-shadow-hover);transform:translateY(-1px)}.tp-card-title{font:600 13px/1.35 var(--bsp-font-sans);color:var(--bsp-fg);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tp-card-meta{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;font:400 11px/1 var(--bsp-font-sans);color:var(--bsp-fg-muted)}.tp-card-seq{font-family:var(--bsp-font-mono);font-size:10px;letter-spacing:.05em;color:var(--bsp-fg-subtle)}.tp-card-progress{height:4px;background:var(--ink-200);border-radius:999px;overflow:hidden}.tp-card-progress-fill{height:100%;background:var(--bsp-blue);border-radius:999px}.tp-avatar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;background:var(--bsp-blue-tint);color:var(--bsp-blue);font:700 9px/1 var(--bsp-font-sans);letter-spacing:.04em;flex-shrink:0}.tp-empty{padding:24px 12px;text-align:center;color:var(--bsp-fg-subtle);font:400 12px/1.4 var(--bsp-font-sans)}.tp-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.tp-toolbar-left,.tp-toolbar-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tp-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181c52;z-index:60}.tp-sheet{position:fixed;top:0;right:0;bottom:0;width:min(540px,96vw);background:var(--bsp-surface);border-left:1px solid var(--bsp-border);z-index:61;display:flex;flex-direction:column;box-shadow:var(--bsp-shadow-pop)}.tp-sheet-header{display:flex;align-items:center;gap:10px;padding:16px 22px;border-bottom:1px solid var(--bsp-border)}.tp-sheet-title{flex:1;font-family:var(--bsp-font-display);font-weight:700;font-size:18px;text-transform:uppercase;letter-spacing:.02em;color:var(--bsp-dark)}.tp-sheet-body{flex:1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:16px}.tp-sheet-footer{display:flex;gap:8px;justify-content:flex-end;padding:16px 22px;border-top:1px solid var(--bsp-border);background:var(--bsp-surface-muted)}.tp-field{display:flex;flex-direction:column;gap:6px}.tp-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tp-rag-green{background:var(--bsp-green-tint);color:var(--bsp-green-fg)}.tp-rag-amber{background:var(--bsp-orange-tint);color:var(--bsp-orange-fg)}.tp-rag-red{background:var(--bsp-red-tint);color:var(--bsp-red-fg)}.tp-rag-neutral{background:var(--ink-200);color:var(--ink-700)}.tp-list-status-dot{display:inline-block;width:8px;height:8px;border-radius:999px;vertical-align:middle;margin-right:8px}.tp-list-status-open{background:var(--ink-400)}.tp-list-status-in_progress{background:var(--bsp-blue)}.tp-list-status-blocked{background:var(--bsp-red)}.tp-list-status-done{background:var(--bsp-green)}.tp-list-status-cancelled{background:var(--ink-300)}.tp-inline-pencil{opacity:0}*:hover>.tp-inline-pencil,*:focus-within>.tp-inline-pencil{opacity:.5}.tp-kebab-menu{position:absolute;min-width:180px;background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);border-radius:6px;box-shadow:var(--bsp-shadow-pop);padding:4px;z-index:50}.tp-kebab-item{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;font:400 13px/1 var(--bsp-font-sans);color:var(--bsp-fg);border-radius:4px;cursor:pointer;text-align:left}.tp-kebab-item:hover{background:var(--bsp-blue-pale);color:var(--bsp-blue)}.tp-kebab-item.danger:hover{background:var(--bsp-red-tint);color:var(--bsp-red-fg)}.tp-kanban-column.tp-droppable-over{background:var(--bsp-blue-pale);outline:2px dashed var(--bsp-blue);outline-offset:-2px}.tp-card.tp-dragging{opacity:.5;cursor:grabbing}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:22px}.kpi-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);padding:16px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--bsp-shadow-card)}.kpi-label{font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.14em}.kpi-val{font-size:30px;font-weight:700;line-height:1.1;letter-spacing:-.01em;color:var(--bsp-dark);font-variant-numeric:tabular-nums}.kpi-val.blue{color:var(--bsp-blue)}.kpi-val.green{color:var(--bsp-green-fg)}.kpi-val.red{color:var(--bsp-red-fg)}.kpi-val.orange{color:var(--bsp-orange-fg)}.view-bar{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);padding:0 12px;display:flex;align-items:center;margin-bottom:16px;overflow-x:auto;overflow-y:hidden;box-shadow:var(--bsp-shadow-card);height:42px;flex-shrink:0}.view-tab{display:flex;align-items:center;gap:6px;padding:0 14px;height:100%;border-bottom:2px solid transparent;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);white-space:nowrap;transition:color .12s;margin-bottom:-1px;flex-shrink:0;text-decoration:none}.view-tab.active{color:var(--bsp-blue);border-bottom-color:var(--bsp-blue)}.view-tab:hover:not(.active){color:var(--bsp-dark)}.filter-row{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}.search-box{display:flex;align-items:center;gap:8px;background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-md);padding:0 12px;height:34px;min-width:200px;transition:border-color .12s}.search-box:focus-within{border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-focus)}.search-box input{border:none;outline:none;font-family:var(--bsp-font-sans);font-size:13px;color:var(--bsp-dark);background:transparent;width:140px}.search-box input::placeholder{color:var(--bsp-fg-subtle)}.filter-select{background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-md);height:34px;padding:0 10px;font-family:var(--bsp-font-sans);font-size:12px;color:var(--bsp-fg);cursor:pointer;outline:none;transition:border-color .12s}.filter-select:focus{border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-focus)}.group-btns{display:flex;gap:4px;margin-left:auto;align-items:center}.group-btn{padding:6px 12px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);font-family:var(--bsp-font-sans);font-size:11px;font-weight:600;color:var(--bsp-fg-muted);cursor:pointer;transition:all .12s}.group-btn.active{background:var(--bsp-blue);color:#fff;border-color:var(--bsp-blue)}.group-btn:hover:not(.active){background:var(--bsp-blue-pale);color:var(--bsp-blue);border-color:var(--bsp-blue-border)}.sort-row{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:12px;color:var(--bsp-fg-muted)}.sort-row label{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:10px}.sort-row select{background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);padding:5px 10px;font-family:var(--bsp-font-sans);font-size:12px;color:var(--bsp-dark);outline:none;cursor:pointer}.kanban-wrap{overflow-x:auto;padding-bottom:8px}.kanban-board{display:flex;gap:14px;min-width:max-content;align-items:flex-start}.kanban-col{width:288px;flex-shrink:0}.col-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 4px}.col-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0}.col-title{font-family:var(--bsp-font-display);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bsp-dark)}.col-count{margin-left:auto;background:var(--bsp-surface-muted);color:var(--bsp-fg-muted);font-size:10px;font-weight:700;border-radius:999px;padding:2px 8px;letter-spacing:.04em;border:1px solid var(--bsp-border)}.col-empty{background:var(--bsp-surface);border:1.5px dashed var(--bsp-border);border-radius:var(--bsp-r-md);padding:28px 14px;text-align:center;color:var(--bsp-fg-muted);font-size:12px;font-style:italic}.kanban-col-empty{background:var(--bsp-surface);border:1.5px dashed var(--bsp-border);border-radius:var(--bsp-r-md);padding:18px 12px;text-align:center;color:var(--bsp-fg-subtle);font-size:11px;font-style:italic;margin-bottom:8px}.kanban-col.is-drop-target{background:var(--bsp-blue-pale,rgba(27,68,156,.06));border-radius:var(--bsp-r-md);outline:2px dashed var(--bsp-blue,#1B449C);outline-offset:-4px}.kanban-col.is-drop-target .kanban-col-empty{border-color:var(--bsp-blue,#1B449C);color:var(--bsp-blue,#1B449C)}.proj-card.is-dragging{opacity:.45;cursor:grabbing}.proj-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);padding:12px;margin-bottom:8px;cursor:pointer;transition:all .12s;box-shadow:var(--bsp-shadow-card)}.proj-card:hover{border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-hover)}.proj-card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:7px;gap:7px}.proj-id{font-family:var(--bsp-font-mono);font-size:11px;font-weight:700;color:var(--bsp-blue);background:var(--bsp-blue-tint);padding:2px 8px;border-radius:999px;letter-spacing:.02em}.priority-badge{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bsp-fg-muted);background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);border-radius:999px;padding:2px 8px}.priority-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.priority-dot.normal{background:var(--bsp-blue)}.priority-dot.high{background:var(--bsp-orange)}.priority-dot.urgent{background:var(--bsp-red)}.priority-dot.low{background:var(--bsp-green)}.proj-name{font-size:13px;font-weight:700;color:var(--bsp-dark);margin-bottom:3px;line-height:1.35}.proj-customer{font-size:11px;color:var(--bsp-fg-muted);margin-bottom:8px;font-family:var(--bsp-font-mono);letter-spacing:.02em}.proj-tags{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.proj-tag{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bsp-blue);background:var(--bsp-blue-tint);border-radius:var(--bsp-r-sm);padding:2px 7px;border:1px solid var(--bsp-blue-border)}.bay-chip{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:var(--bsp-r-sm);padding:2px 7px}.proj-footer{display:flex;align-items:flex-end;justify-content:space-between}.proj-date{font-size:11px;color:var(--bsp-fg-muted);font-weight:600;font-family:var(--bsp-font-mono)}.proj-avatar{width:26px;height:26px;border-radius:50%;background:var(--bsp-blue);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.spool-summary{font-size:10px;color:var(--bsp-fg-muted);margin-top:6px;padding-top:6px;border-top:1px solid var(--bsp-border);font-family:var(--bsp-font-mono);letter-spacing:.02em}.list-table{width:100%;border-collapse:collapse;background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);overflow:hidden;font-family:var(--bsp-font-sans);font-size:13px;box-shadow:var(--bsp-shadow-card)}.list-table th{font-size:10px;font-weight:700;text-align:left;padding:10px 12px;background:var(--bsp-surface-muted);color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--bsp-border);white-space:nowrap}.list-table td{padding:11px 12px;border-bottom:1px solid var(--bsp-border);font-size:13px;vertical-align:middle;color:var(--bsp-fg)}.list-table tr:last-child td{border-bottom:none}.list-table tr:hover td{background:var(--bsp-blue-pale)}.status-badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.gantt-container{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);overflow:hidden;box-shadow:var(--bsp-shadow-card)}.gantt-toolbar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--bsp-border);flex-wrap:wrap;background:var(--bsp-surface-muted)}.gantt-toolbar-title{font-family:var(--bsp-font-display);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-dark);margin-right:auto}.gz-btn{padding:5px 12px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);font-family:var(--bsp-font-sans);font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--bsp-fg-muted);cursor:pointer}.gz-btn.active,.gz-btn:hover{background:var(--bsp-blue);color:#fff;border-color:var(--bsp-blue)}.gnav-btn{padding:5px 10px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);font-family:var(--bsp-font-sans);font-size:11px;font-weight:600;color:var(--bsp-fg);cursor:pointer}.gnav-btn:hover{background:var(--bsp-blue-pale);color:var(--bsp-blue);border-color:var(--bsp-blue-border)}.gantt-wrap{overflow-x:auto}.g-hdr-row{display:flex;border-bottom:1px solid var(--bsp-border);background:var(--bsp-surface-muted);position:sticky;top:0;z-index:3}.g-label-col{width:200px;min-width:200px;padding:9px 14px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted);border-right:1px solid var(--bsp-border);flex-shrink:0}.g-date-cell{text-align:center;font-family:var(--bsp-font-mono);font-size:10px;font-weight:600;color:var(--bsp-fg-muted);padding:8px 2px;border-right:1px solid var(--bsp-border);white-space:nowrap;overflow:hidden;flex-shrink:0}.g-date-cell.tc{background:var(--bsp-blue-pale);color:var(--bsp-blue);font-weight:700}.g-row{display:flex;border-bottom:1px solid var(--bsp-border);min-height:40px}.g-row:hover{background:var(--bsp-blue-pale)}.g-row-label{width:200px;min-width:200px;padding:8px 14px;border-right:1px solid var(--bsp-border);display:flex;align-items:center;gap:8px;flex-shrink:0;cursor:pointer;font-size:13px;color:var(--bsp-fg)}.g-cells{display:flex;flex:1;position:relative;overflow:hidden}.g-cell{border-right:1px solid var(--bsp-border);flex-shrink:0}.g-cell.tc{background:var(--bsp-blue-pale)}.g-bar{position:absolute;border-radius:var(--bsp-r-sm);cursor:pointer;display:flex;align-items:center;padding:0 8px;font-size:10px;font-weight:700;letter-spacing:.04em;color:#fff;white-space:nowrap;overflow:hidden;transition:opacity .12s;z-index:2;box-shadow:0 1px 2px #14181c26}.g-bar:hover{opacity:.85}.g-bar.spool-bar{border-radius:2px;font-size:9px}.today-ln{position:absolute;top:0;bottom:0;width:2px;background:var(--bsp-blue);opacity:.4;pointer-events:none;z-index:4}.bay-cap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.bay-cap-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);overflow:hidden;box-shadow:var(--bsp-shadow-card)}.bay-cap-header{padding:12px 16px;display:flex;align-items:center;justify-content:space-between}.bay-cap-title{font-family:var(--bsp-font-display);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#fff}.bay-cap-util{font-family:var(--bsp-font-mono);font-size:11px;color:#ffffffd9;font-weight:600}.cap-bar-outer{height:6px;border-radius:3px;overflow:hidden}.cap-bar-inner{height:100%;border-radius:3px;transition:width .4s}.bay-jobs-list{padding:10px}.bay-job-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--bsp-r-sm);cursor:pointer;border:1px solid var(--bsp-border);margin-bottom:6px;transition:all .12s;background:var(--bsp-surface)}.bay-job-row:hover{border-color:var(--bsp-blue);background:var(--bsp-blue-pale)}.res-table{width:100%;border-collapse:collapse;background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);overflow:hidden;box-shadow:var(--bsp-shadow-card)}.res-table th{font-size:10px;font-weight:700;text-align:left;padding:10px 12px;background:var(--bsp-surface-muted);color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--bsp-border)}.res-table td{padding:11px 12px;border-bottom:1px solid var(--bsp-border);font-size:13px;color:var(--bsp-fg)}.res-table tr:last-child td{border-bottom:none}.res-bar-wrap{background:var(--bsp-surface-muted);border-radius:3px;height:7px;overflow:hidden;min-width:80px;border:1px solid var(--bsp-border)}.res-bar{height:100%;border-radius:3px;background:var(--bsp-blue);transition:width .3s}.res-bar.high{background:var(--bsp-red)}.res-bar.med{background:var(--bsp-orange)}.cutting-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.cut-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);padding:16px;box-shadow:var(--bsp-shadow-card)}.cut-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cut-badge{font-family:var(--bsp-font-sans);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:999px}.cut-spool-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--bsp-border)}.cut-spool-row:last-child{border-bottom:none}.cut-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.spool-table{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:8px;font-family:var(--bsp-font-sans);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);overflow:hidden}.spool-table th{background:var(--bsp-surface-muted);padding:7px 8px;text-align:left;font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--bsp-border)}.spool-table td{padding:5px 8px;border-bottom:1px solid var(--bsp-border);vertical-align:middle;color:var(--bsp-fg)}.spool-table tr:last-child td{border-bottom:none}.spool-table tr:hover td,.spool-table tr.drag-over td{background:var(--bsp-blue-pale)}.spool-drag{cursor:grab;color:var(--bsp-fg-subtle);padding:0 4px;font-size:14px;-webkit-user-select:none;user-select:none}.spool-drag:active{cursor:grabbing}.spool-table tr.spool-row-focus td{background:var(--bsp-yellow-pale,#FFF6D6);box-shadow:inset 3px 0 0 0 var(--bsp-blue);animation:spoolFocusFlash 2.4s ease-out 1}@keyframes spoolFocusFlash{0%{background:#ffe680;box-shadow:inset 3px 0 0 0 var(--bsp-blue),0 0 0 2px #1b449c73}60%{background:var(--bsp-yellow-pale,#FFF6D6);box-shadow:inset 3px 0 0 0 var(--bsp-blue)}to{background:var(--bsp-yellow-pale,#FFF6D6);box-shadow:inset 3px 0 0 0 var(--bsp-blue)}}.spool-inp{border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);padding:4px 7px;font-size:11px;font-family:var(--bsp-font-sans);outline:none;background:var(--bsp-surface);color:var(--bsp-dark);transition:border-color .12s}.spool-inp:focus{border-color:var(--bsp-blue);box-shadow:0 0 0 2px #1b449c26}.spool-inp.w-num{width:80px;font-family:var(--bsp-font-mono)}.spool-inp.w-hrs{width:54px;font-family:var(--bsp-font-mono)}.spool-inp.w-date{width:120px;font-family:var(--bsp-font-mono)}.spool-inp.w-stat{width:100px}.btn-sm{padding:5px 10px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);font-family:var(--bsp-font-sans);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bsp-fg);cursor:pointer;transition:all .12s}.btn-sm:hover{background:var(--bsp-blue-pale);border-color:var(--bsp-blue);color:var(--bsp-blue)}.btn-sm.danger:hover{background:var(--bsp-red-tint);border-color:var(--bsp-red);color:var(--bsp-red-fg)}.cut-inp{border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);padding:4px 7px;font-size:11px;font-family:var(--bsp-font-sans);outline:none;background:var(--bsp-surface);color:var(--bsp-dark)}.cut-inp:focus{border-color:var(--bsp-blue);box-shadow:0 0 0 2px #1b449c26}.team-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.team-row{display:flex;align-items:center;gap:10px;background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);padding:10px 12px}.team-avatar-edit{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}.team-info{flex:1;min-width:0}.team-name{font-weight:700;font-size:13px;color:var(--bsp-dark)}.team-role{font-size:11px;color:var(--bsp-fg-muted);font-family:var(--bsp-font-mono);letter-spacing:.02em}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14181c8c;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);width:600px;max-width:100%;max-height:92vh;overflow:hidden;box-shadow:var(--bsp-shadow-pop);display:flex;flex-direction:column}.modal-xl{width:1180px}.modal-header{padding:18px 22px 14px;border-bottom:1px solid var(--bsp-border);display:flex;align-items:center;justify-content:space-between;background:var(--bsp-surface);z-index:2;flex-shrink:0}.modal-header h2{font-family:var(--bsp-font-display);font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--bsp-dark)}.modal-close{background:none;border:none;cursor:pointer;color:var(--bsp-fg-muted);font-size:18px;line-height:1;padding:4px 8px;border-radius:var(--bsp-r-sm);transition:background .12s}.modal-close:hover{background:var(--bsp-surface-muted);color:var(--bsp-dark)}.modal-body{padding:18px 22px 22px;overflow-y:auto;flex:1;min-height:0}.modal-section{font-family:var(--bsp-font-display);font-size:11px;font-weight:700;color:var(--bsp-blue);text-transform:uppercase;letter-spacing:.14em;margin:18px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--bsp-border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-grid.full{grid-template-columns:1fr}.form-grid.g3{grid-template-columns:1fr 1fr 1fr}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em}.form-group input,.form-group select,.form-group textarea{border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-md);padding:8px 11px;font-family:var(--bsp-font-sans);font-size:13px;color:var(--bsp-dark);background:var(--bsp-surface);outline:none;transition:border-color .12s,box-shadow .12s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-focus)}.order-value-input{position:relative;display:flex;align-items:stretch}.order-value-input .ov-prefix{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-family:var(--bsp-font-mono);font-weight:700;font-size:13px;color:var(--bsp-fg-muted);pointer-events:none;letter-spacing:.02em}.order-value-input input{padding-left:22px!important;font-family:var(--bsp-font-mono);font-variant-numeric:tabular-nums;font-weight:600;flex:1}.order-value-input input::-webkit-outer-spin-button,.order-value-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.order-value-input input[type=number]{-moz-appearance:textfield}.form-group textarea{resize:vertical;min-height:64px;font-family:var(--bsp-font-sans)}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:14px 22px 18px;background:var(--bsp-surface);border-top:1px solid var(--bsp-border);flex-shrink:0}.btn-del{background:var(--bsp-surface);border:1px solid rgba(179,38,30,.45);color:var(--bsp-red-fg);padding:8px 14px;border-radius:var(--bsp-r-md);font-family:var(--bsp-font-sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .12s}.btn-del:hover{background:var(--bsp-red-tint);border-color:var(--bsp-red)}.btn-cancel{background:var(--bsp-surface);border:1px solid var(--bsp-border-strong);color:var(--bsp-dark);padding:8px 16px;border-radius:var(--bsp-r-md);font-family:var(--bsp-font-sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .12s}.btn-cancel:hover{background:var(--bsp-blue-pale);border-color:var(--bsp-blue);color:var(--bsp-blue)}.btn-submit{background:var(--bsp-blue);color:#fff;border:0;padding:8px 18px;border-radius:var(--bsp-r-md);font-family:var(--bsp-font-sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .12s}.btn-submit:hover{background:var(--bsp-blue-deep)}.entity-toggle{display:inline-flex;align-items:center;gap:0;background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);padding:2px;flex-shrink:0}.entity-toggle-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;background:transparent;border:none;border-radius:var(--bsp-r-sm);font-family:var(--bsp-font-sans);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bsp-fg-muted);cursor:pointer;transition:all .12s}.entity-toggle-btn:hover:not(.active){color:var(--bsp-dark);background:var(--bsp-surface)}.entity-toggle-btn.active{background:var(--bsp-blue);color:#fff;box-shadow:var(--bsp-shadow-card)}.entity-toggle-btn svg{flex-shrink:0}.spool-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);margin-bottom:8px;overflow:visible;transition:border-color .12s,box-shadow .12s}.spool-card:hover{border-color:var(--bsp-border-strong)}.spool-card.is-overdue{border-left:3px solid var(--bsp-red,#B3261E)}.spool-card.is-at-risk{border-left:3px solid var(--bsp-orange,#C77700)}.spool-card.is-on-track{border-left:3px solid var(--bsp-green,#2E7D32)}.spool-card.is-complete{border-left:3px solid var(--bsp-blue,#1B449C);background:linear-gradient(0deg,#2e7d3205,#2e7d3205),var(--bsp-surface)}.spool-card.drag-over{border-color:var(--bsp-blue);box-shadow:var(--bsp-shadow-focus,0 0 0 3px rgba(27,68,156,.18))}.spool-card.is-selected{box-shadow:0 0 0 2px var(--bsp-blue-border,rgba(27,68,156,.45))}.spool-card.is-focused{animation:bsp-spool-flash 1.4s ease-out}.spool-card-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bsp-surface-muted);border-bottom:1px solid var(--bsp-border);flex-wrap:wrap}.spool-card.is-selected .spool-card-head{background:var(--bsp-blue-pale)}.spool-card-head .spool-drag{cursor:grab;color:var(--bsp-fg-subtle);-webkit-user-select:none;user-select:none;font-size:14px}.spool-card-head .spool-select{margin:0 4px 0 0;width:16px;height:16px;cursor:pointer;accent-color:var(--bsp-blue);flex-shrink:0}.spool-card-head .toggle-btn{width:22px;height:22px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);color:var(--bsp-fg);font-family:var(--bsp-font-mono);font-weight:700;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0;flex-shrink:0;transition:all .12s}.spool-card-head .toggle-btn:hover{background:var(--bsp-blue-pale);border-color:var(--bsp-blue);color:var(--bsp-blue)}.spool-id-block{display:flex;flex-direction:column;gap:2px;min-width:160px;flex:0 1 220px}.spool-id-block .spool-id-num{border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);padding:4px 8px;font-family:var(--bsp-font-mono);font-size:12px;font-weight:700;color:var(--bsp-blue);background:var(--bsp-surface);outline:none}.spool-id-block .spool-id-num:focus{border-color:var(--bsp-blue);box-shadow:0 0 0 2px #1b449c26}.spool-id-block .spool-id-desc{border:1px solid transparent;border-radius:var(--bsp-r-sm);padding:3px 8px;font-size:11px;color:var(--bsp-fg-muted);background:transparent;outline:none}.spool-id-block .spool-id-desc:focus,.spool-id-block .spool-id-desc:hover{border-color:var(--bsp-border-strong);background:var(--bsp-surface);color:var(--bsp-dark)}.spool-card-meta{display:flex;gap:6px;align-items:center;flex-wrap:wrap;flex:1;min-width:0}.spool-due-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-family:var(--bsp-font-mono);font-size:11px;font-weight:600;border:1px solid var(--bsp-border);background:var(--bsp-surface);color:var(--bsp-fg)}.spool-due-pill .lbl{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--bsp-fg-muted)}.spool-due-pill input{border:none;background:transparent;outline:none;padding:0;width:110px;font-family:var(--bsp-font-mono);font-size:11px;font-weight:700;color:inherit}.spool-due-pill.is-overdue{background:#b3261e14;border-color:#b3261e4d;color:var(--bsp-red-fg,#B3261E)}.spool-due-pill.is-at-risk{background:#c7770014;border-color:#c777004d;color:var(--bsp-orange-fg,#C77700)}.spool-stat-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-family:var(--bsp-font-mono);font-size:11px;font-weight:600;border:1px solid var(--bsp-border);background:var(--bsp-surface);color:var(--bsp-fg)}.spool-stat-pill .dot{display:inline-block;width:7px;height:7px;border-radius:50%}.pipeline-strip{display:flex;gap:2px;padding:8px 12px;background:var(--bsp-surface);align-items:stretch}.pipeline-cell{flex:1;height:24px;border-radius:3px;position:relative;display:flex;align-items:center;justify-content:center;font-family:var(--bsp-font-mono);font-size:9px;font-weight:700;color:#fff;cursor:pointer;transition:transform .12s,box-shadow .12s;border:1px solid transparent;letter-spacing:.02em;text-shadow:0 1px 0 rgba(0,0,0,.18);min-width:24px;overflow:hidden}.pipeline-cell:hover{transform:translateY(-1px);box-shadow:0 2px 6px #14181c33;outline:1px solid rgba(255,255,255,.7);outline-offset:-2px}.pipeline-cell.is-skipped{background:var(--bsp-surface-muted)!important;color:var(--bsp-fg-subtle)!important;border:1px dashed var(--bsp-border-strong);text-shadow:none;cursor:default}.pipeline-cell.is-skipped:hover{transform:none;box-shadow:none;outline:none}.pipeline-cell.is-pending{opacity:.45}.pipeline-cell.is-in-progress{box-shadow:0 0 0 2px #c777004d;animation:pulse-stage 1.6s ease-in-out infinite}.pipeline-cell.is-complete:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 60%,rgba(255,255,255,.45) 60%,rgba(255,255,255,.45) 70%,transparent 70%)}.pipeline-cell.is-current{outline:2px solid var(--bsp-blue);outline-offset:1px;z-index:1}@keyframes pulse-stage{0%,to{box-shadow:0 0 0 2px #c777004d}50%{box-shadow:0 0 0 4px #c7770073}}.pipeline-foot{display:flex;align-items:center;justify-content:space-between;padding:4px 12px 10px;font-size:10px;font-family:var(--bsp-font-mono);color:var(--bsp-fg-muted);gap:10px}.pipeline-foot-left{display:flex;align-items:center;gap:8px;font-family:var(--bsp-font-sans);font-size:11px;color:var(--bsp-dark);font-weight:700}.pipeline-progress{flex:1;height:5px;background:var(--bsp-surface-muted);border-radius:3px;overflow:hidden;border:1px solid var(--bsp-border);min-width:80px}.pipeline-progress-bar{height:100%;background:linear-gradient(90deg,var(--bsp-blue),var(--bsp-green));transition:width .3s}.btn-sm.progress-btn{background:var(--bsp-green,#2E7D32);color:#fff;border-color:var(--bsp-green,#2E7D32);font-weight:700;letter-spacing:.06em}.btn-sm.progress-btn:hover:not(:disabled){background:var(--bsp-green-fg,#1F5F25);border-color:var(--bsp-green-fg,#1F5F25)}.btn-sm.progress-btn:disabled{background:var(--bsp-surface-muted);color:var(--bsp-fg-muted);border-color:var(--bsp-border);cursor:not-allowed;opacity:.65}.stages-wrap{padding:10px 12px 12px}.stages-wrap-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px;flex-wrap:wrap}.stages-wrap-title{font-family:var(--bsp-font-display);font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em}.bay-picker{display:flex;align-items:center;gap:4px;margin:0 0 8px;flex-wrap:wrap}.bay-picker-label{font-family:var(--bsp-font-display);font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em;margin-right:4px}.bay-picker-btn{padding:3px 8px;font-family:var(--bsp-font-mono);font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);background:transparent;cursor:pointer;min-width:30px;transition:all .12s}.bay-picker-btn:disabled{cursor:not-allowed;opacity:.55}.bay-picker-btn.none{color:var(--bsp-fg-muted)}.bay-picker-btn.active.none{background:var(--bsp-surface-muted);border-color:var(--bsp-border-strong)}.eye-toggle{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--bsp-r-sm);border:1px solid var(--bsp-border-strong);background:var(--bsp-surface);font-family:var(--bsp-font-sans);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--bsp-fg-muted);cursor:pointer;transition:all .12s}.eye-toggle:hover{border-color:var(--bsp-blue);color:var(--bsp-blue);background:var(--bsp-blue-pale)}.eye-toggle.active{background:var(--bsp-blue);color:#fff;border-color:var(--bsp-blue)}.stages-table{width:100%;border-collapse:collapse;font-size:11px;font-family:var(--bsp-font-sans);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-sm);overflow:hidden}.stages-table th{background:var(--bsp-surface-muted);padding:6px 8px;text-align:left;font-size:9px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--bsp-border)}.stages-table td{padding:4px 8px;border-bottom:1px solid var(--bsp-border);vertical-align:middle;color:var(--bsp-fg)}.stages-table tr:last-child td{border-bottom:none}.stages-table tr.is-skipped td{opacity:.55;background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(112,115,114,.05) 6px,rgba(112,115,114,.05) 12px)}.stages-table tr.is-complete td{background:#2e7d320a}.stage-tag{display:inline-flex;align-items:center;justify-content:center;width:34px;padding:2px 0;border-radius:3px;font-family:var(--bsp-font-mono);font-size:9px;font-weight:700;color:#fff;letter-spacing:.02em;margin-right:6px}.stage-name-cell{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--bsp-dark);font-weight:600}.stage-hide-btn{border:none;background:transparent;padding:2px;cursor:pointer;color:var(--bsp-fg-subtle);border-radius:3px;display:inline-flex;align-items:center;justify-content:center}.stage-hide-btn:hover{background:var(--bsp-surface-muted);color:var(--bsp-fg)}.stage-inp{border:1px solid var(--bsp-border-strong);border-radius:var(--bsp-r-sm);padding:3px 6px;font-size:11px;font-family:var(--bsp-font-sans);outline:none;background:var(--bsp-surface);color:var(--bsp-dark);transition:border-color .12s;width:100%}.stage-inp:focus{border-color:var(--bsp-blue);box-shadow:0 0 0 2px #1b449c26}.stage-inp.w-date{width:130px;font-family:var(--bsp-font-mono)}.stage-inp.w-hrs{width:60px;font-family:var(--bsp-font-mono);text-align:right}.stage-inp.w-asg{width:160px}.stage-inp.w-stat{width:115px}.bsp-mention{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:var(--bsp-blue-pale);color:var(--bsp-blue);font-weight:700;font-size:.95em;line-height:1.2;text-decoration:none;border:1px solid var(--bsp-blue-border,rgba(27,68,156,.3))}.bsp-mention[data-id]{cursor:default}.bsp-mention-pop{position:absolute;z-index:300;min-width:240px;max-width:320px;max-height:240px;overflow-y:auto;background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-md);box-shadow:var(--bsp-shadow-pop);padding:4px}.bsp-mention-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:transparent;border:none;border-radius:var(--bsp-r-sm);cursor:pointer;text-align:left;font-family:var(--bsp-font-sans)}.bsp-mention-item:hover,.bsp-mention-item.is-active{background:var(--bsp-blue-pale);color:var(--bsp-blue)}.bsp-mention-avatar{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;color:#fff;font-size:9px;font-weight:700;flex-shrink:0}.bsp-mention-labels{display:flex;flex-direction:column;gap:1px;min-width:0}.bsp-mention-labels strong{font-size:12px;color:var(--bsp-dark)}.bsp-mention-labels em{font-size:10px;color:var(--bsp-fg-muted);font-style:normal;font-family:var(--bsp-font-mono);letter-spacing:.02em}.bsp-mention-empty{padding:8px 10px;font-size:12px;color:var(--bsp-fg-muted);font-style:italic}.bsp-msg-body p{margin:0 0 6px}.bsp-msg-body p:last-child{margin-bottom:0}.bsp-msg-body ul,.bsp-msg-body ol{margin:0 0 6px;padding-left:22px}.bsp-msg-body li{margin-bottom:2px}.bsp-msg-body a{color:var(--bsp-blue);text-decoration:underline}.bsp-msg-body strong{font-weight:700}.bsp-msg-body em{font-style:italic}.bsp-msg-body u{text-decoration:underline}.ProseMirror{outline:none}.ProseMirror p{margin:0 0 6px}.ProseMirror p:last-child{margin-bottom:0}.ProseMirror ul,.ProseMirror ol{margin:0 0 6px;padding-left:22px}.ProseMirror a{color:var(--bsp-blue);text-decoration:underline}.ProseMirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--bsp-fg-muted);pointer-events:none;height:0;font-style:italic;font-size:12px}.an-wrap{display:flex;flex-direction:column;gap:18px}.an-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}@media(max-width:1000px){.an-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.an-kpi{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);padding:18px 20px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--bsp-shadow-card);position:relative;overflow:hidden}.an-kpi.feature{background:linear-gradient(135deg,var(--bsp-blue) 0%,var(--bsp-blue-deep,#0F2C66) 100%);border-color:var(--bsp-blue-deep,#0F2C66);color:#fff}.an-kpi.feature .an-kpi-label,.an-kpi.feature .an-kpi-sub{color:#ffffffc7}.an-kpi-label{font-size:10px;font-weight:700;color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.14em;display:flex;align-items:center;gap:8px}.an-kpi-label .an-pill{font-size:9px;background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);color:var(--bsp-fg-muted);padding:1px 7px;border-radius:999px;letter-spacing:.08em;font-weight:700}.an-kpi.feature .an-pill{background:#ffffff29;border-color:#ffffff47;color:#fff}.an-kpi-val{font-family:var(--bsp-font-display);font-size:34px;font-weight:700;line-height:1.05;letter-spacing:-.01em;color:var(--bsp-dark);font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:6px}.an-kpi.feature .an-kpi-val{color:#fff}.an-kpi-val .an-curr{font-size:14px;font-weight:600;color:var(--bsp-fg-muted);letter-spacing:.04em}.an-kpi.feature .an-kpi-val .an-curr{color:#ffffffb3}.an-kpi-sub{font-size:11px;color:var(--bsp-fg-muted);font-family:var(--bsp-font-mono);letter-spacing:.02em}.an-kpi-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bsp-blue)}.an-kpi.green .an-kpi-bar{background:var(--bsp-green)}.an-kpi.orange .an-kpi-bar{background:var(--bsp-orange,#C77700)}.an-kpi.feature .an-kpi-bar{display:none}.an-card{background:var(--bsp-surface);border:1px solid var(--bsp-border);border-radius:var(--bsp-r-lg);box-shadow:var(--bsp-shadow-card)}.an-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--bsp-border)}.an-card-title{font-family:var(--bsp-font-display);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--bsp-dark)}.an-card-sub{font-size:11px;color:var(--bsp-fg-muted);font-family:var(--bsp-font-mono);letter-spacing:.02em}.an-card-body{padding:18px}.an-chart{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;align-items:end;height:200px;padding:0 6px}.an-bar-col{display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;position:relative}.an-bar-stack{width:100%;max-width:64px;display:flex;flex-direction:column-reverse;justify-content:flex-end;align-items:stretch;position:relative;height:100%}.an-bar-seg{width:100%;transition:height .35s cubic-bezier(.2,0,.2,1)}.an-bar-seg.completed{background:var(--bsp-green)}.an-bar-seg.remaining{background:var(--bsp-blue);border-radius:var(--bsp-r-sm) var(--bsp-r-sm) 0 0}.an-bar-seg.projected{background:var(--bsp-blue-tint,rgba(27,68,156,.12));border:1px solid var(--bsp-blue-border,rgba(27,68,156,.3));border-radius:var(--bsp-r-sm) var(--bsp-r-sm) 0 0;border-bottom:none}.an-bar-seg.completed:only-child{border-radius:var(--bsp-r-sm) var(--bsp-r-sm) 0 0}.an-bar-val{position:absolute;top:-22px;left:0;right:0;text-align:center;font-family:var(--bsp-font-mono);font-size:11px;font-weight:700;color:var(--bsp-dark);font-variant-numeric:tabular-nums;white-space:nowrap}.an-bar-meta{display:flex;flex-direction:column;align-items:center;gap:2px;font-family:var(--bsp-font-mono);font-size:10px;color:var(--bsp-fg-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:700}.an-bar-meta .an-month{color:var(--bsp-dark)}.an-bar-col.current .an-bar-meta .an-month{color:var(--bsp-blue);background:var(--bsp-blue-pale,rgba(27,68,156,.1));border-radius:var(--bsp-r-sm);padding:1px 6px}.an-legend{display:flex;gap:18px;flex-wrap:wrap;padding:12px 18px 0;font-size:11px;color:var(--bsp-fg-muted);font-family:var(--bsp-font-mono);letter-spacing:.02em}.an-legend .an-swatch{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:6px;vertical-align:-1px}.an-swatch.completed{background:var(--bsp-green)}.an-swatch.remaining{background:var(--bsp-blue)}.an-swatch.projected{background:var(--bsp-blue-tint,rgba(27,68,156,.12));border:1px solid var(--bsp-blue-border,rgba(27,68,156,.3))}.an-2col{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}@media(max-width:1000px){.an-2col{grid-template-columns:1fr}}.an-table{width:100%;border-collapse:collapse;font-size:12px}.an-table th{font-size:10px;font-weight:700;text-align:left;padding:10px 18px;background:var(--bsp-surface-muted);color:var(--bsp-fg-muted);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--bsp-border)}.an-table th.num{text-align:right}.an-table td{padding:10px 18px;border-bottom:1px solid var(--bsp-border);vertical-align:middle;color:var(--bsp-fg)}.an-table td.num{text-align:right;font-family:var(--bsp-font-mono);font-weight:600;font-variant-numeric:tabular-nums;color:var(--bsp-dark)}.an-table tr:last-child td{border-bottom:none}.an-table tr.totals td{background:var(--bsp-surface-muted);font-weight:700;color:var(--bsp-dark);border-top:2px solid var(--bsp-border-strong)}.an-share-bar{height:5px;background:var(--bsp-surface-muted);border-radius:3px;overflow:hidden;margin-top:4px}.an-share-bar>span{display:block;height:100%;background:var(--bsp-blue);border-radius:3px}.an-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;background:var(--bsp-fg-muted)}.an-status-dot.new{background:var(--bsp-blue-tint,rgba(27,68,156,.12));outline:1px solid var(--bsp-blue-border,rgba(27,68,156,.3))}.an-status-dot.scheduled{background:#9db3df}.an-status-dot.inprogress{background:var(--bsp-blue)}.an-status-dot.review{background:var(--bsp-orange,#C77700)}.an-status-dot.ifa{background:#8054c9}.an-status-dot.complete{background:var(--bsp-green)}.an-status-dot.cancelled{background:var(--bsp-red,#B3261E)}.an-pill{font-size:9px;background:var(--bsp-surface-muted);border:1px solid var(--bsp-border);color:var(--bsp-fg-muted);padding:1px 7px;border-radius:999px;letter-spacing:.08em;font-weight:700;text-transform:uppercase}.an-empty{padding:40px 20px;text-align:center;color:var(--bsp-fg-muted);font-size:13px;font-style:italic}:root{--bsp-blue: #1B449C;--bsp-blue-2: #2453B5;--bsp-blue-deep: #122F70;--bsp-blue-tint: #E6ECF6;--bsp-blue-pale: #F2F5FB;--bsp-blue-border: #D6DEEE;--bsp-grey: #707372;--bsp-grey-deep: #4A4D4C;--bsp-grey-mid: #9CA09F;--bsp-grey-pale: #E5E6E5;--ink-900: #14181C;--ink-800: #232830;--ink-700: #353B43;--ink-600: #4A4D4C;--ink-500: #707372;--ink-400: #9CA09F;--ink-300: #C8CACA;--ink-200: #E5E6E5;--ink-100: #F2F3F2;--ink-050: #F8F9F8;--ink-000: #FFFFFF;--bsp-green: #2E7D32;--bsp-green-tint: rgba(46,125,50,.1);--bsp-green-fg: #246628;--bsp-orange: #C77700;--bsp-orange-tint: rgba(199,119,0,.12);--bsp-orange-fg: #8F5600;--bsp-red: #B3261E;--bsp-red-tint: rgba(179,38,30,.1);--bsp-red-fg: #8C1D17;--bsp-dark: #14181C;--bsp-fg: #232830;--bsp-fg-muted: #707372;--bsp-fg-subtle: #9CA09F;--bsp-border: #E5E6E5;--bsp-border-strong: #C8CACA;--bsp-surface: #FFFFFF;--bsp-surface-muted: #F8F9F8;--bsp-page-bg: #F2F3F2;--bsp-font-sans: "Barlow", system-ui, -apple-system, sans-serif;--bsp-font-display: "Barlow Condensed", "Barlow", system-ui, sans-serif;--bsp-font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--bsp-r-sm: 2px;--bsp-r-md: 4px;--bsp-r-lg: 8px;--bsp-r-xl: 10px;--radius-pill: 999px;--bsp-shadow-card: 0 1px 0 rgba(20,24,28,.04), 0 1px 2px rgba(20,24,28,.06);--bsp-shadow-hover: 0 1px 1px rgba(20,24,28,.05), 0 4px 10px rgba(20,24,28,.08);--bsp-shadow-pop: 0 4px 16px rgba(20,24,28,.1), 0 12px 28px rgba(20,24,28,.12);--bsp-shadow-focus: 0 0 0 3px rgba(27,68,156,.3);--ease-standard: cubic-bezier(.2, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .28s}.bsp-root.theme-dark{--bsp-page-bg: #0E1216;--bsp-surface: #161B21;--bsp-surface-muted: #1B2129;--bsp-border: #262E37;--bsp-border-strong: #353F4A;--bsp-dark: #F2F3F2;--bsp-fg: #E5E6E5;--bsp-fg-muted: #9CA09F;--bsp-fg-subtle: #707372;--bsp-blue-tint: rgba(59,107,201,.18);--bsp-blue-pale: rgba(59,107,201,.1);--bsp-blue-border: rgba(59,107,201,.3);--bsp-blue-2: #3B6BC9}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bsp-page-bg);color:var(--bsp-fg);font-family:var(--bsp-font-sans);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}.bsp-signin-stage{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#14181c;z-index:0}.bsp-signin-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(/assets/login-pipework-bg.jpg);background-size:cover;background-position:center 38%;background-repeat:no-repeat;z-index:0}.bsp-signin-stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#12161b99;z-index:1}.bsp-signin-card{position:relative;z-index:2;width:440px;max-width:calc(100% - 48px);background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 4px 16px #14181c2e,0 24px 48px #14181c47;font-family:Barlow,system-ui,sans-serif}.bsp-signin-progress{position:relative;height:0;background:#1b449c2e;overflow:hidden;transition:height .18s cubic-bezier(.2,0,.2,1)}.bsp-signin-card.is-busy .bsp-signin-progress{height:2px}.bsp-signin-progress-runner{position:absolute;inset:0 auto 0 0;width:40%;background:#1b449c;transform:translate(-100%)}.bsp-signin-card.is-busy .bsp-signin-progress-runner{animation:bspbar 1.1s ease-in-out infinite}@keyframes bspbar{0%{transform:translate(-100%)}to{transform:translate(360%)}}.bsp-signin-keyline{height:4px;background:#1b449c}.bsp-signin-body{padding:40px 40px 32px}.bsp-signin-logo{display:block;height:56px;width:auto}.bsp-signin-eyebrow{margin:28px 0 0;font-family:Barlow,sans-serif;font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#1b449c}.bsp-signin-title{margin:6px 0 0;font-family:Barlow Condensed,Barlow,sans-serif;font-weight:700;font-size:38px;line-height:1.05;letter-spacing:.02em;text-transform:uppercase;color:#14181c}.bsp-signin-btn{margin-top:28px;display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;padding:0 16px;border:0;border-radius:4px;background:#1b449c;color:#fff;font-family:Barlow,sans-serif;font-weight:600;font-size:16px;letter-spacing:.01em;cursor:pointer;transition:background .18s cubic-bezier(.2,0,.2,1),transform 60ms cubic-bezier(.2,0,.2,1)}.bsp-signin-btn:hover:not(:disabled){background:#122f70}.bsp-signin-btn:active:not(:disabled){background:#122f70;transform:translateY(1px)}.bsp-signin-btn:disabled{cursor:progress}.bsp-signin-spinner{width:17px;height:17px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:bspspin .7s linear infinite}@keyframes bspspin{to{transform:rotate(360deg)}}.bsp-signin-note{margin-top:18px;display:inline-flex;align-items:center;gap:8px;color:#707372;font-family:Barlow,sans-serif;font-size:12.5px}.bsp-signin-note svg{flex-shrink:0}.bsp-signin-error{margin-top:12px;font-family:Barlow,sans-serif;font-size:12.5px;color:#b3261e}.bsp-signin-footer{padding:14px 40px;border-top:1px solid #E5E6E5;background:#f8f9f8;font-family:Barlow,sans-serif;font-size:12px;color:#707372}@media(prefers-reduced-motion:reduce){.bsp-signin-card.is-busy .bsp-signin-progress-runner,.bsp-signin-spinner{animation:none}.bsp-signin-progress-runner{transform:translate(0);width:100%;opacity:.6}}
