:root{--color-primary: #1e3a5f;--color-primary-hover: #16304f;--color-accent: #d97706;--color-bg: #f8f9fb;--color-surface: #fbf9f5;--color-border: #e5e5e7;--color-text: #1a1a1a;--color-text-muted: #6b7280;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius: 6px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .1);--color-status-urgent-bg: #d97706;--color-status-urgent-fg: #ffffff;--color-status-ok-bg: #166534;--color-status-ok-fg: #ffffff;--color-status-neutral-bg: #f3f4f6;--color-status-neutral-fg: #374151;--color-status-danger-bg: #b91c1c;--color-status-danger-fg: #ffffff;--color-chat-user-bg: #dbeafe;--color-chat-assistant-bg: #f0f0f0;--color-error: #b00020;--color-success: #1a7f37;--color-divider: #eee}:root[data-theme=dark]{--color-bg: #0f172a;--color-surface: #1e293b;--color-border: #374151;--color-text: #e5e7eb;--color-text-muted: #94a3b8;--color-status-urgent-bg: #fbbf24;--color-status-urgent-fg: #111827;--color-status-ok-bg: #22c55e;--color-status-ok-fg: #052e16;--color-status-neutral-bg: #334155;--color-status-neutral-fg: #e2e8f0;--color-status-danger-bg: #f87171;--color-status-danger-fg: #450a0a;--color-chat-user-bg: #1e40af;--color-chat-assistant-bg: #334155;--color-error: #f87171;--color-success: #4ade80;--color-divider: #334155}:root{--gewerk-holz-bg: #f7f3ec;--gewerk-holz-pattern: repeating-linear-gradient(98deg, rgba(120,72,32,.08) 0px, rgba(120,72,32,.08) 2px, transparent 2px, transparent 7px, rgba(120,72,32,.045) 7px, rgba(120,72,32,.045) 9px, transparent 9px, transparent 42px);--gewerk-sanitaer-bg: #f2f6f8;--gewerk-sanitaer-pattern: radial-gradient(circle at 12px 12px, rgba(30,58,95,.09) 2px, transparent 2.5px), radial-gradient(circle at 32px 32px, rgba(30,58,95,.06) 1.5px, transparent 2px);--gewerk-sanitaer-size: 44px 44px;--gewerk-metall-bg: #f2f3f4;--gewerk-metall-pattern: repeating-linear-gradient(45deg, rgba(55,65,81,.07) 0px, rgba(55,65,81,.07) 1px, transparent 1px, transparent 10px)}:root[data-theme=dark]{--gewerk-holz-bg: #2b2420;--gewerk-holz-pattern: repeating-linear-gradient(98deg, rgba(214,158,101,.09) 0px, rgba(214,158,101,.09) 2px, transparent 2px, transparent 7px, rgba(214,158,101,.05) 7px, rgba(214,158,101,.05) 9px, transparent 9px, transparent 42px);--gewerk-sanitaer-bg: #101c26;--gewerk-sanitaer-pattern: radial-gradient(circle at 12px 12px, rgba(148,197,255,.1) 2px, transparent 2.5px), radial-gradient(circle at 32px 32px, rgba(148,197,255,.06) 1.5px, transparent 2px);--gewerk-metall-bg: #1b1e21;--gewerk-metall-pattern: repeating-linear-gradient(45deg, rgba(200,205,210,.07) 0px, rgba(200,205,210,.07) 1px, transparent 1px, transparent 10px)}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--color-bg);color:var(--color-text)}.login-page,.chat-page,.settings-page,.firmendaten-page{max-width:720px;margin:3rem auto;padding:1.5rem;background:var(--color-surface);border-radius:8px;box-shadow:0 1px 4px #0000001a}.baustellen-page,.aufmass-page,.bautagebuch-page,.bauabrechnung-page,.upload-page{max-width:1280px;margin:3rem auto;padding:1.5rem;background:var(--color-surface);border-radius:8px;box-shadow:0 1px 4px #0000001a}.mail-window{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:0;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;height:560px}.mail-list{overflow-y:auto;border-right:1px solid var(--color-border);background:var(--color-bg)}.mail-list-item{display:block;width:100%;text-align:left;padding:var(--space-sm) var(--space-md);border:none;border-bottom:1px solid var(--color-divider);background:transparent;cursor:pointer;color:var(--color-text);font:inherit}.mail-list-item:hover{background:var(--color-border)}.mail-list-item-selected{background:var(--color-surface);border-left:3px solid var(--color-primary)}.mail-list-item-sender{font-weight:600;font-size:var(--font-size-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-list-item-subject{font-size:var(--font-size-sm);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-list-item-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex;justify-content:space-between;gap:var(--space-sm)}.mail-detail{display:flex;flex-direction:column;overflow-y:auto;background:var(--color-surface)}.mail-detail-header{padding:var(--space-md);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-xs)}.mail-detail-subject{font-size:var(--font-size-lg);font-weight:700;margin:0 0 var(--space-xs) 0}.mail-detail-header-row{display:flex;gap:var(--space-sm);font-size:var(--font-size-sm)}.mail-detail-header-label{color:var(--color-text-muted);min-width:4.5rem}.mail-detail-actions{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:var(--space-sm)}.mail-detail .error,.mail-detail .success{margin:0;padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border)}.mail-detail-body{padding:var(--space-md);white-space:pre-wrap;word-break:break-word;font-size:var(--font-size-sm);line-height:1.6;flex:1}.mail-detail-anhaenge{padding:var(--space-md);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:var(--space-sm)}.mail-detail-anhaenge h4{margin:0}.mail-detail-empty{padding:var(--space-xl);color:var(--color-text-muted);text-align:center}form{display:flex;flex-direction:column;gap:.75rem}.chat-page form{flex-direction:row}.chat-page form input{flex:1}input,button,select,textarea{padding:.5rem;font-size:1rem;font-family:inherit}button{cursor:pointer}header{display:flex;justify-content:space-between;align-items:center}header span{display:flex;align-items:center;gap:.75rem}ul{list-style:none;padding:0}li{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--color-divider)}li button{margin-left:.5rem}.chat-history{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:50vh;overflow-y:auto}.chat-message{margin:0;padding:.5rem .75rem;border-radius:6px;max-width:85%}.chat-message-user{align-self:flex-end;background:var(--color-chat-user-bg)}.chat-message-assistant{align-self:flex-start;background:var(--color-chat-assistant-bg)}.error{color:var(--color-error)}.success{color:var(--color-success)}.bautagebuch-bemerkung{white-space:pre-wrap;line-height:1.6;margin:.5rem 0}.bautagebuch-vollstaendigkeit-hinweis{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic;margin:0}.checkbox-label{display:flex;align-items:center;gap:.5rem}.checkbox-label input[type=checkbox]{width:auto}.settings-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:.35rem}.form-grid{display:flex;flex-wrap:wrap;gap:var(--space-md)}.form-field{display:flex;flex-direction:column;gap:.3rem;flex:1 1 160px}.form-field label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.form-field input,.form-field select{width:100%;box-sizing:border-box}.form-field-wide{flex:2 1 240px}.form-field-narrow{flex:1 1 110px}.form-field-checkbox{justify-content:flex-end}.form-actions{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-divider);display:flex;align-items:center;gap:var(--space-md)}section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-divider)}.beleg-vorschau-bild{max-width:100%;max-height:400px;object-fit:contain}.beleg-vorschau-pdf{width:100%;height:400px;border:1px solid var(--color-divider)}.pending-action-detail{display:flex;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap}.pending-action-fields{display:flex;flex-direction:column;gap:.35rem;flex:1;min-width:220px}.pending-action-field{display:flex;gap:.4rem;font-size:var(--font-size-sm)}.pending-action-field-label{color:var(--color-text-muted);font-weight:500;flex-shrink:0}.pending-action-field-value{color:var(--color-text)}.pending-action-detail .beleg-vorschau-bild,.pending-action-detail .beleg-vorschau-pdf{flex:1;min-width:200px;max-width:320px}.beleg-korrektur{flex:1;min-width:240px;display:flex;flex-direction:column;gap:var(--space-sm)}.beleg-korrektur .form-field{flex:1 1 140px}.beleg-korrektur-actions{display:flex;gap:var(--space-sm)}@media (max-width: 768px){.pending-action-detail{flex-direction:column}.pending-action-detail .beleg-vorschau-bild,.pending-action-detail .beleg-vorschau-pdf{max-width:100%}}.teilmass-row{display:flex;gap:.5rem;align-items:center}.teilmass-row input{flex:1}.termin-formular{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.termin-formular input,.termin-formular select{flex:1;min-width:120px}.termine-toolbar{margin-bottom:var(--space-md)}.termine-tabelle-wrapper{overflow-x:auto}.termine-tabelle{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.termine-tabelle th,.termine-tabelle td{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.termine-tabelle th{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--color-text-muted);font-weight:600}.termine-tabelle tbody tr{cursor:pointer}.termine-tabelle tbody tr:hover{background:var(--color-bg)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100}.modal-content{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-md);max-width:480px;width:90%;max-height:80vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md);border-bottom:1px solid var(--color-border)}.modal-header h3{margin:0}.modal-close{background:none;border:none;font-size:var(--font-size-lg);line-height:1;cursor:pointer;color:var(--color-text-muted)}.modal-body{padding:var(--space-md)}.termin-detail-liste{display:grid;grid-template-columns:auto 1fr;gap:var(--space-xs) var(--space-md);margin:0}.termin-detail-liste dt{color:var(--color-text-muted);font-weight:600}.termin-detail-liste dd{margin:0}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;align-items:center;gap:var(--space-lg);padding:var(--space-sm) var(--space-lg);background:var(--color-primary);color:#fff;position:sticky;top:0;z-index:100}.app-brand{font-weight:600;white-space:nowrap}.app-nav{display:flex;gap:var(--space-lg);flex:1;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap}.app-nav-link{color:#ffffffd9;text-decoration:none;padding-bottom:.25rem;border-bottom:2px solid transparent}.app-nav-link-active{color:#fff;font-weight:600;border-bottom-color:var(--color-accent)}.app-logout{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius);padding:.35rem .75rem}.app-content{flex:1}.app-bottom-nav{display:none}@media (max-width: 768px){.app-nav{display:none}.app-bottom-nav{display:flex;justify-content:space-around;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-xs) 0;overflow-x:auto;-webkit-overflow-scrolling:touch}.app-bottom-nav-link{color:var(--color-text-muted);text-decoration:none;font-size:.75rem;text-align:center;padding:var(--space-xs) var(--space-sm);flex-shrink:0}.app-bottom-nav-link-active{color:var(--color-primary);font-weight:600}.app-content{padding-bottom:3.5rem}}.baustelle-tabs-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.baustelle-tabs-name{margin:0;font-size:var(--font-size-lg)}.baustelle-tabs{display:flex;gap:var(--space-md);align-items:center;padding:var(--space-sm) var(--space-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.baustelle-tabs-back{color:var(--color-text-muted);text-decoration:none;margin-right:var(--space-md)}.baustelle-tab{color:var(--color-text-muted);text-decoration:none;padding-bottom:.25rem;border-bottom:2px solid transparent}.baustelle-tab-active{color:var(--color-primary);font-weight:600;border-bottom-color:var(--color-accent)}.btn-primary,.btn-secondary,.btn-danger{border-radius:var(--radius);padding:.5rem 1rem;font-size:var(--font-size-sm);font-weight:600;border:none;cursor:pointer}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg)}.btn-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}.app-theme-toggle{background:transparent;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius);padding:.35rem .6rem;font-size:var(--font-size-md);cursor:pointer}.empty-state{color:var(--color-text-muted);font-size:var(--font-size-sm);padding:var(--space-md) 0;text-align:center}.status-badge-v2{display:inline-block;padding:.2rem .6rem;border-radius:var(--radius);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.status-badge-v2-urgent{background:var(--color-status-urgent-bg);color:var(--color-status-urgent-fg)}.status-badge-v2-ok{background:var(--color-status-ok-bg);color:var(--color-status-ok-fg)}.status-badge-v2-neutral{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg)}.status-badge-v2-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}.list-card-group{display:flex;flex-direction:column;gap:var(--space-sm)}.list-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-md)}.list-card-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap}.list-card-main{flex:1;min-width:0}.list-card-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-text)}.list-card-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:.15rem}.list-card-status{flex-shrink:0}.list-card-actions{display:flex;gap:var(--space-sm);align-items:center;flex-shrink:0}.list-card-extra{margin-top:var(--space-md)}@media (max-width: 768px){.list-card-row{flex-direction:column;align-items:stretch}.list-card-actions button,.list-card-actions a{min-height:44px;display:inline-flex;align-items:center}}.dashboard-page{max-width:1280px;margin:2rem auto;padding:0 1.5rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--space-lg);margin-top:var(--space-lg);align-items:start}.dashboard-grid section{margin-top:0;padding-top:0;border-top:none;padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.dashboard-section-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-sm)}.dashboard-section-header a{font-size:var(--font-size-sm);color:var(--color-primary);text-decoration:none}.planer-page{padding:var(--space-lg) 2rem}.planer-page h1{margin-bottom:var(--space-lg)}.planer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--space-lg);align-items:start}.planer-grid section{margin-top:0;padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}[data-gewerk=holz] .app-content{background-color:var(--gewerk-holz-bg);background-image:var(--gewerk-holz-pattern)}[data-gewerk=sanitaer_heizung] .app-content{background-color:var(--gewerk-sanitaer-bg);background-image:var(--gewerk-sanitaer-pattern);background-size:var(--gewerk-sanitaer-size)}[data-gewerk=metallbau] .app-content{background-color:var(--gewerk-metall-bg);background-image:var(--gewerk-metall-pattern)}.planer-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg)}.planer-header-subline{color:var(--color-text-muted);font-size:var(--font-size-sm);margin-top:.15rem}.stat-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.stat-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-md);border-left:3px solid var(--color-border)}.stat-card-urgent{border-left-color:var(--color-status-urgent-bg)}.stat-card-ok{border-left-color:var(--color-status-ok-bg)}.stat-card-neutral{border-left-color:var(--color-primary)}.stat-card-value{font-size:28px;font-weight:700;color:var(--color-text)}.stat-card-label{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:.15rem}.list-card-priority{border-left:4px solid transparent;border-radius:var(--radius)}.list-card-priority .list-card{border-top-left-radius:0;border-bottom-left-radius:0}.list-card-priority-urgent{border-left-color:#d97706}.list-card-priority-danger{border-left-color:#b91c1c}.list-card-priority-neutral{border-left-color:#9ca3af}.termin-agenda{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.termin-agenda-zeile{display:flex;gap:var(--space-md);align-items:baseline}.termin-agenda-zeit{font-weight:700;color:var(--color-primary);flex-shrink:0;min-width:3.5rem}.termin-agenda-titel{font-weight:600;color:var(--color-text)}.termin-agenda-subline{font-size:var(--font-size-sm);color:var(--color-text-muted)}.mail-vorschau-liste{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-sm)}.mail-vorschau-zeile{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);flex-wrap:wrap}.mail-vorschau-absender,.mail-vorschau-betreff{font-weight:700}.mail-vorschau-meta{font-size:var(--font-size-xs);color:var(--color-text-muted)}.mail-vorschau-badges{display:flex;gap:var(--space-xs);flex-shrink:0}.baustellen-karten-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-md);margin-bottom:var(--space-lg)}.baustelle-karte{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.baustelle-karte-kopf{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm)}.baustelle-karte-name{font-size:var(--font-size-md);font-weight:700}.baustelle-karte-meta{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:.15rem}.baustelle-karte-chips{display:flex;gap:var(--space-xs);flex-wrap:wrap}.baustelle-karte-chip{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border-radius:20px;padding:.25rem .75rem;font-size:var(--font-size-xs);text-decoration:none;font-weight:600}.baustelle-karte-status-btn{width:100%}.baustellen-neu-details{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-md);margin-bottom:var(--space-md)}.baustellen-neu-details summary{cursor:pointer;font-weight:600;font-size:var(--font-size-md);color:var(--color-text);list-style-position:inside}.baustellen-neu-details[open] summary{margin-bottom:var(--space-sm);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-sm)}.lv-tabelle{width:100%;border-collapse:collapse;margin-bottom:var(--space-md)}.lv-tabelle th,.lv-tabelle td{text-align:left;padding:.5rem;border-bottom:1px solid var(--color-border)}.datei-upload-chip{display:inline-block;background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border-radius:var(--radius);padding:.5rem 1rem;font-size:var(--font-size-sm);font-weight:600;cursor:pointer}.baustelle-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:var(--space-lg);align-items:start}.baustelle-detail-grid>section{margin-top:0;padding:var(--space-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-width:0}.chat-bubble-wrapper{display:flex;flex-direction:column;margin-bottom:var(--space-md)}.chat-bubble-wrapper-user{align-items:flex-end}.chat-bubble-wrapper-assistant{align-items:flex-start}.chat-bubble{max-width:70%;padding:.6rem .9rem;border-radius:12px}.chat-bubble-user{background:var(--color-primary);color:#fff;border-radius:12px 12px 2px}.chat-bubble-assistant{background:var(--color-chat-assistant-bg);color:var(--color-text);border-radius:12px 12px 12px 2px}.chat-bubble-timestamp{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:.2rem}.chat-quick-replies{display:flex;gap:var(--space-xs);flex-wrap:wrap;margin-bottom:var(--space-sm)}.chat-quick-reply-chip{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border:none;border-radius:20px;padding:.4rem .9rem;font-size:var(--font-size-sm);cursor:pointer}.ki-einstellungen-karte{display:flex;flex-direction:column;gap:var(--space-md)}.ki-cloud-zeile{display:flex;align-items:flex-start;gap:var(--space-sm);background:var(--color-bg);border-radius:var(--radius);padding:var(--space-md)}.konto-karte-actions{display:flex;gap:var(--space-xs);margin-top:var(--space-sm)}.konto-pill-btn{background:var(--color-status-neutral-bg);color:var(--color-status-neutral-fg);border:none;border-radius:20px;padding:.3rem .8rem;font-size:var(--font-size-xs);font-weight:600;cursor:pointer}.konto-pill-btn-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}
