/* Globale Styles für App.js */ body { margin: 0; background-color: #f9f9f9; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: #333; /* NEU: Flexbox für die Zentrierung */ display: flex; justify-content: center; /* Zentriert horizontal */ align-items: flex-start; /* Hält den Inhalt oben, falls er kürzer als der Bildschirm ist */ min-height: 100vh; /* Stellt sicher, dass die Seite mindestens die volle Höhe des Viewports hat */ } .app-container { /* Die maximale Breite beibehalten, aber Padding anpassen */ padding: 40px 20px; max-width: 900px; width: 100%; /* Wichtig, damit max-width funktioniert */ /* min-height-Einstellung ist nun im Body */ } .app-header { text-align: center; margin-bottom: 40px; border-bottom: 2px solid #007bff; padding-bottom: 10px; } .app-header h1 { color: #007bff; margin-top: 0; } .separator { border: 0; border-top: 1px solid #ddd; margin: 40px 0; } .debug-output { background-color: #fff; padding: 15px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .debug-output pre { font-size: 12px; white-space: pre-wrap; word-break: break-all; } /* Styles für AppointmentForm.jsx */ .form-container { background-color: #fff; padding: 30px; border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .form-container h3 { border-bottom: 2px solid #f0f0f0; padding-bottom: 10px; margin-bottom: 20px; color: #333; } .input-group { margin-bottom: 15px; } .input-group label { display: block; margin-bottom: 5px; font-weight: bold; color: #555; } .input-group input, .input-group textarea { width: 100%; padding: 10px; border-radius: 5px; border: 1px solid #ccc; box-sizing: border-box; /* Stellt sicher, dass Padding und Border zur Gesamtbreite gehören */ } .input-group textarea { resize: vertical; } .date-time-control { display: flex; gap: 15px; } .date-time-control > div { flex: 1; } .submit-button { background-color: #28a745; color: white; padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; margin-top: 20px; transition: background-color 0.3s; } .submit-button:hover { background-color: #218838; } /* Styles für AppointmentList und AppointmentItem */ .appointment-list { list-style: none; padding: 0; } .appointment-item { background-color: #fff; padding: 15px; margin-bottom: 10px; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.05); border-left: 5px solid #007bff; /* Offene Termine */ transition: all 0.3s; } .appointment-item.done { opacity: 0.6; border-left: 5px solid #28a745; /* Erledigte Termine */ background-color: #e9f5ee; } .appointment-header { display: flex; align-items: center; margin-bottom: 10px; } .appointment-header input[type="checkbox"] { width: 20px; height: 20px; margin-right: 15px; cursor: pointer; } .doctor-info { font-size: 1.1em; color: #007bff; font-weight: 600; } .appointment-item.done .doctor-info, .appointment-item.done .appointment-date, .appointment-item.done .appointment-notes { text-decoration: line-through; } .arzt-art { font-weight: normal; font-size: 0.9em; color: #6c757d; margin-left: 5px; } .appointment-date { margin: 5px 0; margin-left: 35px; /* Alignment mit der Checkbox */ font-size: 0.9em; color: #495057; } .appointment-notes { margin: 5px 0 0 35px; padding-top: 5px; border-top: 1px dashed #eee; font-size: 0.85em; color: #6c757d; } .no-appointments-message { text-align: center; padding: 20px; background-color: #fffae6; border: 1px solid #ffeeba; border-radius: 5px; color: #856404; } .cancel-button { background-color: #dc3545; color: white; padding: 12px 20px; border: none; border-radius: 5px; cursor: pointer; font-size: 16px; margin-top: 20px; margin-left: 10px; transition: background-color 0.3s; } .cancel-button:hover { background-color: #c82333; } /* Druck-Funktionalität */ .print-controls { display: flex; justify-content: flex-end; margin-bottom: 20px; } .print-button { background-color: #007bff; color: white; padding: 10px 16px; border: none; border-radius: 5px; cursor: pointer; font-size: 14px; } .print-button:hover { background-color: #0069d9; } /* Standard: Druckbereich ausblenden, Bildschirm-Inhalte anzeigen */ .print-only { display: none; } @media print { /* Bildschirm-UI ausblenden */ .screen-only, .screen-only * { display: none !important; } /* Nur Druckbereich anzeigen */ .print-only { display: block !important; } body { background: #ffffff; margin: 10mm; color: #000; } .print-only h1 { margin-top: 0; font-size: 20px; } .print-table { width: 100%; border-collapse: collapse; font-size: 12px; } .print-table th, .print-table td { border: 1px solid #000; padding: 6px; text-align: left; } .print-table thead th { background: #eee; -webkit-print-color-adjust: exact; print-color-adjust: exact; } }