*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:#eaf5f5;color:#26383c;font:15px Arial,Helvetica,sans-serif}[hidden]{display:none!important}.topbar{background:#fff;border-bottom:2px solid #2d8385;padding:18px clamp(18px,3vw,46px);display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{color:#238184;font-size:23px}.version{font-size:12px;color:#718487;margin-left:18px}.topbar #userActions{display:flex;gap:18px}button{font:inherit;cursor:pointer}.text-button{border:0;background:transparent;color:#217f81;padding:8px}.text-button:hover{text-decoration:underline}main{flex:1;display:flex;flex-direction:column}.login-wrap{flex:1;display:grid;place-items:center;padding:60px 18px}.card{background:#fff;width:min(100%,420px);padding:40px;border-radius:12px;border:1px solid #d8e7e7;box-shadow:0 16px 45px #193f3f17}.card h1{font-size:20px;text-align:center;color:#237a7d;margin:0}.subtitle{text-align:center;color:#687c80;margin:12px 0 30px}label{display:block;margin:15px 0 7px;font-size:13px;font-weight:600}input{width:100%;border:1px solid #b6c9cb;border-radius:5px;padding:12px;font-size:15px;background:#fff}input:focus{outline:2px solid #398e90;outline-offset:1px}input[readonly]{background:#f2f7f7}form button[type=submit],.modal-actions button{border:0;background:#2b8283;color:white;padding:12px 20px;border-radius:5px}#loginButton{width:100%;margin-top:22px}button:hover{filter:brightness(.94)}button:disabled{opacity:.6;cursor:wait}#message,#profileMessage{min-height:20px;font-size:14px}.error{color:#b92c32}.success{color:#16814c}#message{text-align:center}.workspace{flex:1;background:white;margin:14px;border:1px solid #c5dddd;padding:25px clamp(15px,3vw,45px)}.project-select{max-width:660px;margin-bottom:34px}.project-select>label{font-size:16px}.project-field{display:flex;gap:7px}.project-field button{width:45px;background:#e7f2f2;border:1px solid #79b3b5;border-radius:4px;font-size:19px}.tabs{display:flex;gap:3px;border-bottom:1px solid #bdd3d3;flex-wrap:wrap}.tab{padding:13px 20px;background:#2b8283;color:white;border:0;border-radius:9px 9px 0 0}.tab.active{background:#fff;color:#226d70;border:1px solid #bdd3d3;border-bottom:1px solid #fff;margin-bottom:-1px;font-weight:700}.tab-content{padding:24px 5px;min-height:260px}.tab-content h2{margin-top:0;font-size:22px}.tab-content p{color:#63777a}footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#fff;border-top:1px solid #bdd5d5;padding:18px 30px;color:#6c7c7f;font-size:12px}.overlay{position:fixed;inset:0;background:#112a2c88;display:flex;align-items:center;justify-content:center;padding:15px;z-index:10}.modal{width:min(100%,490px);max-height:90vh;overflow:auto;background:#fff;border-radius:10px;box-shadow:0 24px 70px #0004;position:relative}.modal-title{background:#2b8283;color:white;display:flex;align-items:center;justify-content:space-between;padding:13px 18px;cursor:move;user-select:none}.modal-title h2{font-size:18px;margin:0}.icon-button{background:transparent;border:0;color:white;font-size:19px}.modal-body{padding:18px 25px 24px}.modal-body hr{border:0;border-top:1px solid #d9e5e5;margin-top:22px}.hint{font-size:13px;color:#66777a}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-actions .secondary{background:#e3eeee;color:#235d60}@media(max-width:600px){.topbar{align-items:flex-start;flex-direction:column}.brand{font-size:20px}.workspace{margin:6px;padding:15px}.tab{flex:1;padding:12px 8px;font-size:13px}.card{padding:28px 22px}.modal-actions{flex-direction:column}.modal-actions button{width:100%}}

