:root{--bg: #fbfbfd;--surface: #ffffff;--surface-2: #f5f5f7;--surface-3: #ececef;--text: #1d1d1f;--text-2: #424245;--text-3: #6e6e73;--text-4: #a1a1a6;--hairline: rgba(0, 0, 0, .08);--hairline-strong: rgba(0, 0, 0, .14);--hairline-light: rgba(0, 0, 0, .05);--accent: #0071e3;--accent-hover: #0077ed;--accent-active: #006edb;--accent-bg: rgba(0, 113, 227, .08);--green: #30d158;--orange: #ff9f0a;--red: #ff453a;--purple: #bf5af2;--yellow: #ffd60a;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08), 0 2px 4px rgba(0, 0, 0, .04);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .12), 0 4px 12px rgba(0, 0, 0, .06);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .18);--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-full: 999px;--cw: 40px;--col-task: 200px;--col-gewerk: 140px;--col-firma: 140px;--col-geschoss: 80px;--col-kosten: 100px;--col-el-reduction: 120px;--col-effective: 120px;--col-pct: 64px;--col-bem: 180px;--col-subsidy: 78px;--row-h: 36px;--phase-h: 44px;--ms-h: 30px;--ease: cubic-bezier(.4, 0, .2, 1);--month-divider: rgba(0, 0, 0, .06);--toolbar-bg: rgba(255, 255, 255, .88);--overlay-bg: rgba(0, 0, 0, .32);--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", system-ui, sans-serif;--hdr-yr-h: 28px;--fs-toolbar: 15px;--fs-phase: 12.5px;--fs-task: 12px;--fs-cell: 11.5px;--fs-meta: 11px;--fs-header-col: 10px;--fs-bar: 10px;--fs-mo-hdr: 10px;--fs-yr-hdr: 10px}:root[data-fs=compact]{--hdr-yr-h: 25px;--fs-toolbar: 13.5px;--fs-phase: 11.5px;--fs-task: 11px;--fs-cell: 10.5px;--fs-meta: 10px;--fs-header-col: 9px;--fs-bar: 9px;--fs-mo-hdr: 9px;--fs-yr-hdr: 9px}:root[data-fs=comfortable]{--hdr-yr-h: 30px;--fs-toolbar: 17px;--fs-phase: 14px;--fs-task: 13.5px;--fs-cell: 13px;--fs-meta: 12.5px;--fs-header-col: 11px;--fs-bar: 11px;--fs-mo-hdr: 11px;--fs-yr-hdr: 11px}:root[data-fs=large]{--hdr-yr-h: 33px;--fs-toolbar: 19px;--fs-phase: 15.5px;--fs-task: 15px;--fs-cell: 14.5px;--fs-meta: 14px;--fs-header-col: 12px;--fs-bar: 12px;--fs-mo-hdr: 12px;--fs-yr-hdr: 12px}:root[data-theme=dark]{--bg: #1c1c1e;--surface: #2c2c2e;--surface-2: #3a3a3c;--surface-3: #48484a;--text: #f5f5f7;--text-2: #d1d1d6;--text-3: rgba(235, 235, 245, .6);--text-4: rgba(235, 235, 245, .35);--hairline: rgba(255, 255, 255, .1);--hairline-strong: rgba(255, 255, 255, .2);--hairline-light: rgba(255, 255, 255, .05);--accent: #0a84ff;--accent-hover: #2196ff;--accent-active: #0072e0;--accent-bg: rgba(10, 132, 255, .18);--green: #30d158;--orange: #ff9f0a;--red: #ff453a;--purple: #bf5af2;--yellow: #ffd60a;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .6);--shadow-xl: 0 20px 60px rgba(0, 0, 0, .7);--month-divider: rgba(255, 255, 255, .08);--toolbar-bg: rgba(28, 28, 30, .85);--overlay-bg: rgba(0, 0, 0, .55)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-family);background:var(--bg);color:var(--text);font-size:var(--fs-task);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern","ss01";letter-spacing:-.005em;transition:background-color .2s var(--ease),color .2s var(--ease)}button,input,select,textarea{font-family:inherit}a{color:var(--accent);text-decoration:none}.toolbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:12px;height:60px;padding:0 24px;background:var(--toolbar-bg);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--hairline)}.tb-brand{flex:1;min-width:0}.tb-brand h1{font-size:var(--fs-toolbar);font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tb-brand h1:hover{color:var(--accent)}.tb-brand .sub{font-size:11.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.tb-brand .build-stamp{font-size:10px;color:var(--text-3);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px;font-variant-numeric:tabular-nums}.tb-sep{width:1px;height:22px;background:var(--hairline);flex-shrink:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;background:var(--surface-2);color:var(--text);border:1px solid transparent;border-radius:var(--r-md);font-size:12.5px;font-weight:500;cursor:pointer;transition:background .15s var(--ease),transform .08s var(--ease),box-shadow .15s var(--ease);line-height:1.2;white-space:nowrap}.btn:hover{background:var(--surface-3)}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{background:var(--accent-active)}.btn-ghost{background:transparent}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:transparent;color:var(--red)}.btn-danger:hover{background:#ff453a1a}.btn-sm{padding:5px 10px;font-size:11.5px;border-radius:var(--r-sm)}.btn-icon{padding:7px 9px}.btn-icon-sm{padding:4px 6px;font-size:11px;border-radius:var(--r-sm)}.stats-bar{display:flex;align-items:center;gap:28px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--hairline);font-size:12px}.stat{display:flex;align-items:baseline;gap:6px}.stat-val{font-size:15px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.stat-lbl{color:var(--text-3);font-size:11.5px}.stat-dot{width:8px;height:8px;border-radius:50%;align-self:center}.filter-bar{display:flex;align-items:center;gap:10px;padding:8px 24px;background:#ff9f0a14;border-bottom:1px solid rgba(255,159,10,.18);font-size:12px}.filter-lbl{color:#b06f00;font-weight:500}.filter-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-full);font-size:11.5px;font-weight:500;cursor:pointer;transition:opacity .12s}.filter-pill .x{font-size:10px;opacity:.6}.filter-pill:hover .x{opacity:1}.search-wrap{position:relative}.search-input{padding:7px 12px 7px 30px;width:220px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);font-size:12.5px;color:var(--text);transition:all .15s var(--ease)}.search-input:focus{outline:none;background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--text-4);pointer-events:none}.main{padding:20px 24px 80px;max-width:100%}.card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.section{margin-bottom:20px}.section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.section-title{font-size:13px;font-weight:600;letter-spacing:-.005em;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em}.legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0;margin-bottom:12px;align-items:center}.leg-item{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font-size:var(--fs-cell);color:var(--text-2);background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-full);cursor:pointer;transition:all .15s var(--ease)}.leg-item:hover{background:var(--surface-2);border-color:var(--hairline-strong)}.leg-item.active{background:var(--surface);border-color:currentColor;box-shadow:0 0 0 1px currentColor}.leg-item.no-cursor{cursor:default}.leg-item.no-cursor:hover{background:var(--surface);border-color:var(--hairline)}.leg-bar{width:14px;height:8px;border-radius:2px;flex-shrink:0}.leg-dia{width:8px;height:8px;transform:rotate(45deg);flex-shrink:0}.leg-line{width:2px;height:12px;background:var(--red);flex-shrink:0}.gantt-wrap{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:20px}.gantt-scroll{overflow:auto;max-height:calc(100vh - 230px);min-height:320px;scrollbar-gutter:stable}.gtbl{border-collapse:collapse;table-layout:fixed}.gtbl thead th{position:sticky;z-index:6;background:var(--surface-2)}.gtbl .hdr-yr th{top:0}.gtbl .hdr-mo th{top:var(--hdr-yr-h)}.gtbl thead th.col-task{left:0;top:0;z-index:12;background:var(--surface);position:sticky}.col-resize-handle{position:absolute;top:0;right:-3px;width:6px;height:100%;cursor:col-resize;z-index:13;background:transparent;transition:background .12s var(--ease)}.col-resize-handle:hover{background:var(--accent);opacity:.5}body.col-resizing{cursor:col-resize!important;-webkit-user-select:none;user-select:none}body.col-resizing .col-resize-handle{background:var(--accent);opacity:.6}.gtbl td.col-task,.gtbl th.col-task{position:sticky;left:0;z-index:5;background:var(--surface);width:var(--col-task);min-width:var(--col-task);max-width:var(--col-task);border-right:1px solid var(--hairline);overflow:hidden}.t-name,.ms-lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.t-inner,.ms-inner,.ph-inner{min-width:0}.gtbl th.col-gewerk,.gtbl td.t-gewerk-cell{width:var(--col-gewerk);min-width:var(--col-gewerk);max-width:var(--col-gewerk);overflow:hidden}.gtbl th.col-firma,.gtbl td.t-firma-cell{width:var(--col-firma);min-width:var(--col-firma);max-width:var(--col-firma);overflow:hidden}.gtbl th.col-geschoss,.gtbl td.t-geschoss-cell{width:var(--col-geschoss);min-width:var(--col-geschoss);max-width:var(--col-geschoss);text-align:center}.t-geschoss-cell .geschoss-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:1px solid transparent;font:inherit;color:var(--text);width:100%;padding:4px 6px;border-radius:var(--r-sm);text-align:center;cursor:pointer}.t-geschoss-cell .geschoss-select:hover{border-color:var(--hairline-strong);background:var(--surface-2)}.t-geschoss-cell .geschoss-select:focus{border-color:var(--accent);outline:none}.gtbl th.col-kosten,.gtbl td.t-kosten-cell{width:var(--col-kosten);min-width:var(--col-kosten);max-width:var(--col-kosten);text-align:right}.gtbl th.col-el-reduction,.gtbl td.t-el-reduction-cell{width:var(--col-el-reduction);min-width:var(--col-el-reduction);max-width:var(--col-el-reduction);text-align:right}.gtbl th.col-effective,.gtbl td.t-effective-cell{width:var(--col-effective);min-width:var(--col-effective);max-width:var(--col-effective);text-align:right}.gtbl th.col-pct,.gtbl td.t-pct-cell{width:var(--col-pct);min-width:var(--col-pct);max-width:var(--col-pct);text-align:center}.gtbl th.col-bem,.gtbl td.t-bem-cell{width:var(--col-bem);min-width:var(--col-bem);max-width:var(--col-bem);overflow:hidden}.gtbl th.col-subsidy,.gtbl td.t-subsidy-cell{width:var(--col-subsidy);min-width:var(--col-subsidy);max-width:var(--col-subsidy);text-align:center}.gtbl th.col-mo,.gtbl td.col-mo{width:var(--cw);min-width:var(--cw);max-width:var(--cw)}.hdr-yr{background:var(--surface-2)}.hdr-yr th,.hdr-yr td{padding:6px 0;font-size:var(--fs-yr-hdr);font-weight:600;color:var(--text-3);letter-spacing:.12em;text-align:center;border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline)}.hdr-mo{background:var(--surface-2)}.hdr-mo th{padding:6px 0;font-size:var(--fs-mo-hdr);font-weight:500;color:var(--text-3);text-align:center;border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline-light)}.hdr-mo th.yr-sep{border-right:1px solid var(--hairline-strong)}.hdr-mo th.today-col{color:var(--red);font-weight:600}.hdr-col-lbl{position:relative;padding:0 24px 0 12px;height:100%;display:flex;align-items:center;font-size:var(--fs-header-col);font-weight:600;color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;border-right:1px solid var(--hairline)}.hdr-col-lbl.no-hide{padding:0 12px}.hdr-col-lbl.right{justify-content:flex-end}.hdr-col-lbl.center{justify-content:center}.hdr-col-hide{position:absolute;right:4px;top:50%;transform:translateY(-50%);-moz-appearance:none;appearance:none;-webkit-appearance:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-3);border:none;color:var(--text-2);font-size:11px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s var(--ease),background .15s var(--ease),color .15s var(--ease)}.hdr-col-lbl:hover .hdr-col-hide{opacity:.75}.hdr-col-hide:hover{opacity:1!important;background:var(--red);color:#fff}.ph-row td{height:var(--phase-h);border-bottom:1px solid var(--hairline);vertical-align:middle}.ph-task-cell{padding:0;background:inherit}.ph-inner{display:flex;align-items:center;gap:8px;padding:0 12px;height:var(--phase-h)}.ph-arrow{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--r-sm);cursor:pointer;color:var(--text-3);font-size:10px;transition:transform .2s var(--ease),background .12s;flex-shrink:0}.ph-arrow:hover{background:var(--surface-2);color:var(--text)}.ph-arrow.collapsed{transform:rotate(-90deg)}.ph-name{flex:1;font-size:var(--fs-phase);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;letter-spacing:-.005em}.ph-name:hover{color:var(--accent)}.ph-acts{display:flex;gap:2px;opacity:0;transition:opacity .12s;flex-shrink:0}.ph-row:hover .ph-acts{opacity:1}.ph-row td.ph-cell{padding:0 12px;background:inherit;border-right:1px solid var(--hairline-light);vertical-align:middle}.ph-row td.ph-kosten-cell{text-align:right;font-variant-numeric:tabular-nums}.ph-total{font-size:var(--fs-cell);font-weight:700;letter-spacing:-.01em}.ph-row td.ph-bem-cell{font-size:var(--fs-meta);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-style:italic}.ph-period-text{opacity:.85}.tr-task td{height:var(--row-h);border-bottom:1px solid var(--hairline-light);vertical-align:middle;background:var(--surface)}.tr-task:hover td{background:var(--surface-2)!important}.tr-task.is-dragging td{opacity:.4}.tr-task.drop-before td:first-child{box-shadow:inset 0 2px 0 0 var(--accent)}.tr-task.drop-after td:first-child{box-shadow:inset 0 -2px 0 0 var(--accent)}.t-task-cell{padding:0 8px 0 6px;background:inherit}.t-inner{display:flex;align-items:center;gap:4px}.drag-handle{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-4);font-size:13px;border-radius:var(--r-sm);opacity:0;transition:opacity .12s,background .12s;flex-shrink:0}.tr-task:hover .drag-handle{opacity:1}.drag-handle:hover{background:var(--surface-3);color:var(--text-2)}.drag-handle:active{cursor:grabbing}.t-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.t-name{flex:1;font-size:var(--fs-task);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;padding:0 4px;letter-spacing:-.003em}.t-name:hover{color:var(--accent)}.cost-cell-inner{display:flex;align-items:center;justify-content:flex-end;gap:4px}.cost-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;cursor:help}.cost-legend{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:6px 12px;font-size:11px;color:var(--text-2);border-top:1px solid var(--hairline)}.cost-legend-lbl{font-weight:600}.cost-legend-item{display:flex;align-items:center;gap:5px}.cost-legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.t-acts{display:flex;gap:1px;opacity:0;transition:opacity .12s;flex-shrink:0}.tr-task:hover .t-acts{opacity:1}.t-act{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;cursor:pointer;color:var(--text-2);font-size:15px;font-family:inherit;line-height:1;transition:background .12s,color .12s}.t-act:hover{background:var(--surface-3);color:var(--text)}.t-act.del:hover{background:#ff453a26;color:var(--red)}.t-gewerk-cell{padding:0 12px;font-size:var(--fs-cell);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-right:1px solid var(--hairline-light)}.t-gewerk-cell:hover{background:var(--accent-bg);color:var(--accent)}.t-firma-cell{padding:0 12px;font-size:var(--fs-cell);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--hairline-light)}.t-firma-cell:empty:before{content:"—";color:var(--text-4)}.t-kosten-cell,.t-effective-cell{padding:0 12px;font-size:var(--fs-cell);text-align:right;font-variant-numeric:tabular-nums;border-right:1px solid var(--hairline-light)}.t-pct-cell{padding:0 8px;border-right:1px solid var(--hairline-light)}.pct-bar{width:100%;height:4px;background:var(--surface-3);border-radius:var(--r-full);overflow:hidden}.pct-fill{height:100%;border-radius:var(--r-full);transition:width .25s var(--ease)}.t-bem-cell{padding:0 12px;font-size:var(--fs-meta);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--hairline-light)}.t-subsidy-cell{text-align:center;border-right:1px solid var(--hairline-light);cursor:pointer}.subsidy-mark{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;font-size:12px;font-weight:700;box-shadow:var(--shadow-xs)}.subsidy-mark.off{background:transparent;color:var(--text-4);box-shadow:none;border:1.5px dashed var(--hairline-strong)}.f-check{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);cursor:pointer;transition:background .12s var(--ease),border-color .12s var(--ease)}.f-check:hover{background:var(--surface-3)}.f-check input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:22px;height:22px;border:1.5px solid var(--hairline-strong);border-radius:6px;background:var(--surface);cursor:pointer;position:relative;flex-shrink:0;transition:all .12s var(--ease);margin-top:1px}.f-check input[type=checkbox]:checked{background:var(--green);border-color:var(--green)}.f-check input[type=checkbox]:checked:after{content:"✓";position:absolute;top:50%;left:50%;transform:translate(-50%,-53%);color:#fff;font-size:14px;font-weight:700;line-height:1}.f-check-text{display:flex;flex-direction:column;gap:2px}.f-check-title{font-size:13px;font-weight:500;color:var(--text)}.f-check-hint{font-size:11.5px;color:var(--text-3);line-height:1.4}.t-tl-cell{position:relative;overflow:visible;padding:0}.tr-ms td{height:var(--ms-h);border-bottom:1px solid var(--hairline-light);vertical-align:middle;background:var(--surface)}.tr-ms:hover td{background:var(--surface-2)!important}.ms-task-cell{padding:0 4px 0 6px;background:inherit}.ms-inner{display:flex;align-items:center;gap:4px;padding-left:24px}.ms-icon{width:8px;height:8px;transform:rotate(45deg);flex-shrink:0}.ms-lbl{font-size:11.5px;font-weight:500;cursor:pointer;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;padding:0 2px}.ms-lbl:hover{color:var(--accent)}.ms-acts{display:flex;gap:1px;opacity:0;transition:opacity .12s;flex-shrink:0}.tr-ms:hover .ms-acts{opacity:1}.tr-ms .drag-handle{margin-right:0}.tr-ms:hover .drag-handle{opacity:1}.tr-ms.drop-before td:first-child{box-shadow:inset 0 2px 0 0 var(--accent)}.tr-ms.drop-after td:first-child{box-shadow:inset 0 -2px 0 0 var(--accent)}.tr-ms.is-dragging td{opacity:.4}.ms-cell{padding:0 12px;font-size:var(--fs-meta);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-right:1px solid var(--hairline-light);background:inherit;vertical-align:middle}.ms-cell.ms-date-cell{font-style:italic;color:var(--text-2)}.ms-tl-cell{position:relative;overflow:visible;padding:0}.ms-diam{cursor:grab}.ms-diam:active{cursor:grabbing}.tr-totals td{height:38px;border-top:1px solid var(--hairline);background:var(--surface-2);vertical-align:middle;font-weight:600;font-size:12px}.tr-totals .col-task{padding:0 12px;color:var(--text-3);background:var(--surface-2)}.tr-add td{height:30px;border-bottom:1px solid var(--hairline-light);background:var(--surface)}.add-task-btn{display:flex;align-items:center;gap:6px;padding:0 18px;height:100%;width:100%;font-size:11px;color:var(--text-3);cursor:pointer;transition:color .12s,background .12s}.add-task-btn:hover{color:var(--accent);background:var(--accent-bg)}.g-bar{position:absolute;top:50%;left:0;transform:translateY(-50%);height:18px;border-radius:5px;cursor:grab;z-index:2;-webkit-user-select:none;user-select:none;transition:opacity .12s,height .12s,box-shadow .12s;opacity:.92;box-shadow:0 1px 2px #0000001a}.g-bar:hover{opacity:1;height:22px;box-shadow:0 2px 4px #00000026}.g-bar:active{cursor:grabbing}.g-bar .rh{position:absolute;top:0;height:100%;width:8px;cursor:ew-resize;z-index:3}.g-bar .rh-l{left:0;border-radius:5px 0 0 5px}.g-bar .rh-r{right:0;border-radius:0 5px 5px 0}.g-bar-txt{position:absolute;top:50%;left:8px;transform:translateY(-50%);font-size:var(--fs-bar);font-weight:600;color:#fff;white-space:nowrap;pointer-events:none;letter-spacing:-.003em;z-index:4;text-shadow:-.5px -.5px 0 rgba(0,0,0,.6),.5px -.5px 0 rgba(0,0,0,.6),-.5px .5px 0 rgba(0,0,0,.6),.5px .5px 0 rgba(0,0,0,.6),0 1px 2px rgba(0,0,0,.4)}.tl-grid{background-image:repeating-linear-gradient(90deg,transparent calc(var(--cw) - 1px),var(--month-divider) calc(var(--cw) - 1px),var(--month-divider) var(--cw),transparent var(--cw));background-size:var(--cw) 100%}.today-ln{position:absolute;top:0;width:1.5px;height:100%;background:var(--red);opacity:.6;z-index:6;pointer-events:none}.yr-ln{position:absolute;top:0;width:1px;height:100%;background:var(--hairline-strong);z-index:4;pointer-events:none}.ms-diam{position:absolute;top:50%;transform:translate(-50%,-50%) rotate(45deg);width:12px;height:12px;z-index:3;box-shadow:0 0 0 2px var(--surface),0 1px 3px #0003;cursor:pointer;transition:transform .15s var(--ease)}.ms-diam:hover{transform:translate(-50%,-50%) rotate(45deg) scale(1.25)}.budget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.budget-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px 16px;position:relative;box-shadow:var(--shadow-xs);transition:box-shadow .15s var(--ease),transform .12s var(--ease)}.budget-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.budget-card:before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 2px 2px 0;background:var(--c, var(--accent))}.budget-card-ph{font-size:10.5px;font-weight:600;color:var(--text-3);margin-bottom:4px;letter-spacing:.02em}.budget-card-val{font-size:18px;font-weight:600;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.budget-card-info{font-size:10.5px;color:var(--text-3);margin-top:3px}.budget-total{margin-top:16px;padding:14px 16px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);display:flex;flex-direction:column;gap:10px}.budget-total-row{display:flex;justify-content:space-between;align-items:baseline}.budget-total-lbl{font-size:12px;color:var(--text-2)}.budget-total-val{font-size:22px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.budget-subsidy-row{display:flex;justify-content:space-between;align-items:center;padding-top:10px;border-top:1px solid var(--hairline);font-size:12.5px}.budget-subsidy-lbl{display:inline-flex;align-items:center;gap:8px;color:var(--text-2);font-weight:500}.budget-subsidy-val{color:var(--green);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.005em}.budget-subsidy-pct{color:var(--text-3);font-weight:400;font-size:11px;margin-left:4px}.subsidy-mark.mini{width:16px;height:16px;font-size:9px;box-shadow:0 1px 2px #0000001a}.budget-kfw-row{display:flex;justify-content:space-between;align-items:center;padding-top:8px;font-size:12.5px}.budget-kfw-lbl{display:inline-flex;align-items:center;gap:8px;color:var(--text-2);font-weight:500}.kfw-mark{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:var(--accent);color:#fff;border-radius:50%;font-size:9.5px;font-weight:700;box-shadow:0 1px 2px #0000001a}.budget-kfw-val{color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.005em}.budget-kfw-hint{color:var(--text-3);font-weight:400;font-size:11px;margin-left:4px}.budget-net-row{display:flex;justify-content:space-between;align-items:baseline;padding-top:10px;margin-top:4px;border-top:1px solid var(--hairline-strong)}.budget-net-lbl{font-size:12px;color:var(--text-2);font-weight:600}.budget-net-val{font-size:18px;font-weight:700;letter-spacing:-.015em;font-variant-numeric:tabular-nums;color:var(--text)}.trade-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;margin-top:8px}.trade-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);font-size:11.5px;cursor:pointer;transition:all .12s var(--ease)}.trade-item:hover,.trade-item.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.trade-name{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-item.active .trade-name,.trade-item:hover .trade-name{color:var(--accent)}.trade-val{font-weight:600;margin-left:10px;font-variant-numeric:tabular-nums}.trade-item.unassigned{cursor:default;opacity:.75;font-style:italic}.trade-item.unassigned:hover{border-color:var(--hairline);background:var(--surface);color:inherit}.trade-item.unassigned:hover .trade-name{color:var(--text-2)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.m-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:12px 14px 12px 16px;position:relative;box-shadow:var(--shadow-xs);cursor:pointer;transition:all .15s var(--ease)}.m-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.m-card:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:0 2px 2px 0;background:var(--c, var(--accent))}.m-card-hdr{display:flex;align-items:center;gap:6px;margin-bottom:4px}.m-card-dia{width:8px;height:8px;transform:rotate(45deg);flex-shrink:0}.m-card-dt{font-size:10.5px;font-weight:600;color:var(--text-3);letter-spacing:.02em}.m-card-title{font-size:12px;font-weight:500;margin-bottom:3px;letter-spacing:-.005em}.m-card-note{font-size:10.5px;color:var(--text-3)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:10000;isolation:isolate;background:var(--overlay-bg);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fadeIn .15s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);padding:28px;min-width:480px;max-width:600px;width:100%;max-height:88vh;overflow-y:auto;animation:slideUp .2s var(--ease)}.modal-title{font-size:17px;font-weight:600;letter-spacing:-.01em;margin-bottom:20px}.f-row{margin-bottom:16px}.f-row label{display:block;font-size:11px;font-weight:600;color:var(--text-2);margin-bottom:6px;letter-spacing:-.003em}.f-row input,.f-row select,.f-row textarea{width:100%;padding:9px 12px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-size:13px;transition:all .12s var(--ease)}.f-row input:focus,.f-row select:focus,.f-row textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.f-row textarea{resize:vertical;min-height:76px}.modal-static-value{width:100%;padding:9px 12px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-size:13px;font-weight:600}.f-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.f-3col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.pct-wrap{display:flex;align-items:center;gap:12px}.pct-wrap input[type=range]{flex:1}.pct-wrap span{width:40px;text-align:right;font-size:13px;font-weight:500;font-variant-numeric:tabular-nums}.modal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid var(--hairline)}.modal-foot-r{display:flex;gap:8px}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}.swatch:hover{transform:scale(1.12)}.swatch.sel{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.status-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:var(--r-full);font-size:10.5px;font-weight:500;cursor:pointer;letter-spacing:-.003em;transition:opacity .12s}.status-tag:hover{opacity:.8}.status-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.status-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);font-size:12.5px}.status-item-dot{width:10px;height:10px;border-radius:50%}.status-item-del{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:transparent;border:none;cursor:pointer;color:var(--text-4);margin-left:auto;padding:2px 6px;border-radius:var(--r-sm);font-size:14px;line-height:1;transition:all .12s var(--ease)}.status-item-del:hover{color:var(--red);background:#ff453a1f}.status-item input:not([type=color]){background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:5px 9px;font-size:12px;font-family:inherit;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.status-item input:not([type=color]):focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.color-input{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:26px;height:26px;border:1px solid var(--hairline);border-radius:50%;padding:0;cursor:pointer;background:none;overflow:hidden;flex-shrink:0;transition:transform .12s var(--ease),box-shadow .12s var(--ease)}.color-input:hover{transform:scale(1.08);box-shadow:var(--shadow-sm)}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:none;border-radius:50%}.color-input::-moz-color-swatch{border:none;border-radius:50%}.status-add{display:flex;gap:8px;margin-top:10px;align-items:center}.status-add input[type=text]{flex:1;background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-md);padding:7px 10px;font-size:12px;font-family:inherit;transition:border-color .12s var(--ease),box-shadow .12s var(--ease)}.status-add input[type=text]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.status-add .color-input{width:32px;height:32px}.seg{display:inline-flex;background:#0000000f;border-radius:var(--r-md);padding:2px;gap:2px}.seg-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;padding:3px 12px;font-size:11px;font-weight:500;color:var(--text-2);border-radius:7px;cursor:pointer;transition:all .15s var(--ease);letter-spacing:.01em}.seg-btn:hover{color:var(--text)}.seg-btn.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014,0 0 0 .5px #0000000a;font-weight:600}.dd{position:relative}.dd-menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:5px;min-width:180px;z-index:300;animation:slideUp .15s var(--ease)}.dd-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;color:var(--text);transition:background .1s}.dd-item:hover{background:var(--surface-2)}.dd-item.danger{color:var(--red)}.dd-item.danger:hover{background:#ff453a14}.dd-sep{height:1px;background:var(--hairline);margin:4px 0}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--hairline-light)}.setting-row:last-child{border-bottom:none}.setting-lbl{font-size:13px}.setting-desc{font-size:11px;color:var(--text-3);margin-top:2px}.toggle{width:42px;height:25px;background:var(--surface-3);border-radius:var(--r-full);position:relative;cursor:pointer;transition:background .2s var(--ease);flex-shrink:0;border:none}.toggle.on{background:var(--green)}.toggle:after{content:"";position:absolute;width:21px;height:21px;background:#fff;border-radius:50%;top:2px;left:2px;transition:left .22s var(--ease);box-shadow:0 2px 4px #0003}.toggle.on:after{left:19px}.hidden{display:none!important}.mono{font-variant-numeric:tabular-nums}body.bar-dragging *{cursor:grabbing!important;-webkit-user-select:none!important;user-select:none!important}body.row-dragging .g-bar{pointer-events:none}.gantt-scroll::-webkit-scrollbar{height:12px;width:12px}.gantt-scroll::-webkit-scrollbar-track{background:var(--surface-2)}.gantt-scroll::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:6px;border:3px solid var(--surface-2)}.gantt-scroll::-webkit-scrollbar-thumb:hover{background:var(--text-4)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 20%,rgba(0,113,227,.08),transparent 50%),radial-gradient(circle at 80% 80%,rgba(191,90,242,.06),transparent 50%),var(--bg)}.login-card{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:36px 32px;width:100%;max-width:440px;animation:slideUp .25s var(--ease)}.login-brand{text-align:center;margin-bottom:28px}.login-logo{width:56px;height:56px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),#5e5ce6);color:#fff;border-radius:14px;font-size:28px;box-shadow:0 8px 20px #0071e340}.login-card h1{font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:6px}.login-sub{font-size:13px;color:var(--text-3);line-height:1.5}.login-btn{width:100%;padding:11px 16px;font-size:13px;font-weight:500}.login-divider{text-align:center;margin:14px 0;position:relative;font-size:11px;color:var(--text-4)}.login-divider:before,.login-divider:after{content:"";position:absolute;top:50%;width:calc(50% - 32px);height:1px;background:var(--hairline)}.login-divider:before{left:0}.login-divider:after{right:0}.login-error{background:#ff453a14;border:1px solid rgba(255,69,58,.25);color:var(--red);border-radius:var(--r-md);padding:9px 12px;font-size:12px;margin-bottom:14px}.login-info{background:#30d15814;border:1px solid rgba(48,209,88,.25);color:var(--green);border-radius:var(--r-md);padding:9px 12px;font-size:12px;margin-bottom:14px;line-height:1.4}.login-secondary-actions{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.login-loading{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-3);font-size:13px}.login-help{margin-top:20px;padding-top:16px;border-top:1px solid var(--hairline);font-size:11.5px;color:var(--text-3)}.login-help summary{cursor:pointer;font-weight:500;color:var(--text-2);margin-bottom:8px}.login-help summary:hover{color:var(--accent)}.login-help ol{padding-left:18px;line-height:1.6}.login-help code{background:var(--surface-2);padding:1px 5px;border-radius:4px;font-size:11px;font-family:SF Mono,Menlo,monospace}.sync-chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid transparent;padding:5px 10px;font-size:11.5px;font-weight:500;border-radius:var(--r-md)}.sync-icon{font-size:12px;line-height:1}.sync-icon.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sync-chip.sync-synced{color:var(--green);background:#30d1581a}.sync-chip.sync-loading,.sync-chip.sync-saving{color:var(--accent);background:var(--accent-bg)}.sync-chip.sync-offline{color:var(--orange);background:#ff9f0a1a}.sync-chip.sync-error{color:var(--red);background:#ff453a1a}.sync-chip.sync-local{color:var(--text-3)}.sync-chip.sync-account{color:var(--text-2)}.sync-chip.sync-account .sync-avatar{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:10px;font-weight:600}.sync-chip.sync-local .sync-dot{width:7px;height:7px;border-radius:50%;background:var(--text-4);display:inline-block}.sync-chip:hover{filter:brightness(.97)}.sync-project-header{font-size:11px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.sync-project-meta{font-size:12px;color:var(--text-3)}.sync-project-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px}.sync-project-item.active{color:var(--accent);background:var(--accent-bg)}.sync-project-name{max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;line-height:1.35}.sync-project-time{font-size:11px;color:var(--text-3);flex-shrink:0;align-self:start;margin-top:1px}.sync-share-row{display:grid;grid-template-columns:1fr;gap:6px;padding:6px 8px}.sync-share-actions{display:grid;grid-template-columns:1fr auto;gap:6px}.sync-share-input,.sync-share-select{min-width:0;width:100%;border:1px solid var(--hairline);background:var(--surface-1);color:var(--text-1);border-radius:8px;padding:6px 8px;font-size:12px}.sync-share-input:focus,.sync-share-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in oklab,var(--accent) 22%,transparent)}.inline-edit-display{display:block;min-width:0;max-width:100%;width:100%;padding:3px 6px;margin:-3px -6px;border-radius:5px;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s var(--ease),box-shadow .12s var(--ease)}.inline-edit-display:hover{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hairline)}.inline-edit-placeholder{color:var(--text-4);font-style:italic}.inline-edit-input{width:calc(100% + 4px);margin:-4px -2px;padding:3px 6px;background:var(--surface);color:var(--text);border:1px solid var(--accent);border-radius:5px;font:inherit;outline:none;box-shadow:0 0 0 3px var(--accent-bg)}.inline-edit-pct-bar{cursor:pointer;transition:box-shadow .12s var(--ease)}.inline-edit-pct-bar:hover{box-shadow:0 0 0 1px var(--accent),0 0 0 3px var(--accent-bg)}.inline-edit-pct-wrap{display:flex;align-items:center;gap:6px;width:100%}.inline-edit-pct{flex:1;height:16px;accent-color:var(--accent);cursor:pointer}.inline-edit-pct-val{font-size:10px;font-weight:600;color:var(--text-2);min-width:30px;text-align:right;font-variant-numeric:tabular-nums}.financing-wrap{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.4fr);gap:16px;margin-top:8px}.financing-block{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}.financing-block-title{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);margin-bottom:4px}.financing-subhead{margin-top:10px;padding-top:8px;border-top:1px solid var(--hairline);font-size:11.5px;font-weight:600;color:var(--text-2)}.financing-row{display:grid;grid-template-columns:1fr 130px;align-items:center;gap:10px}.financing-row-lbl{font-size:12.5px;color:var(--text-2)}.financing-row-input{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-sm);padding:4px 8px;transition:border-color .12s var(--ease)}.financing-row-input:focus-within{border-color:var(--accent);background:var(--surface)}.financing-row-input.warning{border-color:var(--red);background:#ff453a0f}.financing-row-input.warning input,.financing-row-lbl.warning{color:var(--red);font-weight:600}.financing-row-lbl.warning:before{content:"⚠ ";font-weight:700}.financing-quick-action{display:flex;flex-wrap:nowrap;gap:10px;align-items:center;justify-content:space-between;padding:6px 10px 6px 12px;margin-top:-2px;background:var(--accent-bg);border:1px solid rgba(0,113,227,.18);border-radius:var(--r-sm);font-size:11.5px;color:var(--text-2);line-height:1.35}.financing-quick-action-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.financing-quick-action-text strong{color:var(--text);font-weight:600}.financing-quick-action-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--r-sm);padding:5px 10px;font-size:11.5px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s var(--ease)}.financing-quick-action-btn:hover{background:var(--accent-hover)}.financing-quick-action.warn{background:#ff453a14;border-color:#ff453a47;color:var(--text)}.financing-quick-action.warn .financing-quick-action-text strong{color:var(--red)}.financing-quick-action.warn .financing-quick-action-btn{background:var(--red)}.financing-quick-action.warn .financing-quick-action-btn:hover{background:#ff5f55}@media (max-width: 600px){.financing-quick-action{flex-wrap:wrap}.financing-quick-action-text{white-space:normal}}.financing-warning{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;margin-top:-2px;background:#ff453a14;border:1px solid rgba(255,69,58,.25);border-radius:var(--r-sm);color:var(--text);font-size:11.5px;line-height:1.45}.financing-warning-icon{color:var(--red);font-size:14px;line-height:1;flex-shrink:0;margin-top:1px}.financing-warning-text strong{color:var(--red)}.financing-row-input input{flex:1;min-width:0;border:none;background:transparent;font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right;color:var(--text);padding:2px 0;outline:none;font-family:inherit}.financing-row-input input::-webkit-outer-spin-button,.financing-row-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.financing-row-input input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.financing-row-unit{font-size:11px;color:var(--text-3);min-width:36px;text-align:right}.scenario-tabs{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:8px;padding:4px;background:var(--surface-2);border-radius:var(--r-md);border:1px solid var(--hairline);overflow:visible;position:relative;z-index:1}.scenario-tab{display:inline-flex;align-items:center;border-radius:var(--r-sm);background:transparent;position:relative;transition:background .12s var(--ease)}.scenario-tab.active{background:var(--surface);box-shadow:var(--shadow-xs)}.scenario-tab-btn{border:none;background:transparent;padding:6px 14px;font-size:12.5px;font-weight:500;color:var(--text-2);cursor:pointer;white-space:nowrap}.scenario-tab.active .scenario-tab-btn{color:var(--accent);font-weight:600}.scenario-tab-menu-wrap{position:relative}.scenario-tab-menu-btn{background:transparent;border:none;cursor:pointer;padding:4px 8px 4px 4px;color:var(--text-3);font-size:14px;line-height:1}.scenario-tab-menu-btn:hover{color:var(--text)}.scenario-tab-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:140px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-sm);box-shadow:var(--shadow-md);z-index:50;display:flex;flex-direction:column;padding:4px}.scenario-tab-menu button{text-align:left;background:transparent;border:none;padding:6px 10px;font-size:12px;color:var(--text);cursor:pointer;border-radius:var(--r-sm)}.scenario-tab-menu button:hover{background:var(--surface-2)}.scenario-tab-menu button.danger{color:var(--red)}.scenario-tab-menu button.danger:hover{background:#ff453a14}.scenario-tab-add{margin-left:4px;background:transparent;border:1px dashed var(--hairline-strong);border-radius:var(--r-sm);padding:5px 12px;font-size:11.5px;font-weight:500;color:var(--text-2);cursor:pointer;white-space:nowrap}.scenario-tab-add:hover{color:var(--accent);border-color:var(--accent)}.financing-row-wrap{display:flex;flex-direction:column;gap:4px}.financing-row-hint{display:flex;gap:6px;align-items:flex-start;font-size:10.5px;line-height:1.35;padding:4px 8px;border-radius:var(--r-sm);margin-left:8px}.financing-row-hint.warn{color:var(--red);background:#ff453a0f}.financing-row-hint.info{color:var(--text-3);background:var(--surface-2)}.modal.modal-wide{max-width:min(1200px,95vw);max-height:90vh;width:1100px;display:flex;flex-direction:column}.modal-close{position:absolute;top:14px;right:14px;background:transparent;border:none;font-size:22px;width:28px;height:28px;cursor:pointer;color:var(--text-3);border-radius:var(--r-sm)}.modal-close:hover{background:var(--surface-2);color:var(--text)}.tilgung-controls{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--hairline);flex-wrap:wrap}.tilgung-toolbar-group{display:flex;align-items:center;gap:4px}.tilgung-toolbar-lbl{font-size:11px;color:var(--text-3);margin-right:4px}.tilgung-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}.tilgung-summary-card{padding:10px 14px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md)}.tilgung-summary-lbl{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;font-weight:600}.tilgung-summary-val{font-size:16px;font-weight:700;color:var(--accent);margin-top:4px}.tilgung-summary-sub{font-size:11px;color:var(--text-3);margin-top:2px}.tilgung-table-wrap{flex:1;overflow:auto;margin:12px -4px;border:1px solid var(--hairline);border-radius:var(--r-sm)}.tilgung-table{width:100%;border-collapse:collapse;font-size:11.5px;font-variant-numeric:tabular-nums}.tilgung-table th,.tilgung-table td{padding:6px 10px;text-align:right;border-bottom:1px solid var(--hairline-light)}.tilgung-table th{background:var(--surface-2);position:sticky;top:0;font-weight:600;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2);z-index:1}.tilgung-table th.grp{text-align:center}.tilgung-table th.grp-kfw,.tilgung-table th.grp-bank{background:var(--surface-3);color:var(--text-2);border-left:1px solid var(--hairline);border-right:1px solid var(--hairline)}.tilgung-table tr.sub-hdr th{top:30px}.tilgung-table tbody tr:hover{background:var(--surface-2)}.tilgung-table .til-y,.tilgung-table .til-phase{text-align:left;font-weight:600;color:var(--text)}.tilgung-table .til-bold{font-weight:600;color:var(--text)}.tilgung-table .til-debt{color:var(--text-2)}.tilgung-table .til-tz{color:var(--green);font-weight:700}.tilgung-table .til-total{font-weight:700;color:var(--text)}.scenario-cmp-wrap{flex:1;overflow:auto;margin:12px -4px;border:1px solid var(--hairline);border-radius:var(--r-sm)}.scenario-cmp-table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}.scenario-cmp-table th,.scenario-cmp-table td{padding:8px 12px;text-align:right;border-bottom:1px solid var(--hairline-light);white-space:nowrap}.scenario-cmp-table thead th{background:var(--surface-2);position:sticky;top:0;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-2);z-index:1;cursor:pointer;-webkit-user-select:none;user-select:none}.scenario-cmp-table thead th:first-child{cursor:default}.scenario-cmp-table thead th.scenario-cmp-col:hover{background:var(--surface-3);color:var(--text)}.scenario-cmp-table thead th.scenario-cmp-col.active{background:#0a84ff1f;color:var(--accent);border-bottom:2px solid var(--accent)}.scenario-cmp-active-badge{font-size:10px;font-weight:500;color:var(--accent);text-transform:none;letter-spacing:0}.scenario-cmp-row-hdr{text-align:left!important;font-weight:500;color:var(--text-2);background:var(--surface);position:sticky;left:0}.scenario-cmp-hint-mark{font-size:10px;color:var(--text-3);margin-left:2px}.scenario-cmp-sec-hdr td{background:var(--surface-3);color:var(--text);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em;text-align:left!important;padding:10px 12px 6px;border-bottom:1px solid var(--hairline)}.scenario-cmp-cell{color:var(--text)}.scenario-cmp-cell.active{background:#0a84ff0f}.scenario-cmp-cell.best{color:var(--green);font-weight:700}.scenario-cmp-best-mark{font-size:11px;margin-left:2px}.scenario-cmp-table tbody tr:hover,.scenario-cmp-table tbody tr:hover .scenario-cmp-row-hdr{background:var(--surface-2)}.financing-summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.financing-sum-card{padding:14px;border-radius:var(--r-md);display:flex;flex-direction:column;gap:4px}.financing-sum-card.primary{background:var(--accent);color:#fff;box-shadow:var(--shadow-sm)}.financing-sum-card.secondary{background:var(--surface-2);border:1px solid var(--hairline);color:var(--text)}.financing-sum-card-lbl{font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;opacity:.85}.financing-sum-card.secondary .financing-sum-card-lbl{color:var(--text-3);opacity:1}.financing-sum-card-val{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}.financing-sum-card-sub{font-size:11px;opacity:.85}.financing-sum-card.secondary .financing-sum-card-sub{color:var(--text-3);opacity:1}@media (max-width: 768px){.financing-summary-cards{grid-template-columns:1fr}}.financing-budget-sum{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;padding-top:12px;border-top:2px solid var(--hairline-strong)}.financing-budget-lbl{font-size:12.5px;font-weight:600;color:var(--text)}.financing-budget-val{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.015em;color:var(--accent)}.financing-result-group+.financing-result-group{margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline)}.financing-result-grp-title{font-size:11px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em;margin-bottom:8px}.financing-result-grp-sub{font-size:10.5px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-4)}.financing-result-row{display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;font-size:12.5px}.financing-result-lbl{color:var(--text-2)}.financing-result-val{font-variant-numeric:tabular-nums;font-weight:500;color:var(--text);letter-spacing:-.005em}.financing-result-row.highlight .financing-result-val{color:var(--accent);font-weight:600}.financing-result-row.bold .financing-result-lbl{font-weight:600;color:var(--text)}.financing-result-row.bold .financing-result-val{font-weight:700;font-size:14px}.financing-result-row.muted{opacity:.7}.financing-result-row.muted .financing-result-val{font-style:italic}.financing-result-row.warning .financing-result-val{color:var(--red);font-weight:700}.financing-result-row.ok .financing-result-val{color:var(--green);font-weight:600}@media (max-width: 768px){.financing-wrap{grid-template-columns:1fr}.financing-row{grid-template-columns:1fr minmax(90px,130px);gap:8px}.financing-row-input{min-width:0;padding:4px 6px}.financing-row-input input{min-width:0;width:100%}.financing-row-unit{font-size:10.5px;min-width:18px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@page{size:A4 landscape;margin:8mm 6mm}@page a3land{size:A3 landscape;margin:8mm 6mm}html.print-a3 body{page:a3land;--print-scale: .85}@media print{:root{--print-scale: .65}html,body{height:auto!important;overflow:visible!important}body{background:#fff!important}.toolbar,.stats-bar,.filter-bar,.undo-toast,.btn,.t-acts,.ph-acts,.ms-acts,.ph-arrow,.overlay,.add-task-btn,.drag-handle,.search-wrap,.hdr-col-hide,.sync-chip,.login-wrap{display:none!important}.card,.gantt-wrap,.section{box-shadow:none!important;border:none!important;background:#fff!important;padding:0!important;margin:0 0 6mm!important;overflow:visible!important;height:auto!important}.main{padding:0!important;overflow:visible!important;height:auto!important}.g-bar,.ms-diam,.ph-row,.budget-card,.status-item,.stat-dot,.subsidy-mark,.trade-item{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.gantt-scroll{overflow:visible!important;max-height:none!important}.gtbl{transform:scale(var(--print-scale));transform-origin:top left;width:calc(100% / var(--print-scale))}.gtbl td.col-task,.gtbl th.col-task{position:static!important}section.section{break-inside:avoid;page-break-inside:avoid}.tb-brand h1,.tb-brand .sub{display:block!important}.tb-brand{display:block!important;margin:0 0 4mm}.tb-brand h1{font-size:18pt}.tb-brand .sub{font-size:10pt;color:#555}.t-bem-cell,.ph-bem-cell,.ms-date-cell{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.t-geschoss-cell .geschoss-select{-moz-appearance:none!important;appearance:none!important;-webkit-appearance:none!important;border:none!important;background:transparent!important;padding:0!important}}.undo-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:12px 14px 12px 18px;background:#1d1d1f;color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:var(--r-full);box-shadow:var(--shadow-lg);z-index:1000;animation:undoToastIn .22s var(--ease);max-width:90vw}:root[data-theme=dark] .undo-toast{background:#2c2c2e;border-color:#ffffff1f}.undo-toast-icon{font-size:16px;opacity:.85}.undo-toast-msg{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw}.undo-toast-btn{background:#ffffff2e;color:#fff;border:none;border-radius:var(--r-full);padding:6px 14px;font-size:12.5px;font-weight:600;cursor:pointer;transition:background .15s var(--ease)}.undo-toast-btn:hover{background:#ffffff47}.undo-toast-close{background:transparent;color:#fff;border:none;font-size:16px;width:22px;height:22px;border-radius:50%;cursor:pointer;opacity:.7;transition:opacity .15s var(--ease)}.undo-toast-close:hover{opacity:1;background:#ffffff26}@keyframes undoToastIn{0%{transform:translate(-50%,24px);opacity:0}to{transform:translate(-50%);opacity:1}}.login-remember{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--hairline);border-radius:var(--r-md);background:var(--surface-2);margin:4px 0 12px;cursor:pointer;transition:background .15s var(--ease)}.login-remember:hover{background:var(--surface-3)}.login-remember input[type=checkbox]{margin:2px 0 0;flex-shrink:0;cursor:pointer}.login-remember-text{display:flex;flex-direction:column;gap:2px}.login-remember-title{font-size:13px;font-weight:600;color:var(--text)}.login-remember-hint{font-size:11.5px;color:var(--text-3);line-height:1.4}.budget-card-subsidy{display:flex;align-items:center;gap:6px;margin-top:6px;padding-top:6px;border-top:1px dashed var(--hairline);font-size:11.5px;color:var(--text-3)}.budget-card-subsidy strong{color:var(--green);font-weight:600;font-variant-numeric:tabular-nums}.status-item-usage{font-size:10.5px;color:var(--text-3);background:var(--surface-2);padding:2px 6px;border-radius:var(--r-sm);font-variant-numeric:tabular-nums;font-weight:500}.status-item-del:disabled{opacity:.3;cursor:not-allowed;pointer-events:auto}.sync-chip.sync-conflict{color:var(--orange);border-color:var(--orange);background:#ff9f0a14}.sync-chip.sync-conflict .sync-icon{color:var(--orange)}@media (max-width: 768px){html,body{overflow-x:hidden}:root{--col-task: 200px;--cw: 32px;--fs-toolbar: 14px;--fs-task: 11.5px;--fs-phase: 12px;--row-h: 34px}.gtbl td.col-task,.gtbl th.col-task{position:static;z-index:auto}.gtbl thead th.col-task{position:sticky;left:auto;z-index:6}.toolbar{overflow-x:auto;white-space:nowrap;padding:0 16px;-webkit-overflow-scrolling:touch}.toolbar::-webkit-scrollbar{display:none}.stats-bar{overflow-x:auto;white-space:nowrap;padding:10px 16px;-webkit-overflow-scrolling:touch}.stats-bar::-webkit-scrollbar{display:none}.filter-bar{overflow-x:auto;white-space:nowrap;padding:8px 16px;-webkit-overflow-scrolling:touch}.filter-bar::-webkit-scrollbar{display:none}.main{padding:16px 16px 80px}.search-input{width:160px}.gantt-scroll{max-height:calc(100vh - 180px);overflow-x:auto;-webkit-overflow-scrolling:touch}.modal{min-width:100%;max-width:100%;height:100%;max-height:100vh;max-height:100dvh;border-radius:0;padding:16px}.overlay{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#0000008c}.f-2col,.f-3col{grid-template-columns:1fr}.modal-foot{flex-direction:column;gap:12px}.modal-foot-r{width:100%;justify-content:space-between}.modal-foot .btn{flex:1;justify-content:center}.btn,.t-act,.ph-arrow{padding-top:10px;padding-bottom:10px}.btn-icon,.t-act,.ph-arrow{width:34px;height:34px}.drag-handle{width:24px;height:34px;font-size:16px}.login-card{padding:24px 20px}}
