:root{--color-primary: #4dac96;--color-primary-hover: #3d9980;--color-primary-light: #e8f5f2;--color-primary-alpha: rgba(77, 172, 150, .1);--color-secondary: #eada29;--color-secondary-dark: #d4c424;--color-secondary-light: #fdf9e6;--color-secondary-alpha: rgba(234, 218, 41, .1);--color-accent: #667eea;--color-accent-dark: #764ba2;--color-accent-light: #e8ecfd;--color-accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--color-admin: #f39c12;--color-admin-hover: #e67e22;--color-admin-light: #fef6e8;--color-admin-gradient: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);--color-success: #4dac96;--color-warning: #eada29;--color-danger: #ff4444;--color-danger-hover: #cc0000;--color-info: #2196F3;--color-text: #333;--color-text-light: #666;--color-text-muted: #999;--color-border: #ddd;--color-border-light: #e0e0e0;--color-bg-primary: #ffffff;--color-bg-secondary: #f8f9fa;--color-bg-tertiary: #e9ecef;--color-bg-overlay: rgba(0, 0, 0, .5);--color-alert-error-bg: #ffe5e5;--color-alert-error-border: #ff4444;--color-alert-error-text: #cc0000;--color-alert-warning-bg: #fff4e5;--color-alert-warning-border: #f39c12;--color-alert-warning-text: #cc8000;--color-alert-success-bg: #e8f5f2;--color-alert-success-border: #4dac96;--color-alert-success-text: #2d7a65;--color-alert-info-bg: #e3f2fd;--color-alert-info-border: #2196F3;--color-alert-info-text: #1565c0;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 3rem;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", sans-serif;--font-size-xs: .75rem;--font-size-sm: .85rem;--font-size-base: .95rem;--font-size-md: 1rem;--font-size-lg: 1.1rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .15);--shadow-xl: 0 8px 32px rgba(0, 0, 0, .2);--shadow-primary: 0 4px 8px rgba(77, 172, 150, .3);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 1000;--z-modal: 1001;--z-popover: 1010;--z-tooltip: 1020}*,*:before,*:after{box-sizing:border-box}*{margin:0}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:inherit}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-base)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base)}a:hover{color:var(--color-primary-hover)}button,input,textarea,select{font-family:inherit;font-size:inherit;line-height:inherit}img,picture,video,canvas,svg{display:block;max-width:100%}ol,ul{list-style:none;padding:0}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}#root,#__next{isolation:isolate}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.flex{display:flex}.inline-flex{display:inline-flex}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.m-0{margin:0}.m-auto{margin:auto}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.ml-auto{margin-left:auto}.mr-auto{margin-right:auto}.p-0{padding:0}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--color-primary)}.text-muted{color:var(--color-text-muted)}.text-light{color:var(--color-text-light)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.w-full{width:100%}.w-auto{width:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.transition-fast{transition:all var(--transition-fast)}.transition{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}*{box-sizing:border-box}.App{min-height:100vh;width:100%;overflow-x:hidden}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.btn-admin{background:#4dac96;color:#fff!important;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.95rem;cursor:pointer;transition:all .2s;font-weight:500;display:flex;align-items:center;gap:.5rem}.btn-admin:hover{background:#3d9980;color:#fff!important;transform:translateY(-2px);box-shadow:0 4px 8px #4dac964d}.admin-page{min-height:100vh;background:#f5f5f5;padding:2rem}.admin-page .page-header{background:#fff;padding:1.5rem 2rem;border-radius:8px;margin-bottom:2rem;box-shadow:0 2px 4px #0000001a;display:flex;align-items:center;gap:1rem}.admin-page .page-header h1{margin:.5rem 0 0;font-size:1.75rem;color:#333}.admin-page .client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}.admin-client-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;transition:all .3s ease;overflow:hidden;display:flex;flex-direction:column}.admin-client-card:hover{box-shadow:0 8px 24px #0000001f}.admin-card-header{background:linear-gradient(135deg,#f39c12,#e67e22);padding:1rem 1.25rem;color:#fff;display:flex;align-items:center;gap:.875rem}.admin-card-avatar{width:48px;height:48px;border-radius:50%;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff;flex-shrink:0;border:2px solid rgba(255,255,255,.3)}.admin-card-header h2{margin:0;font-size:1.25rem;font-weight:600;flex:1;text-shadow:0 2px 4px rgba(0,0,0,.1)}.admin-card-body{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;gap:.5rem;position:relative}.admin-card-body .no-cpr-badge{position:absolute;top:8px;right:10px;z-index:5;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));cursor:help}.admin-card-address{margin:0;color:#e67e22;font-size:.9rem}.admin-card-phone{margin:0;font-size:.9rem}.admin-card-phone a{color:#4dac96;text-decoration:none}.admin-card-phone a:hover{text-decoration:underline}.admin-card-contacts{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.admin-card-contacts .contact-line{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.admin-card-contacts .contact-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.admin-card-contacts .contact-icon-hoofd{background:#f39c12;color:#fff}.admin-card-contacts .contact-icon-nood{background:#e74c3c;color:#fff}.admin-card-contacts .contact-naam{color:#555}.admin-card-contacts .contact-tel{color:#4dac96;text-decoration:none;margin-left:auto}.admin-card-contacts .contact-tel:hover{text-decoration:underline}.admin-card-footer{padding:.75rem 1.25rem 1rem;border-top:1px solid #ecf0f1}.btn-admin-beheren{width:100%;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #f39c124d;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-admin-beheren:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1266}.btn-admin-beheren:active{transform:translateY(0)}form{padding:0}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333;font-size:.95rem}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:6px;font-size:.95rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#4dac96}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.empty-state{background:#fff;padding:3rem 2rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.modal-overlay{position:fixed;inset:0;background:var(--color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);animation:fadeIn var(--transition-base)}.modal-content{background:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:90%;max-width:700px;max-height:95vh;overflow:auto;display:flex;flex-direction:column;animation:slideUp var(--transition-slow);z-index:var(--z-modal)}.modal-content-large{max-width:800px}@keyframes slideUp{0%{transform:translateY(50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.modal-header h2{margin:0;font-size:var(--font-size-2xl)}.modal-body{padding:var(--spacing-xl);flex:1 1 auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-xl);border-top:1px solid var(--color-border-light);background:var(--color-bg-secondary)}.btn{border:none;padding:var(--spacing-md) var(--spacing-xl);border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background:var(--color-primary);color:#fff!important}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);color:#fff!important;transform:translateY(-1px);box-shadow:var(--shadow-primary)}.btn-primary:disabled{background:var(--color-text-muted)}.btn-secondary{background:var(--color-bg-primary);color:var(--color-text-light);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-text-muted)}.btn-danger{background:var(--color-danger);color:#fff!important}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover);color:#fff!important}.btn-close{background:transparent;border:none;font-size:var(--font-size-3xl);color:var(--color-text-muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base)}.btn-close:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.btn-icon{background:transparent;border:none;padding:var(--spacing-sm);cursor:pointer;color:var(--color-text-light);transition:all var(--transition-base);border-radius:var(--radius-sm)}.btn-icon:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.btn-admin{display:inline-flex;align-items:center;gap:var(--spacing-sm);background:transparent;border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;color:var(--color-text-light);transition:all var(--transition-base);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.btn-admin:hover{background:var(--color-bg-tertiary);color:var(--color-text);border-color:var(--color-text-light)}.btn-admin-icon{flex-shrink:0}.btn-admin-text{display:inline}@media(max-width:600px){.btn-admin{padding:var(--spacing-sm);border:none}.btn-admin-text{display:none}}.form-group{margin-bottom:var(--spacing-xl)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-base)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);transition:all var(--transition-base);font-family:inherit;background:var(--color-bg-primary);color:var(--color-text)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--color-bg-secondary);cursor:not-allowed;opacity:.6}.form-textarea{resize:vertical;min-height:80px}.form-input-small{width:80px;padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-base);text-align:center}.form-input-small:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-alpha)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.form-hint{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.form-error{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-danger)}.checkbox-label,.radio-label{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);transition:all var(--transition-base)}.checkbox-label:hover,.radio-label:hover{background:var(--color-bg-tertiary)}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{width:20px;height:20px;cursor:pointer}.checkbox-label span,.radio-label span{font-weight:var(--font-weight-medium);color:var(--color-text)}.form-section{margin-bottom:var(--spacing-2xl);padding:var(--spacing-xl);background:var(--color-bg-secondary);border-radius:var(--radius-lg);border-left:4px solid var(--color-primary)}.section-title{margin:0 0 var(--spacing-lg) 0;font-size:var(--font-size-lg);color:var(--color-text)}.alert{padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);font-weight:var(--font-weight-medium);border-left:4px solid}.alert-error{background:var(--color-alert-error-bg);border-color:var(--color-alert-error-border);color:var(--color-alert-error-text)}.alert-info{background:var(--color-alert-info-bg);border-color:var(--color-alert-info-border);color:var(--color-alert-info-text)}.alert-success{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary-hover)}.alert-warning{background:#fff4e5;border-color:var(--color-warning);color:#cc8000}.info-box{background:var(--color-alert-info-bg);border-left:4px solid var(--color-alert-info-border);padding:var(--spacing-lg);border-radius:var(--radius-md);margin-bottom:var(--spacing-xl);color:var(--color-alert-info-text);font-size:var(--font-size-base)}.info-box strong{font-weight:var(--font-weight-semibold)}.loading-message{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-muted);font-size:var(--font-size-lg)}.loading-spinner{width:40px;height:40px;border:4px solid var(--color-bg-tertiary);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite;margin:0 auto var(--spacing-lg)}@media(max-width:768px){.modal-content,.modal-content-large{width:95%;max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-lg)}.form-row{grid-template-columns:1fr}.form-section{padding:var(--spacing-lg)}.modal-footer{flex-direction:column-reverse}.modal-footer button,.modal-footer .btn{width:100%}}.login-page{min-height:100vh;min-width:100vw;width:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem;box-sizing:border-box}.login-container{width:100%;max-width:450px}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:slideUp .4s ease-out}.login-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3rem 2rem 2rem;text-align:center}.login-header h1{margin:0 0 .5rem;font-size:2.5rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.1)}.login-header p{margin:0;font-size:1.1rem;opacity:.95;font-weight:300}.login-content{padding:3rem 2rem 2.5rem}.login-error{background:#fee2e2;border:1px solid #fca5a5;color:#dc2626;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;text-align:center}.google-button-container{display:flex;justify-content:center;min-height:50px;transform:scale(1.15);transform-origin:center;margin:.5rem 0}.login-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;color:#667eea;font-weight:600}.loading-spinner{width:20px;height:20px;border:2px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.login-info{margin-top:2rem;padding-top:2rem;border-top:1px solid #e0e0e0;text-align:center}.login-info p{margin:0;color:#757575;font-size:.95rem;line-height:1.5}.dev-login-section{margin-top:2rem;padding-top:1.5rem;border-top:2px dashed #f39c12}.dev-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;font-size:.9rem;color:#666}.dev-badge{background:#f39c12;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.5px}.dev-loading{text-align:center;color:#999;font-size:.9rem}.dev-users-list{display:flex;flex-direction:column;gap:.5rem}.dev-user-btn{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left}.dev-user-btn:hover{background:#fff;border-color:#667eea;box-shadow:0 2px 8px #667eea33}.dev-user-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;flex-shrink:0}.dev-user-info{display:flex;flex-direction:column;gap:.15rem}.dev-user-name{font-weight:600;color:#333;font-size:.9rem}.dev-user-role{font-size:.7rem;font-weight:600;text-transform:uppercase;padding:.15rem .4rem;border-radius:3px;width:fit-content}.dev-user-role.admin{background:#fef3c7;color:#92400e}.dev-user-role.teamleider{background:#d1fae5;color:#065f46}.dev-user-role.verzorger{background:#dbeafe;color:#1e40af}@media(max-width:480px){.login-page{padding:.5rem}.login-header h1{font-size:2rem}.login-header p{font-size:1rem}.login-content{padding:2rem 1.5rem}.google-login-btn{font-size:1rem;padding:.875rem 1.25rem}}.modal-content.ovo-modal{max-width:95vw!important;width:1200px!important;height:95vh;max-height:95vh;display:flex;flex-direction:column}.modal-content.ovo-modal .modal-body{flex:1;overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column}.ovo-intro{margin-bottom:1rem;color:#333;font-size:1rem;line-height:1.5;flex-shrink:0}.ovo-pdf-container{flex:1;display:flex;flex-direction:column;min-height:0;margin-bottom:1rem}.ovo-pdf-viewer{width:100%;flex:1;min-height:400px;border:1px solid #ddd;border-radius:8px}.ovo-pdf-download{display:inline-block;margin-top:.5rem;color:#4dac96;font-size:.9rem;text-decoration:none}.ovo-pdf-download:hover{text-decoration:underline}.ovo-no-pdf{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:1.5rem;text-align:center;color:#856404}.ovo-no-pdf p{margin:.5rem 0}.ovo-sign-section{background:#f8f9fa;border-radius:8px;padding:1.5rem;margin-top:1rem}.ovo-checkbox{margin-bottom:1rem}.ovo-checkbox label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.ovo-checkbox input[type=checkbox]{margin-top:.25rem;width:18px;height:18px;cursor:pointer}.ovo-checkbox span{font-size:.95rem;line-height:1.4;color:#333}.ovo-name-input{margin-top:1rem}.ovo-name-input label{display:block;font-weight:500;margin-bottom:.5rem;color:#333}.ovo-name-input input{width:100%;padding:.75rem 1rem;border:1px solid #ddd;border-radius:6px;font-size:1rem}.ovo-name-input input:focus{outline:none;border-color:#4dac96;box-shadow:0 0 0 3px #4dac961a}.ovo-error{margin-top:1rem;padding:.75rem 1rem;background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;color:#721c24;font-size:.9rem}.ovo-sign-section{flex-shrink:0}@media(max-width:768px){.modal-content.ovo-modal{max-height:100vh!important;height:100vh;width:100%!important;max-width:100%!important;margin:0;border-radius:0}.ovo-pdf-viewer{min-height:300px}.modal-content.ovo-modal .modal-body{padding:1rem}}.page-header-wrapper{width:100%;background:#fff;box-shadow:0 2px 8px #00000014;margin-bottom:1.5rem}.page-header-container{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto;padding:1.25rem 2rem;gap:1rem;flex-wrap:wrap}.page-header-left{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.page-header-back{padding:.5rem 1rem;background:#fff;color:#667eea;border:1px solid #667eea;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.page-header-back:hover{background:#667eea;color:#fff}.page-header-title-group{display:flex;flex-direction:column;gap:.25rem}.page-header-title{margin:0;font-size:1.5rem;font-weight:600;color:#2c3e50;line-height:1.2}.page-header-subtitle{margin:0;font-size:.9rem;color:#7f8c8d}.page-header-right{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.page-header-user{display:flex;align-items:center;gap:.5rem;padding-right:1rem;border-right:1px solid #e5e7eb}.page-header-user-name{font-weight:600;color:#2c3e50}.page-header-user-role{color:#7f8c8d;font-size:.85rem}.page-header-actions{display:flex;align-items:center;gap:.75rem}.page-header-logout{padding:.75rem 1.5rem;background:#e74c3c;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:44px;display:flex;align-items:center;justify-content:center}.page-header-logout:hover{background:#c0392b}.btn-icon{width:44px;height:44px;border-radius:10px;border:none;background:#667eea;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.btn-icon:hover{background:#5568d3;transform:scale(1.05)}.btn-icon-admin{background:#f39c12}.btn-icon-admin:hover{background:#e67e22}@media(max-width:768px){.page-header-container{flex-direction:row;align-items:center;padding:.75rem 1rem;gap:.75rem}.page-header-left{flex:1;gap:.5rem}.page-header-title{font-size:1.25rem}.page-header-subtitle{font-size:.8rem}.page-header-back{padding:.4rem .75rem;font-size:.85rem}.page-header-right{flex-direction:row;align-items:center;gap:.5rem}.page-header-user{display:none}.page-header-actions{flex-direction:row;gap:.5rem}.page-header-actions .btn-icon{width:40px;height:40px}.page-header-logout{padding:.5rem .75rem;font-size:.85rem;min-height:40px}}.notification-bell{position:relative}.bell-button{position:relative;background:none;border:none;padding:.5rem;cursor:pointer;border-radius:50%;transition:background-color .2s}.bell-button:hover{background-color:#0000000d}.bell-button.has-unread{animation:bellShake .5s ease-in-out}@keyframes bellShake{0%,to{transform:rotate(0)}25%{transform:rotate(10deg)}50%{transform:rotate(-10deg)}75%{transform:rotate(5deg)}}.bell-icon{font-size:1.4rem;display:block}.bell-badge{position:absolute;top:0;right:0;min-width:18px;height:18px;padding:0 5px;background:#dc3545;color:#fff;font-size:.7rem;font-weight:600;border-radius:10px;display:flex;align-items:center;justify-content:center;border:2px solid white;animation:badgePop .3s ease-out}@keyframes badgePop{0%{transform:scale(0)}to{transform:scale(1)}}.notification-dropdown{position:absolute;top:100%;right:0;width:360px;background:#fff;border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:1000;animation:dropdownSlide .2s ease-out;overflow:hidden}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e9ecef;background:#f8f9fa}.dropdown-title{font-weight:600;color:#2c3e50;font-size:1rem}.mark-all-read{background:none;border:none;color:#667eea;font-size:.85rem;cursor:pointer;padding:.25rem .5rem;border-radius:4px;transition:background-color .2s}.mark-all-read:hover{background-color:#667eea1a}.dropdown-content{max-height:400px;overflow-y:auto}.dropdown-loading,.dropdown-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;color:#6c757d;gap:.5rem}.empty-icon{font-size:2rem;opacity:.5}.loading-spinner{width:20px;height:20px;border:2px solid #e9ecef;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.notification-list{list-style:none;margin:0;padding:0}.notification-item{display:grid;grid-template-columns:2rem 1fr 3rem;gap:.75rem;padding:.875rem 1rem;text-decoration:none;color:inherit;position:relative;transition:background-color .2s;background:none;border:none;border-bottom:1px solid #f0f0f0;width:100%;text-align:left;cursor:pointer}.notification-item:hover{background-color:#f8f9fa}.notification-item.unread{background-color:#f8f9ff}.notification-item.unread:hover{background-color:#f0f4ff}.item-icon{font-size:1.25rem;display:flex;align-items:flex-start;padding-top:.125rem}.item-content{display:flex;flex-direction:column;gap:.25rem;overflow:hidden}.item-title{font-weight:600;font-size:.9rem;color:#2c3e50;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-preview{font-size:.8rem;color:#6c757d;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.item-time{font-size:.75rem;color:#adb5bd;text-align:right;white-space:nowrap}.unread-dot{position:absolute;left:.5rem;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#667eea;border-radius:50%}.dropdown-footer{padding:.75rem 1rem;border-top:1px solid #e9ecef;background:#f8f9fa;text-align:center}.view-all-link{color:#667eea;text-decoration:none;font-size:.9rem;font-weight:500;background:none;border:none;cursor:pointer;width:100%}.view-all-link:hover{text-decoration:underline}@media(max-width:480px){.notification-dropdown{width:calc(100vw - 1rem);right:-1rem}.notification-item{grid-template-columns:1.75rem 1fr 2.5rem;gap:.5rem;padding:.75rem}.item-icon{font-size:1.1rem}.item-title{font-size:.85rem}.item-preview{font-size:.75rem}}.notification-banner{display:flex;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;margin:1rem;border-radius:12px;background:#fff3cd;border:1px solid #ffc107;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.notification-banner.urgent{background:linear-gradient(135deg,#ffebee,#fff);border:1px solid #ef5350;border-left:4px solid #d32f2f}.notification-icon{flex-shrink:0;width:40px;height:40px;background:#d32f2f;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1.25rem}.notification-content{flex:1;min-width:0}.notification-title{font-weight:600;font-size:1rem;color:#c62828;margin-bottom:.375rem}.notification-message{font-size:.875rem;color:#5f5f5f}.notification-reason{margin:0 0 .5rem;color:#666;font-style:italic}.notification-feedback-preview{margin-top:.5rem}.feedback-count{display:block;font-weight:500;color:#555;margin-bottom:.375rem}.feedback-list-mini{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.feedback-list-mini li{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;padding:.25rem .5rem;background:#ffffffb3;border-radius:4px;align-items:center}.feedback-list-mini .fb-datum{font-weight:600;color:#333;min-width:55px}.feedback-list-mini .fb-tijd{color:#666;min-width:90px}.feedback-list-mini .fb-client{color:#555}.feedback-list-mini .more-items{color:#888;font-style:italic}.notification-actions{display:flex;flex-direction:column;gap:.5rem;flex-shrink:0}.btn-notification-action{background:#d32f2f;color:#fff;border:none;padding:.625rem 1rem;border-radius:8px;font-weight:600;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:background .2s}.btn-notification-action:hover{background:#b71c1c}.btn-notification-dismiss{background:transparent;color:#888;border:1px solid #ddd;padding:.5rem 1rem;border-radius:8px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-notification-dismiss:hover{background:#f5f5f5;color:#555}@media(max-width:768px){.notification-banner{flex-direction:column;margin:.75rem;padding:1rem}.notification-icon{width:32px;height:32px;font-size:1rem}.notification-actions{flex-direction:row;width:100%;margin-top:.5rem}.btn-notification-action{flex:1}.btn-notification-dismiss{flex:0}.feedback-list-mini li{font-size:.75rem}}@media(max-width:480px){.notification-banner{margin:.5rem}.notification-title{font-size:.9rem}.feedback-list-mini .fb-tijd{display:none}}.notification-banner{position:relative;width:100%;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;animation:slideDown .3s ease-out;transition:opacity .3s,transform .3s}.notification-banner.hiding{opacity:0;transform:translateY(-10px)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-banner.info{background:linear-gradient(135deg,#e7f1ff,#d4e6ff);border:1px solid #b8d4fe;box-shadow:0 2px 8px #667eea26}.notification-banner.warning{background:linear-gradient(135deg,#fff8e6,#fff3cd);border:1px solid #ffc107;box-shadow:0 2px 8px #ffc10733}.banner-content{display:flex;align-items:center;gap:1rem}.banner-icon{font-size:1.5rem;flex-shrink:0}.banner-message{flex:1;display:flex;flex-direction:column;gap:.125rem}.banner-message strong{font-size:.95rem;color:#2c3e50}.banner-detail{font-size:.85rem;color:#6c757d}.banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.banner-btn{padding:.4rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;border:none;text-decoration:none}.banner-btn.primary{background:#667eea;color:#fff}.banner-btn.primary:hover{background:#5a6fd6;transform:translateY(-1px)}.banner-btn.secondary{background:#fff;color:#667eea;border:1px solid #667eea}.banner-btn.secondary:hover{background:#f8f9ff}.banner-btn.dismiss{background:transparent;color:#6c757d;padding:.4rem .5rem;font-size:1rem;line-height:1}.banner-btn.dismiss:hover{color:#2c3e50;background:#0000000d}.notification-banner.warning .banner-btn.primary{background:#f0ad4e}.notification-banner.warning .banner-btn.primary:hover{background:#ec971f}.notification-banner.warning .banner-btn.secondary{color:#856404;border-color:#856404}@media(max-width:768px){.banner-content{flex-wrap:wrap}.banner-message{flex-basis:calc(100% - 3rem)}.banner-actions{flex-basis:100%;justify-content:flex-start;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed rgba(0,0,0,.1)}.banner-btn.dismiss{margin-left:auto}}@media(max-width:480px){.notification-banner{padding:.625rem .75rem}.banner-icon{font-size:1.25rem}.banner-message strong{font-size:.9rem}.banner-detail{font-size:.8rem}.banner-btn{padding:.35rem .6rem;font-size:.8rem}}.client-overview-page{min-height:100vh;width:100%;background:#f5f7fa;padding:0;box-sizing:border-box}.client-overview-page>.page-header-wrapper{max-width:none;margin:0}.client-overview-page>*:not(.page-header-wrapper){max-width:1400px;margin-left:auto;margin-right:auto;padding-left:2rem;padding-right:2rem}.client-overview-page>.client-grid{padding-top:1.5rem;padding-bottom:2rem}.client-overview-header{background:#fff;padding:1.5rem 2rem;border-radius:12px;margin-bottom:2rem;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.header-content h1{margin:0 0 .25rem;font-size:2rem;color:#2c3e50;font-weight:700}.welcome-text{margin:0;color:#7f8c8d;font-size:1rem}.header-actions{display:flex;gap:1rem;align-items:center}.btn-dashboard,.btn-admin,.btn-logout{color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px}.btn-dashboard{background:#667eea;box-shadow:0 2px 4px #667eea33}.btn-dashboard:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 8px #667eea4d}.btn-admin{background:#f39c12;box-shadow:0 2px 4px #f39c1233}.btn-admin:hover{background:#e67e22;transform:translateY(-2px);box-shadow:0 4px 8px #f39c124d}.btn-logout{background:#e74c3c;box-shadow:0 2px 4px #e74c3c33}.btn-logout:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 8px #e74c3c4d}.roster-buttons-section{padding:0 2rem;max-width:1400px;margin:1rem auto 0;display:flex;gap:.75rem}.btn-roster-option{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;padding:.75rem 1.25rem;cursor:pointer;transition:all .2s ease;font-size:.95rem;font-weight:600;box-shadow:0 2px 8px #667eea4d}.btn-roster-option:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-roster-option:active{transform:translateY(0)}.btn-roster-option svg{flex-shrink:0;stroke:#fff}.btn-roster-option.btn-roster-my{background:linear-gradient(135deg,#28a745,#20c997);box-shadow:0 2px 8px #28a7454d}.btn-roster-option.btn-roster-my:hover{box-shadow:0 4px 12px #28a74566}.client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;animation:fadeIn .4s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.client-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #00000014;transition:all .3s ease;overflow:hidden;display:flex;flex-direction:column;animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.client-card:hover{box-shadow:0 8px 24px #0000001f}.client-card-header{background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem 1.25rem;color:#fff;display:flex;align-items:center;gap:.875rem;position:relative}.client-avatar{width:48px;height:48px;border-radius:50%;background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:700;color:#fff;flex-shrink:0;border:2px solid rgba(255,255,255,.3)}.client-card-header h2{margin:0;font-size:1.25rem;font-weight:600;flex:1;text-shadow:0 2px 4px rgba(0,0,0,.1)}.mandatory-message-badge{position:absolute;top:1rem;right:1rem;background:#e74c3c;color:#fff;border-radius:20px;padding:.5rem .75rem;display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #e74c3c4d;z-index:10;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.mandatory-message-badge:hover{background:#c0392b;transform:scale(1.1);box-shadow:0 4px 12px #e74c3c66}.mandatory-message-badge svg{width:20px;height:20px}.badge-count{font-weight:700;font-size:.875rem}.client-card-body{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;gap:.5rem;position:relative}.no-cpr-badge{position:absolute;top:8px;right:10px;z-index:5;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));cursor:help}.client-address{margin:0;color:#667eea;font-size:.9rem}.client-phone{margin:0;font-size:.9rem}.client-phone a{color:#4dac96;text-decoration:none}.client-phone a:hover{text-decoration:underline}.client-contacts{display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #eee}.client-contacts .contact-line{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.client-contacts .contact-icon{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;flex-shrink:0}.client-contacts .contact-icon-hoofd{background:#667eea;color:#fff}.client-contacts .contact-icon-nood{background:#e74c3c;color:#fff}.client-contacts .contact-naam{color:#555}.client-contacts .contact-tel{color:#4dac96;text-decoration:none;margin-left:auto}.client-contacts .contact-tel:hover{text-decoration:underline}.client-card.declaration-only{opacity:.85;border:2px dashed #f39c12}.client-card.declaration-only .client-card-header{background:linear-gradient(135deg,#f39c12,#e67e22)}.declaration-only-banner{background:#fef3c7;color:#92400e;text-align:center;padding:.5rem;font-size:.8rem;font-weight:600}.btn-view-declaration{width:100%;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #f39c124d;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-view-declaration:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1266}.client-card-footer{padding:.75rem 1.25rem 1rem;border-top:1px solid #ecf0f1}.btn-view-roster{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #667eea4d;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-view-roster:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-view-roster:active{transform:translateY(0)}.btn-sign-ovo{width:100%;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border:none;padding:.75rem 1.25rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-sign-ovo:hover{transform:translateY(-2px);box-shadow:0 4px 12px #f39c1266}.btn-sign-ovo:active{transform:translateY(0)}@media(max-width:768px){.client-overview-page{padding:0}.roster-buttons-section{padding:0 1rem;margin:.75rem auto 0;gap:.5rem}.btn-roster-option{padding:.6rem 1rem;font-size:.85rem;border-radius:8px}.btn-roster-option svg{width:16px;height:16px}.client-overview-page>.client-grid{padding:.75rem 1rem;gap:.75rem}.client-overview-header{padding:1rem;flex-direction:column;align-items:stretch}.header-content h1{font-size:1.5rem}.header-actions{flex-direction:column;width:100%}.header-actions button{width:100%}.client-grid{grid-template-columns:1fr}.client-card-header{padding:.75rem 1rem;gap:.625rem}.client-card-header h2{font-size:1.1rem}.client-avatar{width:38px;height:38px;font-size:1.1rem}.client-card-body{padding:.625rem 1rem;gap:.25rem}.client-address,.client-phone{font-size:.85rem}.client-contacts{margin-top:.375rem;padding-top:.375rem;gap:.25rem}.client-contacts .contact-line{font-size:.75rem}.client-contacts .contact-icon{width:16px;height:16px;font-size:.65rem}.client-card-footer{padding:.5rem 1rem .75rem}.btn-view-roster,.btn-view-declaration{padding:.625rem 1rem;font-size:.9rem}.mandatory-message-badge{padding:.35rem .5rem;font-size:.75rem;top:.75rem;right:.75rem}.mandatory-message-badge svg{width:16px;height:16px}.no-cpr-badge svg{width:32px;height:32px}}@media(max-width:480px){.client-overview-page>.client-grid{padding:.5rem 1rem;gap:.5rem}.client-card-header{padding:.625rem .875rem}.client-card-header h2{font-size:1rem}.client-avatar{width:34px;height:34px;font-size:1rem}.client-card-body{padding:.5rem .875rem}.client-card-footer{padding:.5rem .875rem .625rem}}.client-selector{margin-bottom:1.5rem}.client-tabs{display:flex;gap:1rem;flex-wrap:wrap}.client-tab{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:.75rem 1.5rem;cursor:pointer;transition:all .2s;min-width:200px}.client-tab:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea33}.client-tab.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;color:#fff;box-shadow:0 4px 12px #667eea4d}.client-name{font-weight:600;font-size:1rem;color:inherit}.client-tab:not(.active) .client-name{color:#2c3e50}.client-tab-all{background:#f8f9fa;border-style:dashed}.client-tab-all.active{background:linear-gradient(135deg,#f39c12,#e67e22);border-color:#f39c12;border-style:solid}@media(max-width:768px){.client-selector{margin:0 1rem .75rem}.client-tabs{gap:.5rem}.client-tab{min-width:auto;flex:1;padding:.5rem .75rem;border-radius:6px;text-align:center}.client-name{font-size:.85rem}}.toast-container{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none;width:calc(100% - 2rem);max-width:400px}.toast{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;border-radius:10px;box-shadow:0 4px 20px #00000026;pointer-events:auto;animation:toastSlideIn .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.toast-exit{animation:toastSlideOut .2s ease-in forwards}@keyframes toastSlideOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}.toast-icon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;flex-shrink:0}.toast-message{flex:1;font-size:.9rem;font-weight:500;line-height:1.3}.toast-close{background:none;border:none;font-size:1.25rem;cursor:pointer;opacity:.7;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;flex-shrink:0}.toast-close:hover{opacity:1;background:#0000001a}.toast-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border:1px solid #28a745;color:#155724}.toast-success .toast-icon{background:#28a745;color:#fff}.toast-success .toast-close{color:#155724}.toast-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border:1px solid #dc3545;color:#721c24}.toast-error .toast-icon{background:#dc3545;color:#fff}.toast-error .toast-close{color:#721c24}.toast-warning{background:linear-gradient(135deg,#fff3cd,#ffeeba);border:1px solid #ffc107;color:#856404}.toast-warning .toast-icon{background:#ffc107;color:#856404}.toast-warning .toast-close{color:#856404}.toast-info{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border:1px solid #17a2b8;color:#0c5460}.toast-info .toast-icon{background:#17a2b8;color:#fff}.toast-info .toast-close{color:#0c5460}@media(max-width:480px){.toast-container{bottom:1rem;width:calc(100% - 1rem);left:.5rem;transform:none}.toast{padding:.75rem;border-radius:8px}.toast-message{font-size:.85rem}}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .2s ease-out}.modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}.modal-header{padding:.875rem 1.25rem;border-bottom:none;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;border-radius:12px 12px 0 0}.modal-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#fff!important}.modal-close{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:32px;height:32px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;line-height:1;padding:0}.modal-close:hover{background:#ffffff4d;transform:rotate(90deg)}.modal-body{padding:1rem 1.25rem}.shift-info-compact{background:#f8f9fa;padding:.625rem .875rem;border-radius:6px;margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.shift-info-main{display:flex;align-items:center;gap:.5rem}.shift-client{font-weight:600;color:#212529;font-size:.95rem}.shift-dienst{color:#667eea;font-size:.85rem;padding:.125rem .5rem;background:#667eea1a;border-radius:4px}.shift-info-datetime{color:#6c757d;font-size:.85rem}.modal-body h3{margin:.75rem 0 .5rem;font-size:1rem;color:#2c3e50}.modal-body h4{margin:.75rem 0 .5rem;font-size:.95rem;color:#2c3e50}.service-type-grid{display:grid;grid-template-columns:1fr;gap:.5rem;margin-bottom:1rem}.service-type-card{border:2px solid #667eea;border-radius:8px;padding:.75rem 1rem;cursor:pointer;transition:all .2s;background:#fff;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.service-type-card:not(.disabled):hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.service-type-card.disabled{cursor:not-allowed;opacity:.6}.service-type-name{font-size:.95rem;font-weight:600;color:#2c3e50}.service-type-tariff{font-size:.95rem;font-weight:600;color:#667eea}.service-type-capacity{font-size:.8rem;color:#6c757d}.service-type-action{padding:.25rem .5rem;background:#f8f9fa;border-radius:4px;text-align:center;font-size:.75rem;font-weight:600;color:#495057}.enrolled-indicator{background:#d4edda;color:#155724}.available-indicator{background:#e8f5e9;color:#2e7d32}.full-indicator{background:#ffebee;color:#c62828}.service-type-card.full{border-style:dashed;opacity:.7}.enrolled-staff-section{background:#f8f9fa;padding:.75rem;border-radius:6px;margin-top:.75rem}.behoefte-group{margin-bottom:.75rem}.behoefte-group:last-child{margin-bottom:0}.behoefte-header{padding:.35rem 0;border-bottom:1px solid #dee2e6;margin-bottom:.5rem;font-size:.9rem}.behoefte-tariff{color:#6c757d;font-weight:400;font-size:.9rem}.enrolled-staff-list{display:flex;flex-direction:column;gap:.5rem}.enrolled-staff-item-extended{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#fff;border-radius:6px;border-left:4px solid #667eea}.enrolled-staff-info{display:flex;flex-direction:column;gap:.25rem}.enrolled-name{font-weight:600;font-size:1rem}.enrolled-status{font-size:.85rem;color:#6c757d}.btn-takeover{background:#f39c12;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-takeover:hover{background:#e67e22;transform:translateY(-2px);box-shadow:0 4px 8px #f39c124d}.overlap-error-dialog{background:#fff5f5;border:2px solid #e74c3c;border-radius:12px;padding:2rem;margin-top:1rem;text-align:center}.overlap-error-icon{font-size:3rem;margin-bottom:1rem}.overlap-error-dialog h3{margin:0 0 1rem;color:#c0392b;font-size:1.3rem}.overlap-error-message{color:#c0392b;font-size:1rem;line-height:1.5;margin:0;padding:1rem;background:#e74c3c1a;border-radius:8px}.takeover-confirm-dialog{background:#fff3cd;border:2px solid #ffc107;border-radius:12px;padding:2rem;margin-top:1rem}.takeover-confirm-dialog h3{margin:0 0 1rem;color:#856404}.takeover-confirm-dialog p{margin:.75rem 0;color:#856404}.takeover-info{font-size:.9rem;font-style:italic;padding-top:.5rem;border-top:1px solid #ffc107;margin-top:1rem}.takeover-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-confirm-takeover{flex:1;background:#28a745;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-confirm-takeover:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 8px #28a7454d}.btn-cancel-takeover{flex:1;background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel-takeover:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 8px #6c757d4d}.unenroll-confirm-dialog{background:#fff5f5;border:2px solid #e74c3c;border-radius:12px;padding:1.5rem;margin-top:1.5rem}.unenroll-confirm-dialog h3{margin:0 0 1rem;color:#c0392b;font-size:1.2rem}.unenroll-confirm-dialog p{margin:.75rem 0;color:#721c24}.unenroll-details{padding:1rem;background:#e74c3c1a;border-radius:8px;font-size:.95rem;line-height:1.5}.unenroll-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-confirm-unenroll{flex:1;background:#e74c3c;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-confirm-unenroll:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 8px #e74c3c4d}.btn-cancel-unenroll{flex:1;background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel-unenroll:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 8px #6c757d4d}.enroll-confirm-dialog{background:#e8f5e9;border:2px solid #28a745;border-radius:12px;padding:1.5rem;margin-top:1.5rem}.enroll-confirm-dialog h3{margin:0 0 1rem;color:#1b5e20;font-size:1.2rem}.enroll-confirm-dialog p{margin:.75rem 0;color:#2e7d32}.enroll-details{padding:1rem;background:#28a7451a;border-radius:8px;font-size:.95rem;line-height:1.5}.enroll-tariff{font-size:1rem;padding-top:.5rem}.enroll-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-confirm-enroll{flex:1;background:#28a745;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-confirm-enroll:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 8px #28a7454d}.btn-cancel-enroll{flex:1;background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel-enroll:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 8px #6c757d4d}.enrollment-actions{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #ecf0f1}.btn-remove-shift{width:100%;background:#e74c3c;color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-remove-shift:hover{background:#c0392b;transform:translateY(-2px);box-shadow:0 4px 12px #e74c3c4d}.modal-footer{padding:.75rem 1.25rem;border-top:1px solid #ecf0f1;display:flex;justify-content:center}.btn-cancel{background:#6c757d;color:#fff;border:none;padding:.5rem 2rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.btn-cancel:hover{background:#5a6268;transform:translateY(-2px);box-shadow:0 4px 8px #6c757d4d}@media(max-width:768px){.modal-overlay{padding:2rem .5rem .5rem;align-items:flex-start}.modal-content{margin:0;border-radius:12px;max-height:90vh}.modal-header{padding:.75rem 1rem;border-radius:12px 12px 0 0}.modal-header h2{font-size:1.1rem}.modal-close{width:32px;height:32px;font-size:1.5rem}.modal-body{padding:.75rem 1rem}.modal-body h3{margin:.75rem 0 .5rem;font-size:1rem}.modal-body h4{margin:.75rem 0 .5rem;font-size:.95rem}.shift-info-compact{flex-direction:column;align-items:flex-start;gap:.25rem;padding:.5rem .75rem}.shift-info-main{flex-wrap:wrap}.shift-client{font-size:.9rem}.shift-dienst,.shift-info-datetime{font-size:.8rem}.service-type-grid{grid-template-columns:1fr;gap:.5rem;margin-bottom:.75rem}.service-type-card{padding:.75rem;border-width:2px;border-radius:8px;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.25rem .5rem}.service-type-name,.service-type-tariff{font-size:.9rem;flex:0 0 auto}.service-type-capacity{font-size:.75rem;flex:0 0 auto}.service-type-action{margin-top:0;padding:.25rem .5rem;font-size:.7rem;flex:0 0 auto;white-space:nowrap}.enrolled-staff-section{padding:0;margin-top:.75rem}.behoefte-group{margin-bottom:.75rem}.behoefte-header{padding:.35rem 0;font-size:.9rem}.enrolled-staff-item-extended{padding:.5rem;border-left-width:3px}.enrolled-name{font-size:.9rem}.enrolled-status{font-size:.75rem}.btn-takeover{padding:.35rem .75rem;font-size:.8rem}.enrollment-actions{margin-top:1rem;padding-top:.75rem}.btn-remove-shift{padding:.625rem 1rem;font-size:.9rem}.takeover-actions{flex-direction:column;gap:.5rem;margin-top:1rem}.btn-confirm-takeover,.btn-cancel-takeover{padding:.625rem 1rem;font-size:.9rem}.unenroll-confirm-dialog{padding:1rem;margin-top:1rem}.unenroll-confirm-dialog h3{font-size:1rem;margin-bottom:.75rem}.unenroll-confirm-dialog p{margin:.5rem 0;font-size:.9rem}.unenroll-details{padding:.75rem;font-size:.85rem}.unenroll-actions{flex-direction:column;gap:.5rem;margin-top:1rem}.btn-confirm-unenroll,.btn-cancel-unenroll{padding:.625rem 1rem;font-size:.9rem}.enroll-confirm-dialog{padding:1rem;margin-top:1rem}.enroll-confirm-dialog h3{font-size:1rem;margin-bottom:.75rem}.enroll-confirm-dialog p{margin:.5rem 0;font-size:.9rem}.enroll-details{padding:.75rem;font-size:.85rem}.enroll-tariff{font-size:.9rem}.enroll-actions{flex-direction:column;gap:.5rem;margin-top:1rem}.btn-confirm-enroll,.btn-cancel-enroll{padding:.625rem 1rem;font-size:.9rem}.modal-footer{padding:.75rem 1rem}.btn-cancel{padding:.625rem 1rem;font-size:.9rem;width:100%}}@media(max-width:480px){.modal-overlay{padding:.75rem;align-items:center}.modal-content{border-radius:12px;max-height:calc(100vh - 1.5rem);min-height:auto}.modal-header{border-radius:12px 12px 0 0}}.extra-dienst-modal{max-width:420px;max-height:90vh;overflow-y:auto}.extra-dienst-modal .modal-header{background:linear-gradient(135deg,#28a745,#20c997);color:#fff;padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center}.extra-dienst-modal .modal-header h2{margin:0;font-size:1.1rem;color:#fff}.extra-dienst-modal .btn-close{background:#fff3;border:none;color:#fff;font-size:1.25rem;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s}.extra-dienst-modal .btn-close:hover{background:#ffffff4d}.extra-dienst-modal .modal-body{padding:1rem 1.25rem}.extra-dienst-modal .alert-error{background:#f8d7da;color:#721c24;padding:.5rem .75rem;border-radius:6px;margin-bottom:.75rem;font-size:.875rem}.client-info-banner{background:#e8f5e9;color:#2e7d32;padding:.5rem .75rem;border-radius:6px;margin-bottom:.75rem;font-size:.9rem}.extra-dienst-modal .form-group{margin-bottom:.5rem;display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem}.extra-dienst-modal .form-group label{min-width:70px;width:70px;flex-shrink:0;font-weight:600;color:#2c3e50;font-size:.85rem;display:inline-block!important;margin-bottom:0!important}.extra-dienst-modal .form-group input[type=text],.extra-dienst-modal .form-group input[type=date],.extra-dienst-modal .form-group input[type=time]{flex:1;padding:.4rem .6rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;transition:border-color .2s;width:auto!important}.extra-dienst-modal .form-group textarea{flex:1;padding:.4rem .6rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;min-height:50px;resize:vertical}.extra-dienst-modal .form-group input:focus,.extra-dienst-modal .form-group textarea:focus{outline:none;border-color:#28a745}.extra-dienst-modal .form-group.stacked{flex-direction:column!important;align-items:flex-start;gap:.25rem}.extra-dienst-modal .form-group.stacked label{min-width:auto;width:auto}.extra-dienst-modal .form-group.stacked textarea{width:100%}.extra-dienst-modal .form-row{display:flex;gap:.5rem;margin-bottom:.5rem}.extra-dienst-modal .form-row .form-group{flex:1;margin-bottom:0}.extra-dienst-modal .form-row .form-group label{min-width:70px;width:70px}.overnight-notice{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:.5rem .75rem;margin-bottom:.5rem;display:flex;align-items:center;gap:.5rem;font-size:.85rem}.overnight-notice .notice-icon{font-size:1.1rem}.overnight-notice .notice-text strong{color:#856404}.overnight-notice .notice-text p{margin:0;font-size:.8rem;color:#856404}.dienst-types-section{margin-top:.5rem}.dienst-types-section>label{display:block;font-weight:600;color:#2c3e50;font-size:.875rem;margin-bottom:.375rem}.dienst-types-grid{display:flex;flex-direction:column;gap:.25rem}.dienst-type-item{display:flex;justify-content:space-between;align-items:center;padding:.375rem .625rem;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;transition:all .2s}.dienst-type-item.selected{background:#e8f5e9;border-color:#28a745}.dt-info{display:flex;align-items:center;gap:.375rem}.dt-color{width:10px;height:10px;border-radius:50%}.dt-name{font-weight:500;font-size:.875rem}.dt-aantal{display:flex;align-items:center;gap:.375rem}.btn-aantal{width:26px;height:26px;border:1px solid #28a745;background:#fff;color:#28a745;border-radius:50%;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-aantal:hover{background:#28a745;color:#fff}.aantal-value{min-width:20px;text-align:center;font-weight:600;font-size:.95rem}.extra-dienst-modal .modal-footer{padding:.75rem 1.25rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:.5rem}.extra-dienst-modal .btn-secondary{background:#f8f9fa;border:1px solid #ccc;color:#666;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s}.extra-dienst-modal .btn-secondary:hover{background:#e9ecef}.extra-dienst-modal .btn-primary{background:linear-gradient(135deg,#28a745,#20c997);border:none;color:#fff;padding:.5rem 1rem;border-radius:6px;font-weight:600;font-size:.875rem;cursor:pointer;transition:all .2s}.extra-dienst-modal .btn-primary:hover{transform:translateY(-1px);box-shadow:0 2px 8px #28a7454d}.extra-dienst-modal .btn-primary:disabled,.extra-dienst-modal .btn-secondary:disabled{opacity:.6;cursor:not-allowed}.overlap-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem;animation:fadeIn .2s ease-out}.overlap-modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;width:100%;padding:2rem;text-align:center;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.overlap-modal-icon{font-size:4rem;margin-bottom:1rem}.overlap-modal-content h2{margin:0 0 1rem;color:#c0392b;font-size:1.5rem;font-weight:600}.overlap-modal-message{color:#495057;font-size:1rem;line-height:1.6;margin:0 0 1.5rem;padding:1rem;background:#fff5f5;border-radius:8px;border-left:4px solid #e74c3c;text-align:left}.overlap-modal-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;width:100%}.overlap-modal-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}@media(max-width:480px){.overlap-modal-content{margin:1rem;padding:1.5rem}.overlap-modal-icon{font-size:3rem}.overlap-modal-content h2{font-size:1.25rem}}.dagboek-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:1rem}.dagboek-container{background:#e5ddd5;border-radius:12px;width:100%;max-width:500px;height:90vh;max-height:700px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0000004d}.dagboek-header{background:var(--color-accent-gradient);color:#fff;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between}.dagboek-header-left{display:flex;align-items:center;gap:.75rem}.dagboek-avatar{width:40px;height:40px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.1rem}.dagboek-header-info h2{margin:0;font-size:1rem;font-weight:500}.dagboek-header-info span{font-size:.75rem;opacity:.8}.dagboek-close{background:none;border:none;color:#fff;font-size:1.75rem;cursor:pointer;padding:0;line-height:1;opacity:.8}.dagboek-close:hover{opacity:1}.dagboek-search{padding:.5rem;background:#f0f0f0}.dagboek-search input{width:100%;padding:.5rem 1rem;border:none;border-radius:20px;background:#fff;font-size:.9rem}.dagboek-search input:focus{outline:none}.dagboek-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23d4cdc4' fill-opacity='0.4'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E")}.dagboek-loading,.dagboek-empty{text-align:center;padding:2rem;color:#667}.message{max-width:85%;padding:.5rem .75rem;border-radius:8px;background:#fff;box-shadow:0 1px 1px #0000001a;align-self:flex-start;position:relative}.message.own{background:#dcf8c6;align-self:flex-end}.message.important{border-left:3px solid #ff6b6b}.message-important-badge{background:#fff3cd;color:#856404;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.message-important-badge button{background:#28a745;color:#fff;border:none;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;cursor:pointer}.message-header{display:flex;align-items:center;gap:.4rem;margin-bottom:.25rem}.message-avatar,.message-avatar-initial{width:20px;height:20px;border-radius:50%;flex-shrink:0}.message-avatar-initial{background:var(--color-accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600}.message-author{font-size:.75rem;font-weight:600;color:var(--color-accent)}.message-time{font-size:.65rem;color:#999;margin-left:auto}.message-content{font-size:.9rem;line-height:1.4;word-wrap:break-word}.message-photos{display:flex;gap:.25rem;margin-top:.5rem;flex-wrap:wrap}.message-photos img{max-width:150px;max-height:150px;border-radius:6px;cursor:pointer;object-fit:cover}.message-footer{margin-top:.25rem}.message-reply-btn{background:#f0f0f0;border:none;color:#555;font-size:.85rem;cursor:pointer;padding:.4rem .75rem;border-radius:12px;transition:background .2s}.message-reply-btn:hover{background:#e0e0e0;color:var(--color-accent)}.replies{margin-top:.5rem;margin-left:1.5rem;padding-left:.75rem;border-left:2px solid var(--color-accent)}.reply{display:flex;gap:.4rem;padding:.4rem 0}.reply-avatar,.reply-avatar-initial{width:24px;height:24px;border-radius:50%;flex-shrink:0}.reply-avatar-initial{background:var(--color-accent-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:600}.reply-content{flex:1;min-width:0}.reply-header{display:flex;align-items:center;gap:.5rem}.reply-author{font-size:.75rem;font-weight:600;color:var(--color-accent-dark)}.reply-time{font-size:.65rem;color:#999}.reply-text{font-size:.85rem;color:#333}.reply-input{display:flex;gap:.5rem;margin-top:.5rem}.reply-input input{flex:1;padding:.4rem .75rem;border:1px solid #ddd;border-radius:20px;font-size:.85rem}.reply-input input:focus{outline:none;border-color:var(--color-accent)}.reply-input button{background:var(--color-accent);color:#fff;border:none;padding:.4rem .75rem;border-radius:16px;cursor:pointer;font-size:.8rem;font-weight:500}.reply-input button:disabled{opacity:.5;cursor:not-allowed}.replies-loading{font-size:.8rem;color:#999;padding:.5rem 0}.input-photo-preview{display:flex;gap:.5rem;padding:.5rem 1rem;background:#f0f0f0;overflow-x:auto}.preview-item{position:relative;flex-shrink:0}.preview-item img{width:60px;height:60px;object-fit:cover;border-radius:8px}.preview-item button{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:#f44;color:#fff;border:none;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.dagboek-input-area{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#f0f0f0}.important-toggle{cursor:pointer;font-size:1.25rem;opacity:.5;transition:opacity .2s}.important-toggle input{display:none}.important-toggle.active{opacity:1;color:#d9534f}.media-btn{background:none;border:none;cursor:pointer;padding:.25rem;font-size:1.5rem;opacity:.7;transition:opacity .2s}.media-btn:hover{opacity:1}.media-btn:disabled{opacity:.3;cursor:not-allowed}.dagboek-input-area>input[type=text]{flex:1;padding:.6rem 1rem;border:none;border-radius:20px;font-size:.95rem}.dagboek-input-area>input[type=text]:focus{outline:none}.send-btn{background:var(--color-accent);color:#fff;border:none;padding:.5rem 1rem;border-radius:18px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background .2s}.send-btn:hover{background:var(--color-accent-dark)}.send-btn:disabled{background:#ccc;cursor:not-allowed}@media(max-width:550px){.dagboek-overlay{padding:0}.dagboek-container{max-width:100%;height:100%;max-height:100%;border-radius:0}.message{max-width:90%}}.roster-overview{min-height:100vh;background:#f5f7fa;padding:1.5rem}.roster-header{background:#fff;padding:1.5rem 2rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014;display:flex;justify-content:space-between;align-items:center}.header-left{display:flex;align-items:center;gap:1.5rem}.header-left h1{margin:0;font-size:1.75rem;color:#2c3e50}.header-right{display:flex;align-items:center;gap:.75rem}.btn-dagboek{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#3498db,#2980b9);color:#fff!important;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #3498db4d;white-space:nowrap;text-decoration:none!important}.btn-dagboek .btn-text{color:#fff!important}.btn-dagboek svg{color:#fff!important}.btn-dagboek:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3498db66;text-decoration:none!important}.btn-dagboek:active{transform:translateY(0)}.btn-extra-dienst{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#28a745,#20c997);color:#fff!important;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #28a7454d;white-space:nowrap;text-decoration:none!important}.btn-extra-dienst .btn-text{color:#fff!important}.btn-extra-dienst svg{color:#fff!important}.btn-extra-dienst:hover{transform:translateY(-2px);box-shadow:0 4px 12px #28a74566;text-decoration:none!important}.btn-extra-dienst:active{transform:translateY(0)}.roster-empty{background:#fff;padding:3rem 2rem;border-radius:12px;text-align:center;color:#7f8c8d;font-size:1.1rem}.roster-container{display:flex;flex-direction:column;gap:2rem}.roster-week{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014}.roster-week-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid #ecf0f1}.roster-week-header h3{margin:0;font-size:1.5rem;color:#2c3e50;font-weight:600}.week-dates{color:#7f8c8d;font-size:.95rem}.roster-grid{display:grid;grid-template-columns:150px repeat(7,1fr);gap:.5rem;overflow-x:auto}.roster-grid.all-clients-grid{grid-template-columns:200px repeat(7,1fr)}.time-column{display:flex;flex-direction:column;gap:.5rem}.time-header{height:50px;background:#bababa;border-radius:8px;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center}.time-label{height:100px;background:#f8f9fa;border-radius:8px;padding:.75rem;display:flex;flex-direction:column;justify-content:center;font-size:.9rem;font-weight:600;color:#495057;text-align:center}.time-range{font-size:.75rem;color:#6c757d;font-weight:400;margin-top:.25rem}.week-column{display:flex;flex-direction:column;gap:.5rem}.week-header{height:50px;background:#bababa;border-radius:8px;padding:.5rem .75rem;color:#fff;text-align:center;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:.4rem}.day-abbr{font-size:.95rem;font-weight:700;color:#fff!important}.day-date{font-size:.85rem;opacity:.9;color:#fff!important}.week-shifts{display:flex;flex-direction:column;gap:.5rem}.shift-slot{height:100px;border-radius:8px;padding:.5rem;cursor:pointer;transition:all .2s;position:relative;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.shift-slot.empty{background:#f8f9fa;border:2px dashed #dee2e6;cursor:default}.shift-slot:not(.empty){background:#fff;border:2px solid #e9ecef}.shift-slot:not(.empty):hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:#667eea}.shift-slot.has-warning{border-color:#f39c12;background:#fff9e6}.shift-slot.disabled{background:#f5f5f5!important;border-color:#e0e0e0!important;cursor:not-allowed!important;opacity:.6}.shift-slot.past-but-enrollable{background:#fff8e1;border-color:#ffcc80;opacity:.85}.shift-slot.past-but-enrollable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ff980033;border-color:#ffa726}.shift-slot.disabled:hover{transform:none!important;box-shadow:none!important;border-color:#e0e0e0!important}.shift-slot.disabled .staff-badge{opacity:.7}.required-staff-indicator{position:absolute;top:.25rem;left:.25rem;color:#999;font-size:.75rem;font-weight:600}.shift-content{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.staff-badge{background:#667eea;color:#fff;padding:.35rem .6rem;border-radius:4px;font-size:.75rem;font-weight:600;display:inline-flex;align-items:center;gap:.35rem;max-width:100%;white-space:nowrap;overflow:hidden}.staff-icon{flex-shrink:0;font-size:.75rem;background:#fff;padding:.25rem;border-radius:3px;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem}.staff-name{overflow:hidden;text-overflow:ellipsis}.available-text{color:#6c757d;font-size:.8rem;font-style:italic}.shift-time-label{display:none;font-size:.7rem;color:#6c757d;font-weight:500;margin-bottom:.35rem;padding-bottom:.25rem;border-bottom:1px solid #e9ecef}.warning-triangle{position:absolute;bottom:.25rem;right:.25rem;font-size:1.2rem;color:#f39c12;z-index:5}.shift-slot-container{display:flex;flex-direction:column;gap:.25rem;min-height:100px}.shift-slot-container.disabled{opacity:.6}.shift-slot-container .shift-slot{flex:1;min-height:45px;height:auto}.shift-slot-container .shift-slot.multi-dienst{border-width:2px}.shift-slot.is-extra{border-color:#28a745;border-style:dashed;background:linear-gradient(135deg,#f0fff4,#e8f5e9)}.shift-slot.is-extra:hover{border-color:#20c997;box-shadow:0 4px 12px #28a74533}.all-clients-grid .time-label{height:100px;padding:.5rem .75rem;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:.1rem;overflow:hidden}.client-name-in-label{font-size:.8rem;font-weight:600;color:#667eea;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dienst-name-in-label{font-size:.85rem;font-weight:500;color:#495057;display:flex;align-items:center;gap:.35rem}.extra-tag{font-size:.6rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#28a745,#20c997);padding:.1rem .3rem;border-radius:3px;text-transform:uppercase}.time-label.is-extra-row{border-left:3px solid #28a745;background:linear-gradient(135deg,#f0fff4,#f8f9fa)}@media(max-width:1599px){.all-clients-grid{display:flex;flex-direction:column;gap:1rem}.all-clients-grid .time-column{display:none}.all-clients-grid .week-column{display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:start}.all-clients-grid .week-header{height:auto;min-width:100px;flex-direction:column;gap:.15rem}.all-clients-grid .week-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem}.all-clients-grid .shift-time-label{display:block}.all-clients-grid .shift-time-label .mobile-client-name{display:block;font-weight:600;color:#667eea;font-size:.8rem;margin-bottom:.1rem}.all-clients-grid .shift-time-label .mobile-dienst-info{display:block;font-size:.75rem;color:#6c757d}.all-clients-grid .shift-slot{height:auto;min-height:80px;padding:.5rem}}@media(min-width:1600px){.all-clients-grid .shift-slot.all-clients-mode .shift-time-label{display:none}}.extra-badge{position:absolute;top:.25rem;right:.25rem;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 1px 3px #28a7454d;z-index:10}@media(max-width:1400px){.roster-grid{grid-template-columns:130px repeat(7,1fr);font-size:.9rem}.time-label{padding:.5rem}.shift-slot{height:90px;padding:.4rem}}@media(max-width:1024px){.roster-overview{padding:1rem}.roster-grid{display:flex;flex-direction:column;gap:1rem}.week-column{display:grid;grid-template-columns:auto 1fr;gap:.5rem;align-items:start}.week-header{height:auto;min-width:100px;flex-direction:column;gap:.15rem}.day-abbr{margin-bottom:0}.week-shifts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5rem}.time-column{display:none}.shift-time-label{display:block}.shift-time-label .mobile-client-name{display:block;font-weight:600;color:#667eea;font-size:.8rem;margin-bottom:.1rem}.shift-time-label .mobile-dienst-info{display:block;font-size:.75rem;color:#6c757d}.shift-slot{height:auto;min-height:80px;padding:.5rem}}@media(max-width:768px){.roster-overview{padding:0}.roster-container{gap:.75rem;padding:0 1rem 1rem}.roster-week{padding:0;border-radius:10px;overflow:hidden}.roster-week-header{padding:.75rem 1rem;margin-bottom:0;border-bottom:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.roster-week-header h3{font-size:1.1rem;color:#fff}.week-dates{color:#ffffffd9;font-size:.85rem}.roster-grid{gap:0;display:flex;flex-direction:column;width:100%}.week-column{display:flex;flex-direction:column;gap:0;border-bottom:1px solid #eee;width:100%}.week-column:last-of-type{border-bottom:none}.week-header{background:#f8f9fa;border-radius:0;padding:.4rem 1rem;height:auto;justify-content:flex-start;gap:.25rem;flex-direction:row}.day-abbr{font-size:.85rem;font-weight:700;color:#2c3e50!important}.day-date{font-size:.85rem;color:#7f8c8d!important}.week-shifts{display:flex;flex-direction:column;gap:0;width:100%}.shift-slot.empty{display:none!important}.shift-slot{height:auto;min-height:auto;padding:.5rem 1rem;border-radius:0;border:none;border-bottom:1px solid #f0f0f0;background:#fff;margin-top:1px;width:100%!important;max-width:100%!important;box-sizing:border-box;flex-shrink:0}.shift-slot:not(.empty):hover{transform:none;box-shadow:none;background:#f8f9fa}.shift-slot.has-warning{background:#fffbeb;border-left:3px solid #f39c12}.shift-time-label{display:block;font-size:.75rem;color:#7f8c8d;margin-bottom:.25rem}.shift-content{flex-direction:row;flex-wrap:wrap;gap:.35rem;align-items:center}.staff-badge{padding:.25rem .5rem;font-size:.75rem;border-radius:4px}.available-text{font-size:.8rem;color:#999;font-style:italic}.warning-triangle{position:absolute;bottom:.25rem;right:.25rem;font-size:.9rem}.required-staff-indicator{position:static;font-size:.7rem;background:#eee;padding:.15rem .35rem;border-radius:3px;margin-left:auto}.extra-badge{font-size:.65rem;padding:.15rem .35rem}.shift-slot-container{min-height:auto;gap:0}.shift-slot-container .shift-slot{min-height:auto}.shift-slot-container .shift-slot.multi-dienst{border-top:1px dashed #dee2e6}.shift-slot-container .shift-slot.multi-dienst:first-child{border-top:none}.time-column{display:none}.roster-header{flex-direction:row;align-items:center;padding:.75rem 1rem;border-radius:0;margin-bottom:.75rem;gap:.75rem}.header-left{flex:1;flex-direction:row;align-items:center;gap:.75rem}.header-left h1{font-size:1.25rem}.btn-back{padding:.5rem .75rem;font-size:.9rem}.btn-back-text{display:none}.btn-back-icon{font-size:1.1rem}.header-right{gap:.5rem}.btn-dagboek,.btn-extra-dienst{width:40px;height:40px;padding:0;border-radius:10px;justify-content:center}.btn-dagboek .btn-text,.btn-extra-dienst .btn-text{display:none}}.roster-mode-toggle{display:flex;gap:.75rem;margin:0 1.5rem 1rem}.roster-mode-toggle .mode-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;font-size:.95rem;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #667eea4d;opacity:.6}.roster-mode-toggle .mode-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66;opacity:.8}.roster-mode-toggle .mode-btn.active{opacity:1}.roster-mode-toggle .mode-btn svg{flex-shrink:0;stroke:#fff}.roster-mode-toggle .mode-btn.mode-my{background:linear-gradient(135deg,#28a745,#20c997);box-shadow:0 2px 8px #28a7454d}.roster-mode-toggle .mode-btn.mode-my:hover{box-shadow:0 4px 12px #28a74566}@media(max-width:768px){.roster-mode-toggle{margin:0 1rem .75rem;gap:.5rem}.roster-mode-toggle .mode-btn{padding:.6rem 1rem;font-size:.85rem;gap:.4rem}.roster-mode-toggle .mode-btn svg{width:16px;height:16px}}.week-navigator{background:#fff;padding:1rem 2rem;border-radius:12px;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}.btn-deze-week{padding:.5rem 1rem;background:#e9ecef;color:#343a40;border:1px solid #ced4da;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-deze-week:hover{background:#dee2e6;border-color:#adb5bd}.btn-nav-arrow,.btn-nav-text{display:inline}.btn-nav{display:flex;align-items:center;gap:.25rem;padding:.5rem 1.25rem;background:#f5f7fa;color:#2c3e50;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-nav:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.btn-nav:disabled{opacity:.4;cursor:not-allowed}.period-text{font-size:1rem;font-weight:600;color:#2c3e50;padding:0 1rem}@media(max-width:768px){.week-navigator{padding:.5rem 1rem;gap:.5rem;margin:0 1rem .75rem;border-radius:10px}.period-text{font-size:.9rem;padding:.25rem .5rem;order:1;width:auto}.btn-nav{padding:.5rem .75rem;font-size:.85rem}.btn-deze-week{padding:.4rem .75rem;font-size:.8rem}.btn-nav-text{display:none}.btn-nav-arrow{font-size:1rem}}.admin-dashboard{min-height:100vh;min-width:100vw;width:100%;background:#f5f5f5;box-sizing:border-box}.admin-header{background:#fff;padding:1.5rem 2rem;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-header .header-left{display:flex;align-items:center;gap:1rem}.admin-header h1{margin:0;font-size:1.75rem;color:#333}.admin-header .header-right{display:flex;align-items:center;gap:1.5rem}.user-info{display:flex;flex-direction:column;align-items:flex-end}.user-name{font-weight:600;color:#333}.user-role{font-size:.875rem;color:#666}.btn-back{background:transparent;border:1px solid #ddd;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem;color:#666;transition:all .2s}.btn-back:hover{background:#f5f5f5;border-color:#ccc}.btn-logout{background:#dc3545;color:#fff;border:none;padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;font-size:.95rem;transition:background .2s}.btn-logout:hover{background:#c82333}.dashboard-grid{max-width:1200px;margin:0 auto;padding:2rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.dashboard-tile{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;gap:1rem}.dashboard-tile:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.tile-icon{font-size:3rem;line-height:1}.tile-content h3{margin:0 0 .5rem;font-size:1.25rem;color:#333}.tile-content p{margin:0;font-size:.95rem;color:#666;line-height:1.5}.tile-count{margin-top:.5rem;font-size:.875rem;font-weight:600;color:#4caf50}@media(max-width:768px){.admin-header{flex-direction:column;gap:1rem;align-items:flex-start}.admin-header .header-right{width:100%;justify-content:space-between}.dashboard-grid{grid-template-columns:1fr;padding:1rem}}.roster-template-preview{display:flex;flex-direction:column;gap:2rem}.loading-message{padding:3rem;text-align:center;font-size:1.25rem;color:#666}.no-template-message{padding:3rem;text-align:center;background:#fff;border-radius:8px;border:2px dashed #ddd}.no-template-message p{font-size:1.1rem;color:#666;margin-bottom:1.5rem}.no-template-message .btn-primary{background:#4caf50;color:#fff;border:none;padding:1rem 2rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.no-template-message .btn-primary:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.template-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.5rem;background:#f8f9fa;border-radius:8px;border-left:4px solid #4CAF50}.template-title h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.template-date{font-size:.95rem;color:#666}.template-actions{display:flex;gap:.75rem}.budget-info{padding:1.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.budget-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.budget-info h3{margin:0;font-size:1.25rem;color:#333}.btn-edit-budget{background:#fff;border:1px solid #4CAF50;color:#4caf50;padding:.5rem 1rem;border-radius:6px;font-size:.9rem;cursor:pointer;transition:all .2s;font-weight:500}.btn-edit-budget:hover{background:#f1f8f4;transform:translateY(-1px)}.budget-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.budget-item{display:flex;justify-content:space-between;padding:.75rem 1rem;background:#f8f9fa;border-radius:6px}.budget-label{color:#666;font-size:.95rem}.budget-value{font-weight:600;color:#333;font-size:1.05rem}.budget-progress-section{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.progress-item{margin-bottom:1.25rem}.progress-item:last-child{margin-bottom:0}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.progress-label{font-weight:600;color:#333;font-size:.95rem}.progress-value{font-weight:700;color:#4caf50;font-size:1rem}.progress-bar{height:24px;background:#e9ecef;border-radius:12px;overflow:hidden;position:relative}.progress-fill{height:100%;transition:all .3s ease;border-radius:12px;display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem;color:#fff;font-size:.85rem;font-weight:600}.budget-warning{margin-top:1rem;padding:1rem;background:#fff3cd;border-left:4px solid #f39c12;border-radius:4px;color:#856404;font-weight:500}.week-template{padding:1.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.week-template-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.week-template-header h3{margin:0;font-size:1.25rem;color:#333}.week-template h3{margin:0 0 1.5rem;font-size:1.25rem;color:#333}.btn-action-with-hint,.btn-action-primary-with-hint{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid}.btn-action-with-hint{background:#fff;border-color:#dee2e6;color:#495057}.btn-action-with-hint:hover{background:#f8f9fa;border-color:#adb5bd;transform:translateY(-1px)}.btn-action-primary-with-hint{background:#4caf50;border-color:#4caf50;color:#fff}.btn-action-primary-with-hint:hover{background:#45a049;border-color:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.btn-icon-small{font-size:1rem;line-height:1}.btn-label{font-size:.85rem}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1rem;overflow-x:auto}.day-column{min-width:180px;display:flex;flex-direction:column}.day-header{display:flex;flex-direction:column;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:6px 6px 0 0;border-bottom:2px solid #4CAF50}.day-abbr{font-size:1.25rem;font-weight:700;color:#4caf50}.day-name{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.day-slots{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:#fafafa;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 6px 6px;min-height:200px}.day-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:150px}.add-slot-container{display:flex;justify-content:center;padding-top:.5rem}.btn-add-slot{background:#fff;border:2px dashed #ccc;padding:.75rem 1rem;border-radius:6px;color:#666;cursor:pointer;font-size:.9rem;transition:all .2s;width:100%}.btn-add-slot:hover{border-color:#4caf50;color:#4caf50;background:#f1f8f4}.slot-card{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:.75rem;transition:all .2s}.slot-card:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.slot-header-new{display:flex;flex-direction:column;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.slot-name{font-weight:700;color:#333;font-size:1rem}.slot-time{font-size:.75rem;color:#666;font-family:Courier New,monospace;margin-top:.25rem}.slot-behoeftes{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.behoefte-tag{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.5rem .75rem;background:#f8f9fa;border-radius:4px}.behoefte-type{font-weight:600;color:#333;font-size:.95rem}.behoefte-details{font-size:.75rem;color:#666;font-weight:500}.behoefte-aantal{color:#666;font-size:.9rem}.behoefte-tarief{color:#4caf50;font-weight:600;font-size:.9rem}.slot-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.5rem;border-top:1px solid #e0e0e0}.btn-icon{background:transparent;border:none;padding:.25rem .5rem;cursor:pointer;color:#666;font-size:1.1rem;transition:all .2s;border-radius:4px}.btn-icon:hover{background:#f0f0f0;color:#333}.template-summary{padding:1.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.summary-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.summary-value{font-size:1.1rem;font-weight:600;color:#4caf50}.summary-warning{padding:1rem;background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;color:#856404}.summary-ok{padding:1rem;background:#d4edda;border-left:4px solid #28a745;border-radius:4px;color:#155724}.template-footer{display:flex;justify-content:center;padding:1rem 0}.btn-primary-large{background:#4caf50;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-primary-large:hover{background:#45a049;transform:translateY(-2px);box-shadow:0 4px 8px #4caf504d}.template-history{padding:1.5rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.template-history h3{margin:0 0 1.25rem;font-size:1.25rem;color:#333}.history-list{display:flex;flex-direction:column;gap:.75rem}.history-item{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:6px;border-left:3px solid transparent;transition:all .2s}.history-item:hover{background:#e9ecef}.history-item.active{border-left-color:#4caf50;background:#f1f8f4}.history-badge{background:#4caf50;color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600}.history-info{flex:1;display:flex;flex-direction:column;gap:.25rem}.history-info strong{color:#333;font-size:.95rem}.history-info span{color:#666;font-size:.85rem}.btn-text{background:transparent;border:none;color:#4caf50;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s}.btn-text:hover{text-decoration:underline}.history-list-new{display:flex;flex-direction:column;gap:1rem}.history-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:10px;overflow:hidden;transition:all .2s}.history-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.history-card.status-active{border-left:4px solid #4CAF50;background:linear-gradient(135deg,#f1f8f4,#fff)}.history-card.status-scheduled{border-left:4px solid #2196F3;background:linear-gradient(135deg,#e3f2fd,#fff)}.history-card.status-inactive{border-left:4px solid #9e9e9e}.history-card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#ffffff80;border-bottom:1px solid #e9ecef}.history-status-badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .75rem;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.history-status-badge .status-icon{font-size:.8rem}.history-status-badge.status-active{background:#d4edda;color:#155724}.history-status-badge.status-scheduled{background:#cce5ff;color:#004085}.history-status-badge.status-inactive{background:#e9ecef;color:#6c757d}.history-date-range{font-size:.8rem;color:#6c757d;font-weight:500}.history-card-body{padding:1rem}.history-template-name{margin:0 0 .375rem;font-size:1rem;font-weight:600;color:#333}.history-template-note{margin:0;font-size:.85rem;color:#6c757d;font-style:italic}.history-card-actions{display:flex;gap:.5rem;padding:.75rem 1rem;background:#00000005;border-top:1px solid #e9ecef;flex-wrap:wrap}.history-action-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid transparent;background:#fff}.history-action-btn .action-icon{font-size:.9rem}.history-action-btn .action-text{font-size:.8rem}.history-action-btn.view{color:#495057;border-color:#dee2e6}.history-action-btn.view:hover{background:#f8f9fa;border-color:#adb5bd}.history-action-btn.edit{color:#0d6efd;border-color:#b6d4fe}.history-action-btn.edit:hover{background:#e7f1ff;border-color:#86b7fe}.history-action-btn.activate{color:#198754;border-color:#a3cfbb}.history-action-btn.activate:hover{background:#d1e7dd;border-color:#75b798}.history-action-btn.archive{color:#6c757d;border-color:#ced4da}.history-action-btn.archive:hover{background:#f8f9fa;border-color:#adb5bd}@media(max-width:768px){.history-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.history-card-actions{justify-content:stretch}.history-action-btn{flex:1;justify-content:center;min-width:calc(50% - .25rem)}}@media(max-width:480px){.history-action-btn{min-width:100%}.history-action-btn .action-text{display:none}.history-action-btn{justify-content:center;padding:.5rem 1rem}.history-action-btn .action-icon{font-size:1.1rem}}.btn-primary,.btn-secondary{border:none;padding:.5rem 1.25rem;border-radius:6px;font-size:.95rem;cursor:pointer;transition:all .2s;font-weight:500}.btn-primary{background:#4caf50;color:#fff}.btn-primary:hover{background:#45a049}.btn-secondary{background:#fff;color:#4caf50;border:1px solid #4CAF50}.btn-secondary:hover{background:#f1f8f4}@media(max-width:1200px){.week-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:768px){.week-grid{grid-template-columns:repeat(2,1fr)}.template-header{flex-direction:column;gap:1rem}.template-actions{width:100%;justify-content:stretch}.template-actions button{flex:1}}.day-display{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);color:var(--color-primary);font-size:var(--font-size-md)}.behoefte-row{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-md)}.behoefte-row .form-select{flex:3;min-width:200px}.behoefte-row .form-input-small{width:80px;flex-shrink:0}.btn-remove{background:var(--color-danger);border:none;color:#fff;width:32px;height:32px;border-radius:var(--radius-md);font-size:var(--font-size-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-base);flex-shrink:0}.btn-remove:hover{background:var(--color-danger-hover)}.btn-add-behoefte{background:transparent;border:2px dashed var(--color-border);color:var(--color-text-light);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:all var(--transition-base);width:100%;margin-top:var(--spacing-sm)}.btn-add-behoefte:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.copy-to-days{margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:2px solid var(--color-border)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);margin:var(--spacing-xs) 0 var(--spacing-md) 0}.day-checkboxes{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);margin-top:var(--spacing-md)}.day-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);background:#fff;min-height:50px;overflow:hidden}.day-checkbox:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}.day-checkbox.checked{border-color:var(--color-primary);background:var(--color-primary-light)}.day-checkbox input[type=checkbox]{cursor:pointer;width:18px;height:18px;flex-shrink:0}.day-checkbox-label{display:flex;flex-direction:column;gap:2px;flex:1;pointer-events:none;min-width:0;overflow:hidden}.day-abbr{font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap}.day-checkbox.checked .day-abbr{color:var(--color-primary)}.day-name{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.selected-days-info{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-success-dark)}@media(max-width:768px){.behoefte-row{flex-direction:column;align-items:stretch}.form-input-small{width:100%}.day-checkboxes{grid-template-columns:repeat(2,1fr)}}@media(max-width:480px){.day-checkboxes{grid-template-columns:repeat(2,1fr)}.day-name{display:none}.day-checkbox{padding:var(--spacing-sm)}}.monday-picker-container{position:relative;margin-bottom:1rem}.monday-picker-label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50;font-size:.9rem}.monday-picker-label .required{color:#dc3545;margin-left:.25rem}.monday-picker-input-wrapper{display:flex;align-items:center;gap:.5rem}.monday-picker-input{flex:1;padding:.6rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.monday-picker-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea26}.monday-picker-input.has-error{border-color:#dc3545}.monday-picker-input.has-error:focus{box-shadow:0 0 0 3px #dc354526}.monday-picker-trigger{padding:.6rem .75rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:1rem;transition:background-color .2s}.monday-picker-trigger:hover:not(:disabled){background:#e9ecef}.monday-picker-trigger:disabled{opacity:.5;cursor:not-allowed}.monday-picker-display{margin-top:.35rem;font-size:.85rem;color:#667eea;font-weight:500}.monday-picker-error{margin-top:.35rem;font-size:.85rem;color:#dc3545;font-weight:500}.monday-picker-hint{margin-top:.35rem;font-size:.8rem;color:#6c757d}.monday-picker-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:.5rem;background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;padding:1rem;z-index:1000;animation:dropdownFadeIn .2s ease-out}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.picker-header .month-year{font-weight:600;color:#2c3e50;text-transform:capitalize}.picker-header .nav-btn{background:none;border:none;padding:.5rem;cursor:pointer;font-size:.9rem;color:#667eea;border-radius:4px;transition:background-color .2s}.picker-header .nav-btn:hover{background:#f0f0ff}.quick-select{margin-bottom:.75rem}.quick-btn{width:100%;padding:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:transform .2s,box-shadow .2s}.quick-btn:hover{transform:translateY(-1px);box-shadow:0 2px 8px #667eea66}.picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}.weekday{text-align:center;font-size:.75rem;font-weight:600;color:#6c757d;padding:.35rem 0}.weekday.monday{color:#667eea;background:#f0f0ff;border-radius:4px}.picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.day-btn{aspect-ratio:1;border:none;background:#fff;font-size:.85rem;cursor:pointer;border-radius:4px;transition:all .15s;position:relative}.day-btn.other-month{color:#ccc}.day-btn.is-today{font-weight:700}.day-btn.is-today:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;background:#667eea;border-radius:50%}.day-btn.is-monday:not(.is-past){background:#f0f0ff;color:#667eea;font-weight:600}.day-btn.is-monday:not(.is-past):hover{background:#667eea;color:#fff;transform:scale(1.1)}.day-btn.is-monday.selected{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-weight:700}.day-btn.not-monday{color:#ccc;cursor:not-allowed}.day-btn.not-monday:hover{background:#f8f8f8}.day-btn.is-past{color:#ddd;cursor:not-allowed;text-decoration:line-through}.picker-legend{display:flex;gap:1rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;font-size:.75rem;color:#6c757d}.legend-item{display:flex;align-items:center;gap:.35rem}.legend-dot{width:10px;height:10px;border-radius:2px}.legend-dot.monday{background:#667eea}.legend-dot.disabled{background:#e0e0e0}@media(max-width:400px){.monday-picker-dropdown{padding:.75rem}.day-btn{font-size:.75rem}.picker-legend{flex-direction:column;gap:.5rem}}.activation-preview{min-height:400px}.preview-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.spinner{width:40px;height:40px;border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;animation:spin 1s linear infinite}.preview-header{display:flex;gap:2rem;padding:1rem;background:#f8f9fa;border-radius:8px;margin-bottom:1.5rem}.preview-header .label{font-size:.85rem;color:#6c757d;display:block}.preview-header .value{font-weight:600;color:#2c3e50}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card{padding:1rem;border-radius:8px;text-align:center;transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.stat-number{font-size:2rem;font-weight:700;line-height:1;margin-bottom:.25rem}.stat-label{font-size:.8rem;color:#6c757d}.stat-total{background:#e3e8f0}.stat-total .stat-number{color:#495057}.stat-success{background:#d4edda}.stat-success .stat-number{color:#155724}.stat-warning{background:#fff3cd}.stat-warning .stat-number{color:#856404}.stat-warning.highlight{box-shadow:0 0 0 2px #ffc107}.stat-danger{background:#f8d7da}.stat-danger .stat-number{color:#721c24}.stat-danger.highlight{box-shadow:0 0 0 2px #dc3545}.preview-tabs{display:flex;gap:.25rem;border-bottom:2px solid #e9ecef;margin-bottom:1rem;overflow-x:auto}.tab-btn{padding:.75rem 1rem;background:none;border:none;font-size:.9rem;color:#6c757d;cursor:pointer;white-space:nowrap;position:relative;transition:color .2s}.tab-btn:hover{color:#667eea}.tab-btn.active{color:#667eea;font-weight:600}.tab-btn.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:#667eea}.tab-content{min-height:200px}.overview-section{padding:1rem;border-radius:8px;margin-bottom:1rem}.overview-section h4{margin:0 0 .5rem;font-size:1rem}.overview-section p{margin:0;font-size:.9rem;line-height:1.5}.overview-section.success{background:#d4edda;border-left:4px solid #28a745}.overview-section.success h4{color:#155724}.overview-section.warning{background:#fff3cd;border-left:4px solid #ffc107}.overview-section.warning h4{color:#856404}.overview-section.danger{background:#f8d7da;border-left:4px solid #dc3545}.overview-section.danger h4{color:#721c24}.overview-section.info{background:#e7f1ff;border-left:4px solid #667eea}.overview-section.info h4{color:#004085}.migrations-list,.conflicts-list,.nomatch-list,.users-list{display:flex;flex-direction:column;gap:.5rem}.migration-item{display:grid;grid-template-columns:150px 1fr 120px;align-items:center;gap:1rem;padding:.75rem;background:#f8f9fa;border-radius:6px;border-left:3px solid #28a745}.migration-user{font-weight:600;color:#2c3e50}.migration-details{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.migration-details .label{color:#6c757d}.migration-arrow{color:#667eea;font-weight:700}.migration-type{font-size:.8rem;padding:.25rem .5rem;background:#667eea;color:#fff;border-radius:4px;text-align:center}.conflict-item{padding:1rem;background:#fff3cd;border-radius:8px;border-left:3px solid #ffc107}.conflict-header{display:flex;justify-content:space-between;margin-bottom:.5rem}.conflict-user{font-weight:600;color:#2c3e50}.conflict-type{font-size:.8rem;padding:.2rem .5rem;background:#856404;color:#fff;border-radius:4px}.conflict-details{display:flex;gap:1rem;font-size:.9rem;margin-bottom:.75rem}.conflict-reason{color:#856404;font-style:italic}.conflict-actions{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;border-top:1px dashed #ffc107}.conflict-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.conflict-option input[type=radio]{accent-color:#667eea}.nomatch-item{display:grid;grid-template-columns:150px 1fr;gap:.5rem;padding:.75rem;background:#f8d7da;border-radius:6px;border-left:3px solid #dc3545}.nomatch-user{font-weight:600;color:#721c24}.nomatch-details{font-size:.9rem}.nomatch-type{margin-left:.5rem;font-size:.8rem;padding:.15rem .4rem;background:#721c24;color:#fff;border-radius:3px}.nomatch-reason{grid-column:1 / -1;font-size:.85rem;color:#721c24;font-style:italic}.user-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f8f9fa;border-radius:6px}.user-name{font-weight:600;color:#2c3e50}.user-stats{display:flex;gap:.5rem}.user-stat{font-size:.75rem;padding:.25rem .5rem;border-radius:4px}.user-stat.success{background:#d4edda;color:#155724}.user-stat.warning{background:#fff3cd;color:#856404}.user-stat.danger{background:#f8d7da;color:#721c24}.empty-message{text-align:center;color:#6c757d;font-style:italic;padding:2rem}@media(max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.migration-item{grid-template-columns:1fr;gap:.5rem}.migration-type{justify-self:start}.preview-header{flex-direction:column;gap:.5rem}.conflict-details{flex-direction:column;gap:.25rem}}@media(max-width:500px){.stats-grid{grid-template-columns:1fr 1fr}.stat-number{font-size:1.5rem}.preview-tabs{flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.tab-btn{padding:.5rem .75rem;font-size:.8rem}}.view-template-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:vtmFadeIn .2s ease-out;padding:1rem}@keyframes vtmFadeIn{0%{opacity:0}to{opacity:1}}.view-template-modal{background:#fff;border-radius:12px;width:100%;max-width:1100px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #00000040;animation:vtmSlideUp .3s ease-out}@keyframes vtmSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.vtm-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e9ecef;background:#f8f9fa;border-radius:12px 12px 0 0}.vtm-header-content{display:flex;align-items:center;gap:1rem}.vtm-header h2{margin:0;font-size:1.25rem;color:#2c3e50}.vtm-status-badge{padding:.375rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.5px}.vtm-status-badge.status-active{background:#d4edda;color:#155724}.vtm-status-badge.status-scheduled{background:#cce5ff;color:#004085}.vtm-status-badge.status-inactive{background:#f8f9fa;color:#6c757d}.vtm-close{background:none;border:none;font-size:1.75rem;color:#6c757d;cursor:pointer;padding:0;line-height:1;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s}.vtm-close:hover{background:#e9ecef;color:#333}.vtm-body{flex:1;overflow-y:auto;padding:1.5rem}.vtm-loading,.vtm-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center;gap:1rem}.vtm-spinner{width:40px;height:40px;border:3px solid #e9ecef;border-top-color:#4caf50;border-radius:50%;animation:vtmSpin .8s linear infinite}@keyframes vtmSpin{to{transform:rotate(360deg)}}.vtm-error-icon{font-size:2.5rem;color:#dc3545}.vtm-error p{color:#dc3545;margin:0}.vtm-info-section{background:#f8f9fa;border-radius:8px;padding:1.25rem;margin-bottom:1.5rem}.vtm-info-section h3{margin:0 0 1rem;font-size:1.15rem;color:#333}.vtm-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.75rem}.vtm-info-item{display:flex;flex-direction:column;gap:.25rem}.vtm-info-item.full-width{grid-column:1 / -1}.vtm-info-label{font-size:.8rem;color:#6c757d;font-weight:500}.vtm-info-value{font-size:.95rem;color:#333}.vtm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.vtm-stat-card{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px}.vtm-stat-icon{font-size:1.75rem}.vtm-stat-content{display:flex;flex-direction:column}.vtm-stat-value{font-size:1.25rem;font-weight:700;color:#333}.vtm-stat-label{font-size:.8rem;color:#6c757d}.vtm-week-section{margin-top:1rem}.vtm-week-section h4{margin:0 0 1rem;font-size:1rem;color:#333}.vtm-week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;overflow-x:auto}.vtm-day-column{min-width:130px}.vtm-day-header{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:#f8f9fa;border-radius:6px 6px 0 0;border-bottom:2px solid #4CAF50}.vtm-day-abbr{font-size:1rem;font-weight:700;color:#4caf50}.vtm-day-name{font-size:.65rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.vtm-day-slots{display:flex;flex-direction:column;gap:.5rem;padding:.5rem;background:#fafafa;border:1px solid #e0e0e0;border-top:none;border-radius:0 0 6px 6px;min-height:150px}.vtm-slot-card{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:.5rem}.vtm-slot-name{font-weight:600;font-size:.85rem;color:#333;text-align:center;margin-bottom:.25rem}.vtm-slot-time{font-size:.7rem;color:#666;text-align:center;font-family:Courier New,monospace;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #f0f0f0}.vtm-slot-behoeftes{display:flex;flex-direction:column;gap:.25rem}.vtm-behoefte{display:flex;flex-direction:column;padding:.375rem .5rem;background:#f8f9fa;border-radius:4px;border-left:3px solid #4CAF50}.vtm-behoefte-type{font-weight:600;font-size:.75rem;color:#333}.vtm-behoefte-details{font-size:.65rem;color:#666}.vtm-slot-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:100px;color:#adb5bd;font-size:.8rem;font-style:italic}.vtm-footer{padding:1rem 1.5rem;border-top:1px solid #e9ecef;background:#f8f9fa;border-radius:0 0 12px 12px;display:flex;justify-content:flex-end}.vtm-btn-close{background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.vtm-btn-close:hover{background:#5a6268}@media(max-width:992px){.vtm-week-grid{grid-template-columns:repeat(4,1fr)}.vtm-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.view-template-modal{max-height:95vh}.vtm-week-grid{grid-template-columns:repeat(2,1fr)}.vtm-stats{grid-template-columns:1fr}.vtm-stat-card{padding:.75rem 1rem}}@media(max-width:480px){.view-template-modal-overlay{padding:.5rem}.vtm-header,.vtm-body{padding:1rem}.vtm-week-grid{grid-template-columns:1fr}}.confirm-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn .2s ease-out}.confirm-modal{background:#fff;border-radius:12px;width:90%;max-width:420px;box-shadow:0 20px 40px #0003;animation:slideUp .3s ease-out;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.confirm-modal-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef}.confirm-modal-header.danger{background:#fff5f5;border-bottom-color:#fed7d7}.confirm-modal-header.warning{background:#fffbeb;border-bottom-color:#fef3c7}.confirm-modal-icon{font-size:1.75rem;line-height:1}.confirm-modal-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#2c3e50}.confirm-modal-body{padding:1.5rem}.confirm-modal-body p{margin:0;font-size:1rem;color:#4a5568;line-height:1.6}.confirm-modal-actions{display:flex;gap:.75rem;padding:1rem 1.5rem 1.5rem;justify-content:flex-end}.confirm-modal-actions button{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.confirm-modal-actions button:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{background:#fff;border:1px solid #d1d5db;color:#4b5563}.btn-cancel:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.btn-confirm{background:#4caf50;border:none;color:#fff}.btn-confirm:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.btn-confirm.danger{background:#dc3545}.btn-confirm.danger:hover:not(:disabled){background:#c82333;box-shadow:0 4px 8px #dc35454d}.btn-confirm.warning{background:#f59e0b}.btn-confirm.warning:hover:not(:disabled){background:#d97706;box-shadow:0 4px 8px #f59e0b4d}@media(max-width:480px){.confirm-modal{width:95%;margin:1rem}.confirm-modal-actions{flex-direction:column-reverse}.confirm-modal-actions button{width:100%}}.client-info-flat{padding:0}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.info-column{display:flex;flex-direction:column;gap:1rem}.info-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.info-card .card-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f8f9fa;cursor:pointer;-webkit-user-select:none;user-select:none;border-bottom:1px solid #e9ecef}.info-card .card-header:hover{background:#f1f3f4}.info-card .card-header h3{margin:0;font-size:.95rem;font-weight:600;color:#2c3e50}.toggle-icon{font-size:1.2rem;color:#6c757d;font-weight:300}.info-card .card-body{padding:1rem}.info-card-sensitive .card-header{background:#fff3cd}.info-card-sensitive .card-header h3{color:#856404}.compact-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.compact-grid.three-col{grid-template-columns:2fr 1fr 1fr}.compact-grid.name-row{grid-template-columns:auto 1fr}.field-aanhef{max-width:100px}.field-naam{flex:1}.field-group{display:flex;flex-direction:column;gap:.25rem}.field-group.full-width{grid-column:1 / -1}.field-group label{font-size:.8rem;font-weight:500;color:#6c757d}.field-group input,.field-group select,.field-group textarea{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:4px;font-size:.9rem;transition:border-color .2s}.field-group input:focus,.field-group select:focus,.field-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.field-group textarea{resize:vertical;min-height:60px}.contact-list-compact{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem}.contact-item{display:flex;flex-direction:column;gap:.25rem;padding:.75rem;background:#f8f9fa;border-radius:6px;font-size:.85rem}.contact-item.editing{padding:.75rem}.contact-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.contact-name-group{display:flex;align-items:center;gap:.4rem}.contact-name{font-weight:600;color:#2c3e50}.contact-type-badge{font-size:.7rem;padding:.2rem .5rem;background:#f39c12;color:#fff;border-radius:4px;font-weight:500;white-space:nowrap}.contact-link{color:#667eea;text-decoration:none;font-size:.8rem}.contact-link:hover{text-decoration:underline}.contact-actions{display:flex;gap:.25rem;margin-left:auto}.contact-actions button{background:none;border:none;padding:.2rem;cursor:pointer;font-size:.85rem;opacity:.5;transition:opacity .2s}.contact-actions button:hover{opacity:1}.tag{font-size:.65rem;padding:.15rem .4rem;border-radius:3px;font-weight:600}.tag-primary{background:#667eea;color:#fff}.tag-warning{background:#f39c12;color:#fff}.contact-edit-inline{display:flex;flex-direction:column;gap:.5rem}.edit-row{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.edit-row.checkboxes{display:flex;gap:1rem}.edit-row.checkboxes label{display:flex;align-items:center;gap:.25rem;font-size:.8rem;color:#495057}.edit-row input,.edit-row select{padding:.4rem .6rem;border:1px solid #dee2e6;border-radius:4px;font-size:.85rem}.edit-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.btn-sm{padding:.35rem .75rem;font-size:.8rem;border-radius:4px;cursor:pointer;border:none}.btn-sm.btn-primary{background:#667eea;color:#fff}.btn-sm.btn-secondary{background:#e9ecef;color:#495057}.btn-add-contact{width:100%;padding:.5rem;background:#f8f9fa;border:1px dashed #dee2e6;border-radius:4px;color:#667eea;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.btn-add-contact:hover{background:#e9ecef;border-color:#667eea}.niet-reanimeren-check{margin-bottom:.75rem}.checkbox-inline{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-inline input{width:18px;height:18px}.warning-text{color:#dc3545;font-weight:600}.privacy-note{font-size:.75rem;color:#856404;background:#fff3cd;padding:.35rem .5rem;border-radius:4px;margin-bottom:.75rem}.empty-text{color:#6c757d;font-size:.85rem;font-style:italic;margin:0 0 .5rem}.sticky-save-bar{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 -4px 12px #00000026;z-index:100;padding:.75rem 1rem;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.sticky-save-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:center;gap:1rem}.unsaved-indicator{color:#fff;background:#fff3;padding:.375rem .75rem;border-radius:4px;font-size:.85rem;font-weight:500}@media(max-width:768px){.sticky-save-bar{padding:.5rem}.sticky-save-content{flex-direction:column;gap:.5rem}.unsaved-indicator{font-size:.75rem}}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:400px;max-height:90vh;overflow:auto}.modal-content.modal-small{max-width:360px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #e9ecef}.modal-header h2{margin:0;font-size:1.1rem}.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#6c757d;padding:0;line-height:1}.modal-body{padding:1rem}.modal-body .field-group{margin-bottom:.75rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid #e9ecef}.modal-footer .btn-primary,.modal-footer .btn-secondary{padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;border:none}.modal-footer .btn-primary{background:#667eea;color:#fff}.modal-footer .btn-secondary{background:#e9ecef;color:#495057}.modal-footer .btn-danger{background:#dc3545;color:#fff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;cursor:pointer;border:none}.modal-footer .btn-danger:hover{background:#c82333}.modal-content.modal-warning{max-width:450px;border:2px solid #dc3545}.modal-header.modal-header-warning{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff;border-bottom:none}.modal-header-warning .btn-close{color:#fff}.warning-message{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:1rem;margin-bottom:1rem}.warning-message .warning-icon{font-size:2rem;text-align:center;margin-bottom:.5rem}.warning-message p{margin:.5rem 0;font-size:.9rem;line-height:1.5;color:#856404}.confirm-question{background:#f8f9fa;border-radius:8px;padding:1rem;text-align:center}.confirm-question p{margin:0;font-size:.95rem;color:#495057}.loading-message{text-align:center;padding:2rem;color:#6c757d}@media(max-width:1100px){.info-grid{grid-template-columns:1fr}}@media(max-width:768px){.compact-grid.three-col{grid-template-columns:1fr 1fr}}@media(max-width:500px){.compact-grid,.compact-grid.three-col{grid-template-columns:1fr}.contact-row,.contact-name-group{flex-wrap:wrap}.edit-row{grid-template-columns:1fr}}.ovo-description{font-size:.9rem;color:#666;margin:0 0 1rem;line-height:1.5}.ovo-current{background:#f8f9fa;border-radius:6px;padding:1rem;margin-bottom:1rem}.ovo-file-info{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.ovo-file-icon{background:#e74c3c;color:#fff;font-size:.7rem;font-weight:700;padding:.25rem .5rem;border-radius:4px}.ovo-file-link{color:#4dac96;text-decoration:none;font-weight:500}.ovo-file-link:hover{text-decoration:underline}.ovo-note{font-size:.8rem;color:#856404;background:#fff3cd;padding:.5rem;border-radius:4px;margin:.5rem 0 0}.ovo-empty-warning{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:1rem;margin-bottom:1rem;display:flex;align-items:flex-start;gap:1rem}.ovo-warning-icon{width:32px;height:32px;background:#ffc107;color:#856404;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;font-weight:700;flex-shrink:0}.ovo-warning-text strong{display:block;color:#856404;margin-bottom:.25rem}.ovo-warning-text p{margin:0;color:#856404;font-size:.9rem}.ovo-upload-section{margin-top:.5rem}.btn-upload-ovo{background:linear-gradient(135deg,#4dac96,#3d8b7a);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-upload-ovo:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #4dac964d}.btn-upload-ovo:disabled{opacity:.7;cursor:not-allowed}.client-medewerkers{padding:1.5rem}.medewerkers-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.medewerkers-header h2{margin:0;font-size:1.5rem;color:#2c3e50}.btn-add-user{padding:.75rem 1.5rem;background:linear-gradient(135deg,#4dac96,#3d9980);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 2px 8px #4dac964d}.btn-add-user:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4dac9666}.btn-add-user:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:3rem 2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.empty-state p{color:#6b7280;margin-bottom:1.5rem}.btn-primary{padding:.75rem 1.5rem;background:linear-gradient(135deg,#4dac96,#3d9980);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4dac9666}.medewerkers-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.medewerker-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014;display:flex;gap:1rem;transition:all .3s ease}.medewerker-card:hover{box-shadow:0 4px 12px #0000001f}.medewerker-avatar{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;flex-shrink:0}.medewerker-info{flex:1}.medewerker-info h3{margin:0 0 .25rem;font-size:1.1rem;color:#2c3e50}.medewerker-email{margin:0 0 .5rem;font-size:.9rem;color:#6b7280}.medewerker-role{margin:0 0 .5rem}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.role-badge.admin{background:#fef3c7;color:#92400e}.role-badge.verzorger{background:#dbeafe;color:#1e40af}.ovo-badge{display:inline-block;padding:.2rem .5rem;border-radius:8px;font-size:.65rem;font-weight:700;text-transform:uppercase;margin-left:.5rem}.ovo-badge.ovo-signed{background:#d1fae5;color:#065f46}.ovo-badge.ovo-pending{background:#fef3c7;color:#92400e}.medewerker-meta{margin:0;font-size:.8rem;color:#9ca3af}.medewerker-actions{display:flex;align-items:flex-start}.btn-remove{width:32px;height:32px;border-radius:50%;border:none;background:#fee2e2;color:#dc2626;font-size:1.2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-remove:hover:not(:disabled){background:#fecaca;transform:scale(1.1)}.btn-remove:disabled{opacity:.5;cursor:not-allowed}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:16px;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.modal-header{padding:1.5rem;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;align-items:center}.modal-header h2{margin:0;font-size:1.5rem;color:#2c3e50}.btn-close{width:32px;height:32px;border-radius:50%;border:none;background:#f3f4f6;color:#6b7280;font-size:1.2rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.btn-close:hover:not(:disabled){background:#e5e7eb;color:#374151}.modal-body{padding:1.5rem;overflow-y:auto}.empty-note{text-align:center;color:#6b7280;padding:2rem}.available-users-list{display:flex;flex-direction:column;gap:1rem}.available-user-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #e5e7eb;border-radius:8px;transition:all .2s ease}.available-user-item:hover{border-color:#4dac96;background:#f8f9fa}.user-avatar{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff;flex-shrink:0}.user-info{flex:1}.user-info h4{margin:0 0 .25rem;font-size:1rem;color:#2c3e50}.user-info p{margin:0 0 .25rem;font-size:.85rem;color:#6b7280}.btn-add{padding:.5rem 1rem;background:linear-gradient(135deg,#4dac96,#3d9980);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-add:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #4dac964d}.btn-add:disabled{opacity:.5;cursor:not-allowed}.remove-dialog{max-width:500px}.modal-header-warning{background:#fef3c7;border-bottom-color:#fcd34d}.modal-header-warning h2{color:#92400e}.remove-intro{font-size:1rem;color:#374151;margin:0 0 1.5rem}.remove-section{background:#f9fafb;border-radius:8px;padding:1rem;margin-bottom:1rem}.remove-section h4{margin:0 0 .5rem;font-size:.95rem;color:#374151}.remove-section p{margin:0;font-size:.9rem;color:#6b7280}.remove-warning{color:#dc2626!important;font-weight:500;margin-bottom:.75rem!important}.diensten-lijst{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.dienst-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#fff;border-radius:6px;border:1px solid #e5e7eb;font-size:.85rem}.dienst-datum{font-weight:600;color:#374151;min-width:100px}.dienst-type{color:#6b7280;flex:1}.dienst-tijd{color:#9ca3af;font-size:.8rem}.declaratie-warning{background:#fef3c7;border:1px solid #fcd34d}.declaratie-warning h4,.declaratie-warning p{color:#92400e}.remove-info{background:#dbeafe;border:1px solid #93c5fd}.remove-info p{color:#1e40af;margin:0}.modal-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}.btn-secondary{padding:.625rem 1.25rem;background:#f3f4f6;color:#374151;border:1px solid #d1d5db;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#e5e7eb}.btn-danger{padding:.625rem 1.25rem;background:#dc2626;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.medewerkers-header{flex-direction:column;align-items:stretch;gap:1rem}.medewerkers-list{grid-template-columns:1fr}.modal-content{width:95%;max-height:90vh}.dienst-item{flex-wrap:wrap}.dienst-datum{min-width:auto}}.budget-period-overview{display:flex;flex-direction:column;gap:1.5rem}.budget-period-overview .loading-message{padding:3rem;text-align:center;font-size:1.25rem;color:#666}.budget-overview-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.budget-overview-header h2{margin:0;font-size:1.5rem;color:#333}.budget-overview-header .btn-primary{background:#4caf50;color:#fff;border:none;padding:.75rem 1.25rem;border-radius:6px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s}.budget-overview-header .btn-primary:hover{background:#45a049;transform:translateY(-1px);box-shadow:0 4px 8px #4caf504d}.no-budget-message{padding:3rem;text-align:center;background:#fff;border-radius:8px;border:2px dashed #ddd}.no-budget-message p{font-size:1.1rem;color:#666;margin:0}.budget-periods-list{display:flex;flex-direction:column;gap:1rem}.budget-period-card{background:#fff;border-radius:8px;border:1px solid #e0e0e0;overflow:hidden;transition:all .2s}.budget-period-card:hover{box-shadow:0 4px 12px #00000014}.budget-period-card.status-active{border-left:4px solid #4CAF50;background:linear-gradient(to right,#f0fdf4,#fff)}.budget-period-card.status-scheduled{border-left:4px solid #3498db;background:linear-gradient(to right,#eff6ff,#fff)}.budget-period-card.status-inactive{border-left:4px solid #9ca3af;background:linear-gradient(to right,#fff1f2,#fff);opacity:.85}.budget-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #f0f0f0;flex-wrap:wrap;gap:.5rem}.budget-status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border-radius:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.budget-status-badge.status-active{background:#dcfce7;color:#166534;border:1px solid #86efac}.budget-status-badge.status-scheduled{background:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.budget-status-badge.status-inactive{background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}.status-icon{font-size:.8rem}.budget-date-range{font-size:.9rem;color:#666;font-weight:500}.budget-card-body{padding:1.25rem}.budget-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem;margin-bottom:1rem}.budget-stat{display:flex;justify-content:space-between;align-items:center;padding:.625rem .875rem;background:#f8f9fa;border-radius:6px}.stat-label{color:#666;font-size:.85rem}.stat-value{font-weight:600;color:#333;font-size:.95rem}.budget-reden{padding:.75rem;background:#f8f9fa;border-radius:6px;font-size:.9rem;color:#555;margin-bottom:1rem}.reden-label{font-weight:600;color:#333}.budget-calculation-section{margin-top:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.calculation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calculation-title{font-weight:600;font-size:1rem;color:#333}.progress-item{margin-bottom:1rem}.progress-item:last-of-type{margin-bottom:.5rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.progress-label{font-weight:500;color:#333;font-size:.9rem}.progress-value{font-weight:700;font-size:.95rem}.progress-bar{height:22px;background:#e9ecef;border-radius:11px;overflow:hidden;position:relative}.progress-fill{height:100%;transition:all .3s ease;border-radius:11px}.budget-warning{margin-top:.75rem;padding:.75rem 1rem;background:#fff3cd;border-left:4px solid #f39c12;border-radius:4px;color:#856404;font-weight:500;font-size:.9rem}.budget-warning.critical{background:#fee2e2;border-left-color:#e74c3c;color:#991b1b}.no-template-warning{padding:.75rem 1rem;background:#e0f2fe;border-left:4px solid #3498db;border-radius:4px;color:#0369a1;font-size:.9rem;margin-top:.5rem}.budget-card-actions{display:flex;gap:.5rem;padding:.75rem 1.25rem;background:#fafafa;border-top:1px solid #f0f0f0}.budget-action-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.5rem .875rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid}.budget-action-btn .action-icon{font-size:.9rem}.budget-action-btn .action-text{font-size:.8rem}.budget-action-btn.edit{background:#fff;border-color:#3498db;color:#3498db}.budget-action-btn.edit:hover{background:#eff6ff;transform:translateY(-1px)}.budget-action-btn.delete{background:#fff;border-color:#e74c3c;color:#e74c3c}.budget-action-btn.delete:hover{background:#fef2f2;transform:translateY(-1px)}@media(max-width:768px){.budget-overview-header{flex-direction:column;align-items:stretch}.budget-overview-header h2{text-align:center}.budget-overview-header .btn-primary{width:100%;text-align:center}.budget-card-header{flex-direction:column;align-items:flex-start}.budget-stats-grid{grid-template-columns:1fr}.progress-header{flex-direction:column;align-items:flex-start;gap:.25rem}.budget-card-actions{flex-wrap:wrap}.budget-action-btn{flex:1;justify-content:center;min-width:100px}}@media(max-width:480px){.budget-stat{flex-direction:column;align-items:flex-start;gap:.25rem}.stat-value{font-size:1rem}}.admin-client-beheer{min-height:100vh;min-width:100vw;width:100%;background:#f5f5f5;padding-bottom:3rem;box-sizing:border-box}.page-header{background:#fff;padding:1.5rem 2rem;box-shadow:0 2px 4px #0000001a;margin-bottom:0}.page-header .btn-back{background:transparent;border:1px solid #ddd;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.95rem;color:#666;transition:all .2s;margin-bottom:1rem}.page-header .btn-back:hover{background:#f5f5f5;border-color:#ccc}.header-title h1{margin:0 0 .25rem;font-size:1.75rem;color:#333}.client-location{margin:0;font-size:.95rem;color:#666}.tabs-container{background:#fff;display:flex;gap:0;border-bottom:2px solid #e0e0e0;padding:0 2rem}.tab{background:transparent;border:none;padding:1rem 1.5rem;font-size:1rem;font-weight:500;color:#666;cursor:pointer;border-bottom:3px solid transparent;transition:all .2s;display:flex;align-items:center;gap:.5rem}.tab:hover{color:#333;background:#f8f8f8}.tab.active{color:#4caf50;border-bottom-color:#4caf50}.tab-icon{font-size:1.1rem}.tab-content{margin:0 auto;padding:2rem}.tab-panel{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.tab-panel h2{margin:0 0 1rem;font-size:1.5rem;color:#333}.preview-note{padding:3rem;text-align:center;font-size:1.25rem;color:#999;border:2px dashed #ddd;border-radius:8px;margin:2rem 0}@media(max-width:768px){.tabs-container{overflow-x:auto;padding:0 1rem}.tab{white-space:nowrap;padding:.75rem 1rem;font-size:.9rem}.tab-content{padding:1rem}.tab-panel{padding:1.5rem}}.user-management{padding:var(--spacing-xl);max-width:1400px;margin:0 auto}.page-header{margin-bottom:var(--spacing-xl)}.btn-back{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-md);cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.btn-back:hover{color:var(--color-primary-hover)}.header-content{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-lg)}.header-content h1{margin:0 0 var(--spacing-xs) 0}.subtitle{color:var(--color-text-muted);margin:0}.users-table-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:var(--color-bg-secondary)}.users-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.users-table td{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border-light)}.users-table tbody tr{transition:background-color var(--transition-base)}.users-table tbody tr:hover{background:var(--color-bg-secondary)}.users-table tbody tr.inactive-row{opacity:.6}.user-name{font-weight:var(--font-weight-medium)}.name-with-avatar{display:flex;align-items:center;gap:var(--spacing-sm)}.user-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.role-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.badge-admin{background:#10b981;color:#fff}.badge-teamleider{background:#3b82f6;color:#fff}.badge-verzorger{background:#8b5cf6;color:#fff}.badge-planning{background:#f59e0b;color:#fff}.badge-huishouden{background:#ec4899;color:#fff}.badge-waken{background:#6366f1;color:#fff}.badge-default{background:var(--color-neutral-200);color:var(--color-text)}.status-pending{background:#fef3c7;color:#92400e}.pending-invite-row{background:#fffbeb!important;border-left:4px solid #f59e0b}.pending-invite-row:hover{background:#fef3c7!important}.pending-avatar{background:linear-gradient(135deg,#f59e0b,#d97706)!important;font-size:1.2rem}.pending-info{font-style:italic}.pending-label{color:#92400e;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.btn-resend-invite{padding:var(--spacing-sm) var(--spacing-md);background:#f59e0b;color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;gap:var(--spacing-xs)}.btn-resend-invite:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 2px 8px #f59e0b4d}.btn-delete-invite{padding:var(--spacing-sm);background:#fee2e2;color:#dc2626;border:1px solid #fecaca;border-radius:var(--radius-md);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base)}.btn-delete-invite:hover{background:#dc2626;color:#fff;border-color:#dc2626}.clients-cell{min-width:200px}.clients-list{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);align-items:center}.client-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background:#e0e7ff;color:#3730a3;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.btn-remove-client{background:none;border:none;color:#3730a3;font-size:1.2rem;line-height:1;cursor:pointer;padding:0;margin-left:var(--spacing-xs);transition:all var(--transition-base)}.btn-remove-client:hover{color:#dc2626;transform:scale(1.2)}.no-clients{color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}.client-assign-select{padding:var(--spacing-xs) var(--spacing-sm);border:1px dashed var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:var(--font-size-sm);cursor:pointer;color:var(--color-primary);font-weight:var(--font-weight-medium)}.client-assign-select:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}@media(max-width:768px){.user-management{padding:var(--spacing-md)}.header-content{flex-direction:column;align-items:stretch}.filters-bar{flex-direction:column}.users-table-container{overflow-x:auto}.users-table{min-width:800px}}.color-cell{padding:var(--spacing-md) var(--spacing-sm)!important}.color-display{display:flex;align-items:center;gap:var(--spacing-sm)}.color-swatch{width:32px;height:32px;border:2px solid var(--color-border);border-radius:var(--radius-sm);flex-shrink:0}.color-value{font-family:Courier New,monospace;font-size:.85rem;color:var(--color-text-muted);min-width:70px}.create-dienst-type-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.form-row{display:flex;flex-direction:column;gap:var(--spacing-sm)}.form-row-group{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.form-label{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text);margin-bottom:var(--spacing-xs)}.icon-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.icon-option{width:60px;height:60px;display:flex;align-items:center;justify-content:center;font-size:1.8rem;background:#fff;border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);color:var(--color-text-muted)}.icon-option:hover{border-color:var(--color-primary);color:var(--color-primary);transform:scale(1.05)}.icon-option.icon-selected{border-color:var(--color-primary);background:var(--color-primary);color:#fff;box-shadow:var(--shadow-md);transform:scale(1.1)}.color-picker-container{display:flex;align-items:center;gap:var(--spacing-md)}.color-input{width:80px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.color-preview-large{width:100px;height:80px;border-radius:var(--radius-md);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-sm)}.icon-preview{font-size:2.5rem;color:#fff;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.calculated-preview{padding:var(--spacing-md);background:#e0f2fe;border-left:4px solid #0284c7;border-radius:var(--radius-sm);font-size:var(--font-size-base);color:#0c4a6e}.calculated-preview strong{font-weight:var(--font-weight-semibold)}.edit-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-xl);border-bottom:2px solid var(--color-border)}.tab-button{padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;border-bottom:3px solid transparent;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-base);margin-bottom:-2px}.tab-button:hover{color:var(--color-primary);background:var(--color-bg-secondary)}.tab-button.tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-semibold)}.tariff-info{padding:var(--spacing-lg);background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.tariff-info h4{margin:0 0 var(--spacing-md) 0;color:var(--color-text-muted);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px}.current-tariff{display:flex;flex-direction:column;gap:var(--spacing-sm)}.tariff-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);background:#fff;border-radius:var(--radius-sm)}.tariff-label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.tariff-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.tariff-value.tariff-effective{color:var(--color-primary);font-size:var(--font-size-xl)}.tariff-warning{padding:var(--spacing-md);background:#fef3c7;border-left:4px solid #f59e0b;border-radius:var(--radius-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:#78350f}.tariff-warning strong{display:block;margin-bottom:var(--spacing-xs)}@media(max-width:768px){.form-row-group{grid-template-columns:1fr}.icon-picker{grid-template-columns:repeat(auto-fill,minmax(50px,1fr))}.icon-option{width:50px;height:50px;font-size:1.5rem}.color-picker-container{flex-wrap:wrap}.edit-tabs{flex-direction:column}.tab-button{border-bottom:none;border-left:3px solid transparent}.tab-button.tab-active{border-left-color:var(--color-primary);border-bottom-color:transparent}}.dienst-types-management{padding:var(--spacing-xl);max-width:1400px;margin:0 auto}.filters-bar{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.search-box{flex:1}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-base)}.filter-group{display:flex;gap:var(--spacing-sm)}.filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;font-size:var(--font-size-base);cursor:pointer}.types-table-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.types-table{width:100%;border-collapse:collapse}.types-table thead{background:var(--color-bg-secondary)}.types-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.types-table td{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border-light);vertical-align:middle}.types-table tbody tr{transition:background-color var(--transition-base)}.types-table tbody tr:hover{background:var(--color-bg-secondary)}.types-table tbody tr.inactive-row{opacity:.6}.icon-cell{font-size:1.5rem;color:var(--color-primary);display:flex;align-items:center;justify-content:center;width:40px;height:40px}.color-preview{width:60px;height:32px;border-radius:var(--radius-sm);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;position:relative;box-shadow:var(--shadow-sm)}.color-code{font-size:var(--font-size-xs);font-family:monospace;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);font-weight:var(--font-weight-semibold)}.type-name{min-width:200px}.type-name strong{display:block;margin-bottom:var(--spacing-xs)}.type-description{font-size:var(--font-size-sm);color:var(--color-text-muted);font-style:italic}.percentage-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);background:var(--color-bg-secondary);color:var(--color-text)}.percentage-badge.percentage-special{background:#fef3c7;color:#92400e}.calculated-rate{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:var(--spacing-xs);font-style:italic}.usage-count{font-size:var(--font-size-sm);color:var(--color-text-muted)}.status-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee2e2;color:#991b1b}.actions-cell{display:flex;gap:var(--spacing-xs)}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:all var(--transition-base)}.btn-icon:hover{background:var(--color-bg-secondary);transform:scale(1.1)}.empty-state{text-align:center;padding:var(--spacing-3xl)!important;color:var(--color-text-muted)}.loading-state{text-align:center;padding:var(--spacing-3xl)}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite;margin:0 auto var(--spacing-md)}@media(max-width:768px){.dienst-types-management{padding:var(--spacing-md)}.header-content{flex-direction:column;align-items:stretch}.filters-bar{flex-direction:column}.types-table-container{overflow-x:auto}.types-table{min-width:800px}}.system-settings{padding:var(--spacing-xl);max-width:1200px;margin:0 auto}.page-header{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.page-header h1{margin:0;font-size:var(--font-size-2xl);color:var(--color-text)}.btn-back{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-base)}.btn-back:hover{background:var(--color-border);color:var(--color-text)}.loading-message{text-align:center;padding:var(--spacing-xl);font-size:var(--font-size-lg);color:var(--color-text-muted)}.modifications-banner{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);background:#fef3c7;border-left:4px solid #f59e0b;border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);animation:slideIn .3s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.modifications-banner span{font-weight:var(--font-weight-semibold);color:#78350f}.banner-actions{display:flex;gap:var(--spacing-sm)}.settings-container{display:flex;flex-direction:column;gap:var(--spacing-xl)}.settings-category{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.category-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-secondary);border-bottom:2px solid var(--color-border)}.category-icon{font-size:1.8rem}.category-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text)}.settings-list{display:flex;flex-direction:column}.setting-item{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-lg);padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);transition:background var(--transition-base)}.setting-item:last-child{border-bottom:none}.setting-item:hover{background:var(--color-bg-secondary)}.setting-item.setting-modified{background:#fef3c7;border-left:4px solid #f59e0b}.setting-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.setting-label{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text);display:flex;align-items:center;gap:var(--spacing-sm)}.setting-key{font-size:var(--font-size-sm);font-family:Courier New,monospace;color:var(--color-text-muted)}.setting-hint{font-size:var(--font-size-xs);color:var(--color-text-muted);font-style:italic}.badge-readonly{padding:2px 8px;background:var(--color-border);color:var(--color-text-muted);font-size:var(--font-size-xs);border-radius:var(--radius-sm);font-weight:var(--font-weight-normal)}.setting-input{display:flex;align-items:center;min-width:200px}.input-modified{border-color:#f59e0b!important;box-shadow:0 0 0 3px #f59e0b1a!important}.toggle-container{display:flex;align-items:center;gap:var(--spacing-md);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-container input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:relative;width:48px;height:24px;background:var(--color-border);border-radius:24px;transition:background var(--transition-base)}.toggle-slider:before{content:"";position:absolute;width:20px;height:20px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform var(--transition-base);box-shadow:var(--shadow-sm)}.toggle-container input:checked+.toggle-slider{background:var(--color-primary)}.toggle-container input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-container input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.toggle-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text);min-width:40px}.settings-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--color-bg-secondary);border-top:2px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--spacing-lg);position:sticky;bottom:0;z-index:10}@media(max-width:768px){.system-settings{padding:var(--spacing-md)}.page-header{flex-direction:column;align-items:flex-start}.modifications-banner{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.banner-actions{width:100%}.banner-actions button{flex:1}.setting-item{grid-template-columns:1fr;gap:var(--spacing-md)}.setting-input{width:100%}.settings-footer{flex-direction:column}.settings-footer button{width:100%}}.invite-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:var(--spacing-xl)}.invite-card{background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:600px;width:100%;padding:var(--spacing-3xl)}.invite-header{text-align:center;margin-bottom:var(--spacing-2xl)}.invite-icon{font-size:4rem;margin-bottom:var(--spacing-md)}.error-icon{font-size:4rem;margin-bottom:var(--spacing-md);text-align:center}.invite-header h1{margin:0 0 var(--spacing-sm) 0;color:var(--color-text)}.invite-subtitle{color:var(--color-text-muted);font-size:var(--font-size-lg)}.invite-details{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-light)}.detail-row:last-child{border-bottom:none}.detail-row .label{font-weight:var(--font-weight-semibold);color:var(--color-text-muted)}.detail-row .value{font-weight:var(--font-weight-medium)}.detail-row .role-badge{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-size-sm)}.invite-info{background:#fef3c7;border-left:4px solid #f59e0b;padding:var(--spacing-md);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xl)}.invite-info p{margin:0;color:#78350f}.invite-actions{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.invite-actions .btn{width:100%;justify-content:center}.google-icon{font-size:1.2rem}.invite-expires{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);margin:0}.loading-spinner{width:50px;height:50px;border:4px solid var(--color-border);border-top-color:var(--color-primary);border-radius:var(--radius-full);animation:spin .8s linear infinite;margin:0 auto var(--spacing-md)}.privacy-content h3{margin-top:0;color:var(--color-primary)}.privacy-section{margin:var(--spacing-lg) 0}.privacy-section h4{margin:var(--spacing-md) 0 var(--spacing-sm) 0;color:var(--color-text)}.privacy-section ul{list-style:disc;padding-left:var(--spacing-xl);margin:var(--spacing-sm) 0}.privacy-section li{margin:var(--spacing-xs) 0;color:var(--color-text)}.privacy-footer{background:var(--color-bg-secondary);padding:var(--spacing-md);border-radius:var(--radius-sm);margin-top:var(--spacing-xl);text-align:center}.privacy-footer p{margin:0}@media(max-width:768px){.invite-page{padding:var(--spacing-md)}.invite-card{padding:var(--spacing-xl)}.invite-icon,.error-icon{font-size:3rem}}.user-dashboard{min-height:100vh;background:#f5f7fa;padding:1rem 2rem 2rem}.dashboard-header{margin-bottom:2rem}.dashboard-header .btn-back{background:#fff;border:1px solid #e0e0e0;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.95rem;color:#667eea;margin-bottom:1rem;transition:all .2s}.dashboard-header .btn-back:hover{background:#667eea;color:#fff;border-color:#667eea}.dashboard-header .header-content h1{font-size:2rem;color:#2c3e50;margin:0 0 .5rem}.dashboard-header .welcome-text{color:#7f8c8d;font-size:1.1rem;margin:0}.dashboard-profile-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:1.25rem 1.5rem;display:flex;align-items:center;gap:1.25rem;margin-bottom:1.5rem;box-shadow:0 4px 20px #667eea4d}.profile-avatar{width:100px;height:100px;border-radius:50%;background:#fff;color:#667eea;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;flex-shrink:0;overflow:hidden}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-info{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;color:#fff}.profile-info h2{margin:0;font-size:1.35rem;font-weight:600}.user-email{opacity:.9;font-size:.9rem}.user-role-badge{margin-top:.25rem;padding:.2rem .6rem;background:#fff3;border-radius:12px;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px}.profile-actions{display:flex;gap:.5rem;align-self:flex-start;flex-shrink:0}.btn-admin-profile{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s;white-space:nowrap}.btn-admin-profile:hover{background:#ffffff4d}.btn-logout-profile{background:#e74c3c;border:none;color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s;white-space:nowrap}.btn-logout-profile:hover{background:#c0392b}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.dashboard-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #00000014;cursor:pointer;transition:all .3s;display:flex;flex-direction:column;align-items:flex-start}.dashboard-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #00000026}.card-icon{font-size:3rem;margin-bottom:1rem}.dashboard-card h3{margin:0 0 .75rem;font-size:1.5rem;color:#2c3e50}.dashboard-card p{margin:0 0 1.5rem;color:#7f8c8d;font-size:.95rem;flex-grow:1}.btn-card-action{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;width:100%}.btn-card-action:hover{background:#5568d3;transform:translate(4px)}@media(max-width:768px){.user-dashboard{padding:.5rem}.dashboard-profile-header{padding:1rem;margin-bottom:1rem;gap:1rem}.profile-avatar{width:56px;height:56px;font-size:1.5rem}.profile-info{gap:.125rem}.profile-info h2{font-size:1.1rem}.user-email{font-size:.8rem}.user-role-badge{font-size:.625rem;padding:.15rem .5rem}.profile-actions{gap:.375rem}.btn-admin-profile,.btn-logout-profile{padding:.375rem .75rem;font-size:.8rem}.dashboard-grid{grid-template-columns:1fr;gap:.75rem}.dashboard-card{padding:1rem;flex-direction:row;align-items:center;gap:1rem}.card-icon{font-size:2rem;margin-bottom:0;flex-shrink:0}.dashboard-card h3{font-size:1.1rem;margin-bottom:0;flex:1}.dashboard-card p{display:none}.btn-card-action{padding:.5rem 1rem;font-size:.85rem;width:auto;white-space:nowrap;flex-shrink:0}}@media(max-width:480px){.user-dashboard{padding:.25rem}.dashboard-profile-header{padding:.75rem;border-radius:10px;gap:.75rem}.profile-avatar{width:48px;height:48px;font-size:1.25rem}.profile-info h2{font-size:1rem}.user-email{font-size:.75rem}.btn-admin-profile,.btn-logout-profile{padding:.3rem .6rem;font-size:.75rem}.dashboard-card{padding:.875rem;border-radius:10px}.card-icon{font-size:1.75rem}.dashboard-card h3{font-size:1rem}.btn-card-action{padding:.5rem .875rem;font-size:.8rem}}.user-profile{min-height:100vh;background:#f5f7fa;padding:2rem}.profile-header{margin-bottom:2rem}.profile-header .btn-back{background:#fff;border:1px solid #e0e0e0;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.95rem;color:#667eea;margin-bottom:1rem;transition:all .2s}.profile-header .btn-back:hover{background:#667eea;color:#fff;border-color:#667eea}.profile-header h1{font-size:2rem;color:#2c3e50;margin:0}.profile-content{display:flex;flex-direction:column;gap:1.5rem;max-width:800px}.profile-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #00000014}.profile-card h2{margin:0 0 1.5rem;font-size:1.5rem;color:#2c3e50}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.card-header h2{margin:0}.btn-edit{background:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .2s}.btn-edit:hover{background:#5568d3}.photo-section{display:flex;align-items:center;gap:2rem}.photo-preview{width:150px;height:150px;border-radius:50%;overflow:hidden;border:4px solid #667eea;flex-shrink:0}.photo-preview img{width:100%;height:100%;object-fit:cover}.photo-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:700;color:#fff}.photo-actions{display:flex;flex-direction:column;gap:.75rem}.btn-select-photo,.btn-upload-photo{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s;text-align:center}.btn-select-photo:hover,.btn-upload-photo:hover{background:#5568d3}.btn-upload-photo{background:#27ae60}.btn-upload-photo:hover{background:#229954}.profile-info{display:flex;flex-direction:column;gap:1rem}.info-row{display:flex;align-items:center;gap:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.info-label{font-weight:600;color:#7f8c8d;min-width:120px}.info-value{color:#2c3e50;font-weight:500}.color-display{display:flex;align-items:center;gap:.75rem}.color-box{width:40px;height:40px;border-radius:6px;border:2px solid #e0e0e0}.profile-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#2c3e50;font-size:.95rem}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password]{padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.email-readonly{display:flex;flex-direction:column;gap:.5rem}.email-readonly input{background:#f8f9fa;cursor:not-allowed;opacity:.7}.readonly-hint{font-size:.85rem;color:#7f8c8d;font-style:italic}.color-picker{display:flex;align-items:center;gap:1rem}.color-picker input[type=color]{width:60px;height:40px;border:2px solid #e0e0e0;border-radius:6px;cursor:pointer}.color-value{font-family:monospace;color:#7f8c8d;font-size:.95rem}.form-actions{display:flex;gap:1rem;margin-top:.5rem}.btn-cancel,.btn-save{flex:1;padding:.875rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-cancel{background:#ecf0f1;color:#7f8c8d}.btn-cancel:hover{background:#d5dbdb}.btn-save{background:#667eea;color:#fff}.btn-save:hover{background:#5568d3}.password-info{color:#7f8c8d;font-style:italic;margin:0}@media(max-width:768px){.user-profile{padding:1rem}.profile-content{max-width:100%}.photo-section{flex-direction:column;align-items:flex-start}.info-row{flex-direction:column;align-items:flex-start;gap:.5rem}.info-label{min-width:auto}.form-actions{flex-direction:column}}.uren-administratie{min-height:100vh;background:#f5f7fa;padding:0}.uren-admin-header{background:#fff;box-shadow:0 2px 4px #0000001a;margin-bottom:2rem}.header-top{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid #e0e0e0}.title-section{display:flex;flex-direction:column;gap:.5rem}.title-section h1{margin:0;font-size:1.75rem;color:#2c3e50;font-weight:700}.header-actions{display:flex;gap:1rem}.btn-back{background:transparent;border:1px solid #667eea;color:#667eea;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-back:hover{background:#667eea;color:#fff}.btn-secondary{background:#fff;border:1px solid #e0e0e0;color:#667eea;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#f8f9fa;border-color:#667eea}.btn-primary{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.landscape-advice{display:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1rem 1.5rem;border-radius:12px;align-items:center;justify-content:center;gap:.75rem;font-size:1rem;font-weight:600;box-shadow:0 4px 12px #667eea4d}.landscape-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff3;border-radius:8px}.landscape-icon svg{width:24px;height:24px;fill:#fff}.month-selector{padding:1rem 2rem;border-bottom:1px solid #e0e0e0}.month-navigation{display:flex;align-items:center;justify-content:center;gap:1rem}.btn-month-nav{background:#f8f9fa;border:1px solid #e0e0e0;color:#667eea;width:40px;height:40px;border-radius:8px;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-month-nav:hover{background:#667eea;color:#fff;border-color:#667eea}.current-month{font-size:1.1rem;font-weight:600;color:#2c3e50;padding:.5rem 1rem;background:#f8f9fa;border-radius:8px}.tabs-container{display:flex;gap:0;padding:0 2rem}.tab-button{flex:1;background:transparent;border:none;border-bottom:3px solid transparent;padding:1rem 1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;color:#7f8c8d;font-weight:600;transition:all .2s}.tab-button:hover{color:#667eea;background:#f8f9fa}.tab-button.active{color:#667eea;border-bottom-color:#667eea;background:#f8f9fa}.tab-icon{font-size:1.25rem}.uren-admin-content{padding:2rem;max-width:1400px;margin:0 auto}.loading-state,.error-state,.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.spinner{border:3px solid #f3f3f3;border-top:3px solid #667eea;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-retry{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:600;margin-top:1rem}.readonly-banner{background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500}.readonly-icon{font-size:1.1rem}.toast{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);padding:1rem 1.5rem;border-radius:12px;display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:1rem;z-index:1000;animation:toastIn .3s ease-out;box-shadow:0 8px 32px #0003}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.toast-success{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff}.toast-error{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff}.toast-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff40;border-radius:50%;font-size:1rem}.toast-message{white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;padding:1rem}.afwezig-modal{background:#fff;border-radius:16px;width:100%;max-width:360px;box-shadow:0 16px 48px #0003;animation:modalIn .2s ease-out}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.afwezig-modal-header{background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;padding:1rem 1.25rem;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;align-items:center}.afwezig-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.afwezig-modal-header .btn-close{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.afwezig-modal-body{padding:1.25rem}.afwezig-dienst-info{background:#f8f9fa;padding:.75rem 1rem;border-radius:8px;margin:0 0 1rem;font-size:.9rem;color:#2c3e50}.afwezig-modal-body label{display:block;font-weight:600;color:#2c3e50;margin-bottom:.5rem;font-size:.9rem}.afwezig-input{width:100%;padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.afwezig-input:focus{outline:none;border-color:#e74c3c}.afwezig-hint{display:block;font-size:.8rem;color:#7f8c8d;margin-top:.5rem}.afwezig-modal-footer{padding:1rem 1.25rem;border-top:1px solid #e0e0e0;display:flex;gap:.75rem}.afwezig-modal-footer .btn-cancel{flex:1;padding:.75rem;border:2px solid #e0e0e0;background:#fff;color:#666;border-radius:8px;font-weight:600;cursor:pointer;font-size:.95rem}.afwezig-modal-footer .btn-confirm-afwezig{flex:1;padding:.75rem;border:none;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border-radius:8px;font-weight:600;cursor:pointer;font-size:.95rem}.afwezig-modal-footer .btn-confirm-afwezig:disabled{background:#bdc3c7;cursor:not-allowed}.confirm-modal{background:#fff;border-radius:16px;width:100%;max-width:360px;box-shadow:0 16px 48px #0003;animation:modalIn .2s ease-out}.confirm-modal-header{background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;padding:1rem 1.25rem;border-radius:16px 16px 0 0;display:flex;justify-content:space-between;align-items:center}.confirm-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.confirm-modal-header .btn-close{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.confirm-modal-body{padding:1.5rem 1.25rem;text-align:center}.confirm-icon{font-size:3rem;margin-bottom:1rem}.confirm-modal-body p{margin:0 0 .5rem;color:#2c3e50;font-size:1rem}.confirm-warning{color:#7f8c8d!important;font-size:.9rem!important}.confirm-summary{display:flex;justify-content:center;gap:2rem;margin-top:1rem;padding:.75rem;background:#f8f9fa;border-radius:8px}.confirm-summary span{color:#2c3e50}.confirm-summary strong{color:#27ae60}.confirm-modal-footer{padding:1rem 1.25rem;border-top:1px solid #e0e0e0;display:flex;gap:.75rem}.confirm-modal-footer .btn-cancel{flex:1;padding:.75rem;border:2px solid #e0e0e0;background:#fff;color:#666;border-radius:8px;font-weight:600;cursor:pointer;font-size:.95rem}.confirm-modal-footer .btn-confirm-submit{flex:1;padding:.75rem;border:none;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;border-radius:8px;font-weight:600;cursor:pointer;font-size:.95rem}.urenregistratie{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;position:relative}.table-container{overflow-x:auto}.uren-table{width:100%;border-collapse:collapse}.uren-table thead{background:#f8f9fa}.uren-table th{padding:1rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.9rem;border-bottom:2px solid #e0e0e0}.uren-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .2s}.uren-table tbody tr:hover{background:#f8f9fa}.uren-table tbody tr.geaccordeerd{background:#e8f5e9}.uren-table tbody tr.concept{background:#fff}.uren-table td{padding:1rem;color:#2c3e50;font-size:.95rem}.datum-cell .datum{display:flex;flex-direction:column;align-items:center}.datum-cell .day{font-size:1.25rem;font-weight:700;color:#2c3e50}.datum-cell .day-name{font-size:.85rem;color:#7f8c8d}.dienst-info{display:flex;flex-direction:column;gap:.25rem}.dienst-naam{font-weight:600;color:#2c3e50}.dienst-tijd{font-size:.875rem;color:#7f8c8d}.type-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .75rem;border-radius:12px;color:#fff;font-size:.875rem;font-weight:600;white-space:nowrap}.type-badge-editable{cursor:pointer;transition:all .2s ease}.type-badge-editable:hover{filter:brightness(1.1);transform:scale(1.05)}.type-edit-hint{font-size:.7rem;opacity:.8}.type-select{padding:.35rem .5rem;border:2px solid #667eea;border-radius:8px;font-size:.875rem;font-weight:600;background:#fff;cursor:pointer;min-width:120px}.type-select:focus{outline:none;box-shadow:0 0 0 3px #667eea4d}.tijd-inputs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.time-input{padding:.5rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.9rem}.uren-display{cursor:pointer;display:inline-flex;align-items:center;gap:.25rem}.edit-hint{color:#667eea;font-size:.875rem}.notitie-inputs{display:flex;flex-direction:column;gap:.5rem}.notitie-input,.reden-input{padding:.5rem;border:2px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%}.reden-input.required{border-color:#f39c12;background:#fff3cd}.notitie-display{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.notitie-text{color:#667eea}.reden-text{color:#f39c12;font-weight:600}.no-notitie{color:#bdc3c7}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600}.status-badge.geaccordeerd{background:#27ae60;color:#fff}.status-badge.concept{background:#667eea;color:#fff}.edit-actions{display:flex;gap:.5rem}.btn-save-small,.btn-cancel-small{width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-save-small{background:#27ae60;color:#fff}.btn-save-small:hover{background:#229954}.btn-cancel-small{background:#e74c3c;color:#fff}.btn-cancel-small:hover{background:#c0392b}.uren-table tfoot{background:#f8f9fa;font-weight:600}.uren-table tfoot td{padding:1.25rem 1rem;border-top:2px solid #e0e0e0}.totalen-summary{display:flex;gap:2rem;font-size:.95rem}.geaccordeerd-totaal{color:#27ae60}.concept-totaal{color:#f39c12}.accorderen{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:2rem}.accorderen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.accorderen-header h3{margin:0;font-size:1.5rem;color:#2c3e50}.btn-accorderen{background:#27ae60;color:#fff;border:none;padding:.875rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #27ae6033}.btn-accorderen:hover:not(:disabled){background:#229954;transform:translateY(-2px);box-shadow:0 4px 8px #27ae604d}.btn-accorderen:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none}.dagen-lijst{display:flex;flex-direction:column;gap:1rem}.dag-groep{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:box-shadow .2s}.dag-groep:hover{box-shadow:0 2px 8px #00000014}.dag-header{background:#f8f9fa;padding:1rem 1.5rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;transition:background .2s}.dag-header:hover{background:#ecf0f1}.dag-info{display:flex;align-items:center;gap:1rem}.dag-info input[type=checkbox]{width:20px;height:20px;cursor:pointer}.dag-naam{font-size:1.1rem;font-weight:600;color:#2c3e50;text-transform:capitalize}.dag-type{font-size:.875rem;color:#7f8c8d;text-transform:capitalize}.dag-meta{display:flex;align-items:center;gap:1rem}.diensten-count{font-size:.9rem;color:#667eea;font-weight:600}.expand-icon{color:#7f8c8d;font-size:.875rem;transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.diensten-lijst{display:flex;flex-direction:column;gap:.5rem;padding:1rem;background:#fff}.dienst-item{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:all .2s;background:#fff}.dienst-item:hover{background:#f8f9fa;border-color:#667eea}.dienst-item.selected{background:#e8f4fd;border-color:#667eea;box-shadow:0 2px 4px #667eea1a}.dienst-check input[type=checkbox]{width:20px;height:20px;cursor:pointer}.dienst-details{flex:1;display:flex;flex-direction:column;gap:.5rem}.dienst-titel{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.dienst-titel .dienst-naam{font-weight:600;color:#2c3e50}.dienst-titel .dienst-tijd{font-size:.875rem;color:#7f8c8d}.dienst-type-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600}.dienst-info{font-size:.875rem;color:#7f8c8d;display:flex;flex-direction:column;gap:.25rem}.dienst-notitie{color:#667eea}.dienst-reden{color:#f39c12;font-weight:600}.dienst-status .status-badge.niet-geaccordeerd{background:#f39c12;color:#fff}.declaratie{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:2rem}.declaratie-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e0e0e0}.declaratie-header h2{margin:0;font-size:1.75rem;color:#2c3e50;flex:1;min-width:0}.declaratie-status{padding:.5rem 1rem;border-radius:12px;font-weight:600;font-size:.875rem;white-space:nowrap}.declaratie-status.concept{background:#ecf0f1;color:#7f8c8d}.declaratie-status.ingediend{background:#667eea;color:#fff}.declaratie-status.goedgekeurd{background:#27ae60;color:#fff}.declaratie-status.uitbetaald{background:#2ecc71;color:#fff}.declaratie-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:2rem}.declaratie-kolom{display:flex;flex-direction:column;gap:1.5rem}.info-group{display:flex;flex-direction:column;gap:.5rem}.info-group label{font-size:.875rem;color:#7f8c8d;font-weight:600}.info-group .info-value{font-size:1.1rem;color:#2c3e50;font-weight:600}.info-group .totaal-bedrag{font-size:1.5rem;color:#27ae60}.warning-box{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:#fff3cd;border-left:4px solid #f39c12;border-radius:6px;margin-bottom:2rem}.warning-icon{font-size:1.5rem}.warning-text{color:#856404;font-weight:600}.client-details{margin-bottom:2rem}.client-details h3{margin:0 0 1rem;font-size:1.25rem;color:#2c3e50}.client-table{width:100%;border-collapse:collapse;table-layout:fixed}.client-table .text-right{text-align:right!important}.client-table thead{background:#f8f9fa}.client-table th{padding:.75rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.9rem;border-bottom:2px solid #e0e0e0}.client-table th:nth-child(1),.client-table td:nth-child(1){width:25%}.client-table th:nth-child(2),.client-table td:nth-child(2){width:25%}.client-table th:nth-child(3),.client-table td:nth-child(3){width:15%;text-align:right}.client-table th:nth-child(4),.client-table td:nth-child(4){width:15%;text-align:right}.client-table th:nth-child(5),.client-table td:nth-child(5){width:20%;text-align:right}.client-table td{padding:.75rem;color:#2c3e50;border-bottom:1px solid #f0f0f0}.declaratie-actions{display:flex;flex-direction:column;align-items:center;gap:1rem}.btn-genereer-declaratie{background:#27ae60;color:#fff;border:none;padding:1rem 2rem;border-radius:8px;font-weight:600;font-size:1.05rem;cursor:pointer;transition:all .2s;box-shadow:0 4px 8px #27ae6033}.btn-genereer-declaratie:hover:not(:disabled){background:#229954;transform:translateY(-2px);box-shadow:0 6px 12px #27ae604d}.btn-genereer-declaratie:disabled{background:#bdc3c7;cursor:not-allowed;box-shadow:none}.help-text{font-size:.9rem;color:#7f8c8d;font-style:italic;text-align:center;margin:0}@media(max-width:1024px){.declaratie-grid{grid-template-columns:1fr}}@media(max-width:768px){.uren-admin-header{padding:1rem}.header-top{flex-direction:column;gap:1rem;align-items:stretch}.header-actions{flex-direction:column}.landscape-advice{display:flex;margin:0 0 .75rem}.tabs-container{padding:0;gap:0}.tab-button{padding:.5rem;border-bottom:3px solid transparent;border-left:none}.tab-button.active{border-bottom-color:#667eea;border-left:none}.tab-icon{display:none}.tab-label{font-size:.85rem}.table-container{overflow-x:scroll}.declaratie-actions,.btn-genereer-declaratie{width:100%}.accorderen{padding:1rem}.accorderen-header{flex-direction:column;gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.accorderen-header h3{font-size:1.1rem;margin:0}.btn-accorderen{width:100%;padding:.625rem 1rem;font-size:.9rem}.dagen-lijst{gap:.5rem}.dag-header{padding:.75rem 1rem}.dag-info{gap:.5rem}.dag-info input[type=checkbox]{width:18px;height:18px}.dag-naam{font-size:.95rem}.dag-type{display:none}.diensten-count{font-size:.8rem}.diensten-lijst{padding:.5rem;gap:.375rem}.dienst-item{padding:.625rem;gap:.5rem;flex-wrap:wrap}.dienst-check input[type=checkbox]{width:18px;height:18px}.dienst-details{flex:1;min-width:0}.dienst-titel{gap:.375rem}.dienst-titel .dienst-naam{font-size:.9rem}.dienst-titel .dienst-tijd{font-size:.8rem}.dienst-type-badge{font-size:.7rem;padding:.15rem .5rem}.dienst-info{font-size:.8rem}.dienst-status{width:100%;margin-top:.25rem}.dienst-status .status-badge{font-size:.75rem;padding:.25rem .5rem}.month-selector,.uren-admin-content{padding:.5rem 1rem}.uren-admin-content:first-of-type{padding-top:.5rem;padding-bottom:0}}@media(max-width:900px)and (orientation:landscape){.landscape-advice{display:none!important}.uren-admin-content{padding:.25rem .5rem}.uren-admin-content:first-of-type{padding-top:.25rem;padding-bottom:0}.month-selector{padding:.25rem .5rem;border-bottom:none}.tabs-container{padding:0 .5rem}.tab-button{padding:.375rem .5rem;font-size:.85rem}.tab-icon{display:inline;font-size:1rem}}.client-table .type-row{background:#fff;transition:background .2s}.client-table .type-row:hover{background:#f8f9fa}.client-table .client-naam-cell{vertical-align:middle;background:#f8f9fa;font-weight:600;border-right:2px solid #e0e0e0}.client-table .dienst-type-badge{display:inline-block;white-space:nowrap}.client-table .client-totaal-row{background:#f0f4f8;border-top:2px solid #d0d0d0;border-bottom:2px solid #d0d0d0}.client-table .client-totaal-row td{padding:.85rem .75rem}.client-table .grand-totaal-row{border-top:3px solid #4c63d2;background:#f8f9fa;font-weight:600}.client-table .grand-totaal-row td{padding:1rem .75rem;font-size:1.05rem}.client-details{margin-top:2rem}.client-details h3{color:#2c3e50;margin-bottom:1rem;font-size:1.15rem}.uren-table tbody tr.afwijking-groen{background:#f0fdf4;border-left:3px solid #22c55e}.uren-table tbody tr.afwijking-oranje{background:#fffbeb;border-left:3px solid #f59e0b}.uren-table tbody tr.afwijking-rood{background:#fef2f2;border-left:3px solid #ef4444}.afwijking-indicator{display:inline-block;margin-left:6px;font-weight:600;font-size:.9rem;padding:2px 6px;border-radius:4px}.afwijking-indicator.afwijking-groen{color:#15803d;background:#dcfce7}.afwijking-indicator.afwijking-oranje{color:#c2410c;background:#fed7aa}.afwijking-indicator.afwijking-rood{color:#b91c1c;background:#fecaca}.uren-display-container{display:flex;align-items:center;gap:4px}.dienst-item.afwijking-groen{border-left:3px solid #22c55e;background:#f0fdf4}.dienst-item.afwijking-oranje{border-left:3px solid #f59e0b;background:#fffbeb}.dienst-item.afwijking-rood{border-left:3px solid #ef4444;background:#fef2f2}.mijn-declaraties{min-height:100vh;background:#f5f7fa}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#667eea}.declaraties-content{display:grid;grid-template-columns:350px 1fr;gap:1.5rem;padding:1.5rem;max-width:1400px;margin:0 auto}.declaraties-list{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #00000014}.declaraties-list h2{margin:0 0 1rem;font-size:1.25rem;color:#2c3e50}.empty-state{text-align:center;padding:2rem;color:#7f8c8d}.declaratie-cards{display:flex;flex-direction:column;gap:.75rem}.declaratie-card{background:#f8f9fa;border:2px solid transparent;border-radius:10px;padding:1rem;cursor:pointer;transition:all .2s}.declaratie-card:hover{background:#f0f2f5;border-color:#667eea}.declaratie-card.selected{background:#f0f4ff;border-color:#667eea}.declaratie-card.afgekeurd{background:#fff5f5}.declaratie-card.afgekeurd:hover,.declaratie-card.afgekeurd.selected{background:#ffe8e8;border-color:#dc3545}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.card-header .maand{font-weight:600;font-size:1.1rem;color:#2c3e50;text-transform:capitalize}.status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase}.card-body .totalen{display:flex;justify-content:space-between;margin-bottom:.5rem}.totalen .uren{color:#667eea;font-weight:600}.totalen .bedrag{color:#28a745;font-weight:600}.dienst-types{display:flex;flex-wrap:wrap;gap:.25rem}.type-badge{display:inline-flex;padding:.125rem .5rem;border-radius:4px;font-size:.7rem;color:#fff;white-space:nowrap}.card-alert{background:#dc3545;color:#fff;padding:.5rem;border-radius:6px;font-size:.8rem;margin-top:.75rem;text-align:center;font-weight:500}.declaratie-detail{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.detail-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.detail-header h2{margin:0;flex:1;font-size:1.5rem;text-transform:capitalize}.detail-header .status-badge{background:#fff3;color:#fff}.btn-close-detail{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.25rem;display:flex;align-items:center;justify-content:center}.btn-close-detail:hover{background:#ffffff4d}.detail-body{padding:1.5rem}.detail-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid #e9ecef}.detail-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.detail-section h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50;font-weight:600}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.summary-item{background:#f8f9fa;padding:.75rem;border-radius:8px}.summary-item .label{display:block;font-size:.8rem;color:#7f8c8d;margin-bottom:.25rem}.summary-item .value{display:block;font-size:1.1rem;font-weight:600;color:#2c3e50}.types-breakdown{display:flex;flex-direction:column;gap:.5rem}.summary-types .type-row{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#f8f9fa;border-radius:6px}.type-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.type-name{flex:1;font-weight:500;color:#2c3e50}.type-count{color:#7f8c8d;font-size:.9rem}.type-uren{font-weight:500;color:#667eea;min-width:50px;text-align:right}.type-bedrag{font-weight:600;color:#28a745;min-width:80px;text-align:right}.afgekeurde-diensten-list{display:flex;flex-direction:column;gap:.75rem}.afgekeurde-dienst-item{background:#fff5f5;border:1px solid #ffcdd2;border-radius:8px;padding:.75rem 1rem;border-left:4px solid #ef5350}.afgekeurde-dienst-item.has-opmerking{border-left-color:#d32f2f}.afgekeurde-dienst-header{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.afgekeurde-dienst-header .dienst-datetime{display:flex;flex-direction:column;gap:0;min-width:80px}.afgekeurde-dienst-header .dienst-dag{font-weight:700;font-size:.85rem;color:#2c3e50;text-transform:capitalize}.afgekeurde-dienst-header .dienst-tijd{font-size:.75rem;color:#667eea;font-weight:500}.afgekeurde-dienst-header .dienst-client{background:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.8rem;color:#495057}.afgekeurde-dienst-header .dienst-type{background:#e3f2fd;padding:.2rem .5rem;border-radius:4px;font-size:.8rem;color:#1976d2;font-weight:500}.afgekeurde-dienst-header .dienst-uren{font-size:.8rem;font-weight:600;color:#667eea;margin-left:auto}.afgekeurde-dienst-header .dienst-bedrag{font-size:.8rem;font-weight:600;color:#28a745}.dienst-opmerking{margin-top:.5rem;padding:.5rem;background:#fff;border-radius:6px;font-size:.85rem;color:#c62828;border-left:2px solid #d32f2f}.dienst-reactie{margin-top:.5rem;padding:.5rem .5rem .5rem 1rem;font-size:.85rem;color:#2e7d32;border-left:2px solid #4caf50}.afgekeurd-section{background:#fff5f5;margin:-1.5rem;margin-top:0;padding:1.5rem;border-bottom:none}.afkeur-info{margin-bottom:1rem}.afkeur-datum{color:#dc3545;font-size:.9rem;margin:0 0 .5rem}.afkeur-reden{background:#fff;padding:1rem;border-radius:8px;border-left:4px solid #dc3545}.afkeur-reden strong{display:block;margin-bottom:.25rem;color:#dc3545}.afkeur-reden p{margin:0;color:#2c3e50}.line-feedback-list{margin-top:1rem}.line-feedback-list h4{margin:0 0 .75rem;font-size:.9rem;color:#2c3e50}.feedback-item{background:#fff;border-radius:8px;padding:1rem;margin-bottom:.75rem;border-left:4px solid #dc3545}.feedback-item.handled{border-left-color:#28a745;opacity:.7}.feedback-dienst-header{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #f0f2f5}.dienst-datetime{display:flex;flex-direction:column;gap:.125rem;min-width:100px}.dienst-dag{font-weight:700;font-size:.95rem;color:#2c3e50;text-transform:capitalize}.dienst-tijd{font-size:.85rem;color:#667eea;font-weight:500}.dienst-info{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;flex:1}.dienst-client{background:#f0f2f5;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;color:#495057}.dienst-type{background:#e3f2fd;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;color:#1976d2;font-weight:500}.feedback-dienst{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;font-size:.85rem}.feedback-dienst span{background:#f0f2f5;padding:.25rem .5rem;border-radius:4px}.dienst-datum{font-weight:600;color:#2c3e50}.feedback-content{font-size:.9rem}.admin-opmerking{color:#dc3545;margin-bottom:.5rem}.medewerker-reactie{color:#28a745;padding-left:1rem;border-left:2px solid #28a745}.btn-reageren{width:100%;padding:1rem;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:1rem}.btn-reageren:hover{background:#5568d3}.goedgekeurd-section .success-message{background:#d4edda;color:#155724;padding:1rem;border-radius:8px;text-align:center;font-weight:500}.admin-opmerkingen{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.admin-opmerkingen p{margin:.5rem 0 0}.ingediend-section .pending-message{background:#fff3cd;color:#856404;padding:1rem;border-radius:8px;text-align:center;font-weight:500}.medewerker-reactie-section{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px}.medewerker-reactie-section p{margin:.5rem 0 0}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-content.reageer-modal{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;background:#f8f9fa}.modal-header h2{margin:0;font-size:1.25rem;color:#2c3e50}.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#7f8c8d;padding:0;line-height:1}.line-responses h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50}.line-response-item{background:#f8f9fa;border-radius:8px;padding:1rem;margin-bottom:1rem;border-left:3px solid #dc3545}.response-dienst-header{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.response-datetime{display:flex;flex-direction:column;gap:.125rem;min-width:100px}.response-dag{font-weight:700;font-size:.9rem;color:#2c3e50;text-transform:capitalize}.response-tijd{font-size:.8rem;color:#667eea;font-weight:500}.response-info{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;flex:1}.response-client{background:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;color:#495057}.response-type{background:#e3f2fd;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;color:#1976d2;font-weight:500}.feedback-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem;font-size:.85rem}.feedback-summary span{background:#fff;padding:.25rem .5rem;border-radius:4px}.feedback-summary .datum{font-weight:600}.original-feedback{margin-bottom:.75rem;padding:.5rem .75rem;background:#fff5f5;border-radius:6px;font-size:.85rem;color:#dc3545;border-left:2px solid #dc3545}.line-response-item textarea{width:100%;padding:.5rem;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem;resize:vertical;font-family:inherit}.line-response-item textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.btn-primary{background:#667eea;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer}.btn-primary:hover{background:#5568d3}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.client-detail-table{width:100%;border-collapse:collapse;table-layout:fixed}.client-detail-table .text-right{text-align:right!important}.client-detail-table thead{background:#f8f9fa}.client-detail-table th{padding:.75rem;text-align:left;font-weight:600;color:#2c3e50;font-size:.9rem;border-bottom:2px solid #e0e0e0}.client-detail-table td{padding:.75rem;color:#2c3e50;border-bottom:1px solid #f0f0f0}.client-detail-table .detail-type-row{background:#fff;transition:background .2s}.client-detail-table .detail-type-row:hover{background:#f8f9fa}.client-detail-table .client-naam-cell{vertical-align:middle;background:#f8f9fa;font-weight:600;border-right:2px solid #e0e0e0}.client-detail-table .client-subtotaal-row{background:#f0f4f8;border-top:2px solid #d0d0d0;border-bottom:2px solid #d0d0d0}.client-detail-table .client-subtotaal-row td{padding:.85rem .75rem}.client-detail-table .grand-totaal-row{border-top:3px solid #667eea;background:#f8f9fa;font-weight:600}.client-detail-table .grand-totaal-row td{padding:1rem .75rem;font-size:1.05rem}@media(max-width:900px){.declaraties-content{grid-template-columns:1fr;padding:.75rem}.declaraties-list{padding:1rem}.declaratie-detail{position:fixed;inset:0;z-index:100;border-radius:0;display:flex;flex-direction:column}.detail-header{padding:1rem}.detail-header h2{font-size:1.25rem}.detail-body{padding:1rem;overflow-y:auto;flex:1}.summary-grid{grid-template-columns:1fr}.type-row{flex-wrap:wrap}.type-name{flex:1 1 100%;margin-bottom:.25rem}}@media(max-width:480px){.declaraties-content{padding:.5rem}.declaratie-card{padding:.75rem}.card-header .maand{font-size:1rem}.modal-content{max-height:100vh;border-radius:0}.feedback-dienst{font-size:.75rem}}.zorg-declaraties-v2{min-height:100vh;background:#f5f7fa;display:flex;flex-direction:column}.declaraties-toolbar{background:#fff;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.toolbar-filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.status-tabs{display:flex;gap:.25rem;background:#f0f2f5;padding:.25rem;border-radius:8px}.status-tabs .tab{background:transparent;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;color:#6c757d;display:flex;align-items:center;gap:.5rem;transition:all .2s}.status-tabs .tab:hover{color:#495057}.status-tabs .tab.active{background:#fff;color:#667eea;font-weight:600;box-shadow:0 1px 3px #0000001a}.tab-count{background:#dc3545;color:#fff;font-size:.7rem;padding:.125rem .5rem;border-radius:10px;font-weight:600}.extra-filters{display:flex;gap:.5rem;align-items:center}.filter-select{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.875rem;background:#fff;cursor:pointer}.filter-select:focus{outline:none;border-color:#667eea}.search-input{padding:.5rem .75rem;border:1px solid #dee2e6;border-radius:6px;font-size:.875rem;width:180px}.search-input:focus{outline:none;border-color:#667eea}.toolbar-actions{display:flex;gap:.5rem}.btn-select-groene{background:#e8f5e9;color:#2e7d32;border:1px solid #a5d6a7;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-select-groene:hover{background:#c8e6c9}.btn-bulk-goedkeuren{background:#28a745;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.btn-bulk-goedkeuren:hover{background:#218838}.btn-bulk-goedkeuren:disabled{background:#ccc;cursor:not-allowed}.declaraties-spreadsheet{flex:1;padding:1rem 1.5rem;overflow:auto}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#7f8c8d}.loading-state .spinner{width:40px;height:40px;border:3px solid #e0e0e0;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite}.spreadsheet-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.spreadsheet-table thead{background:#f8f9fa;position:sticky;top:0;z-index:10}.spreadsheet-table th{padding:.75rem .5rem;text-align:left;font-weight:600;color:#495057;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e9ecef;white-space:nowrap}.spreadsheet-table tbody tr{cursor:pointer;transition:background .15s}.spreadsheet-table tbody tr:hover{background:#f8f9fa}.spreadsheet-table tbody tr.selected{background:#e3f2fd}.spreadsheet-table td{padding:.625rem .5rem;border-bottom:1px solid #f0f2f5;font-size:.875rem}.spreadsheet-table tbody tr.row-groen{background:#fff}.spreadsheet-table tbody tr.row-oranje{background:#fff8e1}.spreadsheet-table tbody tr.row-rood{background:#ffebee}.spreadsheet-table tbody tr.row-oranje:hover{background:#ffecb3}.spreadsheet-table tbody tr.row-rood:hover{background:#ffcdd2}.spreadsheet-table tbody tr.has-reactie{border-left:3px solid #2196f3}.col-checkbox{width:40px;text-align:center}.col-medewerker{min-width:150px}.col-maand{width:100px}.col-uren{width:70px;text-align:right}.col-bedrag{width:100px;text-align:right}.col-afwijking{width:80px;text-align:center}.col-extra{width:80px}.col-status{width:100px}.col-acties{width:120px}.medewerker-cell{display:flex;align-items:center;gap:.5rem}.medewerker-naam{font-weight:500;color:#2c3e50}.herindiening-badge{background:#2196f3;color:#fff;font-size:.65rem;padding:.125rem .4rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;animation:pulse-blue 2s infinite}@keyframes pulse-blue{0%,to{opacity:1}50%{opacity:.7}}tr.is-herindiening{background:#e3f2fd!important;border-left:3px solid #2196f3}tr.is-herindiening:hover{background:#bbdefb!important}.panel-herindiening{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:1px solid #2196f3;border-left:4px solid #2196f3;border-radius:8px;padding:1rem;margin-bottom:1rem}.herindiening-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;color:#1565c0;font-size:.95rem}.herindiening-icon{font-size:1.1rem}.medewerker-algemene-reactie{background:#fff;border-radius:6px;padding:.75rem;margin-top:.5rem}.medewerker-algemene-reactie .reactie-label{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.03em;display:block;margin-bottom:.25rem}.medewerker-algemene-reactie p{margin:0;color:#333;font-size:.9rem;line-height:1.5}.reactie-count-info{font-size:.8rem;color:#1565c0;margin-top:.75rem;font-style:italic}.reactie-dot{color:#2196f3;font-size:.75rem}.afwijking-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.8rem}.afwijking-badge.groen{background:#e8f5e9;color:#2e7d32}.afwijking-badge.oranje{background:#fff3e0;color:#e65100}.afwijking-badge.rood{background:#ffebee;color:#c62828}.afwijking-count{font-weight:600;margin-left:.125rem}.types-mini{display:flex;gap:.25rem}.type-dot{width:12px;height:12px;border-radius:50%}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase}.status-concept{background:#e9ecef;color:#6c757d}.status-ingediend{background:#fff3cd;color:#856404}.status-goedgekeurd{background:#d4edda;color:#155724}.status-afgekeurd{background:#f8d7da;color:#721c24}.status-uitbetaald{background:#cce5ff;color:#004085}.actie-buttons{display:inline-flex;gap:.25rem}.btn-actie{width:28px;height:28px;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.btn-actie.btn-goedkeuren{background:#e8f5e9;color:#2e7d32}.btn-actie.btn-goedkeuren:hover{background:#28a745;color:#fff}.btn-actie.btn-afkeuren{background:#ffebee;color:#c62828}.btn-actie.btn-afkeuren:hover{background:#dc3545;color:#fff}.btn-actie.btn-details{background:#e3f2fd;color:#1976d2}.btn-actie.btn-details:hover{background:#2196f3;color:#fff}.detail-panel-overlay{position:fixed;inset:0;background:#0000004d;z-index:100;display:flex;justify-content:flex-end}.detail-panel{width:500px;max-width:90vw;background:#fff;height:100%;display:flex;flex-direction:column;box-shadow:-4px 0 20px #00000026;animation:slideIn .2s ease-out}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.panel-header{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.panel-title{flex:1}.panel-title h2{margin:0;font-size:1.25rem}.panel-maand{opacity:.9;font-size:.9rem}.panel-header .status-badge{background:#fff3;color:#fff}.btn-close-panel{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:50%;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-close-panel:hover{background:#ffffff4d}.panel-summary{display:flex;gap:1rem;padding:1rem 1.5rem;background:#f8f9fa;border-bottom:1px solid #e9ecef}.panel-summary .summary-item{flex:1;text-align:center}.panel-summary .label{display:block;font-size:.75rem;color:#7f8c8d;margin-bottom:.25rem}.panel-summary .value{display:block;font-size:1.25rem;font-weight:600;color:#2c3e50}.panel-summary .value.warning{color:#dc3545}.panel-reactie{margin:1rem 1.5rem;padding:1rem;background:#e3f2fd;border-radius:8px;border-left:4px solid #2196f3}.panel-reactie h4{margin:0 0 .5rem;font-size:.875rem;color:#1976d2}.panel-reactie p{margin:0;font-size:.9rem;color:#2c3e50}.panel-diensten{flex:1;overflow-y:auto;padding:1rem 1.5rem}.panel-diensten h3{margin:0 0 1rem;font-size:1rem;color:#2c3e50}.diensten-list{display:flex;flex-direction:column;gap:.5rem}.dienst-item{display:flex;flex-direction:column;padding:.5rem;background:#f8f9fa;border-radius:6px;font-size:.8rem}.dienst-item.has-feedback{background:#e3f2fd;border:1px solid #90caf9}.dienst-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;width:100%}.dienst-item.afwijking-oranje{background:#fff8e1;border-left:3px solid #ff9800}.dienst-item.afwijking-rood{background:#ffebee;border-left:3px solid #f44336}.dienst-datum{font-weight:600;color:#2c3e50;min-width:60px}.dienst-client{flex:1;color:#495057;min-width:80px}.dienst-type{padding:.125rem .5rem;border-radius:4px;color:#fff;font-size:.7rem}.dienst-tijd{color:#7f8c8d;min-width:90px}.dienst-uren{font-weight:500;color:#667eea;min-width:45px;text-align:right}.dienst-bedrag{font-weight:500;color:#28a745;min-width:60px;text-align:right}.dienst-afwijking{padding:.125rem .375rem;border-radius:4px;font-size:.7rem;font-weight:600}.dienst-afwijking.oranje{background:#fff3e0;color:#e65100}.dienst-afwijking.rood{background:#ffebee;color:#c62828}.dienst-feedback{width:100%;margin-top:.5rem;padding-top:.5rem;border-top:1px dashed #90caf9;display:flex;flex-direction:column;gap:.375rem}.feedback-admin,.feedback-medewerker{display:flex;gap:.5rem;font-size:.75rem;line-height:1.4}.feedback-admin{color:#c62828}.feedback-medewerker{color:#1565c0}.feedback-label{font-weight:600;flex-shrink:0}.feedback-text{flex:1}.panel-actions{display:flex;gap:1rem;padding:1rem 1.5rem;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-panel-afkeuren{flex:1;padding:.75rem;background:#fff;color:#dc3545;border:2px solid #dc3545;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-panel-afkeuren:hover{background:#dc3545;color:#fff}.btn-panel-goedkeuren{flex:1;padding:.75rem;background:#28a745;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-panel-goedkeuren:hover{background:#218838}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.modal-content{background:#fff;border-radius:12px;max-width:700px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.afkeur-modal{max-width:800px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#f8d7da;border-bottom:1px solid #f5c6cb}.modal-header h2{margin:0;font-size:1.25rem;color:#721c24}.btn-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#721c24;padding:0;line-height:1}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.afkeur-summary{background:#f8f9fa;padding:1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.95rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50}.form-group textarea{width:100%;padding:.75rem;border:1px solid #dee2e6;border-radius:8px;font-size:.95rem;resize:vertical;font-family:inherit}.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.line-feedback-section h4{margin:0 0 .25rem;font-size:.95rem;color:#2c3e50}.feedback-hint{margin:0 0 .75rem;font-size:.8rem;color:#7f8c8d}.line-feedback-list{max-height:350px;overflow-y:auto;border:1px solid #e9ecef;border-radius:8px}.line-feedback-item{padding:.5rem .75rem;border-bottom:1px solid #f0f2f5;transition:background .15s}.line-feedback-item:last-child{border-bottom:none}.line-feedback-item.highlight-oranje{background:#fff8e1}.line-feedback-item.highlight-rood{background:#ffebee}.line-feedback-item.selected{background:#e3f2fd;border-left:3px solid #2196f3}.line-feedback-item.highlight-oranje.selected{background:#fff3e0;border-left:3px solid #ff9800}.line-feedback-item.highlight-rood.selected{background:#ffcdd2;border-left:3px solid #f44336}.regel-row{display:flex;align-items:center;gap:.75rem}.checkbox-label{position:relative;cursor:pointer;display:flex;align-items:center}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.regel-summary{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;flex:1;align-items:center}.regel-summary span{padding:.125rem .5rem;border-radius:4px;background:#f8f9fa}.regel-summary .datum{font-weight:600}.regel-summary .type{color:#fff}.afwijking-mini{font-size:.7rem;font-weight:600}.afwijking-mini.oranje{background:#fff3e0;color:#e65100}.afwijking-mini.rood{background:#ffebee;color:#c62828}.feedback-input-row{margin-top:.5rem;padding-left:2rem}.feedback-input-row input{width:100%;padding:.5rem;border:1px solid #2196f3;border-radius:6px;font-size:.85rem;background:#fff}.feedback-input-row input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e9ecef;background:#f8f9fa}.btn-secondary{background:#e9ecef;color:#495057;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer}.btn-secondary:hover{background:#dee2e6}.btn-danger{background:#dc3545;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer}.btn-danger:hover{background:#c82333}.btn-danger:disabled{background:#ccc;cursor:not-allowed}.loading-inline{padding:2rem;text-align:center;color:#7f8c8d}@media(max-width:1024px){.declaraties-toolbar,.toolbar-filters{flex-direction:column;align-items:stretch}.status-tabs{overflow-x:auto}.extra-filters{flex-wrap:wrap}.search-input{flex:1;min-width:150px}.detail-panel{width:100%;max-width:100%}}@media(max-width:768px){.declaraties-toolbar{padding:.75rem}.status-tabs .tab{padding:.4rem .75rem;font-size:.8rem}.declaraties-spreadsheet{padding:.5rem}.spreadsheet-table{font-size:.8rem}.spreadsheet-table th,.spreadsheet-table td{padding:.5rem .375rem}.col-extra,.col-status{display:none}.col-medewerker{min-width:100px}.btn-actie{width:24px;height:24px;font-size:.75rem}.panel-summary{flex-wrap:wrap}.dienst-item{font-size:.75rem}}@media(max-width:480px){.status-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.status-tabs .tab{flex-shrink:0}.col-afwijking{display:none}.col-bedrag{width:80px}.modal-content{max-height:100vh;border-radius:0}}.week-range-picker{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e0e0e0}.picker-label{font-weight:600;font-size:.875rem;color:#333;margin-bottom:.25rem}.picker-inputs{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.picker-field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.date-input{padding:.5rem .75rem;border:1px solid #ccc;border-radius:4px;font-size:.9375rem;min-width:160px;background:#fff}.date-input:focus{outline:none;border-color:var(--color-primary, #4a90a4);box-shadow:0 0 0 2px #4a90a433}.week-hint{font-size:.75rem;color:#888}.picker-separator{color:#666;font-weight:500;padding-top:1rem}.period-display{font-size:.875rem;color:#555;background:#fff;padding:.5rem .75rem;border-radius:4px;border:1px solid #e0e0e0}.picker-presets{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.preset-btn{padding:.375rem .75rem;font-size:.8125rem;background:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:all .15s ease;color:#333}.preset-btn:hover{background:var(--color-primary, #4a90a4);border-color:var(--color-primary, #4a90a4);color:#fff}.week-range-picker.compact{padding:0;background:none;border:none;gap:0}.week-range-picker.compact .picker-inputs{gap:.5rem;align-items:flex-end}.week-range-picker.compact .picker-field{gap:.125rem}.week-range-picker.compact .field-label{font-size:.625rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.week-range-picker.compact .date-input{padding:.375rem .5rem;font-size:.875rem;min-width:120px;height:32px}.week-range-picker.compact .picker-separator{padding-top:0;padding-bottom:.375rem;font-size:.75rem;color:#666}@media(max-width:600px){.picker-inputs{flex-direction:column;align-items:stretch}.picker-separator{padding-top:0;text-align:center}.date-input{width:100%}.picker-presets{justify-content:center}}.client-uren-overzicht{min-height:100vh;background:#f5f5f5}.cuo-content{max-width:1400px;margin:0 auto;padding:.75rem 1.5rem 1.5rem}.cuo-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.75rem}.cuo-status-filter{display:flex;flex-direction:column;gap:.125rem}.cuo-status-filter label{font-size:.625rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px}.cuo-status-filter select{padding:.375rem .5rem;border:1px solid #ccc;border-radius:4px;font-size:.875rem;min-width:140px;height:32px}.cuo-summary{display:flex;gap:.75rem;margin-left:auto;flex-wrap:wrap}.summary-item{background:#fff;padding:.5rem 1rem;border-radius:6px;box-shadow:0 1px 2px #00000014;display:flex;flex-direction:column;min-width:100px;border:1px solid #e5e7eb}.summary-label{font-size:.625rem;color:#666;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1.25rem;font-weight:600;color:#333}.cuo-error{background:#fee2e2;color:#dc2626;padding:1rem;border-radius:8px;margin-bottom:1rem}.cuo-loading{text-align:center;padding:3rem;color:#666}.cuo-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.cuo-table{width:100%;border-collapse:collapse}.cuo-table th,.cuo-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.cuo-table th{background:#f9fafb;font-weight:600;font-size:.8125rem;text-transform:uppercase;letter-spacing:.5px;color:#6b7280}.cuo-table tbody tr{cursor:pointer;transition:background .15s ease}.cuo-table tbody tr:hover{background:#f3f4f6}.cuo-table tbody tr.selected{background:#e0f2fe}.client-name{font-weight:500;color:#111}.text-right{text-align:right!important}.text-center{text-align:center!important}.status-badge{display:inline-block;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-verwerkt{background:#dcfce7;color:#166534}.status-deels{background:#fef3c7;color:#92400e}.status-niet{background:#fee2e2;color:#991b1b}.btn-detail{padding:.375rem .75rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;transition:all .15s ease}.btn-detail:hover{background:#f3f4f6}.cuo-detail-panel{position:fixed;top:0;left:0;right:0;width:100%;height:100vh;background:#fff;z-index:100;display:flex;flex-direction:column;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.detail-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,var(--color-primary, #4a90a4) 0%,#357a8c 100%);color:#fff}.detail-title h3{margin:0 0 .25rem;font-size:1.125rem}.detail-period{font-size:.875rem;opacity:.9}.btn-close{background:#fff3;border:none;color:#fff;font-size:1.5rem;width:36px;height:36px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.btn-close:hover{background:#ffffff4d}.detail-loading{padding:3rem;text-align:center;color:#666}.detail-summary{display:flex;gap:2rem;padding:1rem 2rem;background:#f9fafb;border-bottom:1px solid #e5e7eb;justify-content:flex-start}.summary-box{display:flex;flex-direction:column;text-align:center}.summary-box .label{font-size:.6875rem;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.summary-box .value{font-size:1.125rem;font-weight:600;color:#111}.summary-box .value.highlight{color:#dc2626}.medewerker-totalen{padding:1rem 2rem;border-bottom:1px solid #e5e7eb}.medewerker-totalen h4{margin:0 0 .75rem;font-size:.875rem;color:#374151}.medewerker-list{display:flex;flex-wrap:wrap;gap:.5rem}.medewerker-item{display:flex;gap:1rem;align-items:center;padding:.5rem 1rem;background:#f3f4f6;border-radius:4px;font-size:.875rem}.medewerker-item .naam{font-weight:500;min-width:150px}.medewerker-item .uren{color:#6b7280}.medewerker-item .bedrag{font-weight:500}.diensten-list{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:1rem 2rem}.diensten-list h4{margin:0 0 .75rem;font-size:.875rem;color:#374151}.diensten-table-container{flex:1;overflow-y:auto;border:1px solid #e5e7eb;border-radius:4px}.diensten-table{width:100%;border-collapse:collapse;font-size:.875rem}.diensten-table th,.diensten-table td{padding:.625rem 1rem;text-align:left;border-bottom:1px solid #e5e7eb}.diensten-table th{background:#f9fafb;font-weight:600;position:sticky;top:0;z-index:1;white-space:nowrap}.diensten-table tr.verwerkt{background:#f0fdf4;color:#6b7280}.dienst-type-badge{display:inline-block;padding:.125rem .375rem;border-radius:3px;font-size:.6875rem;color:#fff}.status-icon{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;font-size:.75rem}.status-icon.verwerkt{background:#dcfce7;color:#166534}.declaratie-status{display:inline-block;width:20px;height:20px;line-height:20px;text-align:center;border-radius:50%;font-size:.75rem}.declaratie-status{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.declaratie-status.goedgekeurd{background:#dcfce7;color:#166534}.declaratie-status.ingediend{background:#dbeafe;color:#1e40af}.declaratie-status.concept{background:#fef3c7;color:#92400e}.declaratie-status.afgekeurd{background:#fee2e2;color:#991b1b}.declaratie-status.niet_gedeclareerd{background:#f3f4f6;color:#6b7280}.status-icon.niet-verwerkt{background:#f3f4f6;color:#9ca3af}.detail-actions{padding:1rem 2rem;border-top:1px solid #e5e7eb;display:flex;gap:1rem;flex-wrap:wrap;background:#f9fafb;justify-content:flex-start}.btn-group{display:flex;gap:.25rem}.btn{padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;font-size:.875rem;cursor:pointer;transition:all .15s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#fff;color:#374151}.btn-secondary:hover:not(:disabled){background:#f3f4f6}.btn-primary{background:var(--color-primary, #4a90a4);color:#fff;border-color:var(--color-primary, #4a90a4)}.btn-primary:hover:not(:disabled){background:#357a8c;border-color:#357a8c}.btn-success{background:#16a34a;color:#fff;border-color:#16a34a}.btn-success:hover:not(:disabled){background:#15803d;border-color:#15803d}.all-processed-notice{padding:.75rem 1.5rem;background:#dcfce7;color:#166534;text-align:center;font-size:.875rem}.export-preview{max-height:60vh;overflow:hidden;display:flex;flex-direction:column}.preview-header{margin-bottom:1rem}.preview-header p{margin:0;line-height:1.6}.preview-header .warning{margin-top:.75rem;padding:.5rem .75rem;background:#fef3c7;color:#92400e;border-radius:4px}.preview-table-container{flex:1;overflow-y:auto;border:1px solid #e5e7eb;border-radius:4px}.preview-table{width:100%;border-collapse:collapse;font-size:.8125rem}.preview-table th,.preview-table td{padding:.5rem .625rem;text-align:left;border-bottom:1px solid #e5e7eb}.preview-table th{background:#f9fafb;font-weight:600;position:sticky;top:0}.modal-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}@media(max-width:768px){.cuo-filters{flex-direction:column;align-items:stretch}.cuo-summary{margin-left:0;margin-top:.5rem}.summary-item{flex:1}.cuo-detail-panel{width:100%}.detail-summary{grid-template-columns:repeat(2,1fr)}.detail-actions{flex-direction:column}.btn-group{width:100%}.btn-group .btn{flex:1}}.notificaties-page{max-width:800px;margin:0 auto;padding:1.5rem}.notificaties-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header-left{display:flex;align-items:center;gap:1rem}.notificaties-header h1{margin:0;font-size:1.75rem;color:#2c3e50}.unread-badge{background:#667eea;color:#fff;padding:.25rem .75rem;border-radius:20px;font-size:.85rem;font-weight:500}.header-actions{display:flex;gap:.75rem}.refresh-btn{background:none;border:1px solid #e9ecef;padding:.5rem .75rem;border-radius:8px;cursor:pointer;font-size:1.1rem;transition:all .2s}.refresh-btn:hover{background:#f8f9fa;transform:rotate(90deg)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.mark-all-btn{background:#667eea;color:#fff;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.mark-all-btn:hover{background:#5a6fd6}.notificaties-filters{background:#fff;border-radius:12px;padding:1rem;margin-bottom:1.5rem;box-shadow:0 2px 8px #00000014}.filter-tabs{display:flex;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e9ecef}.filter-tab{background:#f8f9fa;border:none;padding:.5rem 1rem;border-radius:20px;cursor:pointer;font-size:.9rem;color:#6c757d;transition:all .2s}.filter-tab:hover{background:#e9ecef}.filter-tab.active{background:#667eea;color:#fff}.type-filters{display:flex;flex-wrap:wrap;gap:.5rem}.type-filter{display:flex;align-items:center;gap:.4rem;background:#f8f9fa;border:1px solid #e9ecef;padding:.4rem .75rem;border-radius:8px;cursor:pointer;font-size:.85rem;transition:all .2s}.type-filter:hover{background:#f0f0f0}.type-filter.active{background:var(--type-color, #667eea);color:#fff;border-color:var(--type-color, #667eea)}.type-icon{font-size:.95rem}.type-label{font-weight:500}.type-count{background:#0000001a;padding:.1rem .4rem;border-radius:4px;font-size:.75rem}.type-filter.active .type-count{background:#ffffff4d}.notificaties-content{min-height:300px}.loading-state,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:#6c757d}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{margin:0 0 .5rem;color:#495057}.empty-state p{margin:0}.spinner{width:40px;height:40px;border:3px solid #e9ecef;border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.day-group{margin-bottom:2rem}.day-header{font-size:.9rem;font-weight:600;color:#6c757d;text-transform:capitalize;margin-bottom:.75rem;padding-left:.5rem}.notification-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.notification-card{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;background:#fff;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 2px 8px #00000014;transition:all .2s;overflow:hidden}.notification-card:hover{box-shadow:0 4px 12px #0000001f;transform:translateY(-1px)}.notification-card.unread{background:linear-gradient(135deg,#f8f9ff,#fff)}.card-accent{position:absolute;left:0;top:0;bottom:0;width:4px}.card-icon{font-size:1.75rem;display:flex;align-items:flex-start;padding-top:.25rem}.card-content{min-width:0}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem}.card-type{font-size:.75rem;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.card-time{font-size:.8rem;color:#adb5bd}.card-title{margin:0 0 .375rem;font-size:1rem;font-weight:600;color:#2c3e50}.card-message{margin:0;font-size:.9rem;color:#6c757d;line-height:1.5;white-space:pre-line}.card-link{display:inline-block;margin-top:.75rem;color:#667eea;text-decoration:none;font-size:.9rem;font-weight:500;background:none;border:none;padding:0;cursor:pointer}.card-link:hover{text-decoration:underline}.card-actions{display:flex;flex-direction:column;gap:.5rem;opacity:0;transition:opacity .2s}.notification-card:hover .card-actions{opacity:1}.action-btn{width:28px;height:28px;border-radius:50%;border:none;background:#f0f0f0;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.action-btn:hover{background:#667eea;color:#fff}.action-btn.hide:hover{background:#dc3545}.unread-indicator{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:8px;height:8px;background:#667eea;border-radius:50%}@media(max-width:768px){.notificaties-page{padding:1rem}.notificaties-header{flex-direction:column;gap:1rem;align-items:flex-start}.header-actions{width:100%;justify-content:space-between}.filter-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:.75rem}.type-filters{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:.5rem}.notification-card{grid-template-columns:auto 1fr;padding:.875rem 1rem}.card-actions{position:absolute;top:.5rem;right:.5rem;flex-direction:row;opacity:1}}@media(max-width:480px){.notificaties-header h1{font-size:1.4rem}.card-icon{font-size:1.5rem}.card-title{font-size:.95rem}.card-message{font-size:.85rem}}
