/* Globale PWA Styles */
body { margin: 0; padding: 0; -webkit-font-smoothing: antialiased; }

.emp-app-wrapper {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    max-width: 450px;
    margin: 0 auto;
    padding: 20px 15px 40px 15px;
    box-sizing: border-box;
}

.emp-app-card {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.05);
    border: 1px solid #e2e8f0;
    padding: 30px 25px;
    text-align: center;
}

.emp-app-header h2 { margin: 0 0 10px 0; color: #0f172a; font-size: 1.6em; }
.emp-app-header p { color: #64748b; font-size: 1.05em; margin-bottom: 25px; line-height: 1.4; }

.emp-app-input-group { text-align: left; margin-bottom: 20px; }
.emp-app-input-group label { display: block; font-weight: 600; color: #334155; margin-bottom: 8px; font-size: 0.95em; }
.emp-app-input-group input { width: 100%; padding: 16px; border: 2px solid #cbd5e1; border-radius: 10px; font-size: 1.2em; box-sizing: border-box; background: #f8fafc; }
.emp-app-input-group input:focus { border-color: #0ea5e9; outline: none; background: #ffffff; }

.emp-app-btn { width: 100%; background: #0ea5e9; color: #ffffff; border: none; padding: 16px; font-size: 1.1em; font-weight: bold; border-radius: 10px; cursor: pointer; transition: transform 0.2s; }
.emp-app-btn:hover:not(:disabled), .emp-app-btn:active:not(:disabled) { background: #0284c7; transform: translateY(-2px); }
.emp-app-btn:disabled { background: #94a3b8; opacity: 0.7; cursor: not-allowed; }

.emp-app-btn-text { background: none; border: none; color: #64748b; font-size: 0.9em; cursor: pointer; text-decoration: underline; padding: 10px; }

/* Dashboard Spezifisch */
.emp-role-badge { background: #e0f2fe; color: #0284c7; padding: 4px 10px; border-radius: 12px; font-size: 11px; font-weight: bold; border: 1px solid #bae6fd; }

.emp-dashboard-widget {
    background: #ffffff; border-radius: 16px; padding: 20px; margin-bottom: 20px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03); border: 1px solid #e2e8f0; text-align: left;
}
.emp-dashboard-widget h3 { margin: 0 0 15px 0; color: #1e293b; font-size: 1.2em; display: flex; align-items: center; gap: 8px; }

/* Stempeluhr (TCA) Buttons */
.tca-punch-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tca-btn {
    border: none; border-radius: 12px; padding: 15px 10px; font-size: 1.1em;
    font-weight: bold; cursor: pointer; color: #ffffff; transition: transform 0.1s;
}
.tca-btn:active { transform: scale(0.95); }
.tca-btn-in { background: #10b981; } 
.tca-btn-out { background: #ef4444; } 
.tca-btn-break { background: #f59e0b; grid-column: span 2; } 

/* Dienstplan (TCA) Cards */
.tca-shift-card {
    background: #f8fafc; border-left: 4px solid #0ea5e9; padding: 12px 15px;
    border-radius: 6px; margin-bottom: 10px;
}
.tca-shift-card:last-child { margin-bottom: 0; }
.tca-shift-date { font-weight: bold; color: #0f172a; font-size: 1em; margin-bottom: 4px; }
.tca-shift-loc { color: #0284c7; font-size: 0.9em; font-weight: 600; margin-bottom: 2px; }
.tca-shift-role { color: #64748b; font-size: 0.85em; }

/* --- NEU: C37 Toast Notification System --- */
.c37-toast-container {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: 90%;
    max-width: 400px;
    pointer-events: none;
}
.c37-toast {
    background: #1e293b;
    color: #ffffff;
    padding: 16px 20px;
    border-radius: 12px;
    box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    font-size: 0.95em;
    font-weight: 600;
    text-align: center;
    opacity: 0;
    transform: translateY(20px);
    animation: c37ToastFadeIn 0.3s forwards cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.c37-toast.success { background: #10b981; }
.c37-toast.error { background: #ef4444; }
.c37-toast.warning { background: #f59e0b; }

@keyframes c37ToastFadeIn {
    to { opacity: 1; transform: translateY(0); }
}
@keyframes c37ToastFadeOut {
    to { opacity: 0; transform: translateY(10px); }
}