/* ==========================================================================
   DASHBOARD COMPONENTS (Karten, Radar & Ghost-Modus)
   ========================================================================== */

/* Dashboard: Drag & Drop (Sortable.js) */
.drag-handle { cursor: grab; font-size: 20px; color: #cbd5e1; position: absolute; top: 15px; right: 15px; }
.drag-handle:active { cursor: grabbing; }
.sortable-ghost { opacity: 0.4; background-color: #f1f5f9; border: 2px dashed #94a3b8; }

/* Dashboard: Vorstands-Radar */
.radar-container { background: #fff; border: 2px solid #fecaca; border-radius: 8px; padding: 20px; margin-bottom: 30px; box-shadow: 0 4px 15px rgba(239, 68, 68, 0.1); }
.radar-header { color: #ef4444; margin-top: 0; font-size: 18px; display: flex; align-items: center; gap: 10px; margin-bottom: 20px; }
.pulse-dot { width: 12px; height: 12px; background-color: #ef4444; border-radius: 50%; display: inline-block; animation: pulse-red 1.5s infinite; }
@keyframes pulse-red { 0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); } 100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); } }

.alert-row { display: flex; justify-content: space-between; align-items: center; background: #fef2f2; padding: 12px 20px; border-radius: 6px; margin-bottom: 10px; transition: 0.3s opacity; border-left: 4px solid #ef4444;}
.alert-text { font-size: 15px; color: #7f1d1d; }
.alert-time { font-size: 13px; color: #b91c1c; font-weight: bold; background: #fee2e2; padding: 3px 8px; border-radius: 4px; margin-left: 10px; }
.btn-ack { background: #ef4444; color: #fff; border: none; padding: 8px 15px; border-radius: 4px; font-weight: bold; cursor: pointer; transition: 0.2s; }
.btn-ack:hover { background: #dc2626; }

/* Dashboard: Ghost Modus Alert */
.ghost-alert-box { background: linear-gradient(135deg, #7f1d1d 0%, #ef4444 100%); color: white; padding: 15px 20px; border-radius: 8px; margin-bottom: 25px; display: flex; justify-content: space-between; align-items: center; box-shadow: 0 4px 15px rgba(239, 68, 68, 0.4); border: 2px solid #fca5a5; }
.ghost-alert-title { font-size: 16px; display: flex; align-items: center; gap: 8px; font-weight: bold; }
.ghost-alert-desc { font-size: 13px; opacity: 0.9; }
.btn-ghost-exit { background: white; color: #b91c1c; text-decoration: none; padding: 8px 16px; border-radius: 4px; font-weight: bold; font-size: 13px; transition: 0.2s; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.btn-ghost-exit:hover { background: #fef2f2; }

/* Dashboard: Header & Layout Utility */
.dashboard-container { padding-bottom: 50px; }
.dashboard-header-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 5px; }
.dashboard-title { color: var(--rhoendorf-blau); margin: 0; }
.save-indicator { font-size: 12px; color: #10b981; font-weight: bold; opacity: 0; transition: opacity 0.3s; }
.role-badge { display: inline-block; background-color: var(--union-gold); color: #1b191d; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: bold; margin-bottom: 20px; }
.dashboard-tip { color: #64748b; font-size: 14px; margin-bottom: 30px; }
.card-stat-badge { font-size: 13px; margin-bottom: 10px; color: var(--rhoendorf-blau); font-weight: bold; background: #fff8e5; padding: 5px 10px; border-radius: 4px; display: inline-block; }
.text-danger { color: #b91c1c; font-weight: bold; }

/* ==========================================================================
   PUBLIC FRONTEND COMPONENTS (Startseite & Index)
   ========================================================================== */

/* Startseite: Sektionen & Titel */
.home-section { padding: 60px 20px; max-width: 1200px; margin: 0 auto; position: relative; z-index: 10;}
.home-section.overlap-top { margin-top: -40px; }
.section-title { font-family: 'Inter', sans-serif; font-size: 32px; color: var(--rhoendorf-blau); margin-bottom: 30px; display: flex; justify-content: space-between; align-items: flex-end; border-bottom: 2px solid #e2e8f0; padding-bottom: 10px;}
.section-title.no-border { border-bottom: none; margin-bottom: 20px; }
.section-title h2 { margin: 0; }
.section-title.mini h2 { font-size: 22px; }
.section-link { font-size: 15px; color: var(--cadenabbia-tuerkis); text-decoration: none; font-weight: bold; }
.section-link:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .section-title { flex-direction: column; align-items: flex-start; gap: 10px; font-size: 26px;}
}

/* Startseite: Hero Section (Banner) */
.hero { 
    background-color: var(--rhoendorf-blau);
    background-image: linear-gradient(rgba(27, 25, 29, 0.7), rgba(45, 60, 75, 0.8)), url('../img/hero-bg.jpg'); 
    background-size: cover; 
    background-position: center; 
    color: white; 
    padding: 120px 20px; 
    text-align: center; 
}
.hero-content { max-width: 800px; margin: 0 auto; }
.hero-stoerer { color: var(--union-gold); font-weight: bold; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 20px; font-size: 14px; }
.hero-title { font-family: 'Inter', sans-serif; font-size: clamp(36px, 5vw, 52px); font-weight: 900; line-height: 1.2; margin: 0 0 20px 0; }
.hero-desc { font-size: clamp(16px, 2vw, 20px); color: #e2e8f0; line-height: 1.6; margin-bottom: 40px; }
.btn-hero-action { background: white; color: var(--rhoendorf-blau); padding: 12px 25px; border-radius: 30px; font-weight: bold; text-decoration: none; font-size: 16px; transition: 0.2s; display: inline-block; }
.btn-hero-action:hover { background-color: var(--cadenabbia-tuerkis); color: #fff; }

/* Startseite: Termin-Mini-Grid */
.event-widget-box { background: white; padding: 30px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.1); }
.event-mini-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 25px; }
.event-mini-card { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; box-shadow: 0 4px 10px rgba(0,0,0,0.03); border-top: 4px solid var(--union-gold); transition: transform 0.2s, box-shadow 0.2s; display: flex; gap: 15px; text-decoration: none; color: inherit;}
.event-mini-card:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); border-color: var(--rhoendorf-blau); }
.ev-cal-box { background: #f8fafc; border-radius: 6px; text-align: center; padding: 10px; min-width: 65px; height: fit-content; border: 1px solid #e2e8f0;}
.ev-cal-box .day { font-size: 24px; font-weight: 900; color: var(--rhoendorf-blau); line-height: 1; }
.ev-cal-box .month { font-size: 12px; text-transform: uppercase; color: var(--cadenabbia-tuerkis); font-weight: bold; margin-top: 4px;}
.ev-info h3 { margin: 0 0 5px 0; font-size: 18px; color: var(--rhoendorf-blau); transition: color 0.2s;}
.event-mini-card:hover .ev-info h3 { color: var(--cadenabbia-tuerkis); }
.ev-info p { margin: 0 0 10px 0; font-size: 13px; color: #64748b; }
.ev-btn { display: inline-block; font-size: 12px; background: #f1f5f9; color: var(--rhoendorf-blau); padding: 5px 10px; border-radius: 4px; text-decoration: none; font-weight: bold;}

/* Startseite: News & Blog Grid */
.news-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 30px; }
.post-card { text-decoration: none; color: inherit; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); display: flex; flex-direction: column; transition: 0.3s; border-bottom: 3px solid transparent; }
.post-card:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(0,0,0,0.1); border-bottom-color: var(--cadenabbia-tuerkis); }
.post-card img { width: 100%; height: 200px; object-fit: cover; transition: filter 0.3s; }
.post-card:hover img { filter: brightness(0.9); }
.post-card-placeholder { width: 100%; height: 200px; display: flex; align-items: center; justify-content: center; background: #f8fafc; border-bottom: 1px solid #e2e8f0; }
.post-card-placeholder span { font-family: 'Inter', sans-serif; font-weight: 900; color: #cbd5e1; font-size: 32px; letter-spacing: 2px; }
.post-card-content { padding: 25px; flex: 1; display: flex; flex-direction: column; }
.post-card-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.post-card-category { font-size: 11px; text-transform: uppercase; font-weight: 800; color: var(--cadenabbia-tuerkis); }
.post-card-date { font-size: 12px; color: #64748b; font-weight: bold; }
.post-card-title { font-size: 20px; font-weight: 800; color: var(--rhoendorf-blau); margin: 0 0 15px 0; line-height: 1.3; }
.post-card-excerpt { font-size: 15px; color: #475569; line-height: 1.6; margin-bottom: 20px; flex: 1; }
.post-card-footer { border-top: 1px solid #f1f5f9; padding-top: 15px; display: flex; justify-content: space-between; font-size: 13px; color: #64748b; }
.post-card-readmore { font-weight: bold; color: var(--cadenabbia-tuerkis); }

/* Startseite: Join Section (Mitglied werden) */
.join-section { background: var(--rhoendorf-blau); color: white; padding: 80px 20px; text-align: center; margin-top: 60px; border-top: 5px solid var(--union-gold);}
.join-section h2 { font-family: 'Inter', sans-serif; font-size: 36px; margin-bottom: 20px; }
.join-section p { font-size: 18px; color: #cbd5e1; max-width: 600px; margin: 0 auto 30px auto; line-height: 1.6; }
.join-section-note { font-size: 13px; margin-top: 15px; color: #94a3b8; }
.btn-join { background: var(--union-gold); color: #1b191d; font-size: 18px; padding: 15px 30px; border-radius: 4px; font-weight: bold; text-decoration: none; display: inline-block; transition: 0.2s; box-shadow: 0 4px 15px rgba(0,0,0,0.2);}
.btn-join:hover { transform: scale(1.05); box-shadow: 0 6px 20px rgba(0,0,0,0.3); }

/* ==========================================================================
   AKTUELLES & NEWS (Blog-Übersicht & Paginierung)
   ========================================================================== */

/* Filter-Leiste (Themen-Pillen) */
.filter-bar { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-bottom: 40px; margin-top: -10px; }
.filter-pill { background: #fff; border: 1px solid #cbd5e1; color: #475569; padding: 8px 16px; border-radius: 50px; font-size: 13px; font-weight: bold; text-decoration: none; transition: 0.2s; box-shadow: 0 2px 5px rgba(0,0,0,0.02); }
.filter-pill:hover { background: #f8fafc; border-color: var(--cadenabbia-tuerkis); color: var(--rhoendorf-blau); transform: translateY(-2px); }
.filter-pill.active { background: var(--rhoendorf-blau); border-color: var(--rhoendorf-blau); color: #fff; }

/* Empty State (Keine Beiträge vorhanden) */
.empty-state-box { text-align: center; padding: 60px 20px; }
.empty-state-title { color: var(--rhoendorf-blau); margin-top: 0; }
.empty-state-desc { color: #64748b; }
.empty-state-btn { margin-top: 15px; }

/* Erweiterung für Artikel-Karten (Ergänzt die .post-card aus der Startseite) */
.post-card-author { font-weight: bold; }
.post-card-readmore-btn { font-weight: bold; color: var(--cadenabbia-tuerkis); background: #f0fdfa; padding: 4px 10px; border-radius: 4px; }

/* Paginierung (Seitenzahlen) */
.pagination { display: flex; justify-content: center; gap: 10px; margin-top: 50px; margin-bottom: 50px; }
.page-btn { padding: 10px 15px; border: 1px solid #cbd5e1; background: #fff; color: var(--rhoendorf-blau); font-weight: bold; border-radius: 4px; text-decoration: none; transition: 0.2s;}
.page-btn:hover { background: #f8fafc; border-color: var(--cadenabbia-tuerkis); }
.page-btn.active { background: var(--union-gold); border-color: var(--union-gold); color: #1b191d; pointer-events: none;}
.page-btn.disabled { opacity: 0.5; pointer-events: none; }

/* ==========================================================================
   POLLS & ABSTIMMUNGEN (Interne Umfragen & Wahlen)
   ========================================================================== */

/* Poll Cards (Umfragekarten) */
.poll-card { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 25px; margin-bottom: 30px; border-left: 5px solid var(--cadenabbia-tuerkis); }
.poll-card.poll-closed { border-left-color: #94a3b8; opacity: 0.8; }
.poll-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 15px; }
.poll-title { font-size: 22px; color: var(--rhoendorf-blau); margin: 0 0 5px 0; }
.poll-meta { font-size: 12px; color: #64748b; }
.poll-desc { color: #475569; font-size: 14px; margin-bottom: 20px; line-height: 1.5; }

/* Status Badges */
.badge-active { background: #e0f2fe; color: #0284c7; }
.badge-closed { background: #f1f5f9; color: #64748b; }
.badge-live { background: #fee2e2; color: #ef4444; border: 1px solid #ef4444;}
.badge-secret { background: #334155; color: white; }

/* Voting Options (Auswahlmöglichkeiten) */
.poll-options-container { margin-bottom: 20px; }
.option-label { display: block; background: #f8fafc; border: 1px solid #e2e8f0; padding: 15px; border-radius: 6px; margin-bottom: 10px; cursor: pointer; transition: 0.2s; font-size: 16px; }
.option-label:hover { background: #f1f5f9; border-color: var(--cadenabbia-tuerkis); }
.option-label input { margin-right: 10px; }

/* Abstimmungsergebnisse (Fortschrittsbalken) */
.poll-results-container { margin-top: 20px; }
.poll-voted-notice { background: #f0fdf4; border: 1px solid #bbf7d0; padding: 10px; border-radius: 4px; color: #16a34a; font-size: 13px; font-weight: bold; margin-bottom: 20px; text-align: center; }
.result-item { margin-bottom: 15px; }
.result-header { display: flex; justify-content: space-between; font-size: 14px; font-weight: bold; margin-bottom: 5px; color: #334155; }
.result-bar-bg { background: #e2e8f0; height: 12px; border-radius: 6px; overflow: hidden; }
.result-bar-fill { background: var(--cadenabbia-tuerkis); height: 100%; transition: width 0.5s ease-out; }

/* Admin-Bereich (Neue Umfrage erstellen) */
.poll-admin-details { margin-bottom: 30px; }
.poll-admin-summary { display: inline-block; background: var(--union-gold); color: #1b191d; padding: 10px 20px; border-radius: 4px; font-weight: bold; cursor: pointer; list-style: none; }
.admin-box { background: #fff8e5; border: 1px dashed var(--union-gold); padding: 20px; border-radius: 8px; margin-bottom: 40px; margin-top: 15px; }
.admin-box h3 { color: var(--union-gold); margin-top: 0; }
.poll-admin-actions { margin-top: 20px; padding-top: 15px; border-top: 1px solid #e2e8f0; display: flex; gap: 10px; justify-content: flex-end; }
.btn-close-poll { background: #cbd5e1; color: #333; padding: 5px 10px; font-size: 12px; }
.btn-delete-poll { background: white; border: 1px solid #ef4444; color: #ef4444; padding: 5px 10px; font-size: 12px; }

/* Formular-Grid Utility (Auch für andere Bereiche nützlich) */
.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 15px; }
@media (max-width: 600px) { .form-grid-2 { grid-template-columns: 1fr; } }
.poll-type-box { background: white; padding: 15px; border-radius: 4px; border: 1px solid #e2e8f0; }

/* ==========================================================================
   ANTRAGS-GENERATOR (Eingabe-Ansicht)
   ========================================================================== */

.generator-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 30px; margin-top: 30px; align-items: start;}
@media (max-width: 900px) { .generator-layout { grid-template-columns: 1fr; } }

.form-card { background: #fff; padding: 30px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid #10b981; }
.context-card { background: #f8fafc; padding: 25px; border-radius: 8px; border: 1px solid #cbd5e1; border-top: 4px solid var(--rhoendorf-blau); max-height: 800px; overflow-y: auto;}

.hint-text { font-size: 12px; color: #64748b; margin-bottom: 10px; display: block; }
textarea.formal-input { width: 100%; min-height: 200px; padding: 15px; border: 1px solid #cbd5e1; border-radius: 4px; font-family: 'IBM Plex Serif', serif; font-size: 15px; line-height: 1.6; resize: vertical; outline-color: #10b981;}
input.formal-input { width: 100%; padding: 12px 15px; border: 1px solid #cbd5e1; border-radius: 4px; font-family: 'Inter', sans-serif; font-size: 16px; font-weight: bold; outline-color: #10b981;}

.context-post-box { background: white; padding: 10px 15px; border-radius: 4px; margin-bottom: 10px; border: 1px solid #e2e8f0; font-size: 13px; }
.context-post-author { color: var(--cadenabbia-tuerkis); font-weight: bold; }
.context-post-text { margin-top: 5px; color: #475569; }
.context-origin-box { background: white; padding: 15px; border-radius: 4px; margin-bottom: 15px; border-left: 3px solid var(--union-gold); font-size: 13px; }

/* ==========================================================================
   APPROVAL CENTER (Freigabe von News & Profilen)
   ========================================================================== */

.approval-card { background: #fff; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 25px; margin-bottom: 30px; border-top: 4px solid var(--union-gold); }
.approval-meta { font-size: 13px; color: #64748b; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #eee; }

/* Artikel Content-Vorschau */
.content-box { background: #f8fafc; padding: 20px; border-radius: 4px; font-family: 'IBM Plex Serif', serif; line-height: 1.6; color: #334155; margin-bottom: 20px; border: 1px solid #e2e8f0; max-height: 400px; overflow-y: auto;}

/* Quality Assurance (QA) Badges für SEO/Social Media Check */
.qa-box { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
.qa-badge { padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; }
.qa-warning { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.qa-ok { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.qa-info { background: #e0f2fe; color: #166534; border: 1px solid #bbf7d0; }

/* Autorenschaft / Ghostwriter Info */
.ghostwriter-badge { background: #f3f4f6; padding: 8px 12px; border-radius: 4px; border-left: 3px solid #6366f1; font-size: 13px; margin-bottom: 15px; display: inline-block;}

/* Action Buttons & Ablehnungs-Formular */
.action-buttons { display: flex; gap: 15px; flex-wrap: wrap; }
.btn-reject { background-color: white; color: #ef4444; border: 1px solid #ef4444; }
.btn-reject:hover { background-color: #fef2f2; }
.btn-edit { background-color: #f1f5f9; color: var(--rhoendorf-blau); }

.reject-form { display: none; margin-top: 15px; background: #fef2f2; padding: 15px; border-radius: 4px; border: 1px dashed #fca5a5; }
.reject-form input[type="text"] { width: 100%; padding: 10px; margin-bottom: 10px; border: 1px solid #fca5a5; border-radius: 4px; }

/* Profil-Änderungen Diff-Ansicht (Vorher/Nachher) */
.diff-box { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
@media (max-width: 800px) { .diff-box { grid-template-columns: 1fr; } }
.diff-col { background: #f8fafc; padding: 15px; border-radius: 4px; border: 1px solid #e2e8f0; }
.diff-col h4 { margin-top: 0; color: #64748b; border-bottom: 1px solid #cbd5e1; padding-bottom: 5px; }
.diff-new { background: #f0fdf4; border-color: #bbf7d0; }

/* ==========================================================================
   BLOG-ARTIKEL (Lese-Ansicht: artikel.php)
   ========================================================================== */

/* Layout & Container */
.article-container { max-width: 800px; margin: 40px auto 80px auto; padding: 0 20px; position: relative; background: #fff;}
.article-category { display: inline-block; background: #e0f2fe; color: #0284c7; font-weight: bold; font-size: 12px; padding: 4px 10px; border-radius: 4px; text-transform: uppercase; margin-bottom: 15px; text-decoration: none;}
.article-title { font-size: clamp(28px, 4vw, 42px); font-weight: 900; line-height: 1.2; margin: 0 0 20px 0; color: var(--rhoendorf-blau); }
.article-teaser { font-size: 20px; color: #475569; line-height: 1.6; margin-bottom: 30px; font-weight: 400; font-family: 'Inter', sans-serif;}

/* Meta-Bar (Datum & Avatar) */
.article-meta-bar { display: flex; align-items: center; gap: 15px; padding-bottom: 20px; border-bottom: 1px solid #e2e8f0; margin-bottom: 30px; }
.author-avatar { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; background: var(--cadenabbia-tuerkis); color: white; display: flex; align-items: center; justify-content: center; font-weight: bold; font-size: 16px; }
.article-meta-info { font-size: 14px; color: #64748b; }
.article-meta-author { color: var(--rhoendorf-blau); font-weight: bold; }

/* Titelbild */
.article-hero-img { width: 100%; height: auto; max-height: 500px; object-fit: cover; border-radius: 8px; margin-bottom: 40px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }

/* Social Media Sidebar (Sticky links daneben) */
.share-sidebar { position: absolute; left: -60px; top: 100px; display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 1000px) { .share-sidebar { position: static; flex-direction: row; margin-bottom: 30px; } }
.share-btn { width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; text-decoration: none; color: white; transition: transform 0.2s; box-shadow: 0 2px 5px rgba(0,0,0,0.1);}
.share-btn:hover { transform: translateY(-3px); }
.share-wa { background-color: #25D366; }
.share-fb { background-color: #1877F2; }
.share-mail { background-color: #475569; }

/* Der Textkörper (Formatierung für den WYSIWYG Content) */
.article-content { font-size: 18px; line-height: 1.8; color: #334155; }
.article-content h2 { margin-top: 50px; font-size: 28px; line-height: 1.3; color: var(--rhoendorf-blau); }
.article-content h3 { margin-top: 30px; font-size: 22px; line-height: 1.3; color: var(--rhoendorf-blau); }
.article-content p { margin-bottom: 25px; }
.article-content ul, .article-content ol { margin-bottom: 25px; padding-left: 20px; }
.article-content li { margin-bottom: 10px; }

/* Responsive Bilder im Text (aus der Mediathek) */
.article-content img { max-width: 100%; height: auto; border-radius: 6px; margin: 20px 0; box-shadow: 0 4px 10px rgba(0,0,0,0.05); }

/* Autor-Info am Ende der Seite */
.author-box { margin-top: 60px; background: #f8fafc; border: 1px solid #e2e8f0; padding: 30px; border-radius: 8px; display: flex; gap: 20px; align-items: flex-start; }
@media (max-width: 600px) { .author-box { flex-direction: column; } }
.author-box-img { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; }
.author-box-placeholder { background: #cbd5e1; display: flex; align-items: center; justify-content: center; font-size: 24px; color: white; font-weight: bold; width: 80px; height: 80px; border-radius: 50%;}
.author-box-content { flex: 1; }
.author-box-name { margin: 0 0 5px 0; color: var(--rhoendorf-blau); font-size: 18px; font-weight: bold;}
.author-box-bio { margin: 0 0 15px 0; color: #64748b; font-size: 14px; line-height: 1.6; }
.btn-author-team { display: inline-block; background: white; border: 1px solid #cbd5e1; color: var(--rhoendorf-blau); padding: 5px 15px; border-radius: 4px; font-size: 13px; text-decoration: none; font-weight: 600; transition: 0.2s; }
.btn-author-team:hover { border-color: var(--cadenabbia-tuerkis); color: var(--cadenabbia-tuerkis); }

/* ==========================================================================
   REDAKTIONS-EDITOR & MEDIA PICKER (beitrag_bearbeiten.php)
   ========================================================================== */

/* Status-Banner (Oben im Editor) */
.status-banner { padding: 15px; border-radius: 4px; margin-bottom: 20px; font-weight: bold; }
.banner-draft { background: #f8fafc; color: #475569; border-left: 4px solid #94a3b8; }
.banner-pending { background: #fffbeb; color: #b45309; border-left: 4px solid var(--union-gold); }
.banner-approved { background: #f0fdf4; color: #047857; border-left: 4px solid #10b981; }
.banner-rejected { background: #fef2f2; color: #b91c1c; border-left: 4px solid #ef4444; }

/* Social-Media Auto-Publishing Box */
.social-box { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 6px; padding: 20px; margin-top: 20px; }
.social-box-title { margin-top: 0; color: var(--rhoendorf-blau); font-size: 18px; margin-bottom: 15px; }
.social-box-desc { font-size: 13px; color: #64748b; margin-bottom: 15px; }
.social-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.social-row label { cursor: pointer; font-weight: bold; font-size: 14px; color: #334155; display: flex; align-items: center; gap: 8px;}
.social-row input { transform: scale(1.2); width: auto; margin: 0;}
.sm-icon { font-size: 18px; }

/* Media Picker Modal (Das Pop-up) */
.picker-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.8); z-index: 9999; justify-content: center; align-items: center; backdrop-filter: blur(4px); }
.picker-content { background: #fff; width: 90%; max-width: 950px; border-radius: 8px; overflow: hidden; display: flex; flex-direction: column; max-height: 85vh; box-shadow: 0 15px 40px rgba(0,0,0,0.2);}
.picker-header { padding: 15px 20px; background: var(--rhoendorf-blau); color: #fff; display: flex; justify-content: space-between; align-items: center;}
.picker-header h3 { margin: 0; color: #fff; font-size: 18px;}
.picker-close { background: none; border: none; color: #fff; font-size: 24px; cursor: pointer; }

.picker-folder-nav { display: flex; gap: 10px; padding: 15px 20px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; overflow-x: auto; }
.picker-tab { padding: 8px 15px; background: #fff; border: 1px solid #cbd5e1; border-radius: 4px; font-size: 13px; font-weight: bold; color: #475569; cursor: pointer; white-space: nowrap; transition: 0.2s;}
.picker-tab:hover { border-color: var(--cadenabbia-tuerkis); color: var(--rhoendorf-blau); }
.picker-tab.active { background: var(--rhoendorf-blau); color: #fff; border-color: var(--rhoendorf-blau); }

.picker-body { padding: 20px; overflow-y: auto; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 15px; background: #f1f5f9; min-height: 300px; align-content: start;}
.picker-item { background: #fff; border: 2px solid transparent; border-radius: 4px; overflow: hidden; cursor: pointer; transition: 0.2s; box-shadow: 0 2px 5px rgba(0,0,0,0.05); position: relative; }
.picker-item:hover { border-color: var(--cadenabbia-tuerkis); transform: translateY(-2px); box-shadow: 0 5px 15px rgba(0,0,0,0.1);}
.picker-item img { width: 100%; height: 120px; object-fit: cover; display: block; }
.picker-item-title { font-size: 10px; padding: 5px; text-align: center; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: #fff;}
.picker-loading { grid-column: 1 / -1; text-align: center; color: #64748b; padding: 40px; font-weight: bold; }

/* Editor Formular Utilities (Inputs, Sidebars, Buttons) */
.img-preview { max-width: 100%; border-radius: 4px; margin-top: 10px; border: 1px solid #e2e8f0; }
.editor-title-input { font-size: 18px; padding: 12px; font-weight: bold; width: 100%; box-sizing: border-box; border: 1px solid #cbd5e1; border-radius: 4px; }
.editor-select { padding: 6px; border: 1px solid #cbd5e1; border-radius: 4px; }
.editor-btn-media { color: var(--cadenabbia-tuerkis); font-weight: bold; display: flex; align-items: center; gap: 5px; background: transparent; border: none; cursor: pointer; padding: 0; }
.sticky-sidebar-card { position: sticky; top: 20px; }
.sidebar-card-title { margin-top: 0; border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; }
.btn-secondary-full { background: #e2e8f0; color: #1e293b; padding: 8px 12px; font-size: 13px; width: 100%; border: none; border-radius: 4px; cursor: pointer; font-weight: bold; transition: 0.2s; }
.btn-secondary-full:hover { background: #cbd5e1; }
.ghostwriter-box { background: #fff8e5; padding: 15px; border-radius: 4px; border: 1px dashed var(--union-gold); margin-bottom: 15px; }
.ghostwriter-label { color: #b45309; margin-bottom: 10px; display: block; font-weight: bold; }
.publish-actions { display: flex; flex-direction: column; gap: 10px; margin-top: 25px; }
.btn-draft { background-color: #f1f5f9; color: var(--rhoendorf-blau); border: 1px solid #cbd5e1; width: 100%; padding: 12px; font-size: 16px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: 0.2s;}
.btn-draft:hover { background-color: #e2e8f0; }
.card-top-blau { border-top: 4px solid var(--rhoendorf-blau); }

/* ==========================================================================
   FRAKTIONS-REPORTING (bericht_schreiben.php)
   ========================================================================== */

/* Layout & Header */
.split-form-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 30px; margin-top: 30px;}
@media (max-width: 800px) { .split-form-layout { grid-template-columns: 1fr; } }

.page-header-bordered { border-bottom: 2px solid #e2e8f0; padding-bottom: 15px; margin-bottom: 20px; }
.report-kicker { font-size: 12px; text-transform: uppercase; font-weight: bold; color: var(--cadenabbia-tuerkis); letter-spacing: 1px; }

/* Der WYSIWYG Editor */
.report-editor-card { background: #fff; padding: 30px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid var(--union-gold); }
.report-editor-title { margin-top: 0; color: var(--union-gold); margin-bottom: 20px; }

.editor-toolbar { background: #f1f5f9; padding: 10px; border: 1px solid #cbd5e1; border-bottom: none; border-radius: 6px 6px 0 0; display: flex; gap: 5px; flex-wrap: wrap; }
.editor-btn { background: #fff; border: 1px solid #cbd5e1; padding: 5px 12px; border-radius: 4px; cursor: pointer; font-size: 14px; font-weight: bold; color: #475569; transition: 0.2s;}
.editor-btn:hover { background: var(--rhoendorf-blau); color: #fff; border-color: var(--rhoendorf-blau); }
.editor-divider { width: 1px; background: #cbd5e1; margin: 0 5px; }

.editor-area { min-height: 400px; padding: 20px; border: 1px solid #cbd5e1; border-radius: 0 0 6px 6px; background: #fff; font-family: 'Inter', sans-serif; font-size: 15px; line-height: 1.6; outline: none; margin-bottom: 20px;}
.editor-area:focus { border-color: var(--cadenabbia-tuerkis); box-shadow: 0 0 0 3px rgba(82, 183, 193, 0.1); }
.editor-area ul { margin-top: 5px; margin-bottom: 15px; }
.editor-area li { margin-bottom: 5px; }

/* Info Sidebar & Delegation */
.info-card { background: #fff; padding: 25px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 25px; border-top: 4px solid var(--rhoendorf-blau);}
.info-card-title { margin-top: 0; font-size: 16px; color: var(--rhoendorf-blau); }
.info-list { list-style: none; padding: 0; margin: 0; font-size: 14px; color: #475569; line-height: 1.8; }

.substitute-notice { background: #fef2f2; border: 1px solid #fca5a5; color: #ef4444; padding: 10px; border-radius: 4px; font-size: 12px; margin-top: 15px; font-weight: bold; }

.delegate-card { background: #f8fafc; padding: 25px; border-radius: 6px; border: 1px dashed #cbd5e1; border-top: 4px solid #ef4444;}
.delegate-card-title { margin-top: 0; font-size: 16px; color: #ef4444; }
.delegate-card-desc { font-size: 13px; color: #64748b; margin-bottom: 15px; }

/* Helper für kleinere Delegation-Buttons */
.label-small { font-size: 12px; display: block; margin-bottom: 5px; font-weight: bold; }
.btn-full-small { width: 100%; font-size: 13px; padding: 10px; text-align: center; box-sizing: border-box; }

/* ==========================================================================
   LEGAL & TEXT CONTENT (Datenschutz, Impressum, Textseiten)
   ========================================================================== */

/* Seiten-Header für Textseiten (Ohne komplexe Container-Abhängigkeiten) */
.page-header { background: var(--rhoendorf-blau); color: white; padding: 60px 20px 80px 20px; text-align: center; }
.page-header h1 { margin: 0 0 15px 0; font-family: 'Inter', sans-serif; font-size: clamp(32px, 4vw, 42px); }
.page-header p { margin: 0; font-size: 18px; color: #cbd5e1; }

/* Textkörper Formatierung */
.legal-content { font-size: 1.1rem; line-height: 1.8; color: #334155; }
.legal-content h2 { color: var(--rhoendorf-blau); margin-top: 50px; margin-bottom: 15px; border-bottom: 2px solid #e2e8f0; padding-bottom: 5px; font-size: 1.5rem; scroll-margin-top: 80px; /* Verhindert, dass Anchor-Links unter dem Header verschwinden */ }
.legal-content h3 { color: var(--rhoendorf-blau); margin-top: 30px; font-size: 1.2rem; }
.legal-content p { margin-bottom: 20px; }

/* Info- und Adress-Boxen im Text */
.legal-box { background: #f8fafc; border: 1px solid #cbd5e1; border-left: 4px solid var(--rhoendorf-blau); padding: 25px; border-radius: 4px; margin-bottom: 30px; }

/* Inhaltsverzeichnis (TOC) */
.toc-box { background: #f1f5f9; padding: 20px; border-radius: 6px; margin-bottom: 40px; }
.toc-box-title { margin-top: 0; margin-bottom: 15px; font-size: 1.2rem; color: var(--rhoendorf-blau); font-weight: bold;}
.toc-box ul { list-style-type: none; padding-left: 0; margin: 0; }
.toc-box li { margin-bottom: 8px; }
.toc-box a { color: var(--cadenabbia-tuerkis); text-decoration: none; font-weight: bold; transition: color 0.2s;}
.toc-box a:hover { text-decoration: underline; color: var(--rhoendorf-blau); }

/* Überlappender Container (zieht die weiße Box in den blauen Header hoch) */
.overlap-container-legal { max-width: 900px; background: var(--weiss); padding: 40px 50px; border-radius: 8px; box-shadow: 0 10px 30px rgba(45, 60, 75, 0.05); margin-top: -40px; position: relative; z-index: 10; margin-left: auto; margin-right: auto; margin-bottom: 60px; }
@media (max-width: 600px) { .overlap-container-legal { padding: 30px 20px; margin-top: -20px;} }

/* ==========================================================================
   TICKET-EXPORT & ARCHIVIERUNG (export_ticket.php)
   ========================================================================== */

/* Layout & Container */
.export-container { max-width: 600px; margin-top: 50px; margin-left: auto; margin-right: auto; padding: 0 20px;}
.export-header { text-align: center; margin-bottom: 20px; }
.export-icon { font-size: 40px; }
.export-title { color: var(--rhoendorf-blau); margin-bottom: 5px; margin-top: 0; }
.export-desc { color: #64748b; margin-top: 0; }

/* Ticket Meta-Info Box */
.ticket-meta-box { background: #f8fafc; padding: 15px; border-radius: 6px; border: 1px solid #cbd5e1; margin-bottom: 25px; line-height: 1.6; }
.ticket-meta-label { font-weight: bold; color: var(--rhoendorf-blau); }

/* Formular & Buttons */
.export-select { padding: 12px; font-size: 16px; width: 100%; border: 1px solid #cbd5e1; border-radius: 4px; box-sizing: border-box; font-family: 'Inter', sans-serif;}
.export-note { font-size: 12px; color: #64748b; line-height: 1.5; margin-bottom: 20px; }
.export-action-row { display: flex; gap: 15px; }
.btn-export-cancel { background: #e2e8f0; color: #334155; text-align: center; flex: 1; text-decoration: none; padding: 10px; border-radius: 4px; font-weight: bold; transition: 0.2s;}
.btn-export-cancel:hover { background: #cbd5e1; }
.btn-export-submit { flex: 2; font-size: 16px; padding: 10px; text-align: center; }

/* ==========================================================================
   FRAKTIONS-BOARD (Ausschuss-Radar & Kommentare)
   ========================================================================== */

/* Feed-Container & Bericht-Karten */
.feed-container { max-width: 800px; margin: 40px auto; }
.report-card { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 40px; overflow: hidden; border-top: 4px solid var(--rhoendorf-blau); scroll-margin-top: 100px;}

.report-header { padding: 20px; border-bottom: 1px solid #e2e8f0; display: flex; gap: 15px; align-items: flex-start; background: #fafbfc;}
.report-avatar { width: 50px; height: 50px; border-radius: 50%; object-fit: cover; background: var(--cadenabbia-tuerkis); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 20px; flex-shrink: 0;}
.report-meta { flex: 1; }

.committee-badge { display: inline-block; background: var(--union-gold); color: #1b191d; font-size: 11px; font-weight: bold; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; margin-bottom: 5px; }
.report-author-name { margin: 0 0 2px 0; font-size: 16px; color: var(--rhoendorf-blau); font-weight: bold;}
.report-meeting-info { margin: 0; font-size: 12px; color: #64748b; }
.substitute-badge { display: inline-block; background: #fef2f2; color: #ef4444; border: 1px solid #fca5a5; font-size: 10px; padding: 2px 6px; border-radius: 3px; margin-left: 10px;}

/* Der formatierte Text (WYSIWYG Ausgabe) */
.report-content { padding: 25px 20px; font-size: 15px; color: #334155; line-height: 1.6; }
.report-content ul, .report-content ol { margin-top: 5px; padding-left: 20px; }
.report-content li { margin-bottom: 5px; }

/* Kommentar-Bereich */
.comments-section { background: #f8fafc; border-top: 1px solid #e2e8f0; padding: 20px; }
.comment-item { display: flex; gap: 12px; margin-bottom: 15px; }
.comment-avatar { width: 35px; height: 35px; border-radius: 50%; object-fit: cover; background: #cbd5e1; display: flex; align-items: center; justify-content: center; color: white; font-size: 14px; font-weight: bold; flex-shrink: 0;}
.comment-avatar-self { background: var(--union-gold); color: #1b191d; }

.comment-bubble { background: #fff; padding: 12px 15px; border-radius: 0 12px 12px 12px; border: 1px solid #e2e8f0; font-size: 14px; color: #334155; flex: 1; box-shadow: 0 2px 5px rgba(0,0,0,0.02);}
.comment-author-info { font-size: 11px; font-weight: bold; color: var(--rhoendorf-blau); margin-bottom: 4px; display: flex; justify-content: space-between;}
.comment-time { font-weight: normal; color: #94a3b8; }

/* Formular für neue Kommentare */
.comment-form { display: flex; gap: 10px; margin-top: 20px; align-items: flex-start;}
.comment-input { flex: 1; padding: 10px 15px; border: 1px solid #cbd5e1; border-radius: 20px; font-size: 14px; font-family: inherit; resize: none; outline: none; min-height: 20px;}
.comment-input:focus { border-color: var(--cadenabbia-tuerkis); box-shadow: 0 0 0 3px rgba(82, 183, 193, 0.1); }
.btn-comment { background: var(--cadenabbia-tuerkis); color: white; border: none; border-radius: 20px; padding: 10px 20px; font-weight: bold; cursor: pointer; transition: 0.2s;}
.btn-comment:hover { background: #047881; }

/* ==========================================================================
   IDEENSCHMIEDE (Forum & Themen-Übersicht)
   ========================================================================== */

/* Thread Liste (Forum Übersicht) */
.thread-list { display: flex; flex-direction: column; gap: 15px; }
.thread-card { background: #fff; border: 1px solid #e2e8f0; border-left: 4px solid var(--cadenabbia-tuerkis); border-radius: 6px; padding: 15px 20px; display: flex; gap: 15px; align-items: center; transition: 0.2s; text-decoration: none; color: inherit;}
.thread-card:hover { transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-color: var(--cadenabbia-tuerkis); }
.thread-card.is-pinned { border-left-color: var(--union-gold); background: #fffbeb; }
.thread-card.is-closed { border-left-color: #94a3b8; opacity: 0.8; }
.thread-card.is-motion { border-left-color: #10b981; background: #f0fdf4; }

.thread-avatar { width: 45px; height: 45px; border-radius: 50%; object-fit: cover; background: #cbd5e1; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; flex-shrink: 0;}
.thread-content { flex: 1; }
.thread-title { margin: 0 0 5px 0; font-size: 16px; color: var(--rhoendorf-blau); display: flex; align-items: center; gap: 8px;}
.thread-meta { margin: 0; font-size: 12px; color: #64748b; display: flex; gap: 15px; flex-wrap: wrap; align-items: center;}

.cat-badge { background: #f1f5f9; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: bold; color: #475569; }
.status-badge { padding: 2px 6px; border-radius: 4px; font-size: 10px; font-weight: bold; text-transform: uppercase; }
.status-motion { background: #10b981; color: white; }
.status-closed { background: #64748b; color: white; }
.ticket-badge { background: #ef4444; color: white; padding: 2px 6px; border-radius: 4px; font-size: 10px; font-weight: bold; }

.thread-stats { text-align: center; color: #64748b; min-width: 60px;}
.stat-num { font-size: 18px; font-weight: bold; color: var(--rhoendorf-blau); line-height: 1; }
.stat-label { font-size: 10px; text-transform: uppercase; }

/* Sidebar & Kategorien-Liste */
.sidebar-card { background: #fff; padding: 25px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 25px; border-top: 4px solid var(--union-gold); }
.sidebar-card.blau { border-top-color: var(--rhoendorf-blau); }
.cat-list { list-style: none; padding: 0; margin: 0; }
.cat-list li { padding: 8px 0; border-bottom: 1px dashed #e2e8f0; font-size: 14px; color: #475569; display: flex; align-items: center; gap: 10px;}
.cat-list li:last-child { border-bottom: none; }
.cat-list-icon { font-size: 18px; }
.cat-list-name { font-weight: bold; }
.cat-list-desc { font-size: 11px; color: #94a3b8; }

/* Ergänzungen für das Impressum */
.legal-table { width: 100%; max-width: 500px; margin-bottom: 30px; border-collapse: collapse; }
.legal-table td { padding: 5px 0; vertical-align: top; }
.legal-table td:first-child { font-weight: bold; width: 150px; }
.btn-legal-contact { display: inline-block; background: var(--rhoendorf-blau); color: #fff; padding: 6px 15px; border-radius: 4px; text-decoration: none; font-size: 14px; font-weight: bold; transition: 0.2s; }
.btn-legal-contact:hover { background: var(--cadenabbia-tuerkis); color: #1b191d; }

/* ==========================================================================
   GLOBAL HEADER COMPONENTS
   ========================================================================== */

/* Ghost-Modus Warnblinker */
.ghost-banner { background: #ef4444; color: white; text-align: center; font-size: 12px; font-weight: bold; padding: 5px; position: sticky; top: 0; z-index: 9999; letter-spacing: 1px; display: flex; justify-content: center; align-items: center; gap: 10px; }
.ghost-banner a { color: white; text-decoration: underline; font-weight: normal; }
.ghost-banner a:hover { color: #fca5a5; }

/* Header Utilities */
.header-current-page { opacity: 0.6; font-size: 12px; margin-left: 5px; }
.btn-login.btn-login-intranet { background: var(--rhoendorf-blau); color: white !important; }
.hidden-form { display: none; }

/* ==========================================================================
   MASTER-KALENDER (kalender_admin.php)
   ========================================================================== */

/* Spezifische Termin-Liste für das Backend */
.admin-event-list { max-height: 600px; overflow-y: auto; }
.event-item { display: flex; justify-content: space-between; align-items: flex-start; padding: 15px; border-bottom: 1px solid #e2e8f0; transition: background 0.2s; }
.event-item:hover { background: #f8fafc; }
.event-item:last-child { border-bottom: none; }
.event-item.is-past { opacity: 0.6; }
.event-item.is-crm { background: #fff8e5; }

/* Kalenderblatt-Icon */
.event-date-box { background: #f8fafc; border-radius: 6px; text-align: center; padding: 10px; min-width: 65px; height: fit-content; border: 1px solid #e2e8f0; }
.event-date-box.is-past { background: #94a3b8; color: white;}
.event-date-box.is-past .day, .event-date-box.is-past .month { color: white; }
.event-date-box.is-crm { border-color: var(--union-gold); }
.event-date-box .day { font-size: 24px; font-weight: 900; color: var(--rhoendorf-blau); line-height: 1; }
.event-date-box .day.is-crm { color: #b45309; }
.event-date-box .month { font-size: 12px; text-transform: uppercase; color: var(--cadenabbia-tuerkis); font-weight: bold; margin-top: 4px;}

/* Textinhalte */
.event-info { flex: 1; margin-left: 15px; }
.event-title { margin: 0 0 5px 0; font-size: 16px; color: var(--rhoendorf-blau); }
.event-meta { font-size: 12px; color: #64748b; margin-bottom: 5px; line-height: 1.5;}

/* Badges */
.badge-public { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; margin-left: 5px; }
.badge-internal { background: #fef2f2; color: #ef4444; border: 1px solid #fca5a5; margin-left: 5px; }
.badge-link { background: #f0fdfa; color: #0f766e; border: 1px solid #a7f3d0; margin-left: 5px; }
.badge-crm { background: #fef2f2; color: #ef4444; border: 1px solid #fca5a5; margin-left: 5px; }
.badge-committee { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; margin-left: 5px; }

/* Aktions-Links (Bearbeiten / Löschen) */
.action-links { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.action-links a, .action-links button { font-size: 12px; text-decoration: none; font-weight: bold; background: none; border: none; cursor: pointer; padding: 0;}
.link-edit { color: var(--cadenabbia-tuerkis); }
.link-delete { color: #ef4444; }

/* Formular-Utilities für den Kalender */
.committee-select-box { background: #eff6ff; padding: 15px; border-radius: 4px; border: 1px solid #bfdbfe; margin-bottom: 20px;}
.public-checkbox-box { display: flex; gap: 10px; align-items: center; margin: 20px 0; background: #f8fafc; padding: 15px; border-radius: 4px; border: 1px solid #cbd5e1; cursor: pointer; }

/* ==========================================================================
   WAHLKAMPF & KAMPAGNEN BOARD (Kanban)
   ========================================================================== */

/* Das Grid-Layout für die 3 Spalten */
.kanban-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 25px; margin-top: 30px; align-items: start; }
@media (max-width: 900px) { .kanban-board { grid-template-columns: 1fr; } }

/* Die Kanban-Spalten */
.kanban-col { background: #f8fafc; border-radius: 8px; padding: 15px; border: 1px solid #e2e8f0; min-height: 500px; }
.kanban-col-header { font-size: 16px; font-weight: 800; color: var(--rhoendorf-blau); margin-top: 0; margin-bottom: 20px; padding-bottom: 10px; border-bottom: 3px solid; display: flex; justify-content: space-between; align-items: center; }

/* Status-Farben der Spalten */
.col-todo .kanban-col-header { border-bottom-color: #fca5a5; }
.col-doing .kanban-col-header { border-bottom-color: #fcd34d; }
.col-done .kanban-col-header { border-bottom-color: #6ee7b7; }

/* Die einzelnen Aufgaben-Kärtchen */
.task-card { background: #fff; border: 1px solid #cbd5e1; border-radius: 6px; padding: 15px; margin-bottom: 15px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); transition: transform 0.2s, box-shadow 0.2s; }
.task-card:hover { transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.task-title { font-weight: bold; color: var(--rhoendorf-blau); margin: 0 0 8px 0; font-size: 15px; }
.task-desc { font-size: 13px; color: #475569; margin: 0 0 15px 0; line-height: 1.4; }
.task-meta { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #94a3b8; margin-bottom: 15px; padding-top: 10px; border-top: 1px dashed #e2e8f0;}

/* Task Badges */
.due-date { background: #fef2f2; color: #dc2626; padding: 2px 6px; border-radius: 4px; font-weight: bold; }
.assignee-badge { display: flex; align-items: center; gap: 8px; background: #f1f5f9; padding: 4px 10px; border-radius: 20px; font-size: 12px; font-weight: bold; color: var(--rhoendorf-blau); }
.assignee-img { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.assignee-placeholder { width:24px; height:24px; background:#cbd5e1; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; font-size:10px; }

/* Buttons innerhalb der Kärtchen */
.task-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.btn-task { flex: 1; padding: 8px; font-size: 12px; text-align: center; border: none; border-radius: 4px; cursor: pointer; font-weight: bold; transition: 0.2s; }
.btn-claim { background: var(--cadenabbia-tuerkis); color: #fff; }
.btn-claim:hover { background: #3fa0aa; }
.btn-complete { background: #10b981; color: #fff; }
.btn-complete:hover { background: #059669; }
.btn-release { background: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1; }
.btn-release:hover { background: #e2e8f0; }
.btn-delete { background: transparent; color: #ef4444; text-decoration: underline; font-size: 11px; padding: 0; margin-top: 10px; width: 100%; text-align: left; cursor: pointer; border: none; }

/* Globales Modal (Pop-up Fenster) - Wiederverwendbar */
.modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(15, 23, 42, 0.8); z-index: 100; align-items: center; justify-content: center;}
.modal-box { background: #fff; border-top: 4px solid var(--union-gold); border-radius: 8px; padding: 30px; width: 500px; max-width: 90%; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }
.modal-title { color: var(--rhoendorf-blau); margin-top: 0; border-bottom: 1px solid #e2e8f0; padding-bottom: 15px; margin-bottom: 25px; }

/* ==========================================================================
   KASSENBUCH & FINANZEN (kassenbuch.php)
   ========================================================================== */

/* Statistik-Grid (Übersicht oben) */
.finance-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 30px; }
@media (max-width: 900px) { .finance-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px) { .finance-grid { grid-template-columns: 1fr; } }

.stat-card { background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); text-align: center; border-bottom: 4px solid #cbd5e1; }
.stat-card.income { border-color: #10b981; }
.stat-card.expense { border-color: #ef4444; }
.stat-card.balance { border-color: var(--union-gold); background: #fff8e5;}

.stat-title { font-size: 13px; color: #64748b; text-transform: uppercase; font-weight: bold; letter-spacing: 1px; margin-bottom: 10px; }
.stat-value { font-size: 28px; font-weight: 900; font-family: 'Fira Code', monospace; }
.val-green { color: #047857; }
.val-red { color: #b91c1c; }
.val-blue { color: var(--rhoendorf-blau); }

/* Kassenbuch-Tabelle */
.table-card { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); overflow: hidden; }
.filter-bar { padding: 15px 20px; background: #f8fafc; border-bottom: 1px solid #e2e8f0; display: flex; justify-content: space-between; align-items: center; }

.cdu-table { width: 100%; border-collapse: collapse; text-align: left; }
.cdu-table th { background: var(--rhoendorf-blau); color: #fff; padding: 12px 15px; font-size: 13px; text-transform: uppercase; }
.cdu-table td { padding: 12px 15px; border-bottom: 1px solid #e2e8f0; font-size: 14px; vertical-align: top;}
.cdu-table tr:hover { background: #f8fafc; }

.amt-pos { color: #10b981; font-weight: bold; font-family: 'Fira Code', monospace; font-size: 15px;}
.amt-neg { color: #ef4444; font-weight: bold; font-family: 'Fira Code', monospace; font-size: 15px;}

.badge-cat { font-size: 11px; padding: 3px 8px; border-radius: 4px; background: #e2e8f0; color: #475569; display: inline-block; margin-top: 5px;}

/* Beleg- & Dokumenten-Buttons */
.btn-receipt { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; padding: 4px 8px; border-radius: 4px; text-decoration: none; font-weight: bold; }
.btn-receipt.yes { background: #d1fae5; color: #047857; border: 1px solid #34d399; }
.btn-receipt.no { background: #fef2f2; color: #b91c1c; border: 1px solid #fca5a5; }
.btn-donation { background: #eff6ff; color: #2563eb; border: 1px solid #93c5fd; margin-top: 5px; }
.btn-donation:hover { background: #dbeafe; }

/* Eingabe-Formular Sidebar */
.form-card { background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid var(--cadenabbia-tuerkis); position: sticky; top: 20px;}
.form-card-title { margin-top: 0; color: var(--cadenabbia-tuerkis); border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; }

/* ==========================================================================
   KASSENBUCH CSV-IMPORT (kassenbuch_import.php)
   ========================================================================== */

.import-box { background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); max-width: 800px; margin: 0 auto; border-top: 4px solid var(--rhoendorf-blau); }

/* Schritt-Indikator */
.step-indicator { display: flex; justify-content: center; gap: 20px; margin-bottom: 40px; flex-wrap: wrap;}
.step { padding: 10px 20px; background: #f1f5f9; color: #64748b; font-weight: bold; border-radius: 30px; font-size: 14px; }
.step.active { background: var(--rhoendorf-blau); color: #fff; }

/* Upload Area (Schritt 1) */
.upload-area { border: 2px dashed #cbd5e1; padding: 50px; text-align: center; border-radius: 8px; background: #f8fafc; margin-bottom: 20px; transition: 0.3s; }
.upload-area:hover { border-color: var(--cadenabbia-tuerkis); background: #f0fdfa; }
.upload-icon { font-size: 40px; margin-bottom: 15px; }
.upload-title { margin-top: 0; color: var(--rhoendorf-blau); }
.upload-desc { color: #64748b; font-size: 14px; margin-bottom: 20px; }

/* Mapping Tabelle (Schritt 2) */
.mapping-table { width: 100%; border-collapse: collapse; margin-top: 20px; margin-bottom: 30px; }
.mapping-table th { background: #f8fafc; padding: 15px; border-bottom: 2px solid #e2e8f0; text-align: left; }
.mapping-table td { padding: 15px; border-bottom: 1px solid #e2e8f0; }
.mapping-select { width: 100%; padding: 8px; border: 1px solid #cbd5e1; border-radius: 4px;}
.mapping-note { color: #64748b; font-size: 13px; font-family: 'Fira Code', monospace; }

/* KI & Info Boxen */
.ki-info-box { background: #fff8e5; padding: 15px; border-left: 4px solid var(--union-gold); margin-bottom: 20px; font-size: 14px; }

/* Erfolg Dashboard (Schritt 3) */
.import-success-container { text-align: center; }
.success-icon { font-size: 60px; margin-bottom: 20px; }
.success-title { color: #10b981; margin-top: 0; }
.import-stats-row { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; margin-top: 20px; flex-wrap: wrap;}
.stat-box-imported { background: #f8fafc; padding: 20px; border-radius: 8px; border: 1px solid #e2e8f0; width: 150px; }
.stat-box-skipped { background: #fef2f2; padding: 20px; border-radius: 8px; border: 1px solid #fecaca; width: 150px; }
.stat-number-blue { font-size: 30px; font-weight: bold; color: var(--rhoendorf-blau); }
.stat-number-red { font-size: 30px; font-weight: bold; color: #ef4444; }
.stat-desc { font-size: 12px; color: #64748b; }

/* ==========================================================================
   KASSENPRÜFUNG & BERICHT (kassenpruefung.php)
   ========================================================================== */

/* Tab Navigation */
.tabs { display: flex; gap: 10px; border-bottom: 2px solid #e2e8f0; margin-bottom: 30px; }
.tab-btn { background: none; border: none; padding: 10px 20px; font-size: 16px; font-weight: bold; color: #64748b; cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -2px; }
.tab-btn.active { color: var(--rhoendorf-blau); border-bottom-color: var(--cadenabbia-tuerkis); }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* Kassenbericht Styles (Die Abrechnung) */
.report-card { background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); max-width: 900px; margin: 0 auto; border-top: 5px solid var(--rhoendorf-blau); }
.report-header { text-align: center; border-bottom: 2px solid #e2e8f0; padding-bottom: 20px; margin-bottom: 30px; }
.report-header h2 { margin: 0 0 5px 0; color: var(--rhoendorf-blau); font-size: 24px; }
.report-header p { margin: 0; color: #64748b; font-size: 14px; }

.report-table { width: 100%; border-collapse: collapse; margin-bottom: 30px; }
.report-table th, .report-table td { padding: 10px 0; border-bottom: 1px solid #f1f5f9; font-size: 15px; }
.report-table th { text-align: left; color: #475569; font-size: 12px; text-transform: uppercase; }
.report-table td.amount { text-align: right; font-family: 'Fira Code', monospace; }

.row-group { background: #f8fafc; font-weight: bold; color: var(--rhoendorf-blau); border-top: 2px solid #cbd5e1; border-bottom: 2px solid #cbd5e1; }
.row-group td { padding: 12px 10px; }
.row-item td { padding-left: 20px; }

.row-result { background: var(--rhoendorf-blau); color: #fff; font-weight: bold; font-size: 18px; }
.row-result td { padding: 15px 10px; border: none; }

/* Unterschriften-Bereich (Für den Ausdruck) */
.signature-block { margin-top: 60px; display: flex; justify-content: space-between; }
.signature-line-box { border-top: 1px solid #333; width: 40%; text-align: center; padding-top: 5px; font-size: 13px; }

/* ==========================================================================
   KONTAKTFORMULAR (Öffentlich)
   ========================================================================== */

/* Seiten-Header / Beschreibung */
.contact-header { max-width: 800px; margin: 50px auto 40px auto; }
.contact-title { color: var(--rhoendorf-blau); margin-top: 0; margin-bottom: 10px; }
.contact-desc { font-size: 18px; color: #64748b; margin-bottom: 40px; }

/* Erfolgsmeldung */
.contact-success-box { padding: 40px; text-align: center; font-size: 18px; border-radius: 8px; }

/* Direkte Nachricht Hinweis-Box (Routing via Profil) */
.direct-message-box { background: #e0f2fe; border-left: 4px solid #0284c7; padding: 20px; border-radius: 0 4px 4px 0; margin-bottom: 30px; }
.direct-message-box h3 { color: #0284c7; margin: 0 0 5px 0; font-size: 16px;}
.direct-message-box p { color: #334155; margin: 0; font-size: 14px; }

/* Datenschutz-Checkbox Box */
.privacy-check-box { display: flex; gap: 15px; align-items: flex-start; margin: 30px 0; cursor: pointer; background: #f8fafc; padding: 15px; border-radius: 4px; border: 1px solid #e2e8f0; }
.privacy-check-input { margin-top: 5px; width: auto; transform: scale(1.2); }
.privacy-check-text { font-size: 14px; color: #475569; line-height: 1.5; }
.privacy-check-link { color: var(--cadenabbia-tuerkis); text-decoration: none; font-weight: bold;}
.privacy-check-link:hover { text-decoration: underline; }

/* ==========================================================================
   KONTAKTBUCH / CRM LITE (kontakte.php)
   ========================================================================== */

/* Layout & Grid */
.crm-grid { display: grid; grid-template-columns: 1fr 350px; gap: 30px; margin-top: 20px; align-items: start; }
@media (max-width: 1000px) { .crm-grid { grid-template-columns: 1fr; } }
.crm-panel { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 25px; }
.crm-sidebar { display: flex; flex-direction: column; gap: 20px; }

/* Dashboard Widgets in Sidebar */
.widget-box { background: #fff; border-radius: 8px; border: 1px solid #e2e8f0; padding: 20px; }
.widget-title { margin-top: 0; font-size: 15px; color: var(--rhoendorf-blau); border-bottom: 2px solid #f1f5f9; padding-bottom: 10px; margin-bottom: 15px; display: flex; align-items: center; gap: 8px;}

/* Kontakt-Tabelle */
.contact-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.contact-table th { text-align: left; padding: 12px; border-bottom: 2px solid #cbd5e1; color: #64748b; font-weight: bold; }
.contact-table td { padding: 12px; border-bottom: 1px solid #e2e8f0; vertical-align: middle; }
.contact-table tr:hover { background: #f8fafc; cursor: pointer; }

/* Status Indikatoren & Badges */
.tag-badge { background: #e0f2fe; color: #0369a1; padding: 3px 8px; border-radius: 12px; font-size: 11px; font-weight: bold; margin-right: 5px; display: inline-block;}
.vip-star { color: var(--union-gold); font-size: 16px; margin-right: 5px; }
.pulse-dot { display: inline-block; width: 10px; height: 10px; background: #ef4444; border-radius: 50%; box-shadow: 0 0 5px #ef4444; }

/* Suchleiste */
.search-bar { width: 100%; padding: 12px 15px; border: 1px solid #cbd5e1; border-radius: 6px; font-size: 15px; margin-bottom: 20px; outline: none; box-sizing: border-box;}
.search-bar:focus { border-color: var(--rhoendorf-blau); }

/* vCard Drag & Drop Zone (Schredder) */
.vcard-zone { border: 2px dashed #cbd5e1; background: #f8fafc; border-radius: 6px; padding: 25px 15px; text-align: center; cursor: pointer; transition: 0.3s; position: relative;}
.vcard-zone.dragover { border-color: var(--cadenabbia-tuerkis); background: #e6f6f7; }
.vcard-zone input[type="file"] { position: absolute; width: 100%; height: 100%; top: 0; left: 0; opacity: 0; cursor: pointer; }

/* Kontakt bearbeiten Modal (Popup) */
.modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(15, 23, 42, 0.7); z-index: 1000; display: none; align-items: center; justify-content: center; backdrop-filter: blur(4px);}
.modal-box { background: white; padding: 30px; border-radius: 8px; width: 600px; max-width: 95%; max-height: 90vh; overflow-y: auto; position: relative;}
.modal-close { position: absolute; top: 20px; right: 20px; font-size: 24px; cursor: pointer; background: none; border: none; color: #64748b; }

/* Tabs im Modal */
.modal-tabs { display: flex; border-bottom: 1px solid #cbd5e1; margin-bottom: 20px; }
.modal-tab { padding: 10px 20px; cursor: pointer; border-bottom: 3px solid transparent; font-weight: bold; color: #64748b; }
.modal-tab.active { border-bottom-color: var(--rhoendorf-blau); color: var(--rhoendorf-blau); }
.tab-content { display: none; }
.tab-content.active { display: block; }

/* 360-Grad Historie */
.timeline-item { border-left: 2px solid #cbd5e1; padding-left: 15px; margin-bottom: 15px; position: relative; }
.timeline-item::before { content: ''; position: absolute; left: -6px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--cadenabbia-tuerkis); }
.timeline-date { font-size: 11px; color: #64748b; font-weight: bold; }

/* ==========================================================================
   MEDIATHEK & BILD CROPPER (mediathek.php)
   ========================================================================== */

/* Toolbar oben */
.media-toolbar { display: flex; justify-content: space-between; align-items: center; background: #fff; padding: 20px; border-radius: 8px; margin-bottom: 30px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid var(--rhoendorf-blau); }

/* Das Bilder-Raster (Masonry-ähnlich) */
.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 20px; }
.media-card { background: #fff; border-radius: 6px; overflow: hidden; box-shadow: 0 4px 10px rgba(0,0,0,0.05); border: 1px solid #e2e8f0; transition: transform 0.2s; position: relative; }
.media-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,0.1); border-color: var(--cadenabbia-tuerkis); }

.media-img-container { height: 180px; width: 100%; overflow: hidden; background: #f8fafc; }
.media-img-container img { width: 100%; height: 100%; object-fit: cover; }

.media-info { padding: 15px; }
.media-title { font-weight: bold; color: var(--rhoendorf-blau); font-size: 14px; margin: 0 0 5px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.media-meta { font-size: 11px; color: #64748b; margin: 0 0 10px 0; }

.media-actions { display: flex; gap: 5px; border-top: 1px solid #f1f5f9; padding-top: 10px; }
.btn-media-icon { padding: 5px 10px; font-size: 12px; border: none; border-radius: 4px; cursor: pointer; font-weight: bold; flex: 1; text-align: center;}
.btn-media-copy { background: #e0f2fe; color: #0284c7; }
.btn-media-copy:hover { background: #bae6fd; }
.btn-media-delete { background: #fee2e2; color: #b91c1c; }
.btn-media-delete:hover { background: #fca5a5; }

/* MODAL: Der Arbeitsbereich für das Bild (Cropper Wrapper) */
.modal-body-split { padding: 20px; overflow-y: auto; display: flex; gap: 20px; flex-wrap: wrap;}
.cropper-container-wrapper { flex: 2; min-width: 300px; background: #e2e8f0; height: 400px; border-radius: 4px; overflow: hidden; display: flex; justify-content: center; align-items: center; border: 2px dashed #cbd5e1; cursor: pointer;}
.cropper-container-wrapper img { max-width: 100%; max-height: 100%; display: none; }

/* Die Metadaten-Felder daneben */
.media-form { flex: 1; min-width: 250px; display: flex; flex-direction: column; gap: 15px; }
.modal-footer { padding: 20px; background: #f8fafc; border-top: 1px solid #e2e8f0; text-align: right; }
.upload-status-text { color: var(--union-rot); font-weight: bold; margin-right: 15px; display: none; }

/* ==========================================================================
   MEINE BEITRÄGE (Redaktionsbüro / meine_beitraege.php)
   ========================================================================== */

/* Beitrags-Karte */
.my-post-card { background: #fff; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 25px; margin-bottom: 25px; border-left: 5px solid #cbd5e1; transition: transform 0.2s;}
.my-post-card:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.08); }
.my-post-title { font-size: 20px; color: var(--rhoendorf-blau); margin: 0 0 5px 0; }
.my-post-meta { font-size: 13px; color: #64748b; }
.my-post-header-wrap { display: flex; justify-content: space-between; align-items: flex-start; flex-wrap: wrap; gap: 15px; }

/* Ampelsystem für den Status (Randfarbe) */
.status-draft { border-left-color: #94a3b8; } 
.status-pending { border-left-color: var(--union-gold); } 
.status-approved { border-left-color: #10b981; } 
.status-rejected { border-left-color: #ef4444; } 

/* Ampelsystem (Badge Hintergrund) */
.bg-draft { background: #f8fafc; color: #475569; border: 1px solid #cbd5e1; }
.bg-pending { background: #fffbeb; color: #b45309; border: 1px solid #fde68a; }
.bg-approved { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.bg-rejected { background: #fef2f2; color: #b91c1c; border: 1px solid #fecaca; }

/* Feedback der Chefredaktion */
.rejection-box { background: #fef2f2; border: 1px dashed #fca5a5; padding: 15px; border-radius: 4px; margin-top: 20px; font-size: 14px; color: #991b1b; }
.rejection-box-label { color: #7f1d1d; display: block; margin-bottom: 5px; font-weight: bold;}

/* Aktionsleiste (Bearbeiten / Löschen) */
.action-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; padding-top: 20px; border-top: 1px solid #e2e8f0; }
.btn-action-edit { background-color: #f1f5f9; color: var(--rhoendorf-blau); font-size: 13px; padding: 6px 15px; border: 1px solid #cbd5e1; text-decoration: none; border-radius: 4px; font-weight: bold;}
.btn-action-edit:hover { background-color: #e2e8f0; }
.btn-action-delete { background-color: transparent; color: #ef4444; font-size: 13px; padding: 6px 15px; border: 1px solid #fecaca; text-decoration: none; border-radius: 4px; font-weight: bold;}
.btn-action-delete:hover { background-color: #fef2f2; }

/* ==========================================================================
   MITGLIEDER BEARBEITEN (mitglied_edit.php)
   ========================================================================== */

/* Formular Sektionen */
.edit-section-title { color: var(--rhoendorf-blau); margin-top: 40px; border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; margin-bottom: 20px; font-size: 18px; }

/* Grid für Checkboxen (z.B. Rollen) */
.checkbox-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 10px; }
@media (max-width: 600px) { .checkbox-grid { grid-template-columns: 1fr; } }

.checkbox-card-label { display: flex; align-items: flex-start; gap: 10px; background: #f8fafc; padding: 15px; border-radius: 4px; cursor: pointer; border: 1px solid #e2e8f0; transition: all 0.2s; margin: 0; }
.checkbox-card-label:hover { border-color: var(--cadenabbia-tuerkis); background: #f0fdfa; }
.checkbox-card-input { margin-top: 3px; transform: scale(1.2); }
.checkbox-card-title { color: var(--rhoendorf-blau); font-size: 14px; display: block; font-weight: bold; }
.checkbox-card-desc { font-size: 12px; color: #64748b; display: block; margin-top: 4px; line-height: 1.4; }

/* Action Bar unten am Formular */
.edit-action-bar { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #e2e8f0; padding-top: 20px; margin-top: 30px;}

/* Gefahrenzone (Löschen / Reset) */
.danger-zone { background: #fef2f2; border: 1px dashed #ef4444; padding: 20px; border-radius: 6px; margin-top: 40px; }
.danger-zone-title { color: #ef4444; margin-top: 0; font-size: 16px; margin-bottom: 5px; }
.danger-zone-desc { font-size: 13px; color: #7f1d1d; margin-bottom: 20px; margin-top: 0; }
.danger-btn-row { display: flex; gap: 15px; flex-wrap: wrap; }
.btn-reset-pw { background: #f59e0b; color: #b45309; border: 1px solid #f59e0b; font-size: 13px; text-decoration: none; padding: 10px 15px; border-radius: 4px; font-weight: bold; transition: 0.2s;}
.btn-reset-pw:hover { background: #d97706; color: white;}
.btn-hard-delete { background: #ef4444; color: #fff; font-size: 13px; text-decoration: none; padding: 10px 15px; border-radius: 4px; font-weight: bold; transition: 0.2s;}
.btn-hard-delete:hover { background: #dc2626; }

/* ==========================================================================
   INTRANET STARTSEITE (mitgliederbereich.php)
   ========================================================================== */

/* Schwarzes Brett Posts */
.news-content img { max-width: 100%; height: auto; border-radius: 6px; margin: 15px 0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); }
.news-content p { margin: 0 0 15px 0; line-height: 1.6;}
.news-post-container { border-bottom: 1px solid #e2e8f0; padding-bottom: 25px; margin-bottom: 25px; }
.news-post-container:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

/* Schnellzugriff-Buttons */
.btn-quick {
    display: block;
    padding: 15px 20px;
    font-size: 15px;
    font-weight: bold;
    text-decoration: none;
    border-radius: 6px;
    margin-bottom: 12px;
    transition: all 0.2s ease;
    box-shadow: 0 2px 5px rgba(0,0,0,0.05);
    border: 1px solid transparent;
}
.btn-quick-profil { background-color: var(--rhoendorf-blau); color: #ffffff; border-color: #1e293b; }
.btn-quick-profil:hover { background-color: #1e293b; color: #ffffff; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

.btn-quick-partei { background-color: var(--cadenabbia-tuerkis); color: #ffffff; border-color: #047881; }
.btn-quick-partei:hover { background-color: #047881; color: #ffffff; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

.btn-quick-fraktion { background-color: var(--union-gold); color: #1b191d; border-color: #b45309; }
.btn-quick-fraktion:hover { background-color: #f59e0b; color: #1b191d; transform: translateY(-2px); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }

/* Utility Klassen für Mini-Formulare */
.form-inline-group { display: flex; gap: 10px; margin-bottom: 20px; }
.form-inline-group input { flex: 1; }
.form-checkbox-label { display: flex; gap: 8px; align-items: center; margin-bottom: 15px; font-size: 13px; color: #333; cursor: pointer; }
.theme-gold-header { background: #fff8e5; color: var(--union-gold); font-size: 13px; font-weight: bold; padding: 10px; border-radius: 4px; cursor: pointer; list-style: none; }
.theme-gold-box { background: #fafbfc; border: 1px dashed #cbd5e1; padding: 20px; border-radius: 4px; margin-top: 10px; }

/* ==========================================================================
   MITGLIEDERVERWALTUNG & CSV IMPORT (mitgliederverwaltung.php)
   ========================================================================== */

/* Header Actions */
.header-actions { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 30px; border-bottom: 2px solid #e2e8f0; padding-bottom: 15px; }
@media (max-width: 600px) { .header-actions { flex-direction: column; align-items: flex-start; gap: 15px; } }

/* Aktions-Links (Listen-Ansicht) */
.action-link { color: var(--cadenabbia-tuerkis); text-decoration: none; font-weight: bold; font-size: 13px; }
.action-link:hover { text-decoration: underline; color: var(--rhoendorf-blau); }

/* Import Stats (Ergebnis nach Upload) */
.import-stats-box { background: #f0fdfa; border: 1px solid #059669; border-left: 5px solid #059669; padding: 15px; border-radius: 6px; margin-bottom: 25px; }
.import-stats-title { margin-top: 0; color: #064e3b; font-size: 18px; margin-bottom: 10px;}
.import-stats-list { margin: 10px 0 0 0; padding-left: 20px; color: #047857; line-height: 1.6;}

/* CSV Upload Area */
.upload-zone { border: 2px dashed #94a3b8; background: #f8fafc; padding: 40px; text-align: center; border-radius: 8px; margin-bottom: 20px; transition: 0.3s; }
.upload-zone:hover { border-color: var(--cadenabbia-tuerkis); background: #f0fdfa; }

/* Vorschau-Tabelle für CSV Format */
.csv-format-table { width: 100%; border-collapse: collapse; font-family: 'Fira Code', monospace; font-size: 12px; margin-top: 15px; background: #fff; }
.csv-format-table th, .csv-format-table td { border: 1px solid #e2e8f0; padding: 8px; text-align: left; }
.csv-format-table th { background: #f1f5f9; color: #475569; }
.csv-format-table .grey-text { color: #94a3b8; }

/* ==========================================================================
   NEWSLETTER STUDIO (newsletter_admin.php)
   ========================================================================== */

/* Grid Layout */
.nl-grid { display: grid; grid-template-columns: 350px 1fr; gap: 30px; margin-top: 20px; align-items: start; }
@media (max-width: 1000px) { .nl-grid { grid-template-columns: 1fr; } }

/* Sidebar & Statistik Boxen */
.nl-sidebar { background: #fff; border-radius: 6px; box-shadow: 0 2px 10px rgba(0,0,0,0.05); padding: 20px; }
.nl-stat-box { background: #f8fafc; border: 1px solid #e2e8f0; padding: 15px; border-radius: 4px; margin-bottom: 20px; text-align: center; }
.nl-stat-num { font-size: 24px; font-weight: bold; color: var(--rhoendorf-blau); font-family: 'Fira Code', monospace; }
.nl-stat-label { font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 1px;}

/* Kampagnen Archiv Liste */
.camp-item { display: block; padding: 12px 15px; border: 1px solid #e2e8f0; border-radius: 4px; margin-bottom: 10px; text-decoration: none; color: inherit; transition: 0.2s; background: #fff; }
.camp-item:hover { border-color: var(--cadenabbia-tuerkis); transform: translateX(2px); }
.camp-item.active { border-color: var(--union-gold); border-left: 4px solid var(--union-gold); background: #fff8e5; }
.camp-title { font-weight: bold; color: var(--rhoendorf-blau); margin-bottom: 5px; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.camp-meta { font-size: 11px; color: #64748b; display: flex; justify-content: space-between; align-items: center; }

/* Status Badges */
.badge-draft { background: #e2e8f0; color: #475569; padding: 2px 6px; border-radius: 4px; }
.badge-sending { background: #fef08a; color: #b45309; padding: 2px 6px; border-radius: 4px; animation: pulse 2s infinite; }
.badge-done { background: #d1fae5; color: #047857; padding: 2px 6px; border-radius: 4px; }
@keyframes pulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } }

/* Editor Box */
.nl-editor-box { background: #fff; padding: 30px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid var(--rhoendorf-blau); }
.nl-editor-content { min-height: 400px; border: 1px solid #cbd5e1; border-radius: 4px; padding: 20px; outline: none; background: #f8fafc; font-family: Arial, sans-serif; line-height: 1.6; }
.nl-editor-content:focus { background: #fff; border-color: var(--cadenabbia-tuerkis); box-shadow: 0 0 0 3px rgba(82,183,193,0.2); }
.nl-btn-toolbar { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; border-top: 1px solid #eee; padding-top: 20px; }

/* ==========================================================================
   SYSTEM-ZENTRALE / MANDANTEN-EINSTELLUNGEN (ov_einstellungen.php)
   ========================================================================== */

/* Spezifische Formular Sektionen */
.admin-section-title { color: var(--rhoendorf-blau); border-bottom: 2px solid #e2e8f0; padding-bottom: 10px; margin-bottom: 20px; margin-top: 40px; display: flex; justify-content: space-between; align-items: flex-end;}

/* Color Picker UI */
.color-picker-container { display: flex; align-items: center; gap: 15px; margin-top: 10px; }
.color-picker { width: 50px; height: 50px; padding: 0; border: none; border-radius: 4px; cursor: pointer; }
.color-hex { font-family: 'Fira Code', monospace; background: #f8fafc; padding: 5px 10px; border-radius: 4px; border: 1px solid #cbd5e1; }

/* Server Grid Layout */
.server-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 800px) { .server-grid { grid-template-columns: 1fr; } }
.server-box { background: #fff; padding: 15px; border-radius: 6px; border: 1px solid #cbd5e1; }
.server-box-smtp { border-left: 4px solid var(--rhoendorf-blau); }
.server-box-imap { border-left: 4px solid var(--cadenabbia-tuerkis); }
.server-box-title { margin-top: 0; }
.password-hint { font-size: 11px; color: #64748b; margin-top: 5px; display: block;}

/* Nordlicht HQ Cloud Card (Dunkles Theme) */
.cloud-card { background: #0f172a; color: #f8fafc; padding: 25px; border-radius: 8px; border-left: 4px solid #38bdf8; box-shadow: 0 10px 25px rgba(0,0,0,0.2); margin-bottom: 30px;}
.cloud-card h2 { color: #38bdf8; margin-top: 0; border-bottom: 1px solid #334155; padding-bottom: 10px; font-size: 20px;}
.cloud-input { background: #1e293b; border: 1px solid #334155; color: #38bdf8; padding: 12px; border-radius: 4px; width: 100%; font-family: 'Fira Code', monospace; outline: none; transition: 0.2s; box-sizing: border-box;}
.cloud-input:focus { border-color: #38bdf8; }
.cloud-label { color: #94a3b8; font-size: 12px; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 5px; display: block;}

/* ==========================================================================
   PROFIL BEARBEITEN (profil_bearbeiten.php)
   ========================================================================== */

/* Formular-Bereiche */
.profile-form-section { background: #fff; padding: 40px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; }

/* Ausschuss-Liste */
.committee-list { display: flex; flex-direction: column; gap: 10px; }
.committee-item { display: flex; align-items: center; justify-content: space-between; background: #f8fafc; border: 1px solid #e2e8f0; padding: 15px; border-radius: 6px; transition: 0.2s;}
.committee-item:hover { border-color: var(--cadenabbia-tuerkis); background: #f0fdfa; }
.committee-role-select { padding: 6px 10px; border: 1px solid #cbd5e1; border-radius: 4px; font-size: 13px; color: #475569; outline: none;}

/* DSGVO Info-Box */
.dsgvo-box { background: #f1f5f9; border: 1px dashed #94a3b8; padding: 25px; border-radius: 6px; text-align: center; }

/* Bildvorschau im Upload-Feld */
.profile-img-preview { margin-top: 10px; max-width: 150px; border-radius: 4px; display: block; object-fit: cover; width: 150px; height: 150px;}

/* Checkbox Label Formatiert (Datenschutz) */
.privacy-consent-label { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; font-weight: normal; margin: 0; background: #fff8e5; padding: 15px; border-radius: 4px; border: 1px solid var(--union-gold); margin-top: 30px;}

/* ==========================================================================
   ÖFFENTLICHES PROFIL (profil_detail.php)
   ========================================================================== */

.profile-hero {
    background: var(--rhoendorf-blau);
    color: white;
    padding: 50px 20px;
    text-align: center;
    border-bottom: 5px solid var(--union-gold);
    margin-bottom: 40px;
}
.profile-hero h1 { margin: 0 0 10px 0; font-size: 36px; }
.steckbrief { font-size: 18px; color: #cbd5e1; max-width: 800px; margin: 0 auto; }

.profile-content {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 40px;
    max-width: 1000px;
    margin: 0 auto 60px auto;
    align-items: start;
    padding: 0 20px;
}
@media (max-width: 800px) {
    .profile-content { grid-template-columns: 1fr; }
}

.profile-image {
    width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    background: #f1f5f9;
    aspect-ratio: 3/4;
    object-fit: cover;
}

.vision-text {
    font-size: 16px;
    line-height: 1.8;
    color: #334155;
    background: #fff;
    padding: 30px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.05);
    border-top: 4px solid var(--cadenabbia-tuerkis);
}
.empty-vision {
    color: #94a3b8;
    font-style: italic;
    text-align: center;
    padding: 40px 0;
}

/* Post-Grid (Karten für die letzten Beiträge des Autors) */
.posts-section { max-width: 1200px; margin: 0 auto; padding: 0 20px 60px 20px; }
.posts-section-title { color: var(--rhoendorf-blau); border-bottom: 2px solid #e2e8f0; padding-bottom: 10px; margin-bottom: 30px; }

.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; }
.post-card { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); transition: transform 0.2s, box-shadow 0.2s; display: flex; flex-direction: column; text-decoration: none; color: inherit;}
.post-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); }
.post-img { width: 100%; height: 180px; object-fit: cover; background: #f8fafc; }
.post-img-placeholder { display: flex; align-items: center; justify-content: center; border-bottom: 4px solid var(--cadenabbia-tuerkis); width: 100%; height: 180px; background: #f8fafc; }

.post-content-box { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.post-category { font-size: 11px; text-transform: uppercase; font-weight: 800; color: var(--cadenabbia-tuerkis); letter-spacing: 1px; margin-bottom: 8px; }
.post-title { margin: 0 0 10px 0; font-size: 18px; color: var(--rhoendorf-blau); line-height: 1.3; }
.post-excerpt { font-size: 14px; color: #64748b; line-height: 1.6; margin-bottom: 20px; flex: 1; }

.post-meta { display: flex; justify-content: space-between; font-size: 12px; color: #94a3b8; border-top: 1px solid #f1f5f9; padding-top: 15px; }

/* ==========================================================================
   PROTOKOLL GENERATOR (protokoll_generator.php)
   ========================================================================== */

/* Wizard / Schritt-Ansicht */
.wizard-card { background: #fff; padding: 30px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; border-top: 4px solid var(--union-gold); }
.step-title { color: var(--rhoendorf-blau); margin-top: 0; border-bottom: 1px solid #eee; padding-bottom: 10px; margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center;}

/* Dynamische Tagesordnungspunkte (TOP Boxen) */
.top-box { background: #f8fafc; border: 1px solid #e2e8f0; padding: 20px; border-radius: 4px; margin-bottom: 20px; border-left: 4px solid var(--rhoendorf-blau); position: relative;}
.top-textarea { width: 100%; min-height: 80px; padding: 10px; border: 1px solid #cbd5e1; border-radius: 4px; font-family: inherit; box-sizing: border-box; resize: vertical;}
.magic-badge { position: absolute; top: 15px; right: 20px; background: #d1fae5; color: #047857; padding: 4px 8px; border-radius: 4px; font-size: 11px; font-weight: bold; border: 1px solid #34d399;}

.dynamic-top { animation: fadeIn 0.3s ease-in-out; }
.dynamic-sub-top { border-left: 4px solid var(--cadenabbia-tuerkis); margin-left: 40px; }
.top-input-bar { display: flex; gap: 10px; margin-bottom: 10px; align-items: center; flex-wrap: wrap; }
.top-num-input { width: 60px; padding: 8px; border: 1px solid #cbd5e1; border-radius: 4px; font-weight: bold; text-align: center; }
.top-title-input { flex: 1; min-width: 200px; padding: 8px; border: 1px solid #cbd5e1; border-radius: 4px; font-weight: bold; }

/* Buttons in den TOPs */
.btn-add-top { background: #e2e8f0; color: #334155; border: 1px solid #cbd5e1; padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: 13px; font-weight: bold; transition: 0.2s;}
.btn-add-top:hover { background: #cbd5e1; }
.btn-del-top { background: #fee2e2; color: #ef4444; border: 1px solid #fca5a5; padding: 6px 10px; border-radius: 4px; cursor: pointer; transition: 0.2s;}
.btn-del-top:hover { background: #fecaca; }
.btn-media { background: transparent; border: none; color: var(--cadenabbia-tuerkis); font-weight: bold; font-size: 12px; cursor: pointer; padding: 5px; }
.btn-media:hover { text-decoration: underline; }

.btn-add-main { display: block; width: 100%; background: #f8fafc; border: 2px dashed var(--rhoendorf-blau); color: var(--rhoendorf-blau); padding: 15px; font-size: 16px; font-weight: bold; border-radius: 6px; cursor: pointer; transition: all 0.2s ease-in-out; margin-bottom: 30px; text-align: center; }
.btn-add-main:hover { background: var(--rhoendorf-blau); color: #ffffff; border-style: solid; }

@keyframes fadeIn { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }

/* ==========================================================================
   DIGITALES SEKRETARIAT (Mail Composer / sekretariat.php)
   ========================================================================== */

/* Grid Layout (Editor vs. Sidebar) */
.composer-grid { display: grid; grid-template-columns: 1fr 380px; gap: 30px; margin-top: 20px; align-items: start; }
@media (max-width: 1000px) { .composer-grid { grid-template-columns: 1fr; } }

.main-editor { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 30px; display: flex; flex-direction: column; min-height: 700px;}
.composer-sidebar { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); padding: 20px; position: sticky; top: 20px;}

/* Header-Bereich im Editor (Betreff, Empfänger) */
.composer-header { border-bottom: 2px solid #f1f5f9; padding-bottom: 20px; margin-bottom: 20px; }
.composer-row { display: flex; align-items: center; margin-bottom: 15px; position: relative;}
.composer-row label { width: 120px; font-weight: bold; color: #64748b; font-size: 14px; }
.composer-row input, .composer-row select { flex: 1; border: none; border-bottom: 1px dashed #cbd5e1; padding: 8px 5px; font-size: 15px; outline: none; background: transparent; transition: 0.2s;}
.composer-row input:focus, .composer-row select:focus { border-bottom-color: var(--rhoendorf-blau); }

/* Autocomplete Suchergebnisse (CRM Search) */
.autocomplete-results { position: absolute; top: 100%; left: 120px; right: 0; background: #fff; border: 1px solid #cbd5e1; border-top: none; border-radius: 0 0 6px 6px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); z-index: 50; display: none; max-height: 200px; overflow-y: auto;}
.autocomplete-item { padding: 10px 15px; cursor: pointer; border-bottom: 1px solid #f1f5f9; display: flex; justify-content: space-between;}
.autocomplete-item:hover { background: #f8fafc; }

/* Tab-Switcher (Einzeln vs. Gruppe) & Live Counter */
.tab-switcher { display: flex; background: #f1f5f9; border-radius: 4px; overflow: hidden; display: inline-flex; margin-left: 120px;}
.tab-btn-small { padding: 6px 15px; cursor: pointer; font-size: 12px; font-weight: bold; color: #64748b; border: none; background: transparent;}
.tab-btn-small.active { background: var(--rhoendorf-blau); color: white; }
.live-counter { display: none; margin-left: 15px; font-size: 12px; color: #fff; background: #10b981; padding: 3px 10px; border-radius: 12px; font-weight: bold; align-items: center;}

/* WYSIWYG Editor Bereich */
.editor-wrapper { flex: 1; display: flex; flex-direction: column; border: 1px solid #e2e8f0; border-radius: 4px; overflow: hidden; position: relative;}
.editor-footer { background: #f8fafc; padding: 5px 15px; font-size: 11px; color: #94a3b8; display: flex; justify-content: space-between; border-top: 1px solid #e2e8f0;}
.read-time.warning { color: #f59e0b; font-weight: bold; }

/* Magnet-Zone (Dateien per Drag & Drop anhängen) */
.magnet-zone { border: 2px dashed #cbd5e1; background: #f8fafc; border-radius: 4px; padding: 20px; text-align: center; margin-top: 20px; cursor: pointer; transition: 0.3s; position: relative;}
.magnet-zone.dragover { border-color: var(--cadenabbia-tuerkis); background: #e6f6f7; }
.magnet-zone input[type="file"] { position: absolute; width: 100%; height: 100%; top: 0; left: 0; opacity: 0; cursor: pointer; }

/* Sidebar Add-ons */
.addon-box { background: #f8fafc; border: 1px solid #e2e8f0; padding: 15px; border-radius: 4px; margin-bottom: 15px; transition: 0.3s;}
.addon-box label { font-size: 13px; font-weight: bold; color: var(--rhoendorf-blau); display: flex; align-items: center; gap: 8px;}
.addon-box.active-box { border-color: var(--union-gold); background: #fff8e5; }
.letter-list-item { display: block; padding: 10px; border-bottom: 1px solid #eee; text-decoration: none; color: inherit; transition: 0.2s; }
.letter-list-item:hover { background: #f8fafc; padding-left: 15px; }

/* Druck-Modal (Zentriert) */
.print-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); z-index: 1000; align-items: center; justify-content: center; }
.print-box { background: white; padding: 30px; border-radius: 8px; width: 400px; text-align: center;}

/* ==========================================================================
   ÖFFENTLICHE TEAM-SEITE (team.php)
   ========================================================================== */

/* Team Grid Layout */
.team-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 30px; margin-bottom: 60px; }

/* Die Profil-Karte */
.team-card { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); transition: transform 0.3s; display: flex; flex-direction: column; position: relative; }
.team-card:hover { transform: translateY(-5px); box-shadow: 0 12px 25px rgba(0,0,0,0.1); }

/* Kopfbereich (Bild & Rolle) */
.team-card-header { position: relative; height: 250px; background: #e2e8f0; }
.team-card-img { width: 100%; height: 100%; object-fit: cover; }
.team-card-placeholder { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: var(--cadenabbia-tuerkis); color: white; font-size: 60px; font-weight: bold; }
.team-role-badge { position: absolute; bottom: -15px; left: 20px; background: var(--union-gold); color: #1b191d; font-weight: bold; font-size: 12px; padding: 6px 15px; border-radius: 20px; text-transform: uppercase; box-shadow: 0 2px 5px rgba(0,0,0,0.2); }

/* Body & Text-Inhalte */
.team-card-body { padding: 30px 20px 20px 20px; flex: 1; display: flex; flex-direction: column; }
.team-name { font-size: 22px; color: var(--rhoendorf-blau); margin: 0 0 10px 0; font-weight: 800; }
.team-bio { font-size: 14px; color: #64748b; line-height: 1.6; margin-bottom: 15px; }

/* Ausschuss-Plaketten (Badges) */
.committee-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; flex: 1; align-content: flex-start;}
.committee-badge { background: #f8fafc; border: 1px solid #cbd5e1; color: #475569; font-size: 11px; padding: 4px 8px; border-radius: 4px; display: inline-flex; align-items: center;}
.committee-badge::before { content: '🏛️'; margin-right: 4px; font-size: 10px; }

/* Vision Details Box (Akkordeon) */
.team-vision-box { margin-bottom: 20px; background: #f8fafc; border-radius: 4px; padding: 10px; border-left: 3px solid var(--cadenabbia-tuerkis); }
.team-vision-box summary { font-size: 13px; font-weight: bold; color: var(--cadenabbia-tuerkis); cursor: pointer; list-style: none; outline: none; }
.team-vision-box summary::-webkit-details-marker { display: none; }
.team-vision-text { font-size: 13px; color: #475569; margin-top: 10px; line-height: 1.5; font-style: italic; }

/* Button auf der Team-Karte */
.btn-team-contact { display: block; text-align: center; background: white; border: 2px solid var(--rhoendorf-blau); color: var(--rhoendorf-blau); padding: 10px; border-radius: 4px; font-weight: bold; text-decoration: none; transition: 0.2s; }
.btn-team-contact:hover { background: var(--rhoendorf-blau); color: white; }

/* ==========================================================================
   ÖFFENTLICHE TERMINE (termine.php)
   ========================================================================== */

/* Container & Basis-Layout */
.events-container { max-width: 800px; margin: 60px auto; padding: 0 20px; }
.event-card { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); display: flex; margin-bottom: 30px; overflow: hidden; border-left: 5px solid var(--cadenabbia-tuerkis); transition: transform 0.2s;}
.event-card:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0,0,0,0.1); }
@media (max-width: 600px) { .event-card { flex-direction: column; } }

/* Kalender-Abreißblock (Linke Seite) */
.event-date { background: #f1f5f9; padding: 30px 20px; text-align: center; min-width: 120px; display: flex; flex-direction: column; justify-content: center; border-right: 1px solid #e2e8f0; position: relative; }
@media (max-width: 600px) { .event-date { border-right: none; border-bottom: 1px solid #e2e8f0; padding: 15px; flex-direction: row; gap: 10px; align-items: center; justify-content: flex-start; } }

.event-date .day { font-size: 36px; font-weight: 900; color: var(--rhoendorf-blau); line-height: 1; }
.event-date .month { font-size: 14px; font-weight: bold; color: var(--cadenabbia-tuerkis); text-transform: uppercase; letter-spacing: 1px; margin-top: 5px; }

/* Heute-Badge */
.badge-today { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); background: var(--union-gold); color: #1b191d; font-size: 10px; font-weight: bold; padding: 2px 8px; border-radius: 10px; letter-spacing: 1px; text-transform: uppercase; }
@media (max-width: 600px) { .badge-today { position: static; transform: none; margin-left: auto; } }

/* Termin-Inhalte */
.event-content { padding: 30px; flex: 1; }
.event-title { font-family: 'Inter', sans-serif; font-size: 22px; color: var(--rhoendorf-blau); margin: 0 0 10px 0; }
.event-meta { font-size: 14px; color: #64748b; font-weight: 600; margin-bottom: 15px; display: flex; flex-wrap: wrap; gap: 15px;}
.event-desc { font-family: 'IBM Plex Serif', serif; font-size: 16px; color: #475569; line-height: 1.6; margin-bottom: 20px;}

/* iCal Export Button */
.btn-ics { display: inline-flex; align-items: center; gap: 8px; background: white; border: 2px solid #cbd5e1; color: var(--rhoendorf-blau); padding: 8px 15px; border-radius: 4px; text-decoration: none; font-size: 13px; font-weight: bold; transition: all 0.2s;}
.btn-ics:hover { border-color: var(--rhoendorf-blau); background: #f8fafc; }

/* Monats-Trenner */
.event-month-divider { color: #94a3b8; border-bottom: 2px solid #e2e8f0; padding-bottom: 5px; margin: 40px 0 20px 0; text-transform: uppercase; font-size: 14px; letter-spacing: 1px; }

/* ==========================================================================
   TEXTBAUSTEINE / VORLAGEN (textbausteine.php)
   ========================================================================== */

/* Die Karte für einen einzelnen Baustein in der Liste */
.snippet-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; margin-bottom: 15px; transition: 0.2s; border-left: 4px solid var(--cadenabbia-tuerkis);}
.snippet-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.05); }

.snippet-title { margin: 0 0 10px 0; color: var(--rhoendorf-blau); font-size: 16px; display: flex; justify-content: space-between; align-items: center;}
.snippet-preview { font-size: 13px; color: #64748b; line-height: 1.5; background: #f8fafc; padding: 10px; border-radius: 4px; margin-bottom: 15px;}

/* Sidebar-Editor Formular (Sticky) */
.form-sticky { position: sticky; top: 20px; background: #fff; padding: 25px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-top: 4px solid var(--union-gold); }
.form-sticky-title { margin-top: 0; color: var(--rhoendorf-blau); border-bottom: 1px solid #e2e8f0; padding-bottom: 10px; display: flex; justify-content: space-between; align-items: center; }

/* Variable-Buttons (Platzhalter einfügen) */
.variable-bar { background: #f0fdfa; border: 1px dashed #5eead4; padding: 10px; border-radius: 4px; margin-bottom: 15px; display: flex; flex-wrap: wrap; gap: 5px; }
.var-btn { background: #ccfbf1; color: #0f766e; border: 1px solid #99f6e4; font-family: 'Fira Code', monospace; font-size: 11px; padding: 4px 8px; border-radius: 4px; cursor: pointer; transition: 0.2s;}
.var-btn:hover { background: #99f6e4; transform: translateY(-1px); }

/* ==========================================================================
   IDEENSCHMIEDE DETAIL-ANSICHT (thema_detail.php)
   ========================================================================== */

/* Startpost (Original Poster / OP) */
.op-card { background: #fff; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; overflow: hidden; border-top: 4px solid var(--union-gold); }
.op-header { padding: 20px 25px; border-bottom: 1px solid #e2e8f0; display: flex; gap: 15px; align-items: center; background: #fafbfc;}
.op-title { margin: 0 0 5px 0; font-size: 22px; color: var(--rhoendorf-blau); font-weight: 800;}
.op-meta { font-size: 12px; color: #64748b; }
.op-content { padding: 30px 25px; font-size: 16px; color: #334155; line-height: 1.6; }

/* Umfrage / Abstimmungs-Modul (Poll) */
.poll-card { background: #f0fdfa; border: 1px solid #14b8a6; border-radius: 8px; padding: 25px; margin-bottom: 30px; }
.poll-question { font-size: 18px; color: #0f766e; margin-top: 0; margin-bottom: 20px; font-weight: bold;}
.poll-option-btn { display: block; width: 100%; text-align: left; background: #fff; border: 2px solid #cbd5e1; padding: 12px 20px; border-radius: 6px; margin-bottom: 10px; cursor: pointer; font-size: 15px; transition: 0.2s; font-weight: bold; color: #475569;}
.poll-option-btn:hover { border-color: var(--cadenabbia-tuerkis); color: var(--cadenabbia-tuerkis); background: #f8fafc;}
.poll-option-btn.selected { border-color: var(--cadenabbia-tuerkis); background: var(--cadenabbia-tuerkis); color: white;}

.poll-result-bar-bg { background: #e2e8f0; border-radius: 4px; height: 24px; width: 100%; position: relative; overflow: hidden; margin-bottom: 15px; }
.poll-result-bar-fill { background: var(--cadenabbia-tuerkis); height: 100%; position: absolute; top: 0; left: 0; transition: width 1s ease-out; }
.poll-result-text { position: absolute; top: 0; left: 10px; height: 100%; display: flex; align-items: center; font-size: 12px; font-weight: bold; color: #1e293b; z-index: 2;}
.poll-result-pct { position: absolute; top: 0; right: 10px; height: 100%; display: flex; align-items: center; font-size: 12px; font-weight: bold; color: #1e293b; z-index: 2;}

/* Diskussion (Antworten / Posts) */
.discussion-post-card { display: flex; gap: 15px; margin-bottom: 20px; }
.post-body { background: #fff; border: 1px solid #e2e8f0; border-radius: 0 8px 8px 8px; padding: 15px 20px; flex: 1; box-shadow: 0 2px 5px rgba(0,0,0,0.02);}
.post-meta-header { font-size: 11px; color: #94a3b8; margin-bottom: 10px; border-bottom: 1px dashed #e2e8f0; padding-bottom: 5px; display: flex; justify-content: space-between;}
.post-content-text { font-size: 14px; color: #334155; line-height: 1.5; }

/* ==========================================================================
   THEMENÜBERSICHT (themen.php)
   ========================================================================== */

/* Filter-Buttons (High Contrast) */
.filter-btn-high-contrast {
    display: inline-block;
    background: #ffffff;
    color: var(--rhoendorf-blau);
    border: 2px solid var(--rhoendorf-blau);
    padding: 10px 22px;
    border-radius: 4px;
    font-weight: bold;
    font-size: 15px;
    text-decoration: none;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
}
.filter-btn-high-contrast:hover {
    background: var(--rhoendorf-blau);
    color: #ffffff;
}
.filter-btn-high-contrast.active {
    background: var(--union-gold);
    color: #1b191d;
    border-color: var(--union-gold);
    box-shadow: 0 4px 10px rgba(255, 166, 0, 0.3);
}

/* Modul-Anpassung für die Artikel in der grid Ansicht */
.card-module { display: flex; flex-direction: column; text-decoration: none; color: inherit; transition: transform 0.2s; background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05); }
.card-module:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.1); }

/* ==========================================================================
   THEMEN VERWALTUNG ADMIN (themen_admin.php)
   ========================================================================== */

/* Listen-Element für Themen */
.topic-item { display: flex; justify-content: space-between; align-items: center; padding: 12px; border-bottom: 1px solid #e2e8f0; transition: 0.2s; }
.topic-item:hover { background-color: #f8fafc; }
.topic-item:last-child { border-bottom: none; }

/* ==========================================================================
   BÜRGER-POSTFACH (ticket_inbox.php)
   ========================================================================== */

/* Ticket-Liste */
.ticket-row { display: flex; justify-content: space-between; padding: 15px; border-bottom: 1px solid #eee; text-decoration: none; color: inherit; border-left: 4px solid transparent; align-items: center; position: relative;}
.ticket-row:hover { background-color: #fafbfc; }
.ticket-row.is-new { background-color: #fffbeb; }
.ticket-row.is-expiring { background-color: #fef2f2; border-left-color: #ef4444; }

.badge-offen { background-color: #fde8e9; color: #ef4444; border: 1px solid #fca5a5;}
.badge-beantwortet { background-color: #e6f6f7; color: var(--cadenabbia-tuerkis); border: 1px solid #a5f3fc;}
.badge-geschlossen { background-color: #f1f5f9; color: #64748b; border: 1px solid #cbd5e1;}

.btn-quick-delete { display: none; background: #ef4444; color: #fff; border: none; width: 35px; height: 35px; border-radius: 50%; font-size: 14px; cursor: pointer; align-items: center; justify-content: center; box-shadow: 0 2px 5px rgba(0,0,0,0.1); margin-left: 10px; transition: transform 0.1s;}
.btn-quick-delete:hover { background: #dc2626; transform: scale(1.1);}
.ticket-row:hover .btn-quick-delete { display: flex; }

/* Detailansicht Layout */
.ticket-layout { display: grid; grid-template-columns: 2fr 1fr; gap: 30px; margin-top: 30px;}
@media (max-width: 800px) { .ticket-layout { grid-template-columns: 1fr; } }

/* Chat-Verlauf */
.chat-container { background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 15px; max-height: 600px; overflow-y: auto; margin-bottom: 20px;}
.bubble-wrapper { display: flex; flex-direction: column; max-width: 85%; }
.bubble { padding: 15px 20px; border-radius: 12px; font-size: 15px; line-height: 1.5; box-shadow: 0 2px 5px rgba(0,0,0,0.05); position: relative; word-wrap: break-word;}
.bubble-meta { font-size: 11px; color: #64748b; margin-top: 5px; font-weight: bold;}

.msg-citizen { align-self: flex-start; }
.msg-citizen .bubble { background: #fff; border: 1px solid #cbd5e1; border-bottom-left-radius: 2px; color: #334155; }
.msg-cdu { align-self: flex-end; }
.msg-cdu .bubble { background: var(--cadenabbia-tuerkis); color: #fff; border-bottom-right-radius: 2px; }
.msg-cdu .bubble-meta { text-align: right; }

/* Sidebar Aktionen */
.ticket-sidebar-card { background: #fff; padding: 20px; border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); margin-bottom: 20px; border-top: 4px solid var(--rhoendorf-blau);}
.internal-notes { background: #fffbeb; border-color: #f59e0b; border-top-color: var(--union-gold);}
.internal-notes textarea { background: transparent; border: 1px dashed var(--union-gold); width: 100%; min-height: 120px; padding: 10px; font-size: 14px; box-sizing: border-box;}

.btn-ticket-action { display: block; width: 100%; padding: 12px 15px; font-size: 15px; font-weight: bold; border-radius: 4px; text-align: center; text-decoration: none; cursor: pointer; transition: background-color 0.2s, transform 0.1s; box-sizing: border-box; border: none; }
.btn-ticket-action:active { transform: scale(0.98); }

.btn-action-archive { background-color: var(--rhoendorf-blau); color: #ffffff; }
.btn-action-archive:hover { background-color: #1e293b; color: #ffffff; }
.btn-action-close { background-color: #64748b; color: #ffffff; }
.btn-action-close:hover { background-color: #475569; color: #ffffff; }
.btn-action-delete { background-color: #ef4444; color: #ffffff; }
.btn-action-delete:hover { background-color: #dc2626; color: #ffffff; }
.btn-action-forum { background-color: #10b981; color: #ffffff; margin-bottom: 10px; }
.btn-action-forum:hover { background-color: #059669; color: #ffffff; }

/* ==========================================================================
   BÜRGER-PORTAL / SERVICE-CHAT (ticket_status.php)
   ========================================================================== */

.portal-ticket-container { max-width: 800px; margin: 40px auto; background: #fff; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.05); overflow: hidden; }

/* Header */
.portal-ticket-header { background: var(--rhoendorf-blau); color: #fff; padding: 25px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 15px;}
.portal-ticket-title { margin: 0; font-size: 22px; }
.portal-ticket-status { background: rgba(255,255,255,0.2); padding: 5px 12px; border-radius: 20px; font-size: 14px; font-weight: bold; border: 1px solid rgba(255,255,255,0.4); }

/* Chat-Area (Öffentliche Ansicht) */
.portal-chat-area { background: #f8fafc; padding: 30px 20px; display: flex; flex-direction: column; gap: 20px; min-height: 400px; max-height: 600px; overflow-y: auto; }

/* Bubbles für den Bürger (Meine Nachrichten) */
.portal-msg-mine { align-self: flex-end; }
.portal-msg-mine .bubble { background: #e2e8f0; color: #334155; border-bottom-right-radius: 2px; }
.portal-msg-mine .bubble-meta { text-align: right; }

/* Bubbles von der CDU (Deren Nachrichten) */
.portal-msg-theirs { align-self: flex-start; }
.portal-msg-theirs .bubble { background: var(--cadenabbia-tuerkis); color: #1e293b; border-bottom-left-radius: 2px; }
.portal-msg-theirs .bubble-meta { text-align: left; }

/* Initiale Nachricht */
.portal-msg-origin { align-self: stretch; max-width: 100%; margin-bottom: 20px; }
.portal-msg-origin .bubble { background: #fff; border: 1px solid #cbd5e1; border-radius: 8px; color: #475569; }

/* Links innerhalb der Bubbles */
.bubble a { color: var(--rhoendorf-blau); font-weight: bold; text-decoration: none; }
.bubble a:hover { text-decoration: underline; }

/* Antwort-Bereich (Input) */
.portal-reply-area { padding: 25px; background: #fff; border-top: 1px solid #e2e8f0; }
.portal-reply-textarea { width: 100%; min-height: 100px; padding: 15px; border: 1px solid #cbd5e1; border-radius: 6px; font-family: 'Inter', sans-serif; font-size: 15px; resize: vertical; margin-bottom: 10px; box-sizing: border-box;}
.portal-reply-textarea:focus { border-color: var(--cadenabbia-tuerkis); outline: none; box-shadow: 0 0 0 3px rgba(82, 183, 193, 0.2); }

.portal-upload-bar { background: #f1f5f9; padding: 12px 15px; border-radius: 6px; display: flex; align-items: center; gap: 10px; margin-bottom: 15px; border: 1px dashed #cbd5e1; flex-wrap: wrap;}
.portal-upload-label { font-size: 13px; font-weight: bold; color: #475569; cursor: pointer; display: flex; align-items: center; gap: 5px;}
.portal-upload-input { font-size: 12px; }

/* ==========================================================================
   TRESOR (DMS / tresor.php)
   ========================================================================== */

/* Tresor Header (Dynamische Farbe je nach Bereich) */
.vault-header { color: #fff; padding: 30px; border-radius: 6px; margin-bottom: 30px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); }
.vault-header-title { margin: 0 0 10px 0; color: #fff; }
.vault-header-desc { margin: 0; opacity: 0.9; }

/* Dokumenten-Tabelle */
.doc-table { width: 100%; border-collapse: collapse; background: #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.05); border-radius: 6px; overflow: hidden; }
.doc-table th, .doc-table td { padding: 15px; text-align: left; border-bottom: 1px solid #e2e8f0; }
.doc-table th { background-color: #f8fafc; font-weight: bold; font-size: 13px; text-transform: uppercase; color: #64748b;}
.doc-table tr:hover { background-color: #fafbfc; }

/* Upload Card */
.vault-upload-card { background: #fff; padding: 25px; border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.05); margin-bottom: 30px; }

/* Datei-Icons (Badges) */
.file-icon { display: inline-block; background: #e2e8f0; padding: 4px 8px; border-radius: 4px; font-size: 12px; font-weight: bold; color: #475569; margin-right: 10px; }
.file-pdf { background: #fee2e2; color: #b91c1c; }
.file-doc { background: #e0f2fe; color: #0369a1; }
.file-xls { background: #dcfce7; color: #15803d; }

/* ==========================================================================
   VERSAMMLUNGSLEITER PULT (versammlungsleiter.php)
   ========================================================================== */

/* Die dunkle Override-Klasse für den Body */
body.dark-commander-mode { background-color: #1e293b !important; color: #f8fafc; }
body.dark-commander-mode .site-header { background: #0f172a !important; border-bottom: 1px solid #334155 !important; }
body.dark-commander-mode .site-footer { background: #0f172a !important; border-top: 1px solid #334155 !important; color: #94a3b8; }

/* Wahl-Steuerungs-Karten */
.control-card { background: #334155; border-radius: 8px; padding: 25px; margin-bottom: 25px; border-left: 5px solid #475569; display: flex; justify-content: space-between; align-items: center; }
@media (max-width: 800px) { .control-card { flex-direction: column; align-items: flex-start; gap: 20px; } }

.card-prepared { border-left-color: #f59e0b; }
.card-active { border-left-color: #ef4444; box-shadow: 0 0 20px rgba(239, 68, 68, 0.2); border-left-width: 8px;}
.card-closed { border-left-color: #10b981; opacity: 0.7; }

/* Typografie auf den Karten */
.poll-live-title { font-size: 24px; margin: 0 0 10px 0; color: #f8fafc; }
.poll-live-meta { font-size: 14px; color: #cbd5e1; }

/* Der Live-Counter (Stimmen-Zähler) */
.live-counter-box { text-align: center; background: #0f172a; padding: 15px 30px; border-radius: 6px; border: 1px solid #475569; min-width: 150px;}
.live-counter-number { font-size: 36px; font-weight: bold; color: var(--cadenabbia-tuerkis); line-height: 1; margin-bottom: 5px; font-family: 'Fira Code', monospace;}
.live-counter-label { font-size: 11px; text-transform: uppercase; color: #94a3b8; letter-spacing: 1px; }

/* Knöpfe (Start / Stop) */
.btn-live-start { background: #ef4444; color: white; border: none; padding: 15px 30px; font-size: 18px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: 0.2s; }
.btn-live-start:hover { background: #dc2626; transform: scale(1.05); }

.btn-live-stop { background: #f59e0b; color: white; border: none; padding: 15px 30px; font-size: 18px; font-weight: bold; border-radius: 4px; cursor: pointer; transition: 0.2s; }
.btn-live-stop:hover { background: #d97706; transform: scale(1.05); }

/* Status Badges */
.badge-live-status { display: inline-block; padding: 5px 10px; border-radius: 4px; font-size: 12px; font-weight: bold; text-transform: uppercase; margin-bottom: 10px; }
.bg-prepared { background: #fef3c7; color: #b45309; }
.bg-active { background: #fee2e2; color: #ef4444; animation: pulse 2s infinite; }
.bg-closed { background: #d1fae5; color: #047857; }

/* ==========================================================================
   VERTRAGSMANAGEMENT (vertraege.php)
   ========================================================================== */

/* Statistik Banner (Fixkosten) */
.finance-stat-banner { background: #fff8e5; border-left: 4px solid var(--union-gold); padding: 20px; border-radius: 4px; display: flex; justify-content: space-around; margin-bottom: 30px; box-shadow: 0 2px 10px rgba(0,0,0,0.05);}
.finance-stat-item { text-align: center; }
.finance-stat-item span { display: block; font-size: 12px; color: #b45309; text-transform: uppercase; font-weight: bold; letter-spacing: 1px; }
.finance-stat-item strong { font-size: 24px; color: #78350f; font-family: 'Fira Code', monospace; }

/* Die Vertrags-Karte in der Liste */
.contract-card { background: #fff; border: 1px solid #e2e8f0; border-radius: 8px; padding: 20px; margin-bottom: 15px; box-shadow: 0 2px 5px rgba(0,0,0,0.02); display: flex; flex-wrap: wrap; gap: 20px; justify-content: space-between; align-items: center; border-left: 4px solid var(--cadenabbia-tuerkis);}
.contract-card.cancelled { border-left-color: #cbd5e1; background: #f8fafc; opacity: 0.8; }

.contract-info { flex: 1; min-width: 250px;}
.contract-title { font-size: 18px; color: var(--rhoendorf-blau); font-weight: bold; margin: 0 0 5px 0;}
.contract-partner { font-size: 13px; color: #64748b; font-weight: bold; text-transform: uppercase;}

.contract-finances { text-align: right; min-width: 150px; }
.contract-amount { font-size: 20px; font-weight: bold; color: #ef4444; font-family: 'Fira Code', monospace; }
.contract-cycle { font-size: 12px; color: #64748b; background: #f1f5f9; padding: 2px 6px; border-radius: 4px;}

.contract-dates { background: #f8fafc; border: 1px solid #e2e8f0; padding: 10px 15px; border-radius: 6px; font-size: 13px; color: #334155; min-width: 250px;}
.deadline-warning { color: #b91c1c; font-weight: bold; background: #fee2e2; padding: 2px 6px; border-radius: 4px; display: inline-block; margin-top: 5px; animation: pulse 2s infinite;}

.contract-actions { display: flex; gap: 10px; align-items: center; border-left: 1px solid #e2e8f0; padding-left: 15px;}
.btn-contract-icon { background: none; border: none; cursor: pointer; font-size: 18px; padding: 5px; opacity: 0.7; transition: 0.2s;}
.btn-contract-icon:hover { opacity: 1; transform: scale(1.1); }

/* ==========================================================================
   WARTUNGSMODUS / UNDER CONSTRUCTION (under_construction.php)
   ========================================================================== */

body.under-construction-page {
    margin: 0;
    padding: 0;
    background-color: var(--cadenabbia-tuerkis);
    color: var(--weiss);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    text-align: center;
    padding: 20px;
    box-sizing: border-box;
}

.uc-container { max-width: 800px; }

/* Headline: Inter Extrabold in Groß- und Kleinschreibung */
.uc-title {
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1.1;
    margin-bottom: 20px;
    letter-spacing: -0.02em; /* Entspricht Laufweite -10 */
}

/* Fließtext: IBM Plex Serif Regular */
.uc-text {
    font-family: 'IBM Plex Serif', serif;
    font-weight: 400;
    font-size: clamp(1.1rem, 2vw, 1.5rem);
    line-height: 1.6;
    margin-bottom: 30px;
}

.uc-badge {
    display: inline-block;
    background-color: var(--union-gold);
    color: var(--weiss);
    font-family: 'Inter', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    padding: 10px 20px;
    transform: rotate(-5deg); /* Leichter Störer-Effekt */
    margin-bottom: 40px;
    font-size: 1.2rem;
}

/* Die Geheimtür für den Admin */
.uc-secret-login {
    display: inline-block;
    margin-top: 60px;
    font-family: 'Inter', sans-serif;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.3); /* Sehr unauffällig */
    text-decoration: none;
    transition: color 0.3s;
}
.uc-secret-login:hover {
    color: rgba(255, 255, 255, 0.9);
}

/* ==========================================================================
   ENTWICKLER-FREISCHALTUNG (unlock.php)
   ========================================================================== */

body.dev-unlock-page {
    font-family: 'Inter', sans-serif;
    background-color: var(--rhoendorf-blau);
    color: var(--weiss);
    display: flex;
    justify-content: center;
    align-items: center;
    min-height: 100vh;
    margin: 0;
    padding: 20px;
    box-sizing: border-box;
}

.dev-login-box {
    background: var(--weiss);
    padding: 40px;
    border-radius: 8px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3);
    text-align: center;
    width: 100%;
    max-width: 400px;
    box-sizing: border-box;
    border-top: 4px solid var(--cadenabbia-tuerkis);
}

.dev-login-title {
    margin-top: 0;
    margin-bottom: 5px;
    color: var(--rhoendorf-blau);
    font-size: 24px;
    font-weight: 800;
}

.dev-login-sub {
    font-size: 13px;
    color: #64748b;
    margin-top: 0;
    margin-bottom: 25px;
}

