:root{--brand:#9e2e2a;--brand-dark:#7a2420;--brand-bg:#f7e9e8;--navy:var(--brand);--navy-dark:var(--brand-dark);--green:#2e7d32;--green-bg:#e7f3e8;--amber:#b8860b;--amber-bg:#fbf3df;--red:#c0392b;--red-bg:#fbeae8;--blue:#2f6fed;--grey:#7a7a7a;--grey-light:#f5f5f5;--border:#e5e5e5;--card:#fff;--ink:#3a3a3a;--font-display:"M PLUS 1p", "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-display);background:var(--grey-light);color:var(--ink);margin:0}#root{min-height:100vh}.topbar{z-index:15;color:var(--ink);border-bottom:1px solid var(--border);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex;position:sticky;top:0}.topbar-brand{align-items:center;gap:14px;display:flex}.topbar-logo{width:auto;height:34px;display:block}.topbar h1{letter-spacing:.2px;color:var(--ink);align-items:center;gap:10px;margin:0;font-size:15px;font-weight:700;display:flex}.topbar .sub{color:var(--grey);margin-top:2px;font-size:11.5px}.badge{background:var(--amber-bg);color:var(--amber);letter-spacing:.4px;border-radius:12px;padding:3px 9px;font-size:10.5px;font-weight:700}.selected-project-chip{white-space:nowrap;background:var(--grey-light);color:var(--grey);border:1px solid var(--border);border-radius:12px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:11px;display:inline-flex}.selected-project-chip strong{color:var(--ink);font-weight:700}.selected-project-clear{width:16px;height:16px;color:var(--grey);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:14px;line-height:1;display:flex}.selected-project-clear:hover{background:var(--border);color:var(--ink)}.topbar-action-btn{color:var(--ink);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-family:inherit;font-size:11.5px;font-weight:600}.topbar-action-btn:hover{border-color:var(--navy);color:var(--navy)}.tabs{gap:22px;display:flex}.tab-btn{color:var(--grey);text-transform:uppercase;letter-spacing:.6px;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 2px;font-family:inherit;font-size:12.5px;font-weight:600;transition:color .12s,border-color .12s}.tab-btn:hover{color:var(--ink)}.tab-btn.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:700}.wrap{text-align:left;max-width:1440px;margin:0 auto;padding:22px 20px 60px}.wrap-sidenav{max-width:none;padding:0}.section-nav-layout{min-height:calc(100vh - var(--topbar-h,0px));align-items:flex-start;gap:24px;display:flex}.section-nav{background:var(--card);border-right:1px solid var(--border);flex:none;align-self:stretch;width:210px}.section-nav-inner{top:calc(var(--topbar-h,0px) + 12px);flex-direction:column;gap:2px;padding:18px 12px;display:flex;position:sticky}.section-nav-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.section-nav-head .icon-btn{flex:none;width:22px;height:22px;margin-bottom:4px}.section-nav-title{letter-spacing:.08em;text-transform:uppercase;color:var(--grey);padding:2px 9px 6px;font-size:10.5px;font-weight:700}.section-nav-btn{color:#3a4358;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:7px 9px;font-family:inherit;font-size:12.5px;font-weight:400}.section-nav-btn:hover{background:var(--grey-light)}.section-nav-btn.is-editing{border-color:var(--border);cursor:grab;background:#fafbfc;align-items:center;gap:8px;display:flex}.section-nav-btn.is-dragging{opacity:.5}.section-nav-handle{color:var(--grey);flex:none}.section-nav-hint{color:var(--grey);padding:6px 9px 0;font-size:10.5px;line-height:1.35}.section-nav-hint.is-error{color:var(--red)}.section-nav-btn.active{background:var(--navy);color:#fff;font-weight:700}.section-nav-content{flex:1;min-width:0;max-width:1440px;margin:0 auto;padding:22px 20px 60px}.section-anchor{scroll-margin-top:calc(var(--topbar-h,0px) + 16px)}.section-nav-toggle{top:calc(var(--topbar-h,0px) + 12px);z-index:21;width:34px;height:34px;color:var(--grey);background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:none;position:fixed;left:12px}.section-nav-toggle:hover{border-color:var(--navy);color:var(--navy)}.section-nav-scrim{inset:var(--topbar-h,0px) 0 0 0;z-index:19;cursor:default;background:#15284559;border:none;padding:0;display:none;position:fixed}@media (width<=1240px){.section-nav-toggle{display:flex}.section-nav{top:var(--topbar-h,0px);z-index:20;width:230px;transition:transform .18s;position:fixed;bottom:0;left:0;overflow-y:auto;transform:translate(-100%);box-shadow:0 0 18px #1528451f}.section-nav.is-open{transform:translate(0)}.section-nav.is-open+.section-nav-scrim{display:block}.section-nav-content{padding-top:58px}.section-nav-inner{position:static}}@media (prefers-reduced-motion:reduce){.section-nav{transition:none}}.project-header{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;padding:18px 22px;display:flex}.project-header h2{color:var(--ink);margin:0 0 4px;font-size:19px}.project-header .meta{color:var(--grey);font-size:12.5px}.stage-pill{background:var(--green-bg);color:var(--green);white-space:nowrap;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700}.snapshot-note{color:var(--amber);background:var(--amber-bg);white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:11.5px;font-weight:600}.real-tag{background:var(--green-bg);color:var(--green);white-space:nowrap;border-radius:10px;padding:3px 9px;font-size:10px;font-weight:700}.illustrative-flag{color:#777;white-space:nowrap;background:#eee;border-radius:10px;padding:3px 9px;font-size:10px;font-weight:700}.stage-selector{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:14px;padding:12px 14px}.stage-selector .ss-label{text-transform:uppercase;letter-spacing:.4px;color:var(--grey);margin-bottom:8px;font-size:10.5px;font-weight:700}.stage-pills{flex-wrap:wrap;gap:6px;display:flex}.stage-pill-btn{border:1px solid var(--border);color:#3a4358;cursor:pointer;background:#fafbfc;border-radius:20px;padding:7px 13px;font-family:inherit;font-size:12px;transition:all .12s}.stage-pill-btn:hover{border-color:var(--navy)}.stage-pill-btn.active{background:var(--navy);border-color:var(--navy);color:#fff;font-weight:700}.stage-pill-btn:disabled{opacity:.5;cursor:default}.stage-pill-btn:disabled:hover{border-color:var(--border)}.kpi-row{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.kpi-row.kpi-row-3{grid-template-columns:repeat(3,1fr)}.widget-header{margin-bottom:18px}.widget-header-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.widget-header-caption{color:var(--grey);margin-bottom:8px;font-size:11.5px;font-weight:600}.widget-row{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;display:grid}.kpi{position:relative}.kpi-remove{color:var(--grey);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:4px;padding:2px 4px;font-size:15px;line-height:1;transition:opacity .12s;position:absolute;top:6px;right:8px}.kpi:hover .kpi-remove,.kpi-remove:focus-visible{opacity:1}.kpi-remove:hover{background:var(--bg);color:var(--ink)}.widget-add-wrap{position:relative}.widget-add-menu{z-index:5;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:190px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 6px 18px #15284524}.widget-add-item{text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px;font-size:13px}.widget-add-item:hover{background:var(--bg)}.stage-pill-row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;display:flex}.stage-pill-row .stage-pill-spacer{flex:auto}.stage-pill-row .stage-status-select{padding:5px 8px;font-size:12.5px}.critical-docs-heading{margin:24px 0 12px;font-size:14.5px}.critical-docs-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}@media (width<=900px){.critical-docs-grid{grid-template-columns:1fr}}.pp-scroll{overflow-x:auto}.pp-row{align-items:stretch;display:flex}.pp-text-col{z-index:2;background:var(--card);border-right:1px solid var(--border);box-sizing:border-box;flex:0 0 190px;padding:6px 10px 6px 0;font-size:12.5px;position:sticky;left:0}.pp-header-text{align-items:flex-end;padding-bottom:4px;font-weight:700;display:flex}.pp-task-name{overflow-wrap:anywhere}.pp-graph-col{flex:none;min-height:34px;position:relative}.pp-header-row .pp-graph-col{min-height:20px}.pp-header-row{border-bottom:1px solid var(--border);padding-bottom:4px}.pp-month-tick{color:var(--grey);font-size:11px;font-weight:700;position:absolute;top:0}.pp-week-line{background:var(--border);width:1px;position:absolute;top:0;bottom:0}.pp-staff-heading{z-index:1;color:var(--ink);padding:8px 0 4px;font-size:12.5px;font-weight:700;display:inline-block;position:sticky;left:0}.pp-staff-group+.pp-staff-group{border-top:1px solid var(--border);margin-top:6px}.pp-bar{background:var(--blue);border-radius:5px;height:20px;position:absolute;top:7px}.pp-progress-line{background:#14161a;width:2px;position:absolute;top:-3px;bottom:-3px}.pp-deadline-line{background:var(--red);width:2px;position:absolute;top:2px;bottom:2px}.kpi{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px 18px}.kpi .label{color:var(--grey);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;font-size:11.5px;font-weight:700}.kpi .value{color:var(--ink);font-size:22px;font-weight:700}.kpi .sub{color:var(--grey);margin-top:4px;font-size:12px}.bar-track{background:#edeff3;border-radius:5px;height:8px;margin-top:10px;position:relative;overflow:hidden}.bar-fill{background:var(--green);border-radius:5px;height:100%}.bar-fill.amber{background:var(--amber)}.grid-2{grid-template-columns:1.35fr .95fr;gap:16px;margin-bottom:18px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:18px 20px}.card h3{color:var(--ink);margin:0 0 4px;font-size:14.5px}.card .card-sub{color:var(--grey);margin-bottom:14px;font-size:11.5px}.card-header-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.card-header-row h3{margin:0 0 4px}.invoices-header-actions{align-items:center;gap:8px;display:flex}.invoice-status-filter{color:var(--ink);border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:6px;padding:8px 10px;font-family:inherit;font-size:13px}.invoice-status-filter:hover{border-color:var(--navy)}.icon-btn{border:1px solid var(--border);width:28px;height:28px;color:var(--grey);cursor:pointer;background:#fff;border-radius:6px;flex:none;font-size:13px;line-height:1}.icon-btn:hover{border-color:var(--navy);color:var(--navy)}.icon-btn.active{background:var(--navy);border-color:var(--navy);color:#fff}.gantt-add-task{text-align:center;margin-top:12px}.collapsible-card>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;list-style:none;display:flex}.collapsible-card>summary::-webkit-details-marker{display:none}.collapsible-card>summary h3{margin:0}.collapsible-card-arrow{color:var(--grey);flex:none;font-size:11px;transition:transform .15s}.collapsible-card[open] .collapsible-card-arrow{transform:rotate(90deg)}.collapsible-card>.card-sub{margin-top:10px}.gantt{padding-top:6px;position:relative}.gantt-row{height:30px;margin-bottom:6px;position:relative}.gantt-label{color:#3a4358;pointer-events:none;z-index:2;text-shadow:0 0 4px #fff,0 0 4px #fff,0 0 4px #fff;width:100%;padding-left:6px;font-size:11px;line-height:30px;position:absolute;top:0;left:0}.gantt-track{background:#f0f1f4;border-radius:4px;height:22px;margin-top:4px;position:absolute;top:0;left:0;right:0}.gantt-bar{background:var(--navy);opacity:.3;border-radius:4px;height:22px;transition:opacity .15s;position:absolute;top:4px}.gantt-bar.editable{cursor:pointer}.gantt-bar.editable:hover{outline:2px solid var(--navy);outline-offset:1px}.gantt-bar.key-date{background:var(--amber)}.gantt-bar.construction{background:#3b5998}.gantt-bar.is-past{opacity:.9}.gantt-bar.is-current{opacity:1}.gantt-bar .fill{background:var(--green);opacity:.9;border-radius:4px 0 0 4px;transition:width .2s;position:absolute;top:0;bottom:0;left:0}.today-line{background:var(--red);z-index:3;width:2px;transition:left .2s;position:absolute;top:0;bottom:0}.today-tag{color:var(--red);white-space:nowrap;font-size:10px;font-weight:700;transition:left .2s;position:absolute;top:-18px;transform:translate(-50%)}.gantt-milestones{height:26px;margin-bottom:10px;position:relative}.gantt-milestone{cursor:pointer;z-index:10;position:absolute;top:0;transform:translate(-50%)}.gantt-milestone-icon{color:var(--brand);filter:drop-shadow(0 1px 1px #00000026);font-size:40px;line-height:1;display:block}.gantt-milestone-tooltip{background:var(--ink);color:#fff;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:30;border-radius:6px;flex-direction:column;gap:2px;margin-top:4px;padding:7px 10px;font-size:11px;line-height:1.4;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%)}.gantt-milestone-tooltip b{font-size:11.5px}.gantt-milestone-tooltip-hint{color:#cfd6e4;font-style:italic}.gantt-milestone:hover .gantt-milestone-tooltip{opacity:1;visibility:visible}.gantt-legend{color:var(--grey);margin-bottom:10px;font-size:10.5px}.gantt-milestone-swatch{color:var(--brand);font-size:13px}.gantt-axis{border-top:1px solid var(--border);height:16px;margin-top:4px;position:relative}.gantt-axis span{color:var(--grey);font-size:10px;position:absolute;top:4px;transform:translate(-50%)}.dot{border-radius:50%;flex:none;width:7px;height:7px;margin-top:4px;display:inline-block}.dot.done{background:var(--green)}.dot.due{background:var(--amber)}.dot.wait{background:var(--grey)}.action-table-wrap{border:1px solid var(--border);border-radius:8px;max-height:420px;overflow:auto}.action-table{border-collapse:collapse;width:100%;font-size:12px}.action-table th{background:var(--card);text-align:left;border-bottom:2px solid var(--border);z-index:5;padding:6px 8px;position:sticky;top:0}.action-table td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 8px}.action-table tbody tr:last-child td{border-bottom:none}.action-row{cursor:pointer;transition:background .12s}.action-row:hover{background:#f5f7fa}.action-th{align-items:center;gap:2px;display:flex;position:relative}.action-sort-btn{text-transform:uppercase;color:var(--grey);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:10.5px;font-weight:700;display:flex}.action-sort-btn:hover{color:var(--navy)}.sort-caret{font-size:8px}.action-filter-btn{flex:none;width:20px;height:20px;font-size:10px}.action-filter-popover{z-index:30;width:220px;position:absolute;top:calc(100% + 4px);left:0}.action-desc-sub{color:var(--grey);margin-top:2px;font-size:11.5px}.action-field-placeholder{color:var(--grey);font-size:10.5px;font-style:italic}.action-notes-cell{text-overflow:ellipsis;white-space:nowrap;max-width:160px;overflow:hidden}.action-complete-btn{white-space:nowrap;padding:6px 10px;font-size:11px}.action-complete-btn.is-done{color:var(--green);border-color:var(--green-bg);background:var(--green-bg)}.action-empty{text-align:center;color:var(--grey);padding:16px 8px}.action-detail-view{flex-direction:column;gap:10px;margin-top:14px;display:flex}.action-detail-row{border-bottom:1px solid var(--border);justify-content:space-between;gap:16px;padding-bottom:8px;font-size:13px;display:flex}.action-detail-row:last-child{border-bottom:none;padding-bottom:0}.action-detail-row>span:first-child{color:var(--grey);text-transform:uppercase;flex:none;font-size:11px;font-weight:700}.action-detail-row>span:last-child{text-align:right}.action-confirm-card{max-width:360px}.action-stage-group-row td{background:var(--grey-light);color:var(--navy);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border);padding:6px 8px;font-size:10.5px;font-weight:700}.action-totals-row td{background:var(--grey-light);border-top:2px solid var(--border);border-bottom:none;font-weight:700;position:sticky;bottom:0}.feed{margin:0;padding:0;list-style:none}.feed li{border-bottom:1px dashed var(--border);padding:8px 0;font-size:12px}.feed li:last-child{border-bottom:none}.feed .fdate{color:var(--grey);font-size:10.5px;display:block}.tag{vertical-align:middle;border-radius:8px;margin-right:6px;padding:1px 6px;font-size:9.5px;font-weight:700;display:inline-block}.tag.a{background:var(--green-bg);color:var(--green)}.tag.b{color:#2a4ba0;background:#e3e9fb}.tag.c{background:var(--red-bg);color:var(--red)}.footnote{color:var(--grey);border-top:1px solid var(--border);margin-top:22px;padding-top:12px;font-size:10.8px;line-height:1.6}.footnote b{color:#3a4358}.chart-wrap{height:210px;position:relative}.chart-wrap.tall{height:260px}.chart-wrap-square{flex:1;width:100%;min-height:0;position:relative}.card-flex-fill{flex-direction:column;display:flex}.card-flex-fill>:last-child{flex-direction:column;flex:1;min-height:0;display:flex}.no-data-note{text-align:center;color:var(--grey);justify-content:center;align-items:center;padding:0 10px;font-size:12.5px;line-height:1.6;display:flex}.illustrative{opacity:.75}.illustrative-tag{color:#777;background:#eee;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:700}.edited-tag{background:var(--amber-bg);color:var(--amber);border-radius:6px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:700}.running-ping{width:8px;height:8px;display:inline-block;position:relative}.running-ping:before,.running-ping:after{content:"";background:var(--amber);border-radius:50%;position:absolute;inset:0}@keyframes running-ping-ring{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.running-ping:before{animation:1.6s cubic-bezier(.2,.6,.4,1) infinite running-ping-ring}@media (prefers-reduced-motion:reduce){.running-ping:before{opacity:0;animation:none}}table.roll{border-collapse:collapse;width:100%;font-size:12px}table.roll.roll-fixed{table-layout:fixed}table.roll th{text-align:left;text-transform:uppercase;color:var(--grey);border-bottom:2px solid var(--border);padding:6px 8px;font-size:10.5px}table.roll td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 8px}table.roll .action-totals-row td{border-bottom:none}table.roll tr.clickable{cursor:pointer;transition:background .12s}table.roll tr.clickable:hover{background:#f5f7fa}table.roll tr.row-active{background:#eaf0fb}table.roll td.date-cell{white-space:nowrap}.status-chip{white-space:nowrap;border-radius:10px;padding:3px 9px;font-size:10.5px;font-weight:700;display:inline-block}.status-chip.ontrack{background:var(--green-bg);color:var(--green)}.status-chip.watch{background:var(--amber-bg);color:var(--amber)}.status-chip.done{color:#2a4ba0;background:#e3e9fb}.viewing-tag{color:var(--grey);margin-bottom:2px;font-size:11px}.project-selector{margin-bottom:18px}.filter-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:14px;padding-bottom:14px;display:flex}.filter-field{color:var(--grey);text-transform:uppercase;letter-spacing:.4px;flex-direction:column;flex:170px;gap:4px;min-width:150px;font-size:11px;font-weight:700;display:flex}.filter-combobox,.filter-combobox-control{position:relative}.filter-combobox input{text-transform:none;letter-spacing:normal;color:#1d2433;border:1px solid var(--border);text-overflow:ellipsis;background:#fafbfc;border-radius:6px;width:100%;padding:8px 28px 8px 10px;font-family:inherit;font-size:13px;font-weight:400}.filter-combobox input::placeholder{color:var(--grey);font-weight:400}.filter-combobox input:focus{border-color:var(--navy);outline:none}.filter-combobox input:disabled{color:var(--grey);background:var(--grey-light);cursor:not-allowed}.filter-combobox-arrow{color:var(--grey);pointer-events:none;transition:transform .15s;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-combobox-arrow.is-open{transform:translateY(-50%)rotate(180deg)}.filter-combobox-list{z-index:20;border:1px solid var(--border);background:#fff;border-radius:6px;max-height:220px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 20px #0f172a24}.filter-combobox-option{text-transform:none;letter-spacing:normal;color:#1d2433;cursor:pointer;border-radius:5px;padding:7px 9px;font-size:13px;font-weight:400}.filter-combobox-option:hover{background:var(--grey-light)}.filter-combobox-option-all{color:var(--grey);border-bottom:1px solid var(--border);border-radius:0;margin-bottom:4px;padding-bottom:8px}.suburb-search-meta{color:var(--grey);font-size:11.5px}.filter-combobox-empty{color:var(--grey);cursor:default}.filter-combobox-empty:hover{background:0 0}.multi-select{position:relative}.multi-select-control{color:#1d2433;border:1px solid var(--border);cursor:pointer;text-align:left;background:#fafbfc;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:9px 10px;font-family:inherit;font-size:13.5px;font-weight:400;display:flex}.multi-select-control:hover,.multi-select-control:focus{border-color:var(--navy);outline:none}.multi-select-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.multi-select-summary.is-empty{color:var(--grey)}.multi-select-arrow{color:var(--grey);flex:none;transition:transform .15s}.multi-select-arrow.is-open{transform:rotate(180deg)}.multi-select-panel{z-index:20;border:1px solid var(--border);background:#fff;border-radius:6px;min-width:220px;max-width:320px;padding:6px;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 20px #0f172a24}.multi-select-search{box-sizing:border-box;color:#1d2433;border:1px solid var(--border);background:#fafbfc;border-radius:5px;width:100%;margin-bottom:6px;padding:7px 9px;font-family:inherit;font-size:13.5px;display:block}.multi-select-search:focus{border-color:var(--navy);outline:none}.multi-select-list{max-height:220px;margin:0;padding:0;list-style:none;overflow-y:auto}.multi-select-option{color:#1d2433;cursor:pointer;border-radius:5px;align-items:center;gap:8px;padding:7px 9px;font-size:13.5px;font-weight:400;display:flex}.multi-select-option:hover{background:var(--grey-light)}.multi-select-option.selected{background:var(--navy);color:#fff;font-weight:700}.multi-select-option.selected:hover{background:var(--navy)}.multi-select-option.disabled{opacity:.5;cursor:default}.multi-select-option.disabled:hover{background:0 0}.multi-select-empty{color:var(--grey);cursor:default}.multi-select-empty:hover{background:0 0}.multi-select-compact .multi-select-control{padding:3px 6px;font-size:12px}.multi-select-compact .multi-select-search,.multi-select-compact .multi-select-option{font-size:12px}.multi-select-wrap .multi-select-control{align-items:flex-start}.multi-select-wrap .multi-select-summary{text-overflow:clip;white-space:normal;overflow:visible}.roll-action-btn{color:var(--ink);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;font-family:inherit;font-weight:600}.roll-action-btn:hover:not(:disabled){border-color:var(--navy);color:var(--navy)}.roll-action-btn:disabled{color:var(--grey);opacity:.55;cursor:not-allowed}button.roll-action-btn{padding:4px 10px;font-size:12px}.filter-clear{color:var(--navy);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;height:36px;padding:8px 12px;font-family:inherit;font-size:12px}.filter-clear:hover{border-color:var(--navy)}.project-select-row{flex-wrap:wrap;gap:10px;display:flex}.project-select{flex:320px}.project-select input{background:#fff;padding:10px 34px 10px 12px;font-size:13.5px}.new-project-btn{color:#fff;background:var(--navy);border:1px solid var(--navy);cursor:pointer;white-space:nowrap;border-radius:6px;padding:10px 16px;font-family:inherit;font-size:13px;font-weight:700}.new-project-btn:hover{background:var(--navy-dark)}.project-select-summary{color:var(--grey);flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-size:12px;display:flex}.modal-overlay{z-index:50;background:#1528458c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--card);border-radius:10px;width:100%;max-width:640px;max-height:90vh;padding:22px 24px;overflow-y:auto}.modal-card h3{color:var(--ink);margin:0 0 4px}.modal-card-start-timer{flex-direction:column;min-height:420px;display:flex}.modal-card-start-timer form{flex-direction:column;flex:1;display:flex}.modal-card-start-timer .form-actions{margin-top:auto}.milestone-files-list{border-top:1px solid var(--border);max-height:320px;margin:14px 0 0;padding:0;list-style:none;overflow-y:auto}.milestone-files-list li{border-bottom:1px solid var(--border);color:#3a4358;word-break:break-word;padding:8px 2px;font-size:12.5px}.form-grid{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:16px;display:grid}.form-field{color:var(--grey);flex-direction:column;gap:5px;font-size:11.5px;font-weight:700;display:flex}.form-field input,.form-field select,.form-field textarea{color:#1d2433;border:1px solid var(--border);background:#fafbfc;border-radius:6px;padding:9px 10px;font-family:inherit;font-size:13.5px;font-weight:400;line-height:20px}.form-field input:not([type=checkbox]),.form-field select{height:40px}.form-field textarea{resize:vertical}.form-field input:disabled,.form-field select:disabled{color:var(--grey);background:var(--grey-light);cursor:not-allowed}.form-actions{justify-content:flex-end;gap:10px;margin-top:20px;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border-radius:6px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:700}.btn-primary{color:#fff;background:var(--navy);border:1px solid var(--navy)}.btn-primary:hover{background:var(--navy-dark)}.btn-secondary{color:#3a4358;border:1px solid var(--border);background:#fff}.btn-secondary:hover{border-color:var(--navy)}.btn-danger{cursor:pointer;color:var(--red);border:1px solid var(--red-bg);background:#fff;border-radius:6px;padding:9px 18px;font-family:inherit;font-size:13px;font-weight:700}.btn-danger:hover{background:var(--red-bg)}@media (width<=900px){.kpi-row{grid-template-columns:repeat(2,1fr)}.grid-2,.form-grid{grid-template-columns:1fr}}.chat-widget{z-index:60;flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:24px;right:24px}.chat-toggle-btn{color:#fff;background:var(--navy);border:1px solid var(--navy);cursor:pointer;border-radius:24px;padding:12px 22px;font-family:inherit;font-size:13px;font-weight:700;box-shadow:0 4px 14px #0000002e}.chat-toggle-btn:hover{background:var(--navy-dark)}.chat-panel{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;min-width:300px;max-width:calc(100vw - 48px);min-height:360px;max-height:calc(100vh - 48px);display:flex;position:relative;overflow:hidden;box-shadow:0 8px 28px #00000038}.chat-panel-detached{z-index:61;position:fixed}.chat-header{border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:flex-start;gap:10px;padding:14px 16px;display:flex}.chat-header-title{color:var(--ink);font-size:14px;font-weight:700}.chat-header-sub{color:var(--grey);margin-top:2px;font-size:11px}.chat-header-actions{flex:none;align-items:center;gap:6px;display:flex}.chat-header-btn{color:var(--navy);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:5px 9px;font-family:inherit;font-size:11px;font-weight:700}.chat-header-btn:hover{border-color:var(--navy)}.chat-toggle-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 16px;display:flex}.chat-scope-note{color:var(--grey);font-size:11px}.chat-messages{flex-direction:column;flex:1;gap:10px;padding:14px 16px;display:flex;overflow-y:auto}.chat-empty{color:var(--grey);font-size:12.5px;font-style:italic}.chat-bubble{border-radius:12px;max-width:85%;padding:9px 12px;font-size:13px;line-height:1.4}.chat-bubble-user{background:var(--navy);color:#fff;white-space:pre-wrap;border-bottom-right-radius:3px;align-self:flex-end}.chat-bubble-assistant{background:var(--grey-light);color:var(--ink);border-bottom-left-radius:3px;align-self:flex-start}.chat-bubble-pending{color:var(--grey);font-style:italic}.chat-bubble-error{background:var(--red-bg);color:var(--red)}.chat-bubble-assistant p{margin:0 0 8px}.chat-bubble-assistant ul,.chat-bubble-assistant ol{margin:0 0 8px;padding-left:18px}.chat-bubble-assistant li{margin-bottom:2px}.chat-bubble-assistant li>p{margin:0}.chat-bubble-assistant h1,.chat-bubble-assistant h2,.chat-bubble-assistant h3{margin:0 0 6px;font-size:13.5px;font-weight:700}.chat-bubble-assistant a{color:var(--navy)}.chat-bubble-assistant strong{font-weight:700}.chat-bubble-assistant code{background:#00000012;border-radius:3px;padding:1px 4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.chat-bubble-assistant pre{background:#00000012;border-radius:6px;margin:0 0 8px;padding:8px 10px;overflow-x:auto}.chat-bubble-assistant pre code{background:0 0;padding:0}.chat-bubble-assistant blockquote{border-left:3px solid var(--border);color:var(--grey);margin:0 0 8px;padding-left:10px}.chat-bubble-assistant table{border-collapse:collapse;margin:0 0 8px;font-size:12px}.chat-bubble-assistant th,.chat-bubble-assistant td{border:1px solid var(--border);text-align:left;padding:4px 6px}.chat-bubble-assistant>:last-child{margin-bottom:0}.chat-input-row{border-top:1px solid var(--border);gap:8px;padding:12px 16px;display:flex}.chat-input-wrapper{flex:1;position:relative}.chat-input-wrapper textarea{border:1px solid var(--border);resize:none;background:#fafbfc;border-radius:6px;width:100%;max-height:74px;padding:9px 40px 9px 10px;font-family:inherit;font-size:13px;line-height:18px;display:block;overflow-y:auto}.chat-send-btn{color:#fff;background:var(--navy);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;bottom:6px;right:6px}.chat-send-btn:hover:not(:disabled){background:var(--navy-dark)}.chat-send-btn:disabled{opacity:.5;cursor:default}.chat-resize-handle{cursor:nwse-resize;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg, transparent 0 50%, var(--border) 50% 62%, transparent 62% 75%, var(--border) 75% 87%, transparent 87% 100%);width:16px;height:16px;position:absolute;top:0;left:0}.chat-resize-handle:hover{background:linear-gradient(135deg, transparent 0 50%, var(--grey) 50% 62%, transparent 62% 75%, var(--grey) 75% 87%, transparent 87% 100%)}.modal-card-confirm{max-width:420px}.table-scroll{overflow-x:auto}.priority-chip{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:10.5px;font-weight:700;display:inline-block}.priority-chip.priority-high{background:var(--red-bg);color:var(--red)}.priority-chip.priority-med{background:var(--amber-bg);color:var(--amber)}.priority-chip.priority-low{background:var(--grey-light);color:var(--grey)}.priority-chip.priority-nonprod{color:#5a6480;background:#eef1f7}.assignee-line{white-space:nowrap;align-items:center;gap:6px;display:flex}.assignee-line+.assignee-line{margin-top:3px}.assignment-pill{text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:9px;font-weight:700}.assignment-pill.is-pending{background:var(--amber-bg);color:var(--amber)}.assignment-pill.is-rejected{background:var(--red-bg);color:var(--red)}.assignment-pill.is-accepted{background:var(--green-bg);color:var(--green)}.assignment-pill.is-mine{background:var(--brand-bg);color:var(--brand)}.notification-bell{display:flex;position:relative}.notification-bell-btn{width:30px;height:30px;color:var(--grey);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.notification-bell-btn:hover{border-color:var(--navy);color:var(--navy)}.notification-badge{text-align:center;color:#fff;background:var(--brand);border-radius:8px;min-width:15px;height:15px;padding:0 3px;font-size:9.5px;font-weight:700;line-height:15px;position:absolute;top:-5px;right:-5px}.notification-panel{z-index:30;background:var(--card);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:320px;display:flex;position:fixed;box-shadow:0 6px 20px #15284524}.notification-panel-head{letter-spacing:.06em;text-transform:uppercase;color:var(--grey);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:11px;font-weight:700;display:flex}.notification-head-actions{align-items:center;gap:4px;display:flex}.notification-link-btn{text-transform:none;letter-spacing:0;color:var(--brand);cursor:pointer;background:0 0;border:none;flex:none;padding:2px 4px;font-family:inherit;font-size:10.5px;font-weight:700}.notification-link-btn:hover{text-decoration:underline}.notification-list{overflow-y:auto}.notification-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:4px;padding-right:8px;display:flex}.notification-row:last-child{border-bottom:none}.notification-row.is-unread{background:var(--brand-bg);box-shadow:inset 2px 0 0 var(--brand)}.notification-row-main{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-width:0;padding:10px 4px 10px 12px;font-family:inherit}.notification-headline{color:var(--ink);font-size:12.5px;font-weight:600}.notification-detail{color:#3a4358;overflow-wrap:anywhere;margin-top:2px;font-size:11.5px}.notification-when{color:var(--grey);margin-top:3px;font-size:10.5px}.notification-empty{color:var(--grey);text-align:center;padding:18px 12px;font-size:12px}.bar-fill.is-planned{background:#a8d5aa}.bar-marker{background:var(--ink);border-radius:1px;width:2px;max-width:100%;margin-left:-1px;position:absolute;top:-1px;bottom:-1px}.bar-fill.is-planned.amber{background:#e2c98a}.intended-hours-cell{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;min-width:110px;padding:0;font-family:inherit;display:block}.intended-hours-cell:hover .bar-track{outline:1px solid var(--border)}.intended-hours-row{align-items:center;gap:14px;margin:18px 0 4px;display:flex}.intended-hours-slider{min-width:0;accent-color:var(--brand);cursor:pointer;flex:1}.intended-hours-value{color:var(--grey);flex:none;align-items:baseline;gap:5px;font-size:12px;display:flex}.intended-hours-value input{text-align:right;color:#1d2433;border:1px solid var(--border);background:#fafbfc;border-radius:6px;width:62px;padding:6px 8px;font-family:inherit;font-size:14px;font-weight:700}.assignee-actions{white-space:nowrap;align-items:baseline;gap:5px;display:inline-flex}.assignee-actions button{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:10.5px;font-weight:700}.assignee-actions button:hover{text-decoration:underline}.assignee-actions button:disabled{color:var(--grey);cursor:default;text-decoration:none}.assignee-actions span{color:var(--border);font-size:10.5px}.project-cell{white-space:nowrap}.task-cell{display:inline}.notes-icon-btn{vertical-align:-2px;color:var(--grey);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:6px;padding:0;display:inline-flex}.notes-icon-btn:hover{color:var(--brand)}.status-chip.is-editable{cursor:pointer;border:none;align-items:center;gap:5px;font-family:inherit;display:inline-flex}.status-chip.is-editable:hover{box-shadow:0 0 0 1px var(--border)}.status-chip.is-editable>span{opacity:.75;font-size:9.5px}.notes-body{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;background:var(--grey-light);border-radius:6px;max-height:320px;padding:10px 12px;font-size:13px;line-height:1.5;overflow-y:auto}.staff-checkbox-list{columns:2;border:1px solid var(--border);background:var(--grey-light);border-radius:6px;column-gap:18px;padding:8px 10px;overflow-y:auto}.staff-checkbox-list label{break-inside:avoid;align-items:center;gap:8px;font-size:12.5px;font-weight:400;display:flex}.attachment-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.attachment-list li{color:var(--ink);background:var(--grey-light);border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;font-weight:400;display:flex}.attachment-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.attachment-list button{color:var(--grey);cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-family:inherit;font-size:14px;line-height:1}.attachment-list button:hover{color:var(--red)}.file-picker{cursor:pointer;border:1px dashed var(--border);background:#fafbfc;border-radius:6px;align-items:center;gap:10px;padding:10px;transition:border-color .12s,background .12s;display:flex}.file-picker.dragging{border-color:var(--brand);background:var(--brand-bg);border-style:solid}.file-picker.dragging *{pointer-events:none}.file-picker input[type=file]{clip:rect(0 0 0 0);white-space:nowrap;border:0;margin:-1px;overflow:hidden;width:1px!important;height:1px!important;padding:0!important;position:absolute!important}.file-picker .file-picker-btn{color:var(--ink);border:1px solid var(--border);background:var(--grey-light);border-radius:6px;flex:none;padding:7px 12px;font-size:13px;font-weight:600}.file-picker:hover .file-picker-btn{border-color:var(--grey)}.file-picker:focus-within .file-picker-btn{outline:2px solid var(--brand);outline-offset:1px}.file-picker .file-picker-count{color:var(--grey);font-size:12.5px;font-weight:400}.file-picker.dragging .file-picker-count{color:var(--brand);font-weight:600}.day-entry-list{flex-direction:column;gap:6px;max-height:46vh;margin:4px 0 14px;display:flex;overflow-y:auto}.day-entry-row{border:1px solid var(--border);background:var(--card);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 11px;display:flex}.day-entry-row:hover:not(.is-static){border-color:var(--brand)}.day-entry-row.is-static{cursor:default}.day-entry-main{min-width:0}.day-entry-task{overflow-wrap:anywhere;margin-top:2px;font-size:13px}.day-entry-hours{font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.notification-changes{color:var(--grey);margin:4px 0 0;padding-left:16px;font-size:11.5px;line-height:1.45;list-style:outside}
