.pwa-header-button{display:none;white-space:nowrap}.pwa-installable .pwa-header-button{display:inline-flex}
.project-economics{margin-top:20px}.project-economics .panel-heading p{margin:4px 0 0;color:var(--muted)}.economics-grid{grid-template-columns:minmax(150px,1.4fr) repeat(4,minmax(100px,1fr))}.economics-grid small{display:block;margin-top:4px;color:var(--muted)}@media(max-width:800px){.economics-grid{grid-template-columns:1fr}.project-economics .table-head{display:none}.project-economics .table-row>span:before{display:block;color:var(--muted);font-size:11px}.project-economics .table-row>span:nth-child(2):before{content:"Gebuchte Zeit"}.project-economics .table-row>span:nth-child(3):before{content:"Abgerechneter Umsatz"}.project-economics .table-row>span:nth-child(4):before{content:"Personalkosten"}}
.controlling-overview-grid{grid-template-columns:minmax(220px,1.5fr) 1fr 1.25fr .8fr auto}.controlling-overview-grid small{display:block;margin-top:4px;color:var(--muted)}.controlling-period{margin-bottom:20px}
.project-summary{margin-bottom:20px;overflow:hidden}.project-summary.empty-state{min-height:150px}.project-summary-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.project-summary-grid>div{display:grid;gap:5px;padding:18px 22px;background:#fff}.project-summary-grid small,.project-summary-grid span,.budget-heading span{color:var(--muted);font-size:11px}.project-summary-grid strong{color:var(--navy);font-size:16px}.budget-block{padding:20px 22px 28px}.budget-heading{display:flex;justify-content:space-between;margin-bottom:22px}.budget-heading>div{display:grid;gap:4px}.budget-track{position:relative;height:22px;border:1px solid #cfd6dc;border-radius:11px;background:#edf0f2;overflow:visible}.budget-track.empty{overflow:hidden}.budget-colors{position:absolute;inset:0;border-radius:10px;background:linear-gradient(90deg,#0b5d46 0 60%,#e1b12c 60% 80%,#c53b33 80% 100%);overflow:hidden}.budget-mask{position:absolute;top:0;right:0;bottom:0;background:#edf0f2;border-radius:0 10px 10px 0}.budget-marker{position:absolute;top:-5px;bottom:-5px;width:2px;background:#17232c}.budget-marker b{position:absolute;top:28px;left:50%;transform:translateX(-50%);font-size:10px;color:var(--muted);font-style:normal;white-space:nowrap}.marker-60{left:60%}.marker-80{left:80%}.budget-overrun{margin-top:30px;color:#9f251f;font-weight:700}
.budget-level-0 .budget-mask{left:0%}
.budget-level-1 .budget-mask{left:1%}
.budget-level-2 .budget-mask{left:2%}
.budget-level-3 .budget-mask{left:3%}
.budget-level-4 .budget-mask{left:4%}
.budget-level-5 .budget-mask{left:5%}
.budget-level-6 .budget-mask{left:6%}
.budget-level-7 .budget-mask{left:7%}
.budget-level-8 .budget-mask{left:8%}
.budget-level-9 .budget-mask{left:9%}
.budget-level-10 .budget-mask{left:10%}
.budget-level-11 .budget-mask{left:11%}
.budget-level-12 .budget-mask{left:12%}
.budget-level-13 .budget-mask{left:13%}
.budget-level-14 .budget-mask{left:14%}
.budget-level-15 .budget-mask{left:15%}
.budget-level-16 .budget-mask{left:16%}
.budget-level-17 .budget-mask{left:17%}
.budget-level-18 .budget-mask{left:18%}
.budget-level-19 .budget-mask{left:19%}
.budget-level-20 .budget-mask{left:20%}
.budget-level-21 .budget-mask{left:21%}
.budget-level-22 .budget-mask{left:22%}
.budget-level-23 .budget-mask{left:23%}
.budget-level-24 .budget-mask{left:24%}
.budget-level-25 .budget-mask{left:25%}
.budget-level-26 .budget-mask{left:26%}
.budget-level-27 .budget-mask{left:27%}
.budget-level-28 .budget-mask{left:28%}
.budget-level-29 .budget-mask{left:29%}
.budget-level-30 .budget-mask{left:30%}
.budget-level-31 .budget-mask{left:31%}
.budget-level-32 .budget-mask{left:32%}
.budget-level-33 .budget-mask{left:33%}
.budget-level-34 .budget-mask{left:34%}
.budget-level-35 .budget-mask{left:35%}
.budget-level-36 .budget-mask{left:36%}
.budget-level-37 .budget-mask{left:37%}
.budget-level-38 .budget-mask{left:38%}
.budget-level-39 .budget-mask{left:39%}
.budget-level-40 .budget-mask{left:40%}
.budget-level-41 .budget-mask{left:41%}
.budget-level-42 .budget-mask{left:42%}
.budget-level-43 .budget-mask{left:43%}
.budget-level-44 .budget-mask{left:44%}
.budget-level-45 .budget-mask{left:45%}
.budget-level-46 .budget-mask{left:46%}
.budget-level-47 .budget-mask{left:47%}
.budget-level-48 .budget-mask{left:48%}
.budget-level-49 .budget-mask{left:49%}
.budget-level-50 .budget-mask{left:50%}
.budget-level-51 .budget-mask{left:51%}
.budget-level-52 .budget-mask{left:52%}
.budget-level-53 .budget-mask{left:53%}
.budget-level-54 .budget-mask{left:54%}
.budget-level-55 .budget-mask{left:55%}
.budget-level-56 .budget-mask{left:56%}
.budget-level-57 .budget-mask{left:57%}
.budget-level-58 .budget-mask{left:58%}
.budget-level-59 .budget-mask{left:59%}
.budget-level-60 .budget-mask{left:60%}
.budget-level-61 .budget-mask{left:61%}
.budget-level-62 .budget-mask{left:62%}
.budget-level-63 .budget-mask{left:63%}
.budget-level-64 .budget-mask{left:64%}
.budget-level-65 .budget-mask{left:65%}
.budget-level-66 .budget-mask{left:66%}
.budget-level-67 .budget-mask{left:67%}
.budget-level-68 .budget-mask{left:68%}
.budget-level-69 .budget-mask{left:69%}
.budget-level-70 .budget-mask{left:70%}
.budget-level-71 .budget-mask{left:71%}
.budget-level-72 .budget-mask{left:72%}
.budget-level-73 .budget-mask{left:73%}
.budget-level-74 .budget-mask{left:74%}
.budget-level-75 .budget-mask{left:75%}
.budget-level-76 .budget-mask{left:76%}
.budget-level-77 .budget-mask{left:77%}
.budget-level-78 .budget-mask{left:78%}
.budget-level-79 .budget-mask{left:79%}
.budget-level-80 .budget-mask{left:80%}
.budget-level-81 .budget-mask{left:81%}
.budget-level-82 .budget-mask{left:82%}
.budget-level-83 .budget-mask{left:83%}
.budget-level-84 .budget-mask{left:84%}
.budget-level-85 .budget-mask{left:85%}
.budget-level-86 .budget-mask{left:86%}
.budget-level-87 .budget-mask{left:87%}
.budget-level-88 .budget-mask{left:88%}
.budget-level-89 .budget-mask{left:89%}
.budget-level-90 .budget-mask{left:90%}
.budget-level-91 .budget-mask{left:91%}
.budget-level-92 .budget-mask{left:92%}
.budget-level-93 .budget-mask{left:93%}
.budget-level-94 .budget-mask{left:94%}
.budget-level-95 .budget-mask{left:95%}
.budget-level-96 .budget-mask{left:96%}
.budget-level-97 .budget-mask{left:97%}
.budget-level-98 .budget-mask{left:98%}
.budget-level-99 .budget-mask{left:99%}
.budget-level-100 .budget-mask{left:100%}
.controlling-toolbar{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px;padding:18px 22px}.controlling-toolbar label{min-width:220px}.controlling-legend{display:flex;gap:8px}.controlling-list{display:grid;gap:20px}.controlling-card{overflow:hidden}.controlling-card>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;border-bottom:1px solid var(--line);background:#fff}.controlling-card>header>div{display:grid;gap:4px}.controlling-card>header strong{color:var(--navy);font-size:18px}.controlling-card>header span{color:var(--muted);font-size:11px}.controlling-card.balanced{border-color:#8fcdb7;box-shadow:0 0 0 2px #dff4eb}.controlling-card.balanced>header,.controlling-card.closed>header{background:#effaf6}.controlling-card.internal{opacity:.78}.controlling-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.controlling-hours small{display:block;margin-top:4px;color:var(--muted)}.close-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important;color:var(--green)!important}.close-check input{width:18px;min-height:18px}.completion-note{padding:12px;color:var(--green);background:var(--green-soft);border-radius:8px;font-weight:700}.controlling-card a{color:var(--blue);font-size:11px}.controlling-card textarea:disabled{color:var(--ink);opacity:1}@media(max-width:780px){.pwa-header-button{width:40px;overflow:hidden;color:transparent;position:relative}.pwa-header-button:after{content:"App";position:absolute;inset:0;display:grid;place-items:center;color:#fff}.controlling-toolbar{align-items:stretch;flex-direction:column}.controlling-hours{grid-template-columns:1fr}.controlling-legend{flex-wrap:wrap}}
.project-dashboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,620px),1fr));gap:24px;margin-top:20px}.dashboard-widget{min-width:0;overflow:hidden}.dashboard-widget .project-summary{border:0;box-shadow:none;margin:0}.dashboard-widget .project-summary-grid{grid-template-columns:1fr}.dashboard-widget .project-summary-grid>div:not(:first-child){display:none}.project-chart{padding:12px 22px}.chart-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.chart-controls label{display:grid;gap:6px;font-size:12px}.chart-controls input{max-width:150px}.chart-scroll{overflow-x:auto;overscroll-behavior-x:contain;max-width:100%;border:1px solid var(--line);border-radius:8px}.chart-scroll svg{display:block;background:#fff;fill:none;stroke:none}.chart-scroll text{font-size:11px;fill:var(--muted)}.chart-gridline{stroke:#e2e8ee;stroke-width:1}.chart-plan,.chart-actual{fill:none;stroke-width:2.5;stroke-linejoin:round}.chart-plan{stroke:#5575ba;stroke-dasharray:7 4}.chart-actual{stroke:#087f5b}.chart-plan-point{fill:#5575ba}.chart-legend{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}.chart-legend span:before{content:"";display:inline-block;width:20px;margin-right:6px;border-top:3px solid #087f5b}.chart-legend .plan:before{border-color:#5575ba;border-top-style:dashed}

.project-month-metrics,.time-metric-section .time-project-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.project-month-metrics .stat-card{min-width:0}.project-month-metrics .stat-card:last-child{grid-column:auto}.project-month-metrics .stat-card>div:last-child{min-width:0}.project-month-metrics .stat-card strong{overflow-wrap:anywhere}@media(max-width:620px){.project-month-metrics,.time-metric-section .time-project-stats{grid-template-columns:1fr}}

.time-project-stats .stat-card:last-child{grid-column:auto}

.content:has([data-controlling-project]){min-width:0}.project-month-metrics .stat-card small{overflow-wrap:anywhere}@media(max-width:780px){.content:has([data-controlling-project]) .controlling-toolbar label{min-width:0}.content:has([data-controlling-project]) .project-summary-grid{grid-template-columns:1fr}.content:has([data-controlling-project]) .controlling-period{min-width:0}.content:has([data-controlling-project]) .controlling-period>div{min-width:0}}
