/*
 * Neutraler Framework-Layer. Core-/Fachrichtungs-/Kunden-Themes werden danach
 * geladen und dürfen diese Variablen und Komponenten übersteuern.
 */
:root{
  --erp-color-text:#0a1118;
  --erp-color-navigation:#0b1825;
  --erp-color-navigation-raised:#122536;
  --erp-color-page:#f1f4f5;
  --erp-color-surface:#fff;
  --erp-color-border:#dce3e6;
  --erp-color-muted:#6c7981;
  --erp-color-accent:#10bfd8;
  --erp-color-action:#2d75e8;
  --erp-color-success:#1c9c6d;
  --erp-color-warning:#e67a2d;
  --erp-color-danger:#d84d52;
  --erp-font-body:Arial,Helvetica,sans-serif;
  --erp-font-heading:Arial,Helvetica,sans-serif;
  --erp-radius-control:3px;
  --erp-radius-panel:3px;
  --erp-control-height:40px;
  --erp-density-space:1;
  --erp-shadow-panel:0 18px 55px rgba(8,22,32,.09);
  --ink:var(--erp-color-text);--navy:var(--erp-color-navigation);--navy-2:var(--erp-color-navigation-raised);
  --paper:var(--erp-color-page);--panel:var(--erp-color-surface);--line:var(--erp-color-border);--muted:var(--erp-color-muted);
  --cyan:var(--erp-color-accent);--blue:var(--erp-color-action);--green:var(--erp-color-success);--orange:var(--erp-color-warning);--red:var(--erp-color-danger);--shadow:var(--erp-shadow-panel);
  --framework-radius:var(--erp-radius-control);
  --framework-control-height:var(--erp-control-height);
  --framework-panel-border:1px solid var(--erp-color-border);
  --framework-paper:var(--erp-color-surface);
}
body{font-family:var(--erp-font-body)}h1,h2,h3,h4,.app-brand strong{font-family:var(--erp-font-heading)}
.panel,.invoice-paper{border-radius:var(--erp-radius-panel)}.button,input,select,textarea{border-radius:var(--framework-radius)}
.projects-table .data-head,.projects-table .data-row{grid-template-columns:minmax(240px,1.5fr) 1fr 1fr 80px 90px 20px}
.catalog-table .data-head,.catalog-table .data-row{grid-template-columns:minmax(250px,1.5fr) 90px 80px 105px 105px 70px 85px}
.finance-table .data-head,.finance-table .data-row{grid-template-columns:85px minmax(250px,1.4fr) 110px 1fr 95px 95px 105px}
.invoices-table .data-head,.invoices-table .data-row{grid-template-columns:170px minmax(220px,1.4fr) 145px 100px 100px 90px 20px}
.business-list{display:grid}.business-list article{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid #edf0f1}.business-list article:last-child{border:0}.business-list p{display:flex;flex-direction:column;gap:5px;margin:0}.business-list strong{font-size:10px}.business-list small,.business-list article>span{font-size:8px;color:#839097}.compact-form{display:grid;gap:13px}.finance-stats{grid-template-columns:repeat(3,1fr)}
.contact-grid p span{font-size:8px;color:#7e8b92;overflow:hidden;text-overflow:ellipsis}
.invoice-lines{display:grid;gap:8px}.invoice-line{display:grid;grid-template-columns:1.15fr 1.7fr 80px 100px 110px 80px 30px;gap:8px;align-items:end;background:#f5f8f9;border:1px solid #e1e7e9;padding:10px}.invoice-line label{min-width:0}.invoice-line input,.invoice-line select{padding:8px}.line-remove{height:34px;border:1px solid #e4caca;background:#fff;color:var(--red);font-size:17px}.invoice-paper{background:var(--framework-paper);border:var(--framework-panel-border);padding:clamp(24px,5vw,70px);box-shadow:var(--shadow);max-width:1200px;margin:0 auto 16px}.invoice-paper>header{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;padding-bottom:35px;border-bottom:2px solid var(--ink)}.invoice-paper>header>div{display:flex;flex-direction:column;gap:8px}.invoice-paper>header p{font-size:9px;color:var(--muted);line-height:1.6;margin:0}.invoice-paper>header dl,.invoice-paper>footer dl{margin:0}.invoice-paper dl>div{display:flex;justify-content:space-between;gap:15px;padding:6px 0;border-bottom:1px solid #e5e9eb;font-size:9px}.invoice-paper dt{color:var(--muted)}.invoice-paper dd{margin:0;font-weight:800;text-align:right}.invoice-item-table{margin:38px 0}.invoice-item-table>div{display:grid;grid-template-columns:45px minmax(250px,1fr) 100px 115px 70px 120px;gap:13px;padding:12px 8px;border-bottom:1px solid #e5e9eb;font-size:9px}.invoice-item-table>div:first-child{background:var(--navy);color:#fff;font-size:8px;font-weight:800;letter-spacing:.08em}.invoice-paper>footer{display:grid;grid-template-columns:1fr 320px;gap:40px;align-items:start}.invoice-paper>footer p{font-size:9px;color:var(--muted);line-height:1.6}.invoice-paper .total{font-size:13px;border-top:2px solid var(--ink);border-bottom:0;padding-top:12px}.invoice-actions{max-width:1200px;margin:0 auto 16px}.invoice-actions header{display:flex;justify-content:space-between}.invoice-actions>div{display:flex;gap:8px}.invoice-actions form{margin:0}.backup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.backup-history .panel-header{padding:22px 25px 0}.backup-history .data-head,.backup-history .data-row{grid-template-columns:140px minmax(250px,1.5fr) 100px 80px 100px 1fr}.badge.type-income{background:#e5f6ef;color:#23775c}.badge.type-expense{background:#fde9ea;color:#a93238}.badge.status-approved,.badge.status-paid,.badge.status-completed{background:#e5f6ef;color:#23775c}.badge.status-sent,.badge.status-active{background:#e4f4fb;color:#176c91}.badge.status-draft,.badge.status-planned{background:#edf0f2;color:#65737a}.badge.status-on_hold{background:#fff3dc;color:#9b6e14}
@media(max-width:1250px){.invoice-line{grid-template-columns:1fr 1fr 80px 100px}.invoice-line .line-description{grid-column:span 2}.invoice-line .line-remove{grid-column:4}.invoice-item-table{overflow-x:auto}.invoice-item-table>div{min-width:760px}}
@media(max-width:900px){.backup-grid{grid-template-columns:1fr}.invoice-paper>header{grid-template-columns:1fr 1fr}.invoice-paper>header dl{grid-column:span 2}.invoice-paper>footer{grid-template-columns:1fr}.finance-stats{grid-template-columns:1fr}}
@media(max-width:620px){.invoice-line{grid-template-columns:1fr 1fr}.invoice-line .line-description{grid-column:span 2}.invoice-line .line-remove{grid-column:2}.invoice-paper>header{grid-template-columns:1fr}.invoice-paper>header dl{grid-column:auto}}

/* Base 1.1.3 · neutraler, geraetelokaler Darstellungsvertrag. */
html[data-color-resolved="night"]{
  color-scheme:dark;
  --erp-color-text:#e6edf2;
  --erp-color-navigation:#09141d;
  --erp-color-navigation-raised:#11222e;
  --erp-color-page:#0d161d;
  --erp-color-surface:#14222c;
  --erp-color-border:#2b3d49;
  --erp-color-muted:#91a2ad;
  --erp-shadow-panel:0 18px 55px rgba(0,0,0,.24);
  --ink:var(--erp-color-text);--navy:var(--erp-color-navigation);--navy-2:var(--erp-color-navigation-raised);
  --paper:var(--erp-color-page);--panel:var(--erp-color-surface);--line:var(--erp-color-border);--muted:var(--erp-color-muted);--shadow:var(--erp-shadow-panel);
  --framework-paper:var(--erp-color-surface);
}

/* Base 0.4 · durchgängige Arbeitsvorgänge und Meilensteine */
.ticket-toolbar{display:flex;justify-content:flex-end;gap:8px;margin:-4px 0 12px}.ticket-toolbar form{margin:0}
.inline-link-button{border:0;background:transparent;color:var(--blue);padding:6px 0 0;text-align:left;font-size:8px;font-weight:800;cursor:pointer}
.ticket-calendar-panel,.ticket-history-panel{margin-top:12px}
.simple-list>a{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid #edf0f1}.simple-list>a:last-child{border-bottom:0}.simple-list>a strong{font-size:10px}.simple-list>a small{font-size:8px;color:#839097}
.timeline-list{display:grid}.timeline-list article{display:grid;grid-template-columns:12px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf0f1}.timeline-list article:last-child{border:0}.timeline-list article>span{width:8px;height:8px;border-radius:50%;background:var(--cyan);margin-top:4px}.timeline-list article>div{display:grid;gap:3px}.timeline-list small{font-size:8px;color:#819097;text-transform:uppercase;letter-spacing:.06em}.timeline-list strong{font-size:9px}.timeline-list p{font-size:8px;color:#819097;margin:0}
.milestone-list{display:grid}.milestone{display:grid;grid-template-columns:14px minmax(180px,1fr) auto;gap:12px;align-items:start;padding:13px 0;border-bottom:1px solid #edf0f1}.milestone:last-child{border:0}.milestone-marker{width:10px;height:10px;border:2px solid var(--blue);border-radius:50%;margin-top:4px}.milestone.status-done .milestone-marker{background:var(--green);border-color:var(--green)}.milestone.status-in_progress .milestone-marker{background:var(--cyan);border-color:var(--cyan)}.milestone.status-cancelled{opacity:.55}.milestone>div{display:grid;gap:4px}.milestone strong{font-size:10px}.milestone p{font-size:9px;line-height:1.5;margin:0}.milestone small{font-size:8px;color:#839097}
.schema-issues{border-left:3px solid var(--red);padding-left:12px}.schema-issues p{font-size:8px;color:#7b858a;margin:5px 0 0}
.tickets-table .data-head,.tickets-table .data-row{grid-template-columns:minmax(240px,1.5fr) 1fr 85px 1fr 170px 80px}
.badge.status-in_progress{background:#e3f7ee;color:#21795c}.badge.status-planned{background:#edf0f2;color:#65737a}
@media(max-width:700px){.ticket-toolbar{justify-content:flex-start;flex-wrap:wrap}.milestone{grid-template-columns:12px 1fr}.milestone form{grid-column:2}.timeline-list article{grid-template-columns:9px 1fr}}

/* Base 0.5 · planbare Finanzen und Rueckgabe aus der Rechnungspruefung */
.recurring-run-note{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 15px;margin-bottom:14px;border-left:3px solid var(--green);background:#eaf8f2;font-size:9px}.recurring-run-note span,.recurring-run-note a{color:#4b6f62}
.recurring-stats{grid-template-columns:repeat(4,1fr)}.recurring-stats small{display:block;margin-top:5px;color:var(--muted);font-size:8px}
.recurring-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,.75fr);gap:14px;align-items:start}.recurring-list{display:grid}.recurring-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:17px 0;border-bottom:1px solid #e6ebed}.recurring-card:last-child{border:0}.recurring-card.is-paused{opacity:.62}.recurring-card-main{display:grid;gap:7px}.recurring-card-main>strong{font-size:11px}.recurring-card-main>p{font-size:8px;color:var(--muted);margin:0}.recurring-card-top{display:flex;align-items:center;gap:8px}.recurring-card-top small{font-size:8px;color:var(--muted)}.recurring-facts{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:8px;margin-top:5px}.recurring-facts span{display:grid;gap:3px;padding:9px;background:#f4f7f8}.recurring-facts small,.recurring-detail{font-size:8px;color:var(--muted)}.recurring-facts b{font-size:9px}.recurring-actions{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap;justify-content:flex-end}.recurring-actions form{margin:0}.recurring-editor{position:sticky;top:18px}.recurring-editor fieldset{border:0;border-top:1px solid var(--line);padding:14px 0 0;margin:0}.recurring-editor legend{padding:0 8px 0 0;font-size:8px;font-weight:800;letter-spacing:.08em}.invoice-review-history,.invoice-reject-card{max-width:1200px;margin:0 auto 16px}.invoice-reject-card>form{max-width:720px}.ticket-revision-alert{display:grid;gap:5px;margin-bottom:12px;padding:13px 15px;border-left:3px solid #e68b2c;background:#fff4e5}.ticket-revision-alert strong{font-size:8px;letter-spacing:.08em;color:#9a5b16}.ticket-revision-alert span{font-size:9px;line-height:1.5}.badge.status-follow_up,.badge.status-rejected{background:#fff0dc;color:#9a5b16}
@media(max-width:1050px){.recurring-stats{grid-template-columns:repeat(2,1fr)}.recurring-layout{grid-template-columns:1fr}.recurring-editor{position:static}}
@media(max-width:620px){.recurring-stats{grid-template-columns:1fr}.recurring-card{grid-template-columns:1fr}.recurring-actions{justify-content:flex-start}.recurring-facts{grid-template-columns:1fr}.recurring-run-note{align-items:flex-start;flex-direction:column}}
.status-valid { background: #e7f7ef; color: #147a52; }
.status-invalid { background: #fdebec; color: #a72b35; }
.status-legacy { background: #fff3d9; color: #8a5b00; }
.status-corrected { background: #f1eafd; color: #6941a5; }
.status-draft { background: #edf1f4; color: #52616b; }
.record-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-top:.45rem}.inline-danger{position:relative;display:inline-block}.inline-danger>summary{cursor:pointer;color:var(--danger,#b43643);font-size:.76rem;font-weight:800;list-style:none}.inline-danger>summary::-webkit-details-marker{display:none}.inline-danger[open]>form{position:absolute;z-index:20;right:0;top:calc(100% + .45rem);width:min(21rem,70vw);padding:.85rem;background:#fff;border:1px solid #e6b9be;box-shadow:0 16px 42px rgba(13,32,44,.18);display:grid;gap:.65rem}.inline-danger form label{margin:0}.inline-danger form input{width:100%}.event-meta .inline-danger>form{right:0}.trash-table .data-head,.trash-table .data-row{grid-template-columns:1.35fr 1.4fr .8fr .8fr auto}.master-data-grid{margin-bottom:1rem}.master-data-grid .simple-list>span{display:flex;flex-direction:column;padding:.7rem 0;border-bottom:1px solid var(--line,#dfe6e8)}.workflow-callout{display:flex;gap:1rem;align-items:flex-start;padding:1rem 1.2rem;margin:0 0 1rem;background:#eefafd;border-left:4px solid var(--accent,#10b9cf)}
.row-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.row-actions>details{position:relative}.row-actions>details>summary{cursor:pointer;color:var(--navy);font-size:.76rem;font-weight:800;list-style:none}.row-actions>details>summary::-webkit-details-marker{display:none}.row-actions>details:not(.inline-danger)[open]>form{position:absolute;z-index:20;right:0;top:calc(100% + .45rem);width:min(21rem,70vw);padding:.85rem;background:#fff;border:1px solid var(--line);box-shadow:0 16px 42px rgba(13,32,44,.18);display:grid;gap:.65rem}

@media (max-width:900px){.trash-table .data-head{display:none}.trash-table .data-row{grid-template-columns:1fr}.inline-danger[open]>form,.row-actions>details:not(.inline-danger)[open]>form{position:fixed;left:1rem;right:1rem;top:auto;bottom:1rem;width:auto}}
.topbar-tools{display:flex;align-items:center;gap:12px}.topbar-notifications{display:inline-flex;align-items:center;gap:7px;color:inherit;text-decoration:none;font-size:.78rem;font-weight:800;letter-spacing:.05em}.topbar-notifications b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#e56d27;color:#fff}.worklist-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line,#d9e0e3)}.worklist-item:last-child{border-bottom:0}.worklist-item div{display:grid;gap:4px}.worklist-item small{color:var(--muted,#6d7b82)}.notification-unread{border-left:4px solid var(--accent,#16bcd0);padding-left:14px!important}

/* Base 0.8 · stabiler Modulvertrag und Core-gesteuerte Design-Tokens */
.module-card .schema-issues{margin:.65rem 0 0;color:var(--erp-color-danger);font-size:.76rem;line-height:1.45}.module-card button:disabled{cursor:not-allowed;opacity:.45}.archive-panel article>p small{display:block;margin-top:.2rem;color:var(--erp-color-muted)}.archive-panel article>span{font-size:.78rem;color:var(--erp-color-muted)}

/* Base 0.9 · Recovery und reproduzierbare Produktionsbereitschaft */
.recovery-panel{margin-bottom:1rem}.recovery-panel .panel-header p{margin:.35rem 0 0;color:var(--erp-color-muted);font-size:.78rem}.recovery-history .data-head,.recovery-history .data-row{grid-template-columns:140px minmax(190px,1.2fr) 100px 80px minmax(140px,1fr) 120px}.readiness-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.readiness-summary>div{display:flex;align-items:center;gap:.8rem}.readiness-summary p{display:grid;gap:.25rem;margin:0}.readiness-summary small{color:var(--erp-color-muted)}.readiness-summary form{margin:0}.readiness-category{margin-bottom:1rem}.readiness-category>header{margin:0 0 .45rem}.rehearsal-strip{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:1rem 0;padding:1rem;background:#f4f8fa;border-left:4px solid var(--erp-color-action)}.rehearsal-strip p{margin:.25rem 0 0;color:var(--erp-color-muted);font-size:.78rem}.rehearsal-strip form{margin:0;flex:none}
@media(max-width:900px){.recovery-history .data-head{display:none}.recovery-history .data-row{grid-template-columns:1fr}.readiness-summary,.rehearsal-strip{align-items:flex-start;flex-direction:column}}

/* Base 1.0 · reproduzierbare Framework-Abnahme */
.acceptance-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;border-left:4px solid var(--erp-color-danger)}.acceptance-summary.is-pass{border-left-color:var(--erp-color-success)}.acceptance-summary>div{display:flex;align-items:center;gap:.8rem}.acceptance-summary p{display:grid;gap:.25rem;margin:0}.acceptance-summary small{color:var(--erp-color-muted)}.acceptance-summary form{margin:0}.acceptance-category{margin-bottom:1rem}.acceptance-category>header{margin:0 0 .45rem}.acceptance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.acceptance-check{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:start;padding:1rem}.acceptance-check>div{display:grid;gap:.3rem;min-width:0}.acceptance-check strong{font-size:.86rem}.acceptance-check small{color:var(--erp-color-muted);line-height:1.45;overflow-wrap:anywhere}.acceptance-check code{font-size:.66rem;color:var(--erp-color-muted);background:#f3f6f7;padding:.2rem .35rem;width:max-content;max-width:100%;overflow-wrap:anywhere}
@media(max-width:900px){.acceptance-summary{align-items:flex-start;flex-direction:column}.acceptance-grid{grid-template-columns:1fr}}

/* Framework leave planning: local styles, touch-friendly and scrollable. */
.leave-scroll { overflow-x: auto; max-width: 100%; }
.leave-table { border-collapse: collapse; width: 100%; text-align: left; }
.leave-table th, .leave-table td { padding: .7rem; border-bottom: 1px solid var(--border, #8995a533); white-space: nowrap; }
.leave-table th { font-size: .85rem; }
.leave-calendar th:not(:first-child), .leave-calendar td { text-align: center; min-width: 2.6rem; padding: .45rem .3rem; }
.leave-calendar small { display: block; font-weight: normal; opacity: .7; }
.leave-weekend { background: #8995a512; }
.leave-mark { display: inline-block; padding: .3rem; border-radius: .3rem; font-weight: 700; }
.leave-approved { color: #08764b; background: #bbf7d0; }
.leave-pending { color: #92400e; background: #fef3c7; }
.leave-cancel_pending { color: #9a3412; background: #ffedd5; }
.leave-request { padding: 1rem 0; border-bottom: 1px solid var(--border, #8995a533); }
.leave-warning { padding: .8rem; margin: .7rem 0; border-left: 4px solid #e6a521; background: #e6a52115; }
.leave-request .entity-form { margin-top: .8rem; }
@media(max-width:700px) { .leave-request button { min-height:44px; } }
