.gantt .grid-background{fill:none}.gantt .grid-header{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.2}.gantt .tick.thick{stroke-width:.4}.gantt .today-highlight{fill:#fcf8e3;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{fill:#b8c2cc;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;-webkit-user-select:none;user-select:none}.gantt .bar-progress{fill:#a3a3ff}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-width:1;stroke-dasharray:5}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .handle{fill:#ddd;cursor:ew-resize;opacity:0;visibility:hidden;transition:opacity .3s ease}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:hover .bar{fill:#a9b5c1}.gantt .bar-wrapper:hover .bar-progress{fill:#8a8aff}.gantt .bar-wrapper:hover .handle{visibility:visible;opacity:1}.gantt .bar-wrapper.active .bar{fill:#a9b5c1}.gantt .bar-wrapper.active .bar-progress{fill:#8a8aff}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{position:relative;overflow:auto;font-size:12px}.gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:#000c;padding:0;color:#959da5;border-radius:3px}.gantt-container .popup-wrapper .title{border-bottom:3px solid #a3a3ff;padding:10px}.gantt-container .popup-wrapper .subtitle{padding:10px;color:#dfe2e5}.gantt-container .popup-wrapper .pointer{position:absolute;height:5px;margin:0 0 0 -5px;border:5px solid transparent;border-top-color:#000c}:root{--bg-page: #f8f7f4;--bg-card: #ffffff;--bg-sidebar: #f0efe9;--border: #e8e6e0;--text: #1c1b19;--text-muted: #5c5a54;--accent: #2d6a4f;--accent-hover: #1b4332;--accent-soft: #d8f3dc;--danger: #b71c1c;--danger-soft: #ffebee;--warning: #e65100;--warning-soft: #fff3e0;--radius: 12px;--radius-sm: 8px;--shadow: 0 2px 12px rgba(0,0,0,.06);--font: "Manrope", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg-page);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}.app-loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-muted);font-size:1rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;height:100dvh;max-height:100dvh;overflow:hidden}.sidebar{position:fixed;left:0;top:0;width:260px;height:100vh;background:var(--bg-sidebar);border-right:1px solid var(--border);padding:1.5rem 0 0;flex-shrink:0;overflow:hidden;z-index:100;transition:width .2s ease;display:flex;flex-direction:column}.sidebar-inner{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;overflow:hidden}.sidebar-main-nav{flex-shrink:0}.sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-top:.35rem}.sidebar-secondary{flex-shrink:0;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.sidebar-project{flex-shrink:0;padding:.75rem 1rem .15rem;margin:0 0 .15rem;border-top:1px solid var(--border)}.sidebar-spacer{display:none}.sidebar-narrow{width:56px;padding:1rem 0}.sidebar-narrow .sidebar-brand,.sidebar-narrow .nav-link span,.sidebar-narrow .nav-link .nav-link-text{display:none}.sidebar-expand-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;margin:0 auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);font-size:1.25rem;cursor:pointer;color:var(--text);transition:background .15s}.sidebar-expand-btn:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.sidebar-collapse-btn{width:calc(100% - 1.5rem);margin:.85rem .75rem .75rem;padding:.4rem .5rem;font-size:.75rem;color:var(--text-muted);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font);flex-shrink:0}.sidebar-collapse-btn:hover{color:var(--accent);border-color:var(--accent)}.main-wrap{margin-left:260px;flex:1;min-width:0;display:flex;flex-direction:column;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden;transition:margin-left .2s ease}.main-wrap-narrow{margin-left:56px}.main{flex:1;min-height:0;padding:1.5rem 2rem;overflow-x:auto;overflow-y:auto}.main:has(>.page-scroll-panel){display:flex;flex-direction:column;overflow:hidden}.page-scroll-panel{flex:1;min-height:0;display:flex;flex-direction:column}.page-scroll-panel__meta{flex-shrink:0;background:var(--bg-page);padding-bottom:.75rem;z-index:3}.page-scroll-panel__meta .page-title{margin-bottom:.5rem}.page-scroll-panel__meta .text-muted.mb-0{margin-bottom:.5rem!important}.page-scroll-panel__body{flex:1;min-height:0;display:flex;flex-direction:column}.table-wrap.table-wrap--sticky{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.table-wrap.table-wrap--sticky>table>thead>tr>th{position:sticky;top:0;z-index:2;background:var(--bg-sidebar);box-shadow:0 1px 0 var(--border)}.sidebar-brand{padding:0 1.25rem .85rem;border-bottom:none;margin-bottom:0;flex-shrink:0}.sidebar-brand-row{display:flex;align-items:center;gap:.55rem}.sidebar-brand h1{margin:0;font-size:1.125rem;font-weight:700;color:var(--text);line-height:1.2}.sidebar-brand-icon{width:28px;height:28px;object-fit:contain;flex-shrink:0;display:block}.sidebar-brand p{margin:.25rem 0 0;font-size:.8125rem;color:var(--text-muted)}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem 1.25rem;color:var(--text);font-weight:500;border-left:3px solid transparent;transition:background .15s,border-color .15s}.nav-link:hover{background:#0000000a}.nav-link.active{background:var(--accent-soft);border-left-color:var(--accent);color:var(--accent)}.page-title{margin:0 0 1.5rem;font-size:1.5rem;font-weight:700;color:var(--text)}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.25rem 1.5rem;margin-bottom:1.25rem}.card h3{margin:0 0 .75rem;font-size:.9375rem;font-weight:600;color:var(--text-muted)}.card-value{font-size:1.5rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.cards-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.gantt-wrap{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:1rem}.gantt-wrap-split{padding:0;overflow:hidden}.gantt-wrap-split .gantt-scroll{overflow-x:auto;overflow-y:auto;max-height:70vh}.gantt-wrap-split .gantt-inner{display:flex;min-width:min-content}.gantt-wrap-split .gantt-labels-col{flex-shrink:0;position:sticky;left:0;z-index:2;background:var(--bg-card);border-right:1px solid var(--border);box-shadow:2px 0 8px #0000000a}.gantt-wrap-split .gantt-labels-header{display:flex;align-items:center;padding:0 .75rem;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid var(--border)}.gantt-wrap-split .gantt-label-row{display:flex;align-items:center;gap:.35rem;padding:0 .75rem;border-bottom:1px solid var(--border);font-size:.8125rem;color:var(--text)}.gantt-toggle{flex-shrink:0;width:22px;height:22px;padding:0;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);color:var(--text-muted);font-size:.7rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:1}.gantt-toggle:hover{border-color:var(--accent);color:var(--accent)}.gantt-wrap-split .gantt-label-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.gantt-wrap-split .gantt-chart-col{flex:1;min-width:600px;min-height:200px}.gantt-wrap-split .gantt-chart-col .gantt-container{min-width:800px}.gantt-wrap-split .gantt .bar-label{display:none!important}.gantt-container{min-width:800px}.gantt-wrap .gantt .bar{fill:var(--accent)!important}.gantt-wrap .gantt .bar-progress{fill:var(--accent-hover)!important}.gantt-wrap .gantt .bar-label{fill:#fff!important;font-weight:500}.gantt-wrap .gantt .grid-background{fill:var(--bg-page)!important}.gantt-wrap .gantt .grid-row{fill:var(--bg-card)!important}.gantt-wrap .gantt .tick{stroke:var(--border)!important}.gantt-wrap .gantt .today-highlight{fill:var(--accent-soft)!important;opacity:.5}.gantt-wrap .gantt .handle-group,.gantt-wrap .gantt .handle{display:none!important;pointer-events:none!important}.gantt-wrap .gantt .bar-wrapper{cursor:default}.gantt-wrap .gantt .bar{fill:var(--accent-soft)!important}.gantt-wrap .gantt .bar-progress{fill:var(--accent)!important}.gantt-wrap .gantt .bar-wrapper.bar-fact .bar{fill:#e8f5e9!important}.gantt-wrap .gantt .bar-wrapper.bar-fact .bar-progress{fill:#1b4332!important}.gantt-wrap .gantt .bar-wrapper.bar-late .bar{stroke:var(--danger)!important;stroke-width:2!important}.gantt-wrap .gantt .bar-wrapper.bar-has-lag .bar{stroke-dasharray:5 3}.gantt-wrap .gantt .bar-wrapper.bar-late .bar-progress{fill:#c62828!important}.gantt-wrap[data-view=Day] .gantt .bar-wrapper.bar-late .bar,.gantt-wrap[data-view="Half Day"] .gantt .bar-wrapper.bar-late .bar,.gantt-wrap[data-view="Quarter Day"] .gantt .bar-wrapper.bar-late .bar{stroke:none!important}.gantt-wrap[data-view=Day] .gantt .bar-wrapper.bar-late .bar-progress,.gantt-wrap[data-view="Half Day"] .gantt .bar-wrapper.bar-late .bar-progress,.gantt-wrap[data-view="Quarter Day"] .gantt .bar-wrapper.bar-late .bar-progress{fill:var(--accent)!important}.gantt-wrap .gantt .gantt-today-line{stroke:var(--danger);stroke-width:2;stroke-dasharray:4 4;pointer-events:none}.gantt-wrap .gantt .gantt-late-segment{fill:#c62828;fill-opacity:.55;pointer-events:none}.gantt-label-row-late{background:var(--danger-soft);border-left:3px solid var(--danger)}.gantt-label-row-overwork{border-left:2px solid var(--accent)}.gantt-label-overwork-badge{flex-shrink:0;margin-left:.25rem;display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:50%;background:var(--accent);color:#fff;font-size:.75rem;font-weight:700}.gantt-label-late-badge{flex-shrink:0;margin-left:.35rem;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;font-size:.75rem;font-weight:700}.plan-fact-late{color:var(--danger)}.gantt-header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem;flex-wrap:wrap}.gantt-page-title-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.gantt-page-title-row .page-title{margin-bottom:0}.hold-info{position:relative;display:inline-flex;align-items:center}.hold-info-btn{width:1.4rem;height:1.4rem;padding:0;border-radius:999px;border:1.5px solid #b89a5a;background:#faf6ee;color:#5c4a28;font-size:.75rem;font-weight:700;font-family:var(--font);line-height:1;cursor:default}.hold-info-tip{position:absolute;left:0;top:calc(100% + .4rem);z-index:40;min-width:240px;max-width:min(360px,90vw);padding:.65rem .8rem;border:1px solid #d4c4a0;border-radius:8px;background:#fffdf8;color:#3d3424;box-shadow:0 6px 18px #281e0a1f;font-size:.82rem;line-height:1.35;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s ease,transform .15s ease,visibility .15s;pointer-events:none}.hold-info:hover .hold-info-tip,.hold-info:focus-within .hold-info-tip{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}.hold-info-tip strong{display:block;margin-bottom:.35rem;font-size:.85rem}.hold-info-tip ul{margin:0;padding-left:1.05rem}.hold-info-tip-note{margin:.45rem 0 0;font-size:.78rem;color:var(--text-muted)}.hold-info-tip-note a{color:inherit;text-decoration:underline}.hold-info-tip-block+.hold-info-tip-block{margin-top:.65rem;padding-top:.55rem;border-top:1px solid #e6dcc4}.hold-info-plan-list{max-height:160px;overflow:auto;margin:.25rem 0 0;padding-left:0;list-style:none}.hold-info-plan-section+.hold-info-plan-section{margin-top:.55rem}.hold-info-plan-section-title{display:block;font-size:.78rem;font-weight:600;color:#3d5c3a;margin-bottom:.15rem}.hold-info-plan-section-title--overdue{color:#8a3a2a}.hold-info-plan-stage{margin:.25rem 0 .45rem}.hold-info-plan-stage>ul{margin:.15rem 0 0;padding-left:1rem;list-style:disc}.hold-info-plan-line{display:block}.hold-info-plan-id{font-weight:600;font-variant-numeric:tabular-nums}.hold-info-plan-dates{color:var(--text-muted);font-size:.78rem;white-space:nowrap}.popup-header-title{display:flex;align-items:center;gap:.5rem;min-width:0}.changes-hold-info .hold-info-tip{left:0;right:auto;min-width:300px;max-width:min(440px,92vw);max-height:min(70vh,520px);overflow:auto;z-index:60}.gantt-header-left{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}.gantt-badge-plan{font-size:.8125rem;font-weight:600;color:var(--text-muted);background:var(--bg-sidebar);padding:.25rem .6rem;border-radius:var(--radius-sm)}.gantt-badge-hist{font-size:.75rem;font-weight:500;color:#6b5b3e;background:#f5efd8;padding:.25rem .55rem;border-radius:var(--radius-sm)}.gantt-version-select{display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem}.gantt-version-select-label{color:var(--text-muted);font-weight:600}.gantt-version-select select{font-family:var(--font);font-size:.8125rem;padding:.3rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);max-width:220px}.gantt-compare-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.8125rem;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.gantt-delta-legend{display:inline-flex;gap:.35rem;align-items:center}.gantt-delta-chip{font-size:.75rem;font-weight:700;padding:.15rem .45rem;border-radius:999px;line-height:1.2}.gantt-delta-chip-added{color:#0f5132;background:#d1e7dd}.gantt-delta-chip-changed{color:#664d03;background:#fff3cd}.gantt-delta-chip-removed{color:#842029;background:#f8d7da}.gantt-wrap .gantt .bar-wrapper.bar-delta-added .bar{stroke:#198754!important;stroke-width:2.5!important}.gantt-wrap .gantt .bar-wrapper.bar-delta-changed .bar{stroke:#d4a017!important;stroke-width:2.5!important;stroke-dasharray:5 3}.gantt-wrap .gantt .bar-wrapper.bar-delta-removed .bar{fill:#f1f1f1!important;stroke:#adb5bd!important;stroke-width:1.5!important;stroke-dasharray:3 3;opacity:.75}.gantt-wrap .gantt .bar-wrapper.bar-delta-removed .bar-progress{fill:transparent!important}.gantt-label-row-delta-added{background:#1987540f}.gantt-label-row-delta-changed{background:#d4a01714}.gantt-label-row-delta-removed .gantt-label-text{text-decoration:line-through;color:var(--text-muted);opacity:.85}.gantt-label-delta-badge{flex-shrink:0;font-size:.7rem;font-weight:700;width:1.1rem;height:1.1rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-left:.25rem}.gantt-label-delta-added{color:#0f5132;background:#d1e7dd}.gantt-label-delta-changed{color:#664d03;background:#fff3cd}.gantt-label-delta-removed{color:#842029;background:#f8d7da}.gantt-admin-gear{background:none;border:none;padding:.35rem;cursor:pointer;color:var(--text-muted);border-radius:var(--radius-sm);opacity:.6}.gantt-admin-gear:hover{color:var(--text);background:var(--bg-sidebar)}.gantt-admin-gear[title]{cursor:help}.table-wrap{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);overflow-x:auto;overflow-y:hidden}.table-wrap>table{width:100%;min-width:1100px;border-collapse:collapse;font-size:.875rem}.table-wrap>table th{text-align:left;padding:.75rem 1rem;background:var(--bg-sidebar);font-weight:600;color:var(--text-muted);border-bottom:1px solid var(--border)}.table-wrap>table td{padding:.75rem 1rem;border-bottom:1px solid var(--border)}.table-wrap>table tr:last-child>td{border-bottom:none}.table-wrap>table tr:hover>td{background:#00000005}.num{font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.section-title{font-size:1.125rem;font-weight:600;margin:0 0 .75rem;color:var(--text)}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag{background:var(--accent-soft);color:var(--accent);padding:.35rem .75rem;border-radius:999px;font-size:.8125rem;font-weight:500}.progress-bar{height:8px;background:var(--border);border-radius:999px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .2s}.btn{padding:.4rem .75rem;border-radius:var(--radius-sm);font-family:var(--font);font-weight:500;font-size:.875rem;cursor:pointer;border:1px solid transparent;margin-right:.5rem;margin-bottom:.25rem}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.btn-ghost:hover{background:#0000000a;color:var(--text)}.fact-edit-card{margin-top:1rem}.fact-form{display:grid;gap:1rem;max-width:400px}.fact-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:var(--text-muted)}.fact-form label span{font-weight:500;color:var(--text)}.fact-form input{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:.9375rem}.fact-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.fact-form-actions{display:flex;gap:.5rem;margin-top:.5rem}.deviation-delay{color:var(--danger);font-size:.8125rem}.deviation-ok{color:var(--text-muted);font-size:.8125rem}.deviation-overwork{color:var(--accent);font-size:.8125rem;font-weight:500}.progress-plan-fact.plan-ahead{color:var(--danger);font-weight:500}.progress-plan-fact.fact-ok{color:var(--accent);font-weight:500}.fact-overwork-inline{color:var(--accent);font-size:.8125rem}.fact-clear-all-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--text-muted)}.fact-clear-all-btn:hover{color:var(--danger)}.fact-clear-all-icon{font-size:1rem}.fact-journal-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;color:var(--text-muted)}.fact-journal-btn:hover{color:var(--accent)}.fact-journal-btn-icon{font-size:1.1rem}.fact-clear-confirm{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:var(--danger-soft);border-radius:var(--radius-sm);font-size:.875rem}.fact-clear-confirm-text{color:var(--text)}.fact-clear-confirm .btn{padding:.25rem .5rem;font-size:.8125rem}.fact-project-line{margin:-.25rem 0 1rem;font-size:.9375rem}.fact-toolbar{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-start;margin-bottom:1rem}.fact-toolbar-hint{flex:1 1 16rem;margin:0;font-size:.875rem}.fact-toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.fact-filter-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.fact-filter-chip{border:1px solid var(--border);background:var(--bg-card);color:var(--text);border-radius:999px;padding:.45rem .9rem;font-family:var(--font);font-size:.875rem;font-weight:500;cursor:pointer}.fact-filter-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-hover)}.fact-card-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.fact-empty{margin:.5rem 0 0}.fact-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1rem 1.1rem;display:flex;flex-direction:column;gap:.65rem}.fact-card-done{opacity:.88}.fact-card-top{display:flex;align-items:center;gap:.5rem}.fact-card-id{font-family:var(--font-mono);font-size:.8125rem;font-weight:600;color:var(--accent)}.fact-card-badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .45rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent-hover)}.fact-card-title{margin:0;font-size:1.05rem;font-weight:600;line-height:1.35}.fact-card-meta{display:grid;gap:.35rem;font-size:.875rem}.fact-card-meta-row{display:flex;justify-content:space-between;gap:.75rem}.fact-card-meta-label{color:var(--text-muted)}.fact-card-bar{height:8px;border-radius:999px;background:var(--bg-sidebar);overflow:hidden}.fact-card-bar-fill{height:100%;background:var(--accent);border-radius:999px}.fact-card-cta{width:100%;min-height:48px;font-size:1rem;margin-top:.15rem}.fact-desktop-only{display:block;margin-bottom:1.5rem}.fact-desktop-only.page-scroll-panel__body{display:flex;flex-direction:column;flex:1;min-height:0;margin-bottom:0}.fact-mobile-only{display:none}.fact-card-badge-material{background:#eef2ff;color:#3730a3}.popup-fact-entry{width:min(440px,100%)}.popup-input-lg{font-size:1.25rem!important;min-height:48px;font-weight:600}.popup-resources-details{margin:.75rem 0 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem .75rem}.popup-resources-details summary{cursor:pointer;color:var(--text-muted);font-size:.875rem;font-weight:500}.popup-resource-row--check{align-items:flex-start}.popup-resource-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;white-space:nowrap}.popup-resource-check input[type=checkbox]{width:1.1rem;height:1.1rem}.popup-fact-entry .popup-actions{display:flex;flex-direction:column;gap:.5rem}.popup-fact-entry .popup-actions .btn{width:100%;min-height:48px;font-size:1rem}.popup-fact-cost{width:min(520px,100%)}.fact-cost-actions{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0 .5rem}.fact-cost-table{width:100%;border-collapse:collapse;margin-bottom:.75rem}.fact-cost-table th,.fact-cost-table td{padding:.35rem .4rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}.fact-cost-table th.num,.fact-cost-table td.num{text-align:right}.fact-cost-table .popup-input.num{width:100%;min-width:4rem;text-align:right}.btn-fact-cost{padding:.1rem .4rem;min-height:0;font-size:.85rem;font-weight:600;line-height:1.2;vertical-align:baseline}.fact-journal .section-title{margin-bottom:.25rem}.fact-log-list{list-style:none;padding:0;margin:0;max-height:320px;overflow-y:auto}.fact-log-item{display:flex;flex-direction:column;gap:.25rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.8125rem;line-height:1.4}.fact-log-item-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem .5rem}.fact-log-item-meta{display:flex;flex-direction:column;gap:.1rem;padding-left:.15rem;color:var(--text-muted);font-size:.75rem}.fact-log-meta-line{display:block}.fact-log-item:last-child{border-bottom:none}.fact-log-date{color:var(--text-muted);flex-shrink:0;font-variant-numeric:tabular-nums}.fact-log-who{font-weight:600;color:var(--text);flex-shrink:0}.fact-log-sep{color:var(--text-muted);flex-shrink:0}.fact-log-stage{color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fact-log-action{color:var(--accent);font-weight:500;flex-shrink:0}.plan-fact-overwork{border-left:4px solid var(--accent)}.overwork-list{list-style:none;padding:0;margin:0}.overwork-list li{display:flex;align-items:baseline;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--border);font-size:.875rem}.overwork-list li:last-child{border-bottom:none}.overwork-stage{flex-shrink:0;font-weight:600;color:var(--text-muted)}.overwork-value{flex-shrink:0;font-weight:600;color:var(--accent)}.overwork-name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-wrap .gantt .gantt-overwork-segment{fill:var(--accent);fill-opacity:.6;pointer-events:none}.gantt-bar-tooltip{position:fixed;z-index:1000;min-width:240px;max-width:360px;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow),0 4px 20px #0000001a;font-size:.8125rem;line-height:1.45;pointer-events:none}.gantt-bar-tooltip-title{font-weight:600;color:var(--text);margin-bottom:.5rem;padding-bottom:.35rem;border-bottom:1px solid var(--border)}.gantt-bar-tooltip-row{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.25rem}.gantt-bar-tooltip-row:last-child{margin-bottom:0}.gantt-bar-tooltip-label{color:var(--text-muted);flex-shrink:0}.gantt-bar-tooltip-overwork{color:var(--accent);font-weight:500}.popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.popup{background:var(--bg-card);border-radius:var(--radius);box-shadow:0 8px 32px #0000001f;max-width:440px;width:100%;max-height:90vh;overflow:auto}.popup-large.fact-journal-popup{max-width:640px;max-height:85vh;display:flex;flex-direction:column}.fact-journal-popup .popup-body{overflow-y:auto;flex:1;min-height:0}.fact-journal-popup .fact-log-list{max-height:50vh}.popup-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.popup-header h3{margin:0;font-size:1.125rem;font-weight:600}.popup-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 .25rem}.popup-close:hover{color:var(--text)}.popup-body{padding:1.25rem}.popup-task-name{font-size:.9375rem;color:var(--text);margin:0 0 .5rem;line-height:1.4}.popup-label{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;font-size:.875rem}.popup-label span{font-weight:500;color:var(--text)}.popup-resource-block{margin-bottom:1rem;padding:.75rem;background:var(--bg-page, #f5f5f4);border-radius:var(--radius-sm)}.popup-resource-title{display:block;font-size:.8125rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem}.popup-resource-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.popup-resource-title-row .popup-resource-title{margin-bottom:0}.popup-resource-add{font-size:.8rem;padding:.2rem .5rem;flex-shrink:0}.popup-resource-extra-badge,.tasks-extra-badge{display:inline-block;margin-left:.35rem;padding:.05rem .35rem;font-size:.7rem;font-weight:600;color:var(--text-muted);border:1px solid var(--border);border-radius:3px;vertical-align:middle}.popup-resource-draft{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(4.5rem,5.5rem) auto;gap:.35rem;align-items:center;margin-bottom:.4rem}.popup-resource-draft--worker{grid-template-columns:minmax(0,1fr) minmax(4.5rem,5.5rem) auto}.popup-resource-draft input,.popup-resource-draft select{width:100%;min-width:0;padding:.4rem .5rem;border:1px solid var(--border);border-radius:4px;font:inherit;background:#fff}.popup-resource-row{margin-bottom:.5rem}.popup-resource-row--rate{display:flex;flex-direction:column;gap:.35rem}.popup-resource-row-label{font-weight:500;color:var(--text);font-size:.875rem}.popup-resource-row-inputs{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.popup-resource-row-inputs input{flex:1 1 6rem;min-width:5rem}.popup-resource-rate{flex:0 1 7.5rem!important;max-width:9rem}.popup-resource-draft--with-rate{grid-template-columns:minmax(0,1.2fr) auto minmax(4rem,5rem) minmax(4.5rem,5.5rem) auto}.popup-resource-draft--worker.popup-resource-draft--with-rate{grid-template-columns:minmax(0,1fr) minmax(4rem,5rem) minmax(4.5rem,5.5rem) auto}.popup-resource-hint{font-size:.8rem;margin:.35rem 0 .75rem}.popup-resource-done{color:var(--text-muted);font-weight:500}.popup-resource-row:last-child{margin-bottom:0}.popup-label input,.popup-label select{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:.9375rem}.popup-label input:focus,.popup-label select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.popup-actions{display:flex;gap:.5rem;margin-top:1rem}.popup-confirm-text{font-size:1rem;margin:0 0 1rem;line-height:1.5}.popup-wide{max-width:1000px;width:96%;max-height:90vh;display:flex;flex-direction:column}.popup-wide .popup-body{overflow-x:auto;overflow-y:auto;flex:1;min-height:0}.popup-wide .popup-table{min-width:880px}.popup-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.25rem;border-top:1px solid var(--border);background:var(--bg)}.popup-table{width:100%;border-collapse:collapse;font-size:.875rem}.popup-table th,.popup-table td{padding:.4rem .5rem;text-align:left;border-bottom:1px solid var(--border)}.popup-table th{font-weight:600;color:var(--text-muted)}.popup-input{width:100%;min-width:0;padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.875rem}.popup-input.num{width:4.5rem}.workers-params-cell{min-width:200px;vertical-align:top}.workers-params-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.8125rem}.workers-params-row span{min-width:7rem;color:var(--text-muted)}.workers-params-total{margin-top:.5rem;font-size:.8125rem;font-weight:600;color:var(--accent)}.plan-fact-row.deviation-behind{background:var(--danger-soft);border-left:4px solid var(--danger)}.plan-fact-row.deviation-ahead{background:var(--accent-soft);border-left:4px solid var(--accent)}.plan-fact-overall{border-left-width:4px;border-left-style:solid;border-left-color:var(--border)}.plan-fact-overall.plan-fact-ahead{border-left-color:var(--accent);background:var(--accent-soft)}.plan-fact-overall.plan-fact-behind{border-left-color:var(--danger);background:var(--danger-soft)}.plan-fact-summary{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.plan-fact-values{display:flex;align-items:baseline;gap:.35rem;font-variant-numeric:tabular-nums}.plan-fact-label{font-size:.875rem;color:var(--text-muted)}.plan-fact-num{font-size:1.25rem;font-weight:700}.plan-fact-sep{margin:0 .25rem;color:var(--text-muted)}.plan-fact-indicator{display:inline-flex;align-items:center;gap:.35rem;font-weight:600;padding:.35rem .75rem;border-radius:var(--radius-sm)}.plan-fact-indicator.indicator-ahead{color:#0d5c2e;background:#b7e4c7}.plan-fact-indicator.indicator-behind{color:#8b0000;background:#ffcdd2}.plan-fact-indicator.indicator-ok{color:var(--text-muted);background:var(--bg-sidebar)}.indicator-arrow{font-size:1.1em;line-height:1}.dashboard-header-meta{margin-bottom:1rem;padding:.75rem 1rem}.dashboard-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1rem;font-size:.9rem}.dashboard-meta-item{color:var(--text-muted)}.dashboard-meta-item strong{color:var(--text);font-weight:600}.dashboard-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:var(--radius-sm);font-size:.8rem;font-weight:600;text-decoration:none}.dashboard-badge.badge-locked{background:var(--bg-sidebar);color:var(--text-muted)}.dashboard-badge.badge-open{background:var(--accent-soft);color:#0d5c2e}.dashboard-badge.badge-changes{background:#e8eef8;color:#1a3a6b}.dashboard-badge.badge-hold{background:#f3ebdc;color:#5c4a28}.plan-fact-share{font-size:.85rem;font-weight:500;color:var(--text-muted)}.budget-kpi-row{margin-bottom:.75rem}.budget-context-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:1.25rem;font-size:.875rem;color:var(--text-muted)}.budget-context-sep{opacity:.5}.budget-note{font-size:.85rem;margin:0 0 .75rem}.budget-delta-bad{color:var(--danger, #b42318);font-weight:600}.budget-total-row td{border-top:1px solid var(--border);padding-top:.65rem}.budget-change-open{background:color-mix(in srgb,#b45309 6%,transparent)}.dashboard-kpi-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem;margin-bottom:1rem}.dashboard-kpi{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card, #fff);text-align:left;cursor:pointer;font:inherit;color:inherit;transition:border-color .12s ease,box-shadow .12s ease}.dashboard-kpi:hover:not(:disabled){border-color:var(--accent);box-shadow:0 1px 4px #0000000f}.dashboard-kpi:disabled{cursor:default;opacity:.55}.dashboard-kpi.kpi-zero{background:var(--bg-sidebar)}.dashboard-kpi.kpi-warn{border-left:3px solid #c47a00}.dashboard-kpi.kpi-danger{border-left:3px solid var(--danger)}.dashboard-kpi.kpi-info{border-left:3px solid #3a6bb5}.dashboard-kpi-label{font-size:.75rem;color:var(--text-muted);line-height:1.25}.dashboard-kpi-value{font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}.dashboard-kpi-hint{font-size:.7rem;color:var(--text-muted)}.dashboard-attention{margin-bottom:1rem}.dashboard-attention-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.dashboard-attention-list li{display:grid;grid-template-columns:minmax(7.5rem,9rem) 3rem minmax(8rem,1fr) minmax(5rem,8rem) minmax(4.5rem,6rem) auto;gap:.5rem .65rem;align-items:center;padding:.45rem .35rem;border-bottom:1px solid var(--border);font-size:.875rem}.dashboard-attention-list li:last-child{border-bottom:none}.dashboard-att-type{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.dashboard-att-type.att-late,.dashboard-att-type.att-overspend{color:var(--danger)}.dashboard-att-type.att-behind,.dashboard-att-type.att-silence,.dashboard-att-type.att-overwork{color:#a15c00}.dashboard-att-id{font-variant-numeric:tabular-nums;font-weight:600}.dashboard-att-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-att-who{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-att-delta{font-variant-numeric:tabular-nums;font-weight:600}button.linkish{background:none;border:none;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:underline}.dashboard-summary-strip{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;padding:.75rem 1rem;font-size:.9rem;color:var(--text-muted)}.dashboard-summary-strip strong{color:var(--text)}.dashboard-drilldown .popup-table{width:100%}@media (max-width: 900px){.dashboard-attention-list li{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto}.dashboard-att-type,.dashboard-att-name{grid-column:1 / -1}}.cell-with-popover{position:relative;cursor:help}.cell-popover{position:absolute;left:0;top:100%;z-index:200;margin-top:2px;min-width:220px;max-width:320px;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);font-size:.8125rem;pointer-events:none}.cell-popover-title{font-weight:600;margin-bottom:.35rem;color:var(--text)}.cell-popover-list{margin:0;padding-left:1.1rem}.cell-popover-list li{margin-bottom:.5rem}.cell-popover-list li:last-child{margin-bottom:0}.cell-popover-list-wide li{margin-bottom:.6rem}.resource-stage-list{margin:0;padding-left:1.1rem;font-size:.8125rem;color:var(--text-muted)}.resource-stage-list li{margin-bottom:.25rem}.mb-0{margin-bottom:0}.mt-1{margin-top:.5rem}.text-muted{color:var(--text-muted);font-size:.875rem}.sidebar-user{margin-top:0;padding:.85rem 1.25rem 1.25rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem;flex-shrink:0;background:var(--bg-sidebar)}.sidebar-user-main{display:flex;flex-direction:column;gap:.15rem;font-size:.875rem}.sidebar-user-login{font-weight:600;color:var(--text)}.sidebar-user-role{color:var(--text-muted);font-size:.8rem}.sidebar-logout{align-self:flex-start;padding:.35rem .75rem;font-size:.8rem}.sidebar-admin-nav{margin-top:.35rem;padding-top:0;border-top:none;display:flex;flex-direction:column;gap:.15rem}.sidebar-dev{margin-top:.75rem;padding-top:.65rem;border-top:1px dashed var(--border);display:flex;flex-direction:column;gap:.35rem}.sidebar-dev-label{font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding:0 1.25rem .15rem}.sidebar-dev-btn{display:flex;align-items:center;width:100%;margin:0;padding:.625rem 1.25rem;border:none;border-radius:0;border-left:3px solid transparent;background:transparent;box-shadow:none;font:inherit;font-weight:500;color:var(--text);text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.sidebar-dev-btn:hover:not(:disabled){background:#0000000a}.sidebar-dev-btn:disabled{opacity:.65;cursor:wait}.users-create-card{margin-bottom:1.25rem}.users-projects-grid{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:.75rem 0 .25rem}.users-projects-grid-compact{margin:0;gap:.35rem .75rem}.users-projects-label{font-size:.8125rem;color:var(--text-muted);margin-right:.25rem}.users-project-check{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;cursor:pointer}.users-inline-select,.users-inline-input{font-family:var(--font);font-size:.875rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);max-width:100%}.users-inline-input{width:100%;min-width:7rem}.users-row-actions{display:flex;flex-wrap:wrap;gap:.35rem}.users-table td{vertical-align:top}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-page)}.login-card{width:100%;max-width:400px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:2rem}.login-brand{display:flex;align-items:center;gap:.65rem}.login-brand-icon{width:36px;height:36px;object-fit:contain;flex-shrink:0}.login-form{display:flex;flex-direction:column;gap:1rem}.login-label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:var(--text)}.login-label input{border-radius:var(--radius-sm);border:1px solid var(--border);padding:.5rem .75rem;font-size:.9rem}.login-label input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.login-error{background:#ffecec;border-radius:var(--radius-sm);border:1px solid #f2a5a5;padding:.5rem .75rem;font-size:.82rem;color:#a12626}.mobile-header{display:none;position:fixed;top:0;left:0;right:0;height:52px;z-index:99;background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 1rem;align-items:center;gap:.75rem;box-shadow:var(--shadow)}.mobile-header-menu-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-.25rem 0;border:none;background:transparent;border-radius:var(--radius-sm);font-size:1.5rem;color:var(--text);cursor:pointer}.mobile-header-menu-btn:hover{background:var(--bg-sidebar);color:var(--accent)}.mobile-header-title{font-size:1rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:100}.sidebar-close-mobile{display:none}.project-selector{padding:0;margin-bottom:0;border-bottom:none}.project-selector-label{display:block;font-size:.75rem;font-weight:600;color:var(--text-muted);margin-bottom:.35rem}.project-selector-select{width:100%;padding:.5rem .6rem;font-family:var(--font);font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text)}.project-selector-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.project-selector-badge{display:inline-block;margin-left:.5rem;font-size:.7rem;color:var(--text-muted)}.project-selector-badge-muted{opacity:.8}.projects-tasks-table th:nth-child(2),.projects-tasks-table td:nth-child(2){min-width:220px;width:28%}.projects-cost-cell{white-space:nowrap}.projects-list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.projects-list-header h3{margin:0}.projects-list{list-style:none;margin:0;padding:0}.projects-list-item{margin-bottom:.25rem}.projects-list-main{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;width:100%;padding:.6rem .75rem;text-align:left;font-family:var(--font);font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.projects-list-main:hover{background:var(--accent-soft);border-color:var(--accent)}.projects-list-item-active .projects-list-main{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.projects-list-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projects-list-status{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;background:var(--bg-page);color:var(--text-muted)}.projects-list-status-active{background:var(--accent-soft);color:var(--accent)}.projects-list-status-draft{background:var(--warning-soft);color:var(--warning)}.projects-list-status-archived{background:var(--bg-page);color:var(--text-muted)}.projects-list-badge-current{font-size:.65rem;font-weight:600;color:var(--accent)}.projects-form-card{min-width:0}.projects-tiles-wrap{margin-bottom:1.5rem}.projects-tiles-header{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.projects-tiles-title{font-weight:600;color:var(--text)}.projects-tiles{display:flex;flex-wrap:wrap;gap:.75rem}.projects-tile{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.6rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text);font-family:var(--font);font-size:.9375rem;cursor:pointer;transition:border-color .15s,box-shadow .15s}.projects-tile:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.projects-tile-active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.projects-tile-current{font-weight:600}.projects-tile-name{flex:1;min-width:0;text-align:left}.projects-tile-status{font-size:.75rem;padding:.2rem .4rem;border-radius:var(--radius-sm);background:var(--bg)}.projects-tile-status-draft{color:var(--text-muted)}.projects-tile-status-active{color:var(--success, #0a0)}.projects-tile-status-archived{color:var(--text-muted)}.projects-tile-badge{font-size:.7rem;padding:.15rem .35rem;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent)}.projects-work-area{width:100%;min-width:0}.projects-form-card-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.projects-form-card-header h3{margin:0}.projects-form-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.projects-tile-lock{font-size:.75rem;font-weight:600;margin-left:.35rem}.projects-tile-lock-open{color:var(--success, #0a0)}.projects-tile-lock-closed{color:var(--text-muted)}.projects-lock-banner{margin:0 0 .75rem;padding:.65rem .85rem;border-radius:6px;font-size:.9rem}.projects-lock-banner--locked{background:#fff4e5;color:#7a4a00;border:1px solid #f0d2a0}.projects-lock-banner--open{background:#eef8ef;color:#1a5c2e;border:1px solid #b7dfc0}.projects-wizard-fieldset{border:none;margin:0;padding:0;min-width:0}.projects-wizard-fieldset:disabled{opacity:.92}.projects-delete-btn{color:#fff;background:#b42318;border:1px solid #912018;font-size:.875rem;padding:.4rem .75rem;border-radius:6px}.projects-delete-btn:hover{background:#912018;color:#fff;text-decoration:none}.form-hint{margin:.35rem 0 0;font-size:.75rem}.projects-form .form-field{margin-bottom:1rem}.projects-form .form-field label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-muted);margin-bottom:.35rem}.projects-form input[type=text],.projects-form input[type=number],.projects-form input[type=date],.projects-form textarea,.projects-form select{width:100%;padding:.5rem .6rem;font-family:var(--font);font-size:.875rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text)}.projects-form-row{display:grid;grid-template-columns:1fr 1fr auto;gap:1rem}.projects-form-actions{display:flex;gap:.75rem;margin-top:1.25rem;flex-wrap:wrap}.projects-wizard-tabs{display:flex;gap:.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--border);padding-bottom:.75rem}.projects-wizard-tab{padding:.5rem .75rem;font-family:var(--font);font-size:.8125rem;font-weight:500;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.projects-wizard-tab:hover{background:var(--bg-page);color:var(--text)}.projects-wizard-tab.active{background:var(--accent-soft);color:var(--accent)}.projects-plan-editor,.projects-resources-view,.projects-budget-view{min-width:0}.projects-plan-editor--scroll{display:flex;flex-direction:column;max-height:min(70dvh,calc(100dvh - 16rem));min-height:12rem}.projects-plan-editor--scroll .projects-plan-toolbar{flex-shrink:0;position:sticky;top:0;z-index:3;background:var(--bg-card);padding-bottom:.5rem}.projects-plan-editor--scroll .table-wrap--sticky{flex:1;min-height:0}.projects-plan-toolbar{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.projects-tasks-table{width:100%;border-collapse:collapse;font-size:.8125rem}.projects-tasks-table th,.projects-tasks-table td{padding:.4rem .5rem;border-bottom:1px solid var(--border);vertical-align:middle}.projects-tasks-table th{text-align:left;font-weight:600;color:var(--text-muted);white-space:nowrap}.projects-stage-row{background:var(--accent-soft);font-weight:600}.projects-stage-row--leaf{font-weight:500}.projects-stage-row--leaf td:nth-child(2){font-weight:500}.projects-plan-name-cell{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}.projects-plan-name-cell .projects-inline-input{flex:1 1 10rem;min-width:8rem}.projects-stage-leaf-badge{display:inline-block;padding:.05rem .4rem;font-size:.7rem;font-weight:700;text-transform:lowercase;color:var(--accent);background:#fff;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:3px;white-space:nowrap}.projects-pred-cell{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;min-width:120px}.projects-lag-badge{display:inline-block;margin-left:.25rem;padding:.05rem .35rem;font-size:.7rem;font-weight:600;color:#5c4a28;background:#f3ebdc;border-radius:3px;vertical-align:middle;white-space:nowrap}.projects-stage-row .projects-stage-name{color:var(--accent)}.projects-work-row td:first-child{padding-left:1.25rem}.projects-material-row td:first-child{padding-left:1.5rem;color:var(--text-muted);font-size:.85em}.projects-material-row{background:color-mix(in srgb,var(--surface, #fff) 92%,#c4a35a 8%)}.tasks-expand-btn{border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:.15rem .25rem;font-size:.7rem;line-height:1}.tasks-expand-btn:hover{color:var(--accent)}.tasks-expand-row>td{background:color-mix(in srgb,var(--surface, #fff) 94%,var(--accent) 6%);padding:.75rem 1rem 1rem;border-bottom:1px solid var(--border);overflow:visible}.tasks-expand-grid{display:flex;flex-direction:column;gap:.85rem;width:100%;min-width:0;box-sizing:border-box}.tasks-expand-grid>div{width:100%;min-width:0;box-sizing:border-box;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem .65rem;background:var(--surface, #fff)}.tasks-expand-title{font-weight:600;font-size:.8125rem;margin-bottom:.35rem}.tasks-expand-table{width:100%;min-width:0!important;max-width:100%;border-collapse:collapse;font-size:.8125rem;table-layout:fixed}.tasks-expand-table th,.tasks-expand-table td{padding:.35rem .65rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;white-space:normal;word-break:break-word;position:static;box-shadow:none;background:transparent}.tasks-expand-table thead th{position:static!important;top:auto!important;z-index:auto!important;background:var(--bg-sidebar)!important;box-shadow:none!important;color:var(--text-muted);font-weight:500;white-space:nowrap}.tasks-expand-table th.num,.tasks-expand-table td.num{white-space:nowrap;text-align:left;font-variant-numeric:tabular-nums}.tasks-expand-table th:nth-child(1),.tasks-expand-table td:nth-child(1){width:28%}.tasks-expand-table th:nth-child(2),.tasks-expand-table td:nth-child(2){width:24%}.tasks-expand-table th:nth-child(3),.tasks-expand-table td:nth-child(3){width:28%}.tasks-expand-table th:nth-child(4),.tasks-expand-table td:nth-child(4){width:20%}.tasks-expand-grid>div:hover,.tasks-expand-table tr:hover td{background:transparent}.tasks-expand-overrun,.tasks-expand-overrun td{background:color-mix(in srgb,transparent 85%,#c45c26 15%)}.tasks-expand-empty{margin:0;font-size:.8125rem}.tasks-stage-row td:nth-child(3){font-weight:600}.projects-material-fields{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem;width:100%;min-width:0}.projects-material-name{flex:1 1 12rem;min-width:8rem;width:auto!important}.projects-material-link-hint{font-size:.8em;white-space:nowrap}.projects-material-badge{display:inline-block;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#6b5420;background:#f0e6c8;padding:.1rem .35rem;border-radius:4px;vertical-align:middle;flex-shrink:0}.materials-add-popup{max-width:480px;width:min(96vw,480px)}.projects-inline-input{width:100%;min-width:60px;padding:.35rem .5rem;font-family:var(--font);font-size:.8125rem;border:1px solid var(--border);border-radius:4px;background:var(--bg-card);color:var(--text)}.projects-cell-with-detail{display:inline-flex;align-items:center;gap:.25rem}.projects-cell-num,.projects-cell-text{min-width:1.5rem}.projects-detail-btn{padding:.2rem .4rem;font-size:.875rem;min-width:1.5rem}.projects-inline-input:focus{outline:none;border-color:var(--accent)}.projects-row-actions{display:inline-flex;align-items:center;gap:.15rem}.projects-row-move{padding:.15rem .35rem;min-width:1.5rem;font-size:.85rem;line-height:1}.projects-row-move:disabled{opacity:.35;cursor:default}.projects-row-remove{padding:.25rem .5rem;min-width:32px;color:var(--text-muted);font-size:1.25rem;line-height:1}.projects-row-remove:hover{color:var(--danger)}.projects-resources-view .section-title,.projects-budget-view .section-title{margin-top:1rem;margin-bottom:.5rem;font-size:.9375rem}.projects-resources-view table,.projects-budget-view table{font-size:.875rem}@media (max-width: 768px){.sidebar-close-mobile{display:flex;position:absolute;top:.75rem;right:.75rem;width:36px;height:36px;align-items:center;justify-content:center;border:none;background:var(--bg-card);border-radius:var(--radius-sm);font-size:1.5rem;line-height:1;color:var(--text-muted);cursor:pointer;z-index:1}.sidebar-close-mobile:hover{color:var(--text);background:var(--border)}}@media (max-width: 768px){.fact-desktop-only{display:none}.fact-mobile-only{display:block}.mobile-header{display:flex}.app-layout.mobile-menu-open .sidebar-overlay{display:block}.sidebar{width:280px;max-width:85vw;transform:translate(-100%);transition:transform .2s ease;box-shadow:none}.app-layout.mobile-menu-open .sidebar{transform:translate(0);box-shadow:4px 0 24px #00000026}.main-wrap,.main-wrap-narrow{margin-left:0}.main{padding:1rem;padding-top:60px}.main:has(>.page-scroll-panel){display:block;overflow:auto}.page-scroll-panel,.page-scroll-panel__body{display:block;min-height:0}.table-wrap.table-wrap--sticky,.projects-plan-editor--scroll{max-height:none}.page-title{font-size:1.25rem;margin-bottom:1rem}.projects-form-row{grid-template-columns:1fr 1fr}.projects-form-row .form-field:last-child{grid-column:1 / -1}.cards-row{grid-template-columns:1fr 1fr;gap:.75rem}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap>table{min-width:600px}.fact-form{max-width:100%}.popup{max-width:calc(100vw - 2rem);margin:0 1rem}.popup-overlay{padding:.5rem;align-items:stretch}.popup-fact-entry{width:100%;max-width:none;margin:0;max-height:calc(100vh - 1rem);display:flex;flex-direction:column}.popup-fact-entry .popup-body{overflow-y:auto;-webkit-overflow-scrolling:touch}.fact-card-title{font-size:1.125rem}.gantt-header-row{flex-direction:column;align-items:flex-start;gap:.5rem}.gantt-wrap-split .gantt-scroll{max-height:55vh}.gantt-wrap-split .gantt-chart-col{min-width:320px}.gantt-wrap-split .gantt-labels-col{min-width:0;width:120px}.gantt-wrap-split .gantt-label-text{font-size:.75rem}.page-toolbar{flex-wrap:wrap}}@media (max-width: 480px){.main{padding:.75rem;padding-top:56px}.cards-row{grid-template-columns:1fr}.table-wrap>table{min-width:520px}.btn{padding:.5rem .75rem}.fact-log-item{flex-direction:column;align-items:flex-start;gap:.25rem}.popup-body{padding:1rem}.popup-header{padding:.75rem 1rem}.gantt-wrap-split .gantt-chart-col{min-width:280px}.gantt-wrap-split .gantt-labels-col{width:100px}}.changes-popup{max-width:720px}.changes-popup--xl{max-width:min(1100px,96vw);width:96vw}.changes-popup .popup-body{max-height:80vh;overflow:auto}.changes-item-card{border:1px solid var(--border);border-radius:8px;padding:.75rem;margin-bottom:.75rem;background:var(--bg, #fff)}.changes-row-actions{display:flex;flex-wrap:wrap;gap:.35rem}.change-status{font-size:.8rem;font-weight:600}.change-status-draft{color:var(--text-muted)}.change-status-pending{color:#b45309}.change-status-approved{color:var(--success, #0a0)}.change-status-rejected{color:#b42318}.changes-registry-table th,.changes-registry-table td{vertical-align:top}.changes-registry-desc{min-width:140px;max-width:220px}.changes-registry-ops{min-width:220px;max-width:340px}.changes-op-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.45rem}.changes-op-item{font-size:.8125rem;line-height:1.35}.changes-op-head{font-weight:600;color:var(--text)}.changes-op-meta{color:var(--text-muted);font-size:.78rem;margin-top:.1rem}.changes-registry-ids{white-space:nowrap;vertical-align:top}.changes-id-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:none;padding:0;margin:0;color:var(--accent, #1a5f7a);font:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer;text-align:left}.changes-id-link:hover{color:var(--text)}.changes-assigned-id{margin:.35rem 0 .75rem;font-size:.875rem}.projects-plan-row--highlight{outline:2px solid var(--accent, #1a5f7a);outline-offset:-2px;background:color-mix(in srgb,var(--accent, #1a5f7a) 12%,transparent);animation:plan-row-flash 1.2s ease-in-out 2}@keyframes plan-row-flash{0%,to{background:color-mix(in srgb,var(--accent, #1a5f7a) 10%,transparent)}50%{background:color-mix(in srgb,var(--accent, #1a5f7a) 22%,transparent)}}.changes-impact{font-size:.8125rem;white-space:nowrap}.changes-impact-line{display:block}.form-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.form-row .form-field{flex:1;min-width:120px}.form-check{display:flex;align-items:center;gap:.5rem;margin:.75rem 0;font-size:.9rem}.changes-multi-select{min-height:6.5rem;width:100%}.changes-cost-hold{background:var(--bg-muted, #f3f4f6)!important;font-weight:600;cursor:default}.changes-stage-preview{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.changes-stage-chip{display:flex;flex-direction:column;gap:.1rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:6px;font-size:.72rem;max-width:160px;background:#fafafa;text-align:left;cursor:pointer;font-family:inherit}.changes-stage-chip:hover{border-color:#94a3b8}.changes-stage-chip--active{border-color:var(--accent, #2563eb);background:#eff6ff}.changes-stage-chip--pred{outline:2px solid #16a34a;background:#f0fdf4}.changes-chip-badge{color:#15803d;font-weight:700}.changes-deps-block{margin:.75rem 0;padding:.85rem;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.changes-deps-title{margin:0 0 .35rem;font-size:1rem}.changes-deps-flow{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch;margin-top:.75rem}.changes-deps-col{flex:1 1 200px;min-width:180px;background:#fff;border-radius:8px;padding:.65rem;border:1px solid var(--border)}.changes-deps-col--before{border-top:3px solid #64748b}.changes-deps-col--self{border-top:3px solid #2563eb;flex:0 1 140px;text-align:center}.changes-deps-col--after{border-top:3px solid #16a34a}.changes-deps-col-head{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.5rem;font-size:.8rem}.changes-deps-badge{display:inline-block;align-self:flex-start;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.15rem .4rem;border-radius:4px}.changes-deps-badge--before{background:#e2e8f0;color:#334155}.changes-deps-badge--self{background:#dbeafe;color:#1d4ed8}.changes-deps-badge--after{background:#dcfce7;color:#15803d}.changes-deps-arrow{display:flex;align-items:center;font-size:1.4rem;color:#94a3b8;font-weight:700;padding:0 .15rem}.changes-deps-select{width:100%}.changes-deps-self-box{padding:.75rem .5rem;background:#eff6ff;border-radius:6px;font-size:.85rem;font-weight:600;color:#1e40af}.changes-deps-result{margin:.4rem 0 0;font-size:.78rem;color:#166534;font-weight:500}@media (max-width: 900px){.changes-deps-arrow{display:none}}.changes-dep-checklist{max-height:180px;overflow:auto;border:1px solid var(--border);border-radius:6px;padding:.4rem .5rem;background:#fff}.changes-dep-check{display:flex;gap:.45rem;align-items:flex-start;font-size:.82rem;padding:.25rem 0;cursor:pointer}.changes-dep-check input{margin-top:.15rem}.activity-filters{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end;margin-bottom:1rem;padding:.85rem 1rem}.activity-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--text-muted)}.activity-filter select,.activity-filter input{min-width:11rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);font:inherit;color:var(--text);background:var(--bg-card, #fff)}.activity-filter-search{flex:1 1 12rem}.activity-filter-search input{min-width:14rem;width:100%}.activity-log-card{padding:.75rem 1rem 1rem}.activity-log-meta{font-size:.85rem;margin-bottom:.65rem}.activity-log-list{list-style:none;margin:0;padding:0}.activity-log-row{border-bottom:1px solid var(--border)}.activity-log-row:last-child{border-bottom:none}.activity-log-main{display:grid;grid-template-columns:9.5rem minmax(8rem,12rem) minmax(12rem,1fr) minmax(6rem,10rem) 9rem;gap:.5rem .75rem;width:100%;padding:.55rem .25rem;border:none;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}.activity-log-row.is-open .activity-log-main,.activity-log-main:hover{background:var(--bg-sidebar)}.activity-log-at{font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--text-muted)}.activity-log-who{font-size:.85rem;font-weight:600}.activity-log-msg{font-size:.9rem}.activity-log-proj{font-size:.8rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-log-action{font-size:.72rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--text-muted);justify-self:end}.activity-log-tech{padding:0 .25rem .85rem}.activity-log-diff{margin-bottom:.75rem}.activity-log-diff-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:.35rem}.activity-log-diff-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.activity-log-diff-list li{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:baseline}.activity-log-diff-path{font-size:.8rem;color:var(--text);min-width:8rem}.activity-log-diff-arrow{color:var(--text-muted);word-break:break-word}.activity-log-diff-more{margin:.35rem 0 0;font-size:.8rem}.activity-log-tech-grid{display:grid;grid-template-columns:6rem 1fr;gap:.25rem .75rem;font-size:.8rem;margin-bottom:.5rem}.activity-log-tech-grid span{color:var(--text-muted)}.activity-log-tech-grid code{font-size:.78rem;word-break:break-all}.activity-log-json{margin:0;padding:.65rem .75rem;background:var(--bg-sidebar);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.75rem;overflow:auto;max-height:16rem}.activity-log-pager{display:flex;gap:.75rem;margin-top:.85rem}@media (max-width: 900px){.activity-log-main{grid-template-columns:1fr 1fr}.activity-log-msg{grid-column:1 / -1}.activity-log-action{justify-self:start}}.toast-stack{position:fixed;top:.75rem;right:.75rem;z-index:12000;display:flex;flex-direction:column;gap:.5rem;width:min(22rem,calc(100vw - 1.5rem));pointer-events:none}.toast{pointer-events:auto;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:.15rem .35rem;padding:.65rem .7rem .55rem;background:#fff;border:1px solid #d5e0d4;border-left:3px solid var(--accent);border-radius:6px;box-shadow:0 6px 20px #1b43321f;animation:toast-in .22s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(.6rem)}to{opacity:1;transform:translate(0)}}.toast-body{grid-column:1;grid-row:1;border:0;background:transparent;text-align:left;padding:0;cursor:pointer;font:inherit;color:var(--text)}.toast-message{display:block;font-size:.88rem;line-height:1.35}.toast-actions{grid-column:2;grid-row:1;display:flex;align-items:flex-start;gap:.25rem}.toast-undo{border:0;background:var(--accent-soft);color:var(--accent-hover);font-size:.78rem;font-weight:600;padding:.2rem .45rem;border-radius:4px;cursor:pointer}.toast-undo:hover{background:#c8ebd0}.toast-close{border:0;background:transparent;color:var(--text-muted);font-size:1.1rem;line-height:1;padding:0 .15rem;cursor:pointer}.toast-close:hover{color:var(--text)}.toast-progress{grid-column:1 / -1;grid-row:2;height:3px;background:#e8efe6;border-radius:2px;overflow:hidden;margin-top:.25rem}.toast-progress-bar{height:100%;width:100%;background:var(--accent);transform-origin:left center;transition:transform .05s linear}@media (max-width: 640px){.toast-stack{top:auto;bottom:.75rem;right:.5rem;left:.5rem;width:auto}}.exec-overlay{z-index:11000;align-items:flex-start;padding:1.25rem .75rem;overflow:auto}.exec-popup{width:min(920px,100%);max-height:none;margin:0 auto 2rem;display:flex;flex-direction:column;background:#f7f5ef;border:1px solid #d8d2c4}.exec-popup .popup-header{background:#fffdf8;border-bottom:1px solid #e4ddd0;position:sticky;top:0;z-index:2}.exec-popup-actions{display:flex;align-items:center;gap:.5rem}.exec-pdf-hint{font-size:.72rem;color:var(--text-muted);white-space:nowrap}.exec-popup-body{padding:0;max-height:min(78vh,900px);overflow:auto}.exec-print-root{background:#f7f5ef}.exec-print-root.exec-capturing,.exec-print-root.exec-capturing *{font-family:Arial,Helvetica,sans-serif!important;letter-spacing:0!important;word-spacing:normal!important;font-kerning:none!important;font-variant-ligatures:none!important;font-feature-settings:"kern" 0!important;text-rendering:geometricPrecision!important}.exec-print-root.exec-capturing .exec-hero-brand,.exec-print-root.exec-capturing .exec-kpi-label{letter-spacing:0!important;text-transform:none!important}.exec-report{padding:1.25rem 1.35rem 1.5rem;color:#1f2a24;font-size:.9rem;line-height:1.4}.exec-hero{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:2px solid #2d6a4f}.exec-hero-brand{font-size:.75rem;letter-spacing:.02em;text-transform:uppercase;color:#2d6a4f;font-weight:700}.exec-hero-title{margin:.35rem 0 .15rem;font-size:1.55rem;font-weight:700;color:#14231c}.exec-hero-project{margin:0;font-size:1.15rem;font-weight:600}.exec-hero-meta{margin:.35rem 0 0;color:#5a655e;font-size:.82rem}.exec-headline{margin:.75rem 0 .5rem;padding:.55rem .7rem;background:#fff;border-left:3px solid #2d6a4f;font-size:.88rem}.exec-tones{display:flex;flex-wrap:wrap;gap:.4rem}.exec-tone{display:inline-block;padding:.2rem .55rem;border-radius:4px;font-size:.78rem;font-weight:600}.exec-tone--good{background:#d8f3dc;color:#1b4332}.exec-tone--warn{background:#f5efd8;color:#6b5420}.exec-tone--bad{background:#f5ddd6;color:#8a3a2a}.exec-tone--neutral{background:#e8e6df;color:#444}.exec-section{margin-top:1.15rem}.exec-section h2{margin:0 0 .55rem;font-size:.95rem;font-weight:700;color:#1b4332}.exec-section--split{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.exec-kpi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.55rem}.exec-kpi{background:#fff;border:1px solid #e0d9cc;border-radius:6px;padding:.55rem .65rem}.exec-kpi-label{font-size:.72rem;color:#6a736c;text-transform:uppercase;letter-spacing:.02em}.exec-kpi-value{font-size:1.35rem;font-weight:700;font-variant-numeric:tabular-nums;margin-top:.15rem}.exec-kpi-value--sm{font-size:1.05rem}.exec-kpi-sub{font-size:.75rem;color:#6a736c;margin-top:.1rem}.exec-bad{color:#8a3a2a!important}.exec-dualbar{margin-bottom:.65rem}.exec-dualbar-label{font-size:.8rem;font-weight:600;margin-bottom:.2rem}.exec-dualbar-row{display:grid;grid-template-columns:2.2rem 1fr 2.4rem;gap:.35rem;align-items:center;margin-bottom:.15rem}.exec-dualbar-cap{font-size:.68rem;color:#6a736c}.exec-dualbar-track{height:8px;background:#e8efe6;border-radius:4px;overflow:hidden}.exec-dualbar-fill{height:100%;border-radius:4px;min-width:2px}.exec-dualbar-fill--plan{background:#95b8a4}.exec-dualbar-fill--fact{background:#2d6a4f}.exec-dualbar-fill--behind{background:#a86258}.exec-dualbar-track--behind{background:#f2dcd6}.exec-behind-tag{color:#8a3a2a;font-weight:600;font-size:.72rem}.exec-dualbar-val{font-size:.72rem;font-variant-numeric:tabular-nums;text-align:right}.exec-donut{display:flex;align-items:center;gap:.85rem;margin-bottom:.75rem}.exec-donut-pct{font-size:16px;font-weight:700;fill:#14231c}.exec-donut-sub{font-size:10px;fill:#6a736c}.exec-donut-legend{font-size:.82rem;line-height:1.5}.exec-moneybars{display:flex;flex-direction:column;gap:.45rem}.exec-moneybar-name{font-size:.78rem;font-weight:600}.exec-moneybar-tracks{display:flex;flex-direction:column;gap:3px;margin:.15rem 0}.exec-moneybar-fill{height:7px;border-radius:3px;min-width:2px}.exec-moneybar-fill--plan{background:#95b8a4}.exec-moneybar-fill--fact{background:#2d6a4f}.exec-moneybar-vals{display:flex;justify-content:space-between;font-size:.72rem;color:#5a655e;font-variant-numeric:tabular-nums}.exec-table{width:100%;border-collapse:collapse;font-size:.78rem;background:#fff}.exec-table th,.exec-table td{border:1px solid #e0d9cc;padding:.35rem .45rem;text-align:left;vertical-align:top}.exec-table th{background:#efe9dc;font-weight:600}.exec-row-active td{background:#f5efd8}.exec-statline{margin:0 0 .5rem;font-size:.82rem}.exec-empty{color:#6a736c;font-size:.85rem;margin:.25rem 0}.exec-note{margin:.55rem 0 0;font-size:.72rem;color:#6a736c}.exec-footer{margin-top:1.25rem;padding-top:.75rem;border-top:1px solid #d8d2c4;font-size:.7rem;color:#7a847c}@media (max-width: 720px){.exec-section--split,.exec-kpi-grid{grid-template-columns:1fr}}