.auth-links{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}.link-button{border:0;background:transparent;color:#217f81;text-decoration:underline;padding:8px 0}.card form button[type=submit]{width:100%;margin-top:20px}.card>.link-button{margin-top:12px}



.project-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:-18px 0 25px}.project-buttons button{border:1px solid #2b8283;border-radius:5px;background:#2b8283;color:#fff;padding:10px 15px}.project-buttons button:disabled{opacity:.5}.project-modal{width:min(95vw,760px)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.form-grid>div:nth-child(2){grid-column:auto}.project-modal textarea,.project-modal select{width:100%;border:1px solid #b6c9cb;border-radius:5px;padding:11px;font:inherit}.table-wrap{max-height:50vh;overflow:auto;margin-top:18px}.project-table{width:100%;border-collapse:collapse;text-align:left}.project-table th,.project-table td{padding:11px 9px;border-bottom:1px solid #dce8e8}.project-table th{background:#e7f2f2;position:sticky;top:0}.project-table tbody tr{cursor:pointer}.project-table tbody tr:hover,.project-table tbody tr:focus{background:#e0f4f1;outline:0}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:850px}.detail-grid>div{padding:15px;background:#f2f8f8;border:1px solid #d9e7e7;border-radius:6px;overflow-wrap:anywhere}.detail-grid strong{display:block;color:#327c7e;margin-bottom:9px}@media(max-width:600px){.form-grid,.detail-grid{grid-template-columns:1fr}.project-table{font-size:12px}}

/* Projektfenster: Touch- und Maus-Dragging über die Titelleiste */
.project-modal>.modal-title{touch-action:none}

/* Kostenplanung 0.4.3 */
.primary-action,.row-action{background:#2b8283;color:#fff;border:1px solid #2b8283;border-radius:5px;padding:10px 15px}.row-action{padding:7px 12px;white-space:nowrap}.cost-table tbody tr{cursor:default}.cost-table td{overflow-wrap:anywhere}.tab-content .project-buttons{margin:0 0 22px}.tab-content .project-buttons button:disabled{cursor:not-allowed}#costFormOverlay .modal-title{touch-action:none}

/* Kostenplanung 0.4.4 */
.amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.expand-button{background:#e7f2f2;border:1px solid #83b9b9;border-radius:5px;color:#237e80;font-size:19px;min-width:32px}.cost-details{background:#f2f8f8;padding:18px!important}.items-table{margin-top:12px;font-size:13px}.items-table th{position:static}.group-tree{max-height:50vh;overflow:auto;margin-top:14px;border:1px solid #dce8e8}.group-entry{padding:2px 8px}.group-heading,.group-leaf{display:block;width:100%;padding:11px;text-align:left;background:#fff;border:0;border-bottom:1px solid #e0e9e9}.group-heading{background:#e9f4f4;font-weight:bold;color:#226f72}.group-leaf:hover{background:#e2f4f0}#itemFormOverlay .modal-title,#groupOverlay .modal-title{touch-action:none}

/* Version 0.4.5: Summen und Eingabe */
.no-spin{-moz-appearance:textfield;appearance:textfield}.no-spin::-webkit-inner-spin-button,.no-spin::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.item-preview{margin-top:20px;padding:16px 18px;background:#e8f4f3;border:1px solid #8abebc;border-radius:7px}.item-preview .preview-mode{font-size:13px;font-weight:700;color:#287e80;margin-bottom:10px}.preview-amounts{display:flex;gap:26px;flex-wrap:wrap}.preview-amount{flex:1;min-width:150px}.preview-amount span{display:block;font-size:13px;color:#49696c}.preview-amount strong{display:block;font-size:23px;color:#166e71;margin-top:4px;font-variant-numeric:tabular-nums}.preview-amount.highlight strong{color:#12585b}
.cost-table th:nth-child(4),.cost-table th:nth-child(5),.items-table th:nth-child(7),.items-table th:nth-child(8){text-align:right;white-space:nowrap}.items-table td:nth-child(7),.items-table td:nth-child(8){text-align:right;font-variant-numeric:tabular-nums}.project-totals{position:sticky;top:0;z-index:4;display:flex;justify-content:flex-end;gap:35px;flex-wrap:wrap;background:#dcefed;border:1px solid #a3cdca;border-radius:6px;padding:14px 18px;margin:16px 0 0;box-shadow:0 2px 5px #163f4015}.project-totals .total-label{margin-right:auto;font-size:17px;font-weight:bold;color:#22696c;align-self:center}.project-totals .total-cell{text-align:right;min-width:150px}.project-totals .total-cell span{display:block;font-size:12px;color:#416a6b}.project-totals .total-cell strong{font-size:21px;color:#146d70;font-variant-numeric:tabular-nums}.cost-table th{z-index:2}

/* Zeitliche Kosten- und Leistungsverteilung */
.distribution-main{margin-top:17px;border-top:1px solid #d9e5e5;padding-top:7px}.distribution-line{margin:10px 0}.distribution-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.distribution-controls input{max-width:205px}.distribution-controls button,.distribution-add{border:1px solid #85b6b8;background:#e5f1f1;color:#226e70;border-radius:5px;padding:11px 15px}.distribution-badge{background:#d6efed;color:#126c6e;border:1px solid #7ab8b5;padding:12px;border-radius:5px;font-weight:600}.distribution-add{margin-top:14px}#distributionRows input{min-width:110px}#distributionRows td:nth-child(2) input{max-width:170px}#distributionError{color:#ae2828}#distributionSum{font-weight:bold;color:#246f70}#distributionOverlay{z-index:20}@media(max-width:600px){#distributionRows input{min-width:75px;padding:8px}}

/* 0.4.7: Schaltflächen der zeitlichen Verteilung */
.distribution-controls .distribution-open{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:1px solid #85b6b8;background:#e5f1f1;color:#226e70;border-radius:5px;padding:10px 15px;font:inherit;cursor:pointer}
#distributionOverlay:not([hidden]){z-index:100;display:flex}

/* 0.4.8: Zahlenfeld und chronologische Verteilung */
#distributionRows input[type=number]{-moz-appearance:textfield;appearance:textfield}#distributionRows input[type=number]::-webkit-inner-spin-button,#distributionRows input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.number-pad-field{display:flex;align-items:stretch;gap:5px}.number-pad-field input{min-width:0;flex:1}.number-pad-trigger{flex:none;width:42px;border:1px solid #85b6b8;border-radius:5px;background:#e5f1f1;color:#226e70;font-size:23px}.number-pad-modal{width:min(95vw,350px)}#numberPadOverlay{z-index:200}#numberPadDisplay{text-align:right;font-size:23px;margin-bottom:15px}.number-pad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.number-pad-grid button{min-height:51px;background:#e5f1f1;color:#226e70;border:1px solid #85b6b8;border-radius:5px;font-size:20px}.number-pad-grid .wide{grid-column:span 3}#numberPadError{color:#ae2828}#distributionRows td:nth-child(2) .number-pad-field{min-width:165px}#distributionRows td:nth-child(2) input{max-width:125px}

/* 0.4.10: Projekt-Zeitverlauf */
.timeline-section{margin-top:32px}.timeline-section h2{font-size:21px;margin-bottom:14px}.timeline-layout{display:flex;gap:24px;align-items:flex-start}.timeline-graphic{min-width:0;flex:1}.timeline-graphic svg{display:block;width:100%;height:auto;min-height:230px}.timeline-legend{width:240px;flex:none;padding-top:15px}.timeline-legend-item{margin-bottom:17px;color:#173b49;font-size:14px;line-height:1.5}.timeline-legend-item strong{white-space:nowrap}.timeline-swatch{display:inline-block;width:21px;height:3px;background:#142e9a;vertical-align:middle;margin-right:9px}.timeline-legend-item.leistung .timeline-swatch{background:#ff7545}@media(max-width:800px){.timeline-layout{flex-direction:column}.timeline-legend{width:auto;display:flex;gap:14px;flex-wrap:wrap;padding:0}.timeline-legend-item{margin:0}.timeline-graphic{width:100%;overflow-x:auto}.timeline-graphic svg{min-width:480px}}

/* Reporting 0.4.17 */
.report-form{max-width:850px;margin-top:18px}.report-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:22px;padding:15px;background:#f1f8f8;border:1px solid #d7e7e7;border-radius:7px}.report-toolbar fieldset{border:0;padding:0;margin:0;display:flex;gap:16px;flex-wrap:wrap}.report-toolbar legend{font-weight:600;margin-bottom:8px}.report-toolbar label,.report-check{display:block;cursor:pointer}.report-form h3{background:#2c9295;color:white;padding:12px;margin:22px 0 0;font-size:15px}.report-check{padding:11px 12px;border:1px solid #e1e7e7;border-top:0}.report-form button[type=submit]{margin-top:20px;padding:10px 24px}.report-form input[type=checkbox],.report-form input[type=radio]{accent-color:#d65b36}

/* Reporting 0.4.17: Eingabeelemente bündig ausrichten */
.report-toolbar{align-items:flex-end;gap:22px}
.report-toolbar fieldset{align-items:flex-end}
.report-toolbar fieldset label,.report-toolbar .report-chart{display:inline-flex;align-items:center;gap:5px;min-height:34px;margin:0}
.report-toolbar .report-chart{line-height:1.35}
.report-toolbar input[type=checkbox],.report-toolbar input[type=radio]{margin:0;flex-shrink:0}
@media(max-width:650px){.report-toolbar{align-items:flex-start}.report-toolbar .report-chart{width:100%}}

/* 0.4.17: Einheitliche Ausrichtung der Reporting-Optionen */
.report-toolbar{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:center;column-gap:30px;row-gap:12px}
.report-toolbar fieldset{display:flex;flex-direction:column;align-items:flex-start;gap:9px;min-width:0}
.report-toolbar fieldset legend{margin-bottom:8px}
.report-toolbar fieldset label{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;min-height:22px;white-space:nowrap}
.report-toolbar .report-chart{display:inline-flex;align-items:center;justify-content:flex-start;gap:9px;min-height:22px;line-height:1.45;max-width:360px}
.report-toolbar input[type=checkbox],.report-toolbar input[type=radio]{position:static;vertical-align:middle;margin:0;width:15px;height:15px;flex:0 0 15px}
@media(max-width:650px){.report-toolbar{grid-template-columns:1fr}.report-toolbar .report-chart{width:auto}}
/* Kompakte Projektgrafik mit größerer Legende und Zoom-Dialog */
.timeline-layout{max-width:1040px;gap:22px;align-items:center}
.timeline-graphic svg{min-height:0;max-height:320px}
.timeline-legend{width:280px;font-size:15px;padding-top:0}
.timeline-legend-item{font-size:15px;line-height:1.6}
.timeline-zoom{margin-top:10px;padding:8px 14px}
.timeline-overlay{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;padding:22px}
.timeline-modal{background:#fff;border-radius:9px;padding:18px;width:min(1400px,96vw);max-height:94vh;overflow:auto;box-shadow:0 12px 60px #0005}
.timeline-close{display:block;margin:0 0 12px auto}
.timeline-layout-large{max-width:none}.timeline-layout-large .timeline-graphic svg{max-height:none;min-height:0}
@media(max-width:800px){.timeline-layout{align-items:flex-start}.timeline-legend{width:auto}.timeline-modal{padding:12px}}

/* 0.4.17 – dezente Tiefe */
body{background:linear-gradient(135deg,#e7efec 0%,#f1f4f7 52%,#dce8e2 100%) fixed;}
.card,.modal,.table-wrap,.timeline-section,.project-totals{box-shadow:0 10px 28px rgba(24,60,48,.11),0 2px 5px rgba(24,60,48,.07);}
.project-table tbody tr.clickable-item{cursor:pointer;transition:background-color .15s ease;}
.project-table tbody tr.clickable-item:hover{background:#e9f3ed;}
.project-table tbody tr.selected-item{background:#cde9d7!important;outline:2px solid #478867;outline-offset:-2px;}
.danger-action{background:#9b3030;color:white;border:1px solid #8c2424;}
.danger-action:hover{background:#7d2222;}
#itemPosition{white-space:nowrap;font-weight:600;}

/* 0.4.17 – ruhigere Oberfläche und klarere Dialoge */
body{background:linear-gradient(155deg,#e5edf2 0%,#eef4f3 48%,#dcebe4 100%) fixed;}
.overlay:not([hidden]){background:rgba(16,39,44,.48);backdrop-filter:blur(2px);}
.modal{background:#fff;border:1px solid #b8d5d0;box-shadow:0 22px 58px rgba(15,43,45,.25),0 4px 12px rgba(15,43,45,.12);overflow:hidden;}
.modal-title{background:linear-gradient(100deg,#e0f0ed,#f0f8f6);border-bottom:1px solid #b9d9d2;padding-top:15px;padding-bottom:15px;}
.modal-title h2{color:#196b6d;}
#itemFormOverlay .form-grid{background:#f3f8f7;border:1px solid #d8e8e4;border-radius:9px;padding:14px;margin-top:16px;}
.item-pager{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:13px;padding:12px 6px 2px;border-top:1px solid #dce8e5;}
.item-pager button{font-size:13px;padding:7px 12px;min-width:82px;background:#eaf3f1;color:#246d6b;border:1px solid #b9d4ce;border-radius:6px;}
.item-pager button:disabled{opacity:.45;cursor:not-allowed;}
.item-pager #itemPosition{font-size:13px;color:#55716f;min-width:125px;text-align:center;}
@media(max-width:480px){.item-pager{gap:8px}.item-pager button{min-width:68px;padding:7px 9px}.item-pager #itemPosition{min-width:0;}}

/* 0.4.17 – Kostenansatz: Aktionen oben, Abbrechen links und Navigation mittig unten */
#itemFormOverlay .item-action-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
#itemFormOverlay .item-action-row #itemFormSave{margin-left:auto;}
#itemFormOverlay .item-footer-row{position:relative;display:flex;align-items:center;justify-content:center;min-height:52px;margin-top:12px;padding-top:10px;border-top:1px solid #dce8e5;}
#itemFormOverlay .item-footer-row #itemFormCancel{position:absolute;left:0;bottom:0;}
#itemFormOverlay .item-footer-row .item-pager{margin:0;padding:0;border:0;}
@media(max-width:570px){#itemFormOverlay .item-footer-row{flex-wrap:wrap;justify-content:center;gap:10px;}#itemFormOverlay .item-footer-row #itemFormCancel{position:static;margin-right:auto;}#itemFormOverlay .item-footer-row .item-pager{width:100%;}}

/* 0.4.18 – Abbrechen wie die Navigation gestalten und vertikal ausrichten */
#itemFormOverlay .item-footer-row #itemFormCancel{bottom:auto;top:50%;transform:translateY(-50%);font-size:13px;padding:7px 12px;min-width:82px;background:#eaf3f1;color:#246d6b;border:1px solid #b9d4ce;border-radius:6px;line-height:normal;}
#itemFormOverlay .item-footer-row #itemFormCancel:hover{background:#dcece8;border-color:#8ebdb2;}
@media(max-width:570px){#itemFormOverlay .item-footer-row #itemFormCancel{transform:none;top:auto;}}

/* 0.4.19 – Alle drei Navigationsbuttons exakt auf einer Höhe */
#itemFormOverlay .item-footer-row #itemFormCancel,
#itemFormOverlay .item-footer-row .item-pager button{
  box-sizing:border-box;
  height:32px;
  line-height:16px;
  padding:7px 12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  vertical-align:middle;
}
#itemFormOverlay .item-footer-row #itemFormCancel{top:50%;bottom:auto;transform:translateY(-50%);}
@media(max-width:570px){#itemFormOverlay .item-footer-row #itemFormCancel{top:auto;transform:none;}}

/* 0.4.20: Alle Fußzeilen-Schaltflächen im selben Flex-Ausrichtungsraster */
#itemFormOverlay .item-footer-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;}
#itemFormOverlay .item-footer-row #itemFormCancel{position:static;transform:none;grid-column:1;justify-self:start;margin:0;}
#itemFormOverlay .item-footer-row .item-pager{grid-column:2;align-self:center;}
@media(max-width:570px){#itemFormOverlay .item-footer-row{display:flex;flex-wrap:wrap;}#itemFormOverlay .item-footer-row #itemFormCancel{margin-right:auto;}}

/* 0.4.21: Aktionen bei schneller Kostenansatzerfassung */
#itemFormOverlay .item-action-row{flex-wrap:wrap;}
#itemFormOverlay .item-action-row #itemFormSaveNew{margin-left:auto;}
#itemFormOverlay .item-action-row #itemFormSave{margin-left:0;}

/* Version 2.0: Branding und verpflichtende Zustimmung */
.brand-symbol{display:inline-flex;align-items:center;justify-content:center;background:#2e8b57;color:#fff;border-radius:50%;width:1.6em;height:1.6em;font-weight:800;margin-right:.4em;vertical-align:middle}
.terms-consent{display:flex;align-items:flex-start;gap:.65rem;margin:1rem 0;line-height:1.45;cursor:pointer}
.terms-consent input[type=checkbox]{flex:0 0 auto;width:1.2rem;height:1.2rem;margin:.12rem 0 0;accent-color:#27854c}
.terms-consent a{color:#19713d;text-decoration:underline}

#manualDownload{display:inline-flex;align-items:center;text-decoration:none;color:#238184;white-space:nowrap}.welcome-banner{position:relative;margin:16px auto;padding:18px 45px 18px 20px;max-width:1050px;background:#e8f6eb;border:1px solid #92cda3;border-left:5px solid #369b56;border-radius:9px;color:#234b35}.welcome-banner p{margin:9px 0}.welcome-banner a{color:#166f40;font-weight:bold}.welcome-dismiss{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#234b35;cursor:pointer;font-size:18px}@media(max-width:680px){#userActions{display:flex;flex-wrap:wrap;gap:6px}.topbar{flex-wrap:wrap}}
