@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@300;400;500;600&display=swap";:root{--bg: #0b243a;--surface: #091a2a;--surface2: #0d2035;--surface3: #0f2540;--border: #1a3858;--text: #ebf5fc;--muted: #6a9abf;--dim: #3a5a78;--accent: #4db8ff;--accent-hover: #70caff;--accent-rgb: 77, 184, 255;--green: #3fb950;--red: #f85149;--blue: #005eb5;--accent1: #ff5033;--accent2: #f0a500;--accent2-hover: #ffbf3d;--accent2-text: #f0a500;--accent3: #4ec9b0}:root[data-theme=dark]{--bg: #0b243a;--surface: #091a2a;--surface2: #0d2035;--surface3: #0f2540;--border: #1a3858;--text: #ebf5fc;--muted: #6a9abf;--dim: #3a5a78;--accent: #4db8ff;--accent-hover: #70caff;--accent-rgb: 77, 184, 255;--green: #3fb950;--red: #f85149;--blue: #005eb5;--accent1: #ff5033;--accent2: #f0a500;--accent2-hover: #ffbf3d;--accent2-text: #f0a500;--accent3: #4ec9b0;color-scheme:dark}:root[data-theme=light]{--bg: #f4f8fc;--surface: #ffffff;--surface2: #eef3f9;--surface3: #e5edf6;--border: #c5d3e2;--text: #102236;--muted: #4c6881;--dim: #7189a1;--accent: #005eb5;--accent-hover: #1d74c4;--accent-rgb: 0, 94, 181;--green: #2d8f3f;--red: #c6423d;--blue: #005eb5;--accent1: #d05a3f;--accent2: #c98500;--accent2-hover: #d79a25;--accent2-text: #005eb5;--accent3: #2b8f84;color-scheme:light}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:IBM Plex Sans,sans-serif}#app-chrome{display:flex;flex-direction:column;height:100vh}header{height:50px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:12px;flex-shrink:0}.logo{font-family:IBM Plex Mono,monospace;font-weight:600;font-size:14px;letter-spacing:.04em;color:var(--accent)}.logo span{color:var(--muted);font-weight:400}.hdivider{width:1px;height:20px;background:var(--border)}.htitle{font-size:12px;color:var(--muted)}.htitle strong{color:var(--text)}.hloadtime{font-size:11px;color:var(--dim);font-weight:400;white-space:nowrap}.spacer{flex:1}.btn{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:500;padding:5px 11px;border-radius:4px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:var(--surface);border-color:var(--accent);font-weight:600}.btn.primary:hover{background:var(--accent-hover)}.btn.icon-btn{width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;position:relative}.btn.icon-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.btn.icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.btn.icon-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb),.08)}.btn.icon-btn.primary,.btn.icon-btn.primary:hover{color:var(--surface)}.btn.icon-btn.logout{background:var(--accent2);color:var(--surface);border-color:var(--accent2);font-weight:600}.btn.icon-btn.logout:hover{background:var(--accent2-hover);border-color:var(--accent2-hover);color:var(--surface)}.btn.icon-btn[data-tooltip]:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%,-2px);background:var(--surface3);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:4px 7px;font-family:IBM Plex Sans,sans-serif;font-size:11px;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;z-index:20;transition:opacity .15s,transform .15s}.btn.icon-btn[data-tooltip]:hover:after,.btn.icon-btn[data-tooltip]:focus-visible:after{opacity:1;transform:translate(-50%)}.filter-bar{height:44px;background:var(--surface2);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 16px;gap:8px;flex-shrink:0}.filter-label{font-family:IBM Plex Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim);white-space:nowrap}.filter-select,.filter-input{font-family:IBM Plex Mono,monospace;font-size:11px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:4px 8px;outline:none;transition:border-color .15s}.filter-select{min-width:155px;cursor:pointer}.filter-input{width:130px}.filter-select:focus,.filter-input:focus{border-color:var(--accent)}.fsep{width:1px;height:20px;background:var(--border);margin:0 2px}.ms-wrap{position:relative;font-family:IBM Plex Mono,monospace;font-size:11px}.ms-control{min-width:155px;max-width:260px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:3px 24px 3px 6px;cursor:pointer;display:flex;flex-wrap:wrap;gap:3px;align-items:center;min-height:26px;transition:border-color .15s;box-sizing:border-box;-webkit-user-select:none;user-select:none}.ms-control:focus-within,.ms-control.open{border-color:var(--accent)}.columns-wrap .ms-control{min-width:138px;max-width:180px}.ms-arrow{position:absolute;right:7px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:9px}.ms-placeholder{color:var(--dim);white-space:nowrap}.ms-tag{background:rgba(var(--accent-rgb),.15);border:1px solid rgba(var(--accent-rgb),.4);color:var(--accent);border-radius:3px;padding:0 5px;font-size:10px;white-space:nowrap;display:flex;align-items:center;gap:3px;max-width:160px;overflow:hidden;text-overflow:ellipsis}.ms-tag-x{cursor:pointer;opacity:.7;font-size:11px;line-height:1;flex-shrink:0}.ms-tag-x:hover{opacity:1;color:var(--red)}.ms-dropdown{position:absolute;top:calc(100% + 3px);left:0;min-width:100%;max-width:320px;background:var(--surface2);border:1px solid var(--accent);border-radius:4px;z-index:9999;box-shadow:0 6px 24px #00000080;display:none;flex-direction:column}.ms-dropdown.open{display:flex}.ms-search{padding:6px 8px;border-bottom:1px solid var(--border)}.ms-search input{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--text);font-family:IBM Plex Mono,monospace;font-size:11px;padding:3px 6px;outline:none;box-sizing:border-box}.ms-search input:focus{border-color:var(--accent)}.ms-list{max-height:220px;overflow-y:auto;padding:3px 0}.ms-list::-webkit-scrollbar{width:6px}.ms-list::-webkit-scrollbar-track{background:var(--surface2)}.ms-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.ms-option{display:flex;align-items:center;gap:7px;padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;color:var(--text);transition:background .1s}.ms-option:hover{background:rgba(var(--accent-rgb),.08)}.ms-option.selected{color:var(--accent);background:rgba(var(--accent-rgb),.05)}.ms-option input[type=checkbox]{accent-color:var(--accent);width:12px;height:12px;flex-shrink:0;cursor:pointer}.ms-footer{border-top:1px solid var(--border);padding:5px 8px;display:flex;gap:6px;justify-content:flex-end}.ms-footer button{font-family:IBM Plex Mono,monospace;font-size:10px;padding:2px 8px;border-radius:3px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--muted)}.ms-footer button:hover{border-color:var(--accent);color:var(--accent)}.summary-bar{display:flex;gap:1px;background:var(--border);border-bottom:1px solid var(--border);flex-shrink:0}.sc{flex:1;background:var(--surface);padding:6px 14px}.sc-label{font-family:IBM Plex Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:.1em;color:var(--dim)}.sc-value{font-family:IBM Plex Mono,monospace;font-size:14px;font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden}#grid-wrap{flex:1;min-height:0;position:relative}#loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);z-index:100;gap:12px}#loading-overlay.hidden{display:none}#loading-overlay .spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}#loading-overlay .load-text{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--muted)}#loading-overlay .load-error{font-family:IBM Plex Mono,monospace;font-size:12px;color:var(--red)}@keyframes spin{to{transform:rotate(360deg)}}.webix_view,.webix_dtable{background:var(--bg)!important}.webix_hcell{background:var(--surface)!important;color:var(--muted)!important;font-family:IBM Plex Mono,monospace!important;font-size:10px!important;font-weight:500!important;text-transform:uppercase!important;letter-spacing:.06em!important;border-color:var(--border)!important}.webix_ss_header,.webix_hs_center,.webix_hs_left,.webix_hs_right,.webix_hcolumn{background:var(--bg)!important}.webix_hcell.group_header{font-size:9px!important;text-align:center!important;letter-spacing:.12em!important}.webix_hcell.hdr_est{color:var(--blue)!important;border-top:2px solid var(--blue)!important}.webix_hcell.hdr_actual{color:var(--green)!important;border-top:2px solid var(--green)!important}.webix_hcell.hdr_proj{color:var(--accent)!important;border-top:2px solid var(--accent)!important}.webix_hcell.hdr_item{color:var(--muted)!important;border-top:2px solid var(--muted)!important}.webix_hcell.hdr_completion{color:var(--accent3)!important;border-top:2px solid var(--accent3)!important}.webix_hcell.hdr_variance{color:var(--accent1)!important;border-top:2px solid var(--accent1)!important}.webix_hcell.hdr_col{color:var(--muted)!important;font-size:10px!important;text-align:center!important}.webix_hcell.webix_last,.webix_cell.webix_last,.webix_ss_body .webix_column.webix_last .webix_cell,.webix_ss_body .webix_row .webix_cell:last-child{border-right:1px solid var(--border)!important}.webix_cell{background:var(--bg)!important;color:var(--text)!important;border-color:var(--border)!important;font-size:12px!important}.webix_row_select .webix_cell{background:rgba(var(--accent-rgb),.2)!important}.webix_dtable .webix_ss_body .webix_row:hover .webix_cell{background:rgba(var(--accent-rgb),.1)!important}.webix_dtable .webix_row_odd .webix_cell{background:rgba(var(--accent-rgb),.03)!important}.webix_cell.group_row_job{background:var(--surface2)!important;font-weight:600;font-family:IBM Plex Mono,monospace;font-size:11px}.webix_cell.group_row_phase{background:rgba(var(--accent-rgb),.08)!important;font-family:IBM Plex Mono,monospace;font-size:11px}.webix_cell.proj_edit_col{background:var(--surface)!important;cursor:pointer}.webix_cell.proj_edit_col.editable_detail{box-shadow:inset 0 0 0 1px var(--accent)!important;background:var(--surface2)!important}.webix_cell.proj_edit_col.editable_detail:hover{box-shadow:inset 0 0 0 1px var(--accent),inset 0 0 6px rgba(var(--accent-rgb),.15)!important;background:var(--surface3)!important}.webix_inp_text_editor{background:var(--surface2)!important;color:var(--accent)!important;border:1px solid var(--accent)!important;outline:none!important;font-family:IBM Plex Mono,monospace!important;font-size:11px!important;text-align:right!important;padding:0 6px!important;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.5)!important}.webix_ss_left .webix_cell{border-right-color:var(--border)!important}.webix_ss_left{border-right:1px solid var(--border)!important}.webix_scroll_x::-webkit-scrollbar,.webix_scroll_y::-webkit-scrollbar{width:8px;height:8px}.webix_scroll_x::-webkit-scrollbar-track,.webix_scroll_y::-webkit-scrollbar-track{background:var(--bg)}.webix_scroll_x::-webkit-scrollbar-thumb,.webix_scroll_y::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.num_cell{font-family:IBM Plex Mono,monospace;font-size:11px;text-align:right}.dim_cell{color:var(--dim)!important}.red_cell{color:var(--red)!important}.grn_cell{color:var(--green)!important;font-weight:600}.acc_cell{color:var(--accent)!important;font-weight:600}.editable-cell-empty{width:100%;height:100%;box-shadow:inset 0 0 0 1px var(--accent);background:var(--surface2)}.editable-cell{width:100%;height:100%;box-shadow:inset 0 0 0 1px var(--accent);background:var(--surface2);display:flex;align-items:center;justify-content:flex-end;padding:0 3px;box-sizing:border-box;overflow:hidden;font-size:11px;white-space:nowrap}
