*{margin:0;padding:0;box-sizing:border-box}html{background:#1e3a5f;overscroll-behavior:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f7fa}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f7fa;gap:16px}.loading-screen p{color:#666}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a5f,#2e5a8f);padding:20px}.login-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;margin-bottom:32px}.login-logo{max-width:280px;height:auto;margin-bottom:8px}.login-header h1{font-size:32px;color:#1e3a5f;margin:0 0 8px}.login-header p{color:#666;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group input{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#2e5a8f}.error-message{background:#fee;color:#c00;padding:12px;border-radius:8px;font-size:14px;text-align:center}.login-button{background:#1e3a5f;color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.login-button:hover{background:#2e5a8f}.login-button:disabled{background:#999;cursor:not-allowed}.login-footer{margin-top:24px;text-align:center;color:#999;font-size:12px}@media(max-width:600px){.login-container{padding:60px 16px 16px;align-items:flex-start}.login-card{padding:28px 24px;border-radius:12px}.login-header{margin-bottom:24px}.login-logo{max-width:220px}.login-header h1{font-size:26px}.login-header p{font-size:14px}.login-form{gap:16px}.form-group input{padding:14px 16px;font-size:16px}.login-button{padding:16px 24px;font-size:16px}}.distributie-compact{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s}.distributie-compact:hover{background:#f1f5f9;border-color:#cbd5e1}.distributie-compact-icon{font-size:20px}.distributie-compact-info{flex:1;display:flex;flex-direction:column}.distributie-compact-label{font-size:12px;color:#64748b;font-weight:500}.distributie-compact-value{font-size:14px;color:#1e3a5f;font-weight:600}.distributie-compact-expand{font-size:14px;opacity:.5}.distributie-config{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.distributie-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.distributie-header h4{margin:0;color:#1e3a5f;font-size:16px}.distributie-collapse-btn{background:#f1f5f9;border:none;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background .2s}.distributie-collapse-btn:hover{background:#e2e8f0}.distributie-info{font-size:13px;color:#64748b;margin:0 0 16px}.distributie-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.preset-btn{background:#f1f5f9;border:2px solid transparent;padding:8px 14px;border-radius:8px;font-size:13px;color:#475569;cursor:pointer;transition:all .2s}.preset-btn:hover{background:#e2e8f0}.preset-btn.active{background:#e0f2fe;border-color:#0ea5e9;color:#0369a1;font-weight:600}.distributie-rondes{display:flex;flex-direction:column;gap:0;margin-bottom:16px}.distributie-ronde{display:flex;gap:12px;position:relative}.ronde-nummer{display:flex;flex-direction:column;align-items:center;width:32px;flex-shrink:0}.ronde-badge{width:28px;height:28px;background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.ronde-content{flex:1;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 16px}.ronde-row{display:flex;gap:10px;margin-bottom:8px}.ronde-type-select{flex:1}.ronde-type-select select,.ronde-team-select select{width:100%;padding:8px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;cursor:pointer}.ronde-type-select select:focus,.ronde-team-select select:focus{outline:none;border-color:#1e3a5f}.ronde-team-select{flex:1}.ronde-wacht{display:flex;align-items:center;gap:8px;margin-bottom:8px}.wacht-label{font-size:12px;color:#64748b;white-space:nowrap}.ronde-wacht select{padding:6px 10px;border:2px solid #e2e8f0;border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.ronde-wacht select:focus{outline:none;border-color:#1e3a5f}.ronde-beschrijving{font-size:12px;color:#94a3b8;margin:0;font-style:italic}.ronde-actions{display:flex;flex-direction:column;gap:4px;padding-top:4px}.ronde-move-btn,.ronde-delete-btn{background:#f1f5f9;border:none;width:28px;height:28px;border-radius:6px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.ronde-move-btn:hover{background:#e2e8f0}.ronde-delete-btn:hover{background:#fee2e2}.ronde-connector{display:flex;align-items:center;gap:8px;padding:8px 0 8px 16px;margin-left:14px}.connector-line{flex:1;height:1px;background:#cbd5e1}.connector-time{font-size:11px;color:#64748b;background:#f1f5f9;padding:2px 8px;border-radius:10px;white-space:nowrap}.add-ronde-btn{width:100%;padding:12px;background:#f0f9ff;border:2px dashed #bae6fd;border-radius:10px;color:#0369a1;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.add-ronde-btn:hover{background:#e0f2fe;border-color:#7dd3fc}.distributie-preview{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.distributie-preview h5{margin:0 0 12px;font-size:14px;color:#1e3a5f}.preview-timeline{display:flex;flex-wrap:wrap;gap:8px}.preview-item{display:flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #e2e8f0;padding:6px 12px;border-radius:20px;font-size:13px}.preview-time{font-size:11px;color:#64748b;font-weight:600}.preview-icon{font-size:14px}.preview-label{color:#334155;font-weight:500}@media(max-width:600px){.distributie-config{padding:16px}.distributie-presets{flex-direction:column}.preset-btn{width:100%;text-align:center}.ronde-row{flex-direction:column}.distributie-ronde{gap:8px}.ronde-content{padding:10px 12px}.ronde-actions{flex-direction:row;padding-top:0}}.magic-box{background:#fff;border-radius:16px;padding:32px;box-shadow:0 4px 20px #00000014}.magic-header{margin-bottom:24px}.magic-header h2{margin:0 0 8px;color:#1e3a5f}.magic-header p{margin:0;color:#666}.magic-input textarea{width:100%;padding:16px;border:2px solid #e0e0e0;border-radius:12px;font-size:15px;font-family:inherit;resize:vertical;min-height:200px;transition:border-color .2s;box-sizing:border-box}.magic-input textarea:focus{outline:none;border-color:#2e5a8f}.magic-input textarea::placeholder{color:#999}.error-message{background:#fee;color:#c00;padding:12px 16px;border-radius:8px;margin-top:16px}.magic-actions{margin-top:20px;display:flex;justify-content:flex-end}.parse-button{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:14px 28px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;transition:transform .2s,box-shadow .2s}.parse-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #1e3a5f4d}.parse-button:disabled{opacity:.6;cursor:not-allowed}.spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.preview-container h3{margin:0 0 20px;color:#1e3a5f}.preview-card{background:#f8fafc;border:2px solid #e0e8f0;border-radius:12px;padding:20px}.preview-card.small{padding:12px 16px;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}.preview-card.small strong{min-width:180px}.preview-row{display:flex;padding:8px 0;border-bottom:1px solid #e8e8e8}.preview-row:last-of-type{border-bottom:none}.preview-row .label{width:120px;color:#666;font-weight:500}.preview-row .value{flex:1;color:#333}.tag{background:#1e3a5f;color:#fff;padding:4px 10px;border-radius:20px;font-size:12px;margin-right:6px}.preview-confidence{margin-top:16px;text-align:right;color:#999;font-size:13px}.batch-count{font-weight:600;color:#1e3a5f;margin-bottom:16px}.preview-actions{display:flex;justify-content:space-between;margin-top:24px;gap:16px}.cancel-button{background:#f0f0f0;color:#333;border:none;padding:12px 24px;border-radius:8px;font-size:15px;cursor:pointer;transition:background .2s}.confirm-button{background:#22c55e;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.confirm-button:hover{background:#16a34a}.location-matched{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.location-matched-badge{background:#dcfce7;color:#16a34a;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.nachtdienst-badge{background:#e0e7ff;color:#4338ca;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:8px}.slaapdienst-section{margin-top:16px;padding-top:16px;border-top:1px dashed #e0e0e0}.slaapdienst-row{margin-bottom:12px}.slaapdienst-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:#333}.slaapdienst-checkbox input{width:18px;height:18px;accent-color:#4338ca;cursor:pointer}.actieve-uren-row{background:#f0f4ff;padding:12px 16px;border-radius:8px;margin-top:8px}.actieve-uren-row label{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:#333}.actieve-uren-input{width:80px;padding:8px 12px;border:2px solid #c7d2fe;border-radius:6px;font-size:15px;text-align:center}.actieve-uren-input:focus{outline:none;border-color:#4338ca}.uren-hint{color:#6b7280;font-size:13px}.kwalificaties-section{margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0}.kwalificaties-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.kwalificaties-header .label{font-weight:600;color:#333;font-size:14px}.kwal-count{font-size:12px;color:#22c55e;font-weight:600}.kwalificaties-checkboxes{display:flex;flex-wrap:wrap;gap:8px}.kwal-checkbox{display:flex;align-items:center;gap:6px;padding:8px 12px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;font-size:13px;background:#fafafa}.kwal-checkbox:hover{border-color:#1e3a5f;background:#f5f7fa}.kwal-checkbox.selected{border-color:#22c55e;background:#f0fdf4}.kwal-checkbox.detected{border-color:#3b82f6}.kwal-checkbox.selected.detected{border-color:#22c55e;background:linear-gradient(135deg,#f0fdf4,#eff6ff)}.kwal-checkbox input{width:16px;height:16px;accent-color:#22c55e;cursor:pointer}.kwal-name{color:#333;text-transform:capitalize}.ai-detected{font-size:11px;margin-left:2px}.no-kwalificaties-hint{color:#999;font-size:13px;font-style:italic;margin:8px 0}.distributie-section{margin-top:16px;padding-top:16px;border-top:1px dashed #e0e0e0}.distributie-section.batch-distributie{margin-top:16px;background:#f8fafc;border-radius:12px;padding:16px;border:1px solid #e2e8f0}.distributie-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:10px;cursor:pointer;transition:all .2s}.distributie-toggle:hover{background:linear-gradient(135deg,#e0f2fe,#bae6fd)}.distributie-toggle-left{display:flex;align-items:center;gap:12px}.distributie-toggle-info{display:flex;flex-direction:column}.distributie-toggle-label{font-size:12px;color:#64748b;font-weight:500}.distributie-toggle-value{font-size:14px;color:#0369a1;font-weight:600}.distributie-toggle-arrow{font-size:12px;color:#64748b;transition:transform .2s}.distributie-expanded{margin-top:12px;animation:slideDown .2s ease-out}.preview-card.batch-dienst{padding:0;margin-bottom:8px;overflow:hidden}.batch-dienst-header{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 16px;cursor:pointer;transition:background .2s}.batch-dienst-header:hover{background:#f1f5f9}.batch-dienst.expanded .batch-dienst-header{background:#f1f5f9;border-bottom:1px solid #e0e8f0}.batch-dienst-main{display:flex;flex-wrap:wrap;gap:12px;align-items:center;flex:1}.batch-dienst-main strong{min-width:140px;color:#1e3a5f}.batch-tijd{color:#475569;font-weight:500}.batch-locatie{color:#64748b}.batch-functie{color:#64748b;font-style:italic}.batch-kwalificaties-badges{display:flex;flex-wrap:wrap;gap:4px}.batch-kwal-badge{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#0369a1;font-size:11px;font-weight:600;padding:3px 8px;border-radius:12px;display:flex;align-items:center;gap:3px}.batch-kwal-badge .ai-badge{font-size:10px}.batch-expand-icon{font-size:12px;color:#94a3b8;margin-left:auto}.batch-dienst-kwalificaties{padding:12px 16px 16px;background:#fafbfc;animation:slideDown .2s ease-out}.batch-kwal-hint{font-size:12px;color:#64748b;margin:0 0 10px}@media(max-width:600px){.magic-box{padding:20px 16px;border-radius:12px}.magic-header h2{font-size:20px}.magic-header p{font-size:14px}.magic-input textarea{min-height:150px;font-size:14px;padding:12px}.parse-button{width:100%;padding:14px 20px}.preview-card{padding:16px}.preview-row .label{width:90px;font-size:13px}.preview-row .value{font-size:14px}.preview-actions{flex-direction:column;gap:10px}.cancel-button,.confirm-button{width:100%;padding:14px}.distributie-toggle{padding:10px 12px}.distributie-toggle-info{max-width:200px}.distributie-toggle-value{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-dienst-main{flex-direction:column;align-items:flex-start;gap:4px}.batch-dienst-main strong{min-width:auto}.batch-kwalificaties-badges{width:100%;margin-top:8px}}.distributie-status{background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:10px;padding:12px;margin-bottom:12px}.distributie-status.simple{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f8fafc;border-color:#e2e8f0}.distributie-status.simple .status-icon{font-size:16px}.distributie-status.simple .status-text{font-size:13px;color:#64748b}.distributie-status.paused{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fcd34d}.status-current{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.status-ronde{display:flex;flex-direction:column;gap:2px}.ronde-nummer{font-size:11px;color:#64748b;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.ronde-type{font-size:14px;font-weight:600;color:#0369a1;display:flex;align-items:center;gap:6px}.team-naam{font-weight:400;color:#64748b;font-size:12px}.status-timer{display:flex;align-items:center;gap:6px;background:#fff;padding:6px 12px;border-radius:20px;box-shadow:0 1px 3px #0000001a}.timer-icon{font-size:14px}.timer-text{font-size:12px;color:#0369a1;font-weight:600}.status-paused{background:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;color:#d97706;box-shadow:0 1px 3px #0000001a}.status-final{background:#dcfce7;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;color:#166534}.status-rondes{display:flex;gap:4px;margin-bottom:10px}.status-ronde-item{flex:1;height:24px;background:#fff;border:1px solid #e2e8f0;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s}.status-ronde-item.done{background:#22c55e;border-color:#22c55e;color:#fff}.status-ronde-item.active{background:#0ea5e9;border-color:#0ea5e9;color:#fff;transform:scale(1.05);box-shadow:0 2px 8px #0ea5e966}.status-ronde-item.pending{opacity:.5}.item-icon{font-size:11px}.status-actions{display:flex;gap:8px}.action-btn{flex:1;padding:8px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn.escalate{background:#0ea5e9;color:#fff}.action-btn.escalate:hover:not(:disabled){background:#0284c7}.action-btn.pause{background:#fff;color:#64748b;border:1px solid #e2e8f0}.action-btn.pause:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.action-btn.pause.active{background:#fef3c7;color:#d97706;border-color:#fcd34d}.action-btn.reset{background:#fff;color:#64748b;border:1px solid #e2e8f0;flex:0;padding:8px}.action-btn.reset:hover:not(:disabled){background:#fee2e2;border-color:#fecaca;color:#dc2626}@media(max-width:600px){.distributie-status{padding:10px}.status-current{flex-direction:column;align-items:flex-start;gap:8px}.status-actions{flex-wrap:wrap}.action-btn{flex:1 1 calc(50% - 4px);font-size:11px;padding:8px 10px}.action-btn.reset{flex:0 0 auto}}.shift-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000f;border:1px solid #e8e8e8;transition:transform .2s,box-shadow .2s}.shift-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0000001a}.shift-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.shift-date{font-weight:700;font-size:18px;color:#1e3a5f}.shift-priority{font-size:12px}.shift-priority.urgent{color:#dc2626}.shift-priority.hoog{color:#ea580c}.shift-time{font-size:20px;font-weight:600;color:#333;margin-bottom:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.slaapdienst-indicator{font-size:12px;font-weight:600;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#4338ca;padding:3px 10px;border-radius:12px;cursor:help}.shift-location{color:#666;margin-bottom:4px}.location-adres{display:block;font-size:12px;color:#888;margin-top:2px;padding-left:20px}.shift-function{color:#666;margin-bottom:12px}.shift-qualifications{margin-bottom:12px}.qualifications-label{font-size:12px;color:#666;font-weight:500;display:block;margin-bottom:6px}.qualifications-tags{display:flex;flex-wrap:wrap;gap:6px}.qualification-tag{background:#e0e8f0;color:#1e3a5f;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.shift-description{color:#888;font-size:13px;font-style:italic;margin-bottom:12px;padding-top:12px;border-top:1px solid #f0f0f0}.shift-claims{font-size:13px;color:#22c55e;font-weight:500;margin-bottom:12px}.shift-candidates{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px;margin-bottom:12px}.candidates-header{font-weight:600;color:#0369a1;margin-bottom:10px;font-size:14px}.candidates-list{display:flex;flex-direction:column;gap:8px}.candidate-item{display:flex;justify-content:space-between;align-items:flex-start;background:#fff;padding:10px 12px;border-radius:8px;border:1px solid #e0e8f0;gap:12px}.candidate-item.has-warning{border-color:#fcd34d;background:#fffbeb}.candidate-item.has-availability-warning{border-color:#f97316;background:linear-gradient(135deg,#fff7ed,#fff)}.candidate-info{display:flex;flex-direction:column;gap:4px;flex:1}.candidate-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.candidate-badges,.candidate-details{display:flex;gap:6px;flex-wrap:wrap}.match-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:700}.match-badge.perfect{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.match-badge.good{background:#dcfce7;color:#166534}.match-badge.partial{background:#fef3c7;color:#d97706}.match-badge.low{background:#fee2e2;color:#dc2626}.reactie-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:#f3f4f6;color:#6b7280;font-weight:500}.reactie-badge.fast{background:#dbeafe;color:#1d4ed8}.availability-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;cursor:help}.availability-badge.availability-yes{background:#dcfce7;color:#166534}.availability-badge.availability-extra{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e}.availability-badge.availability-no{background:#fee2e2;color:#dc2626}.availability-badge.availability-vacation{background:linear-gradient(135deg,#fef3c7,#fed7aa);color:#c2410c}.availability-badge.availability-unknown{background:#f3f4f6;color:#6b7280}.candidate-warning-badge{font-size:10px;padding:2px 6px;border-radius:10px;background:#fef3c7;color:#d97706;font-weight:600;cursor:help}.candidate-ok-badge{font-size:10px;padding:2px 6px;border-radius:10px;background:#dcfce7;color:#16a34a;font-weight:600}.continuity-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:linear-gradient(135deg,#e0f2fe,#dbeafe);color:#0369a1;font-weight:600;cursor:help}.contracturen-badge{font-size:10px;padding:2px 8px;border-radius:10px;font-weight:600;cursor:help}.contracturen-badge.ok{background:#f3f4f6;color:#6b7280}.contracturen-badge.overschrijding{background:#fef3c7;color:#d97706}.candidate-item.has-hours-warning{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.candidate-name{font-weight:500;color:#333}.candidate-actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.reject-button{background:#fee2e2;color:#dc2626;border:none;width:28px;height:28px;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.reject-button:hover{background:#dc2626;color:#fff}.assign-button{background:#22c55e;color:#fff;border:none;padding:6px 12px;border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s}.assign-button:hover{background:#16a34a}.shift-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #f0f0f0}.claim-button{flex:1;background:#1e3a5f;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.claim-button:hover:not(:disabled){background:#2e5a8f}.claim-button.claimed{background:#22c55e;cursor:default}.claim-button:disabled{opacity:.8}.delete-button{background:#fee;color:#c00;border:none;padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.delete-button:hover{background:#fcc}.shift-error{background:#fee2e2;border:1px solid #fecaca;border-radius:8px;padding:12px;margin-top:12px;display:flex;align-items:flex-start;gap:10px}.shift-error-icon{font-size:16px;flex-shrink:0}.shift-error-message{flex:1;font-size:13px;color:#991b1b;line-height:1.4}.shift-error-close{background:none;border:none;font-size:18px;color:#991b1b;cursor:pointer;padding:0;line-height:1;opacity:.6}.shift-error-close:hover{opacity:1}.claim-button.loading,.delete-button:disabled{opacity:.7;cursor:wait}.overlap-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);border:2px solid #f59e0b;border-radius:12px;padding:16px;margin:12px 0;animation:slideDown .3s ease-out}.overlap-warning-icon{font-size:2rem;text-align:center;margin-bottom:8px}.overlap-warning-content{text-align:center;margin-bottom:12px}.overlap-warning-content strong{display:block;color:#92400e;font-size:1rem;margin-bottom:8px}.overlap-warning-content p{color:#78350f;font-size:.9rem;margin:0;line-height:1.5}.overlap-warning-actions{display:flex;gap:10px;justify-content:center}.overlap-cancel-btn{padding:10px 20px;border:2px solid #d97706;background:#fff;color:#92400e;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.overlap-cancel-btn:hover{background:#fef3c7}.overlap-confirm-btn{padding:10px 20px;border:none;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.overlap-confirm-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b66}.overlap-warning.planner-warning{background:linear-gradient(135deg,#fef3c7,#fed7aa);border-color:#ea580c}.overlap-warning.beschikbaarheid-warning{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#f97316}.beschikbaarheid-reden{background:#fff;padding:8px 12px;border-radius:8px;margin-top:8px;font-weight:500}.overlap-confirm-btn.beschikbaarheid-overrule{background:linear-gradient(135deg,#f97316,#ea580c)}.overlap-confirm-btn.beschikbaarheid-overrule:hover{box-shadow:0 4px 12px #f9731666}.overlap-warning.kwalificatie-warning{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#dc2626}.kwalificatie-problemen-list{list-style:none;padding:0;margin:8px 0 0}.kwalificatie-problemen-list li{padding:6px 0;font-size:13px}.kwalificatie-problemen-list li.probleem-ontbreekt{color:#dc2626}.kwalificatie-problemen-list li.probleem-verlopen{color:#d97706}.overlap-confirm-btn.kwalificatie-overrule{background:#dc2626}.overlap-confirm-btn.kwalificatie-overrule:hover{background:#b91c1c;box-shadow:0 4px 12px #dc262666}@media(max-width:600px){.shift-card{padding:16px;border-radius:10px}.shift-card:hover{transform:none;box-shadow:0 2px 10px #0000000f}.shift-header{margin-bottom:8px}.shift-date{font-size:15px}.shift-priority{font-size:11px}.shift-time{font-size:18px;margin-bottom:6px}.shift-location{font-size:14px;margin-bottom:3px}.location-adres{font-size:11px;padding-left:18px}.shift-function{font-size:14px;margin-bottom:10px}.shift-qualifications{margin-bottom:10px}.qualifications-label{font-size:11px;margin-bottom:4px}.qualifications-tags{gap:4px}.qualification-tag{padding:3px 8px;font-size:11px}.shift-description{font-size:12px;margin-bottom:10px;padding-top:10px}.shift-claims{font-size:12px;margin-bottom:10px}.shift-candidates{padding:10px;margin-bottom:10px}.candidates-header{font-size:13px;margin-bottom:8px}.candidates-list{gap:6px}.candidate-item{padding:6px 10px}.candidate-name{font-size:13px}.assign-button{padding:5px 10px;font-size:11px}.shift-actions{margin-top:12px;padding-top:12px}.claim-button{padding:12px 14px;font-size:14px;font-weight:600}.delete-button{padding:10px 14px;font-size:13px}.overlap-warning{padding:12px}.overlap-warning-icon{font-size:1.5rem}.overlap-warning-content strong{font-size:.9rem}.overlap-warning-content p{font-size:.8rem}.overlap-warning-actions{flex-direction:column}.overlap-cancel-btn,.overlap-confirm-btn{width:100%}}.user-beschikbaarheid-warning{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;border-radius:8px;padding:10px 14px;margin-bottom:10px;display:flex;align-items:flex-start;gap:10px}.user-beschikbaarheid-warning .beschikbaarheid-icon{font-size:18px;flex-shrink:0}.user-beschikbaarheid-warning .beschikbaarheid-text{font-size:13px;color:#92400e;line-height:1.4}.claim-button.warning{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#b45309}.claim-button.warning:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309)}.shift-card.incomplete{border-left:4px solid #f59e0b}.shift-incomplete-badge{font-size:16px;margin-left:auto}.shift-no-qualifications{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#fef3c7;border-radius:8px;margin:8px 0}.no-qual-warning{font-size:13px;font-weight:600;color:#92400e}.no-qual-hint{font-size:12px;color:#a16207;font-style:italic}.assigned-shift-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000f;border:1px solid #d1fae5;border-left:4px solid #22c55e}.assigned-shift-card .shift-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.assigned-shift-card .shift-date{font-weight:700;font-size:18px;color:#1e3a5f}.shift-status{font-size:12px;color:#22c55e;font-weight:600}.assigned-shift-card .shift-time{font-size:20px;font-weight:600;color:#333;margin-bottom:8px}.assigned-shift-card .shift-location{color:#666;margin-bottom:4px}.assigned-shift-card .shift-function{color:#666;margin-bottom:16px}.assigned-to{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:12px;margin-bottom:16px;display:flex;align-items:center;gap:8px}.assigned-label{color:#166534;font-size:13px;font-weight:500}.assigned-name{color:#166534;font-size:15px;font-weight:700}.assigned-shift-card .shift-actions{display:flex;gap:8px;padding-top:16px;border-top:1px solid #f0f0f0}.reopen-button{flex:1;background:#f0f0f0;color:#666;border:none;padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.reopen-button:hover:not(:disabled){background:#e0e0e0}.reopen-button:disabled{opacity:.6;cursor:not-allowed}.complete-button{flex:1;background:#22c55e;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.complete-button:hover:not(:disabled){background:#16a34a}.complete-button:disabled{opacity:.6;cursor:not-allowed}.shift-actions-secondary{display:flex;justify-content:center;margin-top:12px}.delete-button-small{background:transparent;color:#999;border:none;padding:6px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s}.delete-button-small:hover:not(:disabled){background:#fee2e2;color:#dc2626}.delete-button-small:disabled{opacity:.5;cursor:not-allowed}.my-shift-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000000f;border:2px solid #22c55e;position:relative;overflow:hidden}.my-shift-card.confirmed{border-color:#22c55e}.my-shift-card.pending{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.my-shift-card.today{border-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#fff)}.today-banner{position:absolute;top:0;left:0;right:0;background:#3b82f6;color:#fff;text-align:center;padding:6px;font-weight:600;font-size:14px}.my-shift-card.today{padding-top:50px}.my-shift-status{font-weight:600;font-size:14px;margin-bottom:12px;padding:6px 12px;border-radius:20px;display:inline-block}.my-shift-status.confirmed{color:#166534;background:#dcfce7}.my-shift-status.pending{color:#92400e;background:#fef3c7}.my-shift-date{font-weight:700;font-size:20px;color:#1e3a5f;margin-bottom:16px;text-transform:capitalize}.my-shift-time{font-size:24px;font-weight:700;color:#333;margin-bottom:12px;background:#f0f9ff;padding:12px 16px;border-radius:8px;display:inline-block}.my-shift-location{color:#666;font-size:16px;margin-bottom:6px}.my-shift-location .location-adres{display:block;font-size:13px;color:#888;margin-top:2px;padding-left:22px}.my-shift-function{color:#666;font-size:16px;margin-bottom:12px}.my-shift-description{color:#888;font-size:14px;background:#f5f5f5;padding:10px 12px;border-radius:6px;margin-bottom:12px}.my-shift-qualifications{margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.my-shift-qualifications .qualifications-label{font-size:12px;color:#666;font-weight:500;display:block;margin-bottom:6px}.my-shift-qualifications .qualifications-tags{display:flex;flex-wrap:wrap;gap:6px}.my-shift-card .qualification-tag{background:#e0e8f0;color:#1e3a5f;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.pending-notice{margin-top:12px;padding:10px 12px;background:#fef3c7;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-size:13px;display:flex;align-items:center;gap:8px}.pending-notice span{font-size:16px}@media(max-width:600px){.my-shift-card{padding:16px;border-radius:10px;border-width:2px}.my-shift-card.today{padding-top:44px}.today-banner{padding:5px;font-size:13px}.my-shift-status{font-size:12px;margin-bottom:8px;padding:5px 10px}.my-shift-date{font-size:17px;margin-bottom:12px}.my-shift-time{font-size:20px;padding:10px 14px;border-radius:6px;margin-bottom:10px}.my-shift-location{font-size:14px;margin-bottom:4px}.my-shift-location .location-adres{font-size:12px;padding-left:20px}.my-shift-function{font-size:14px;margin-bottom:10px}.my-shift-description{font-size:13px;padding:8px 10px;margin-bottom:10px}.my-shift-qualifications{margin-top:10px;padding-top:10px}.my-shift-qualifications .qualifications-label{font-size:11px;margin-bottom:4px}.my-shift-qualifications .qualifications-tags{gap:4px}.my-shift-card .qualification-tag{padding:3px 8px;font-size:11px}.pending-notice{margin-top:10px;padding:8px 10px;font-size:12px}.pending-notice span{font-size:14px}}.employee-form-container{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 10px #0000000f;max-width:700px}.form-header{margin-bottom:24px}.form-header h2{margin:0;color:#1e3a5f}.employee-form{display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group.full-width{grid-column:1 / -1}.form-group label{font-weight:600;color:#333;font-size:14px}.form-group input,.form-group select{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;transition:border-color .2s}.form-group input.error{border-color:#dc2626}.error-text{color:#dc2626;font-size:12px}.kwalificaties-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:8px}.kwalificaties-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.kwalificatie-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;background:#fafafa;transition:all .2s}.kwalificatie-row:hover{border-color:#1e3a5f;background:#f5f7fa}.kwalificatie-row.selected{border-color:#1e3a5f;background:#f0f4f8}.kwalificatie-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;min-width:150px}.kwalificatie-checkbox input{width:18px;height:18px;accent-color:#1e3a5f;cursor:pointer}.kwalificatie-checkbox input:checked+.checkbox-label{color:#1e3a5f;font-weight:600}.checkbox-label{font-size:14px;color:#666;text-transform:capitalize}.vervaldatum-wrapper{display:flex;align-items:center;gap:10px;flex:1;justify-content:flex-end;flex-wrap:wrap}.vervaldatum-input{padding:8px 12px!important;border:2px solid #e0e0e0!important;border-radius:6px!important;font-size:13px!important;width:150px;transition:all .2s}.vervaldatum-input:focus{border-color:#1e3a5f!important}.vervaldatum-input.verlopen{border-color:#dc2626!important;background:#fef2f2}.vervaldatum-input.bijna{border-color:#f59e0b!important;background:#fffbeb}.vervaldatum-input.geldig{border-color:#22c55e!important;background:#f0fdf4}.verval-badge{font-size:11px;padding:4px 8px;border-radius:12px;font-weight:600;white-space:nowrap}.verval-badge.verlopen{background:#fee2e2;color:#dc2626}.verval-badge.bijna{background:#fef3c7;color:#d97706}.verval-badge.geldig{background:#dcfce7;color:#16a34a}.verval-badge.geen{background:#f3f4f6;color:#9ca3af}.no-options-hint{color:#999;font-size:14px;font-style:italic;margin:8px 0}.field-hint{color:#888;font-size:12px;margin:4px 0 8px;font-weight:400}.dienstverband-options{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.dienstverband-option{display:flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s}.dienstverband-option:hover{border-color:var(--option-color);background:#f9f9f9}.dienstverband-option.selected{border-color:var(--option-color);background:color-mix(in srgb,var(--option-color) 10%,white)}.dienstverband-option input{accent-color:var(--option-color)}.dienstverband-option .option-label{font-size:14px;font-weight:500;color:#333}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.cancel-button{background:#f0f0f0;color:#666;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.cancel-button:hover{background:#e0e0e0}.save-button{background:#1e3a5f;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.save-button:hover{background:#2e5a8f}@media(max-width:600px){.form-row{grid-template-columns:1fr}.employee-form-container{padding:20px}.kwalificatie-row{flex-direction:column;align-items:flex-start;gap:8px}.kwalificatie-checkbox{min-width:auto}.vervaldatum-wrapper{width:100%;justify-content:flex-start}.vervaldatum-input{flex:1;max-width:160px}}.employee-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #0000000f}.employee-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.employee-header h2{margin:0;color:#1e3a5f}.add-employee-button{background:#22c55e;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.add-employee-button:hover{background:#16a34a}.employee-search{flex:1}.employee-search input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;box-sizing:border-box}.employee-search input:focus{outline:none;border-color:#1e3a5f}.employee-filters{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.dienstverband-filter{display:flex;flex-wrap:wrap;gap:8px}.filter-btn{background:#f5f5f5;border:2px solid #e0e0e0;padding:8px 14px;border-radius:20px;font-size:13px;cursor:pointer;transition:all .2s}.filter-btn:hover{border-color:var(--filter-color, #1e3a5f);background:#f0f0f0}.filter-btn.active{border-color:var(--filter-color, #1e3a5f);background:var(--filter-color, #1e3a5f);color:#fff}.employee-table{overflow-x:auto}.table-header{display:grid;grid-template-columns:1.5fr 2fr 1.2fr .8fr 1.8fr 1.5fr .8fr;gap:12px;padding:12px 16px;background:#f5f7fa;border-radius:8px;font-weight:600;font-size:13px;color:#666;margin-bottom:8px}.table-row{display:grid;grid-template-columns:1.5fr 2fr 1.2fr .8fr 1.8fr 1.5fr .8fr;gap:12px;padding:14px 16px;border-bottom:1px solid #f0f0f0;align-items:center;font-size:14px}.table-row:hover{background:#f9f9f9}.table-row.inactive{opacity:.6;background:#fafafa}.col-naam{font-weight:500}.col-email{color:#666;font-size:13px}.rol-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase}.rol-badge.planner{background:#22c55e;color:#fff}.rol-badge.medewerker{background:#e0e8f0;color:#1e3a5f}.dienstverband-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;color:#fff;text-transform:capitalize}.dienstverband-badges{display:flex;flex-wrap:wrap;gap:4px}.kwalificatie-tag{display:inline-block;background:#e0e8f0;color:#1e3a5f;padding:3px 8px;border-radius:12px;font-size:11px;margin-right:4px;margin-bottom:4px;cursor:help}.kwalificatie-tag.geldig{background:#dcfce7;color:#166534}.kwalificatie-tag.bijna{background:#fef3c7;color:#d97706}.kwalificatie-tag.verlopen{background:#fee2e2;color:#dc2626}.no-kwalificaties{color:#ccc}.status-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.col-acties{display:flex;gap:8px}.action-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:4px;border-radius:4px;transition:background .2s}.action-btn:hover{background:#f0f0f0}.action-btn.delete:hover{background:#fee2e2}.no-employees{text-align:center;padding:40px;color:#999}@media(max-width:900px){.table-header{display:none}.table-row{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px}.col-naam{font-size:16px}.col-dienstverband{order:-1}.col-acties{justify-content:flex-end;padding-top:8px;border-top:1px solid #f0f0f0}.dienstverband-filter{overflow-x:auto;padding-bottom:4px}.filter-btn{white-space:nowrap}}.account-status-container{display:flex;align-items:center;gap:8px}.account-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid}.account-badge.geen{background:#f3f4f6;color:#6b7280;border-color:#d1d5db}.account-badge.uitgenodigd{background:#fef3c7;color:#d97706;border-color:#f59e0b}.account-badge.actief{background:#dcfce7;color:#16a34a;border-color:#22c55e}.account-badge.inactief{background:#fee2e2;color:#dc2626;border-color:#ef4444}.invite-btn{background:#1e3a5f;color:#fff;border:none;width:28px;height:28px;border-radius:50%;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.invite-btn:hover:not(:disabled){background:#2e5a8f;transform:scale(1.1)}.invite-btn:disabled{opacity:.6;cursor:not-allowed}.invite-btn.resend{background:#f59e0b}.invite-btn.resend:hover:not(:disabled){background:#d97706}.location-form-container{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 10px #0000000f;max-width:700px}.location-form-container .form-header{margin-bottom:24px}.location-form-container .form-header h2{margin:0;color:#1e3a5f}.location-form{display:flex;flex-direction:column;gap:20px}.location-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.location-form .form-row-3{grid-template-columns:1fr 1fr 1fr}.location-form .form-row-2{grid-template-columns:1fr 1fr}.location-form .postcode-lookup-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}.lookup-button-group{min-width:100px}.lookup-button{background:#1e3a5f;color:#fff;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.lookup-button:hover:not(:disabled){background:#2e5a8f}.lookup-button:disabled{background:#ccc;cursor:wait}.lookup-button.success{background:#22c55e}.lookup-button.error{background:#1e3a5f}.lookup-message{font-size:13px;padding:8px 12px;border-radius:6px;margin-top:-8px;margin-bottom:8px}.lookup-message.success{background:#d1fae5;color:#166534}.lookup-message.error{background:#fee2e2;color:#991b1b}.lookup-message.loading{background:#e0e8f0;color:#1e3a5f}.location-form .form-section-title{font-weight:600;color:#1e3a5f;font-size:14px;margin-top:12px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #e0e0e0}.location-form .form-group{display:flex;flex-direction:column;gap:6px}.location-form .form-group.full-width{grid-column:1 / -1}.location-form .form-group label{font-weight:600;color:#333;font-size:14px}.location-form .form-group input,.location-form .form-group select,.location-form .form-group textarea{padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .2s}.location-form .form-group textarea{resize:vertical;min-height:80px}.location-form .form-group input:focus,.location-form .form-group select:focus,.location-form .form-group textarea:focus{outline:none;border-color:#1e3a5f}.location-form .form-group input.error{border-color:#dc2626}.location-form .error-text{color:#dc2626;font-size:12px}.location-form .form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid #e0e0e0}.location-form .cancel-button{background:#f0f0f0;color:#666;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background .2s}.location-form .cancel-button:hover{background:#e0e0e0}.location-form .save-button{background:#1e3a5f;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:background .2s}.location-form .save-button:hover{background:#2e5a8f}@media(max-width:600px){.location-form .form-row{grid-template-columns:1fr}.location-form .form-row-3,.location-form .form-row-2,.location-form .postcode-lookup-row{grid-template-columns:1fr 1fr}.lookup-button-group{grid-column:1 / -1}.lookup-button{width:100%}.location-form-container{padding:20px}}.location-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #0000000f}.location-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.location-header h2{margin:0;color:#1e3a5f}.add-location-button{background:#22c55e;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.add-location-button:hover{background:#16a34a}.location-search{margin-bottom:20px}.location-search input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;box-sizing:border-box}.location-search input:focus{outline:none;border-color:#1e3a5f}.locations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.location-card{background:#f8fafc;border:2px solid #e0e8f0;border-radius:12px;padding:20px;transition:all .2s}.location-card:hover{border-color:#1e3a5f;box-shadow:0 4px 12px #0000001a}.location-card.inactive{opacity:.6;background:#fafafa;border-color:#e0e0e0}.location-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.location-card-header h3{margin:0;color:#1e3a5f;font-size:18px}.status-badge{padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600}.status-badge.active{background:#d1fae5;color:#166534}.status-badge.inactive{background:#fee2e2;color:#991b1b}.location-type{margin-bottom:12px}.type-badge{display:inline-block;background:#e0e8f0;color:#1e3a5f;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500}.location-adres,.location-telefoon,.location-capaciteit{color:#666;font-size:14px;margin-bottom:6px}.location-opmerkingen{color:#888;font-size:13px;font-style:italic;margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.location-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #e0e0e0;flex-wrap:wrap}.location-actions .action-btn{background:#f0f0f0;border:none;padding:8px 12px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.location-actions .action-btn:hover{background:#e0e0e0}.location-actions .action-btn.edit{background:#e0e8f0;color:#1e3a5f}.location-actions .action-btn.edit:hover{background:#d0d8e0}.location-actions .action-btn.toggle{background:#fef3c7;color:#92400e}.location-actions .action-btn.toggle:hover{background:#fde68a}.location-actions .action-btn.delete{background:#fee2e2;color:#991b1b}.location-actions .action-btn.delete:hover{background:#fecaca}.no-locations{text-align:center;padding:60px 40px;color:#999;font-size:16px}@media(max-width:600px){.location-header{flex-direction:column;gap:12px;align-items:stretch}.add-location-button{text-align:center}.locations-grid{grid-template-columns:1fr}}.settings-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #0000000f}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.settings-header h2{margin:0;color:#1e3a5f}.saving-indicator{color:#22c55e;font-size:14px;font-weight:500}.settings-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #e0e0e0;padding-bottom:0}.settings-tab{background:none;border:none;padding:12px 20px;font-size:14px;font-weight:500;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.settings-tab:hover{color:#1e3a5f}.settings-tab.active{color:#1e3a5f;border-bottom-color:#1e3a5f}.settings-content{padding-top:8px}.settings-section{max-width:600px}.section-header{margin-bottom:20px}.section-header h3{margin:0 0 8px;color:#333}.section-header p{margin:0;color:#666;font-size:14px}.add-item-row{display:flex;gap:12px;margin-bottom:20px}.add-item-row input{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px}.add-item-row input:focus{outline:none;border-color:#1e3a5f}.add-item-row button{background:#22c55e;color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.add-item-row button:hover:not(:disabled){background:#16a34a}.add-item-row button:disabled{background:#ccc;cursor:not-allowed}.items-list{display:flex;flex-direction:column;gap:8px}.item-row{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f5f7fa;border-radius:8px;border:1px solid #e0e8f0}.item-name{font-size:15px;color:#333;text-transform:capitalize}.remove-btn{background:none;border:none;color:#999;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.remove-btn:hover{background:#fee2e2;color:#dc2626}.no-items{color:#999;font-style:italic;text-align:center;padding:20px}@media(max-width:600px){.add-item-row{flex-direction:column}.settings-tabs{overflow-x:auto}}.calendar-sync{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014}.calendar-sync-header{margin-bottom:20px}.calendar-sync-header h3{margin:0 0 8px;color:#1e3a5f;font-size:20px}.calendar-sync-header p{margin:0;color:#666;font-size:14px}.calendar-sync-empty{text-align:center;padding:20px}.calendar-icon-large{font-size:48px;margin-bottom:16px}.calendar-sync-empty p{color:#555;margin-bottom:20px;max-width:300px;margin-left:auto;margin-right:auto}.generate-btn{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:14px 28px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.generate-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1e3a5f4d}.generate-btn:disabled{opacity:.7;cursor:wait}.calendar-sync-active{display:flex;flex-direction:column;gap:16px}.calendar-url-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.calendar-url-box label{display:block;font-size:13px;font-weight:600;color:#666;margin-bottom:8px}.url-row{display:flex;gap:8px}.url-input{flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:monospace;background:#fff;color:#333}.copy-btn{background:#1e3a5f;color:#fff;border:none;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .2s}.copy-btn:hover{background:#2e5a8f}.url-note{margin:10px 0 0;font-size:12px;color:#888}.instructions-toggle{background:none;border:1px solid #ddd;padding:12px 16px;border-radius:8px;font-size:14px;color:#555;cursor:pointer;text-align:left;transition:background .2s}.instructions-toggle:hover{background:#f5f5f5}.calendar-instructions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:20px}.instruction-section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.instruction-section:last-of-type{margin-bottom:16px;padding-bottom:16px}.instruction-section h4{margin:0 0 12px;color:#1e3a5f;font-size:15px}.instruction-section ol{margin:0;padding-left:20px}.instruction-section li{margin-bottom:8px;color:#555;font-size:14px;line-height:1.5}.instruction-note{background:#e0f2fe;border-radius:6px;padding:12px 16px}.instruction-note strong{display:block;color:#0369a1;margin-bottom:8px}.instruction-note ul{margin:0;padding-left:16px}.instruction-note li{color:#0c4a6e;font-size:13px;margin-bottom:4px}.calendar-actions{margin-top:8px}.regenerate-btn{background:none;border:1px solid #ddd;padding:10px 16px;border-radius:6px;font-size:13px;color:#666;cursor:pointer;transition:all .2s}.regenerate-btn:hover{border-color:#999;color:#333}@media(max-width:600px){.calendar-sync{padding:16px}.url-row{flex-direction:column}.url-input{font-size:11px}.copy-btn{width:100%}.calendar-instructions{padding:16px}.instruction-section ol{padding-left:16px}}.pdf-export-section{background:#fff;border-radius:16px;padding:24px;margin-top:20px;box-shadow:0 2px 10px #0000000f}.pdf-export-section h3{margin:0 0 16px;font-size:16px;color:#1e3a5f}.export-options{display:flex;flex-direction:column;gap:12px}.export-card{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;border:2px solid #e0e8f0;transition:all .2s}.export-card:hover{border-color:#1e3a5f;background:#f0f4f8}.export-icon{font-size:32px;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:12px;box-shadow:0 2px 6px #00000014}.export-info{flex:1}.export-info h4{margin:0 0 4px;font-size:15px;color:#1e3a5f}.export-info p{margin:0;font-size:13px;color:#666}.week-selector{display:flex;align-items:center;gap:8px;margin-top:10px}.week-nav{background:#fff;border:1px solid #ddd;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s}.week-nav:hover{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.week-label{font-size:12px;color:#333;font-weight:500;min-width:180px;text-align:center}.export-btn{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s;white-space:nowrap}.export-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #1e3a5f4d}@media(max-width:600px){.export-card{flex-direction:column;text-align:center;padding:20px}.export-info{width:100%}.week-selector{justify-content:center}.export-btn{width:100%;justify-content:center;padding:14px}}.kpi-dashboard{max-width:900px;margin:0 auto}.kpi-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.kpi-header h2{margin:0;color:#1e3a5f;font-size:24px}.periode-selector{display:flex;gap:4px;background:#f0f0f0;padding:4px;border-radius:10px}.periode-btn{background:transparent;border:none;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;color:#666;cursor:pointer;transition:all .2s}.periode-btn:hover{color:#333}.periode-btn.active{background:#fff;color:#1e3a5f;font-weight:600;box-shadow:0 2px 4px #0000001a}.kpi-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:32px}.kpi-card{background:#fff;border-radius:16px;padding:20px;text-align:center;box-shadow:0 2px 10px #0000000f;transition:transform .2s}.kpi-card:hover{transform:translateY(-2px)}.kpi-card.main{grid-column:span 1}.kpi-card.main.excellent{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.kpi-card.main.good{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.kpi-card.main.warning{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff}.kpi-card.main.critical{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.kpi-value{font-size:36px;font-weight:700;line-height:1;margin-bottom:8px}.kpi-card.main .kpi-value{font-size:48px}.kpi-label{font-size:14px;font-weight:600;color:#666;margin-bottom:4px}.kpi-card.main .kpi-label{color:#ffffffe6}.kpi-sublabel{font-size:12px;color:#999}.kpi-card.main .kpi-sublabel{color:#ffffffb3}.kpi-sublabel.urgent{color:#dc2626;font-weight:600}.kpi-section{background:#fff;border-radius:16px;padding:24px;margin-bottom:20px;box-shadow:0 2px 10px #0000000f}.kpi-section h3{margin:0 0 16px;font-size:16px;color:#1e3a5f}.no-data{color:#999;font-style:italic;text-align:center;padding:20px}.locatie-stats{display:flex;flex-direction:column;gap:12px}.locatie-row{display:flex;align-items:center;gap:12px}.locatie-naam{width:120px;font-weight:500;font-size:14px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.locatie-bar-container{flex:1;height:24px;background:#f0f0f0;border-radius:12px;overflow:hidden}.locatie-bar{height:100%;border-radius:12px;transition:width .5s ease}.locatie-bar.excellent{background:linear-gradient(90deg,#22c55e,#4ade80)}.locatie-bar.good{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.locatie-bar.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.locatie-bar.critical{background:linear-gradient(90deg,#ef4444,#f87171)}.locatie-numbers{width:100px;text-align:right;font-size:13px}.locatie-numbers .toegewezen{font-weight:600;color:#22c55e}.locatie-numbers .separator{color:#ccc;margin:0 2px}.locatie-numbers .totaal{color:#666}.locatie-numbers .percentage{color:#999;font-size:12px;margin-left:4px}.top-medewerkers{display:flex;flex-direction:column;gap:8px}.medewerker-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f8fafc;border-radius:10px;transition:background .2s}.medewerker-row:hover{background:#f0f4f8}.medewerker-rank{font-size:18px;width:30px;text-align:center}.medewerker-naam{flex:1;font-weight:500;color:#333}.medewerker-stats{display:flex;gap:12px;font-size:13px}.diensten-count{color:#1e3a5f;font-weight:600}.uren-count{color:#666}.kpi-section.insights{background:#fffbeb;border:1px solid #fde68a}.insights-list{display:flex;flex-direction:column;gap:10px}.insight{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:8px;font-size:14px}.insight.warning{background:#fef3c7;color:#92400e}.insight.info{background:#dbeafe;color:#1e40af}.insight.success{background:#dcfce7;color:#166534}.insight-icon{font-size:16px}@media(max-width:600px){.kpi-header{flex-direction:column;align-items:flex-start}.kpi-cards{grid-template-columns:1fr 1fr}.kpi-card.main{grid-column:span 2}.kpi-value{font-size:28px}.kpi-card.main .kpi-value{font-size:40px}.locatie-row{flex-wrap:wrap}.locatie-naam{width:100%}.locatie-bar-container{order:3;width:100%}.locatie-numbers{width:auto}.medewerker-stats{flex-direction:column;gap:2px;text-align:right}}.distributie-stats{display:flex;flex-direction:column;gap:16px}.distributie-vergelijking{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.distributie-card{background:#f8fafc;border-radius:12px;padding:16px;border:1px solid #e2e8f0}.distributie-card-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.distributie-icon{font-size:20px}.distributie-label{font-weight:600;color:#1e3a5f;font-size:14px}.distributie-metrics{display:flex;gap:20px}.distributie-metric{display:flex;flex-direction:column;align-items:center}.distributie-metric .metric-value{font-size:24px;font-weight:700;color:#1e3a5f}.distributie-metric .metric-value.excellent{color:#22c55e}.distributie-metric .metric-value.good{color:#3b82f6}.distributie-metric .metric-value.warning{color:#f59e0b}.distributie-metric .metric-value.critical{color:#ef4444}.distributie-metric .metric-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.ronde-breakdown{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}.ronde-breakdown-label{font-size:12px;color:#64748b;margin-bottom:8px}.ronde-badges{display:flex;flex-wrap:wrap;gap:6px}.ronde-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.ronde-badge.ronde-0{background:#dcfce7;color:#166534}.ronde-badge.ronde-1{background:#dbeafe;color:#1e40af}.ronde-badge.ronde-2{background:#fef3c7;color:#92400e}.ronde-badge.ronde-3{background:#f3e8ff;color:#7c3aed}.distributie-insight{padding:12px 16px;background:#f0fdf4;border-radius:8px;font-size:14px}.distributie-insight .insight-positive{color:#166534}.distributie-insight .insight-neutral{color:#1e40af}@media(max-width:600px){.distributie-metrics{flex-wrap:wrap;gap:12px}.distributie-metric{flex:1;min-width:80px}.distributie-metric .metric-value{font-size:20px}}.excel-import{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 10px #0000000f;margin-bottom:20px}.import-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:12px}.import-header h3{margin:0;font-size:18px;color:#1e3a5f}.template-btn{background:#f0f4f8;color:#1e3a5f;border:2px solid #e0e8f0;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.template-btn:hover{background:#e0e8f0;border-color:#1e3a5f}.import-description{color:#666;font-size:14px;margin:0 0 16px}.file-input-container{position:relative;margin-bottom:16px}.file-input{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}.file-input-label{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;border:2px dashed #d0d8e0;border-radius:12px;background:#f8fafc;color:#666;font-size:15px;cursor:pointer;transition:all .2s}.file-input-label:hover{border-color:#1e3a5f;background:#f0f4f8;color:#1e3a5f}.import-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:16px;margin-bottom:16px}.import-errors h4{margin:0 0 10px;font-size:14px;color:#dc2626}.import-errors ul{margin:0;padding-left:20px}.import-errors li{font-size:13px;color:#991b1b;margin-bottom:4px}.error-row{font-weight:600;margin-right:6px}.more-errors{font-style:italic;color:#b91c1c}.import-preview{margin-bottom:16px}.import-preview h4{margin:0 0 12px;font-size:15px;color:#16a34a}.preview-table-container{overflow-x:auto;margin-bottom:16px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th{background:#f0f4f8;padding:10px 12px;text-align:left;font-weight:600;color:#1e3a5f;border-bottom:2px solid #e0e8f0}.preview-table td{padding:10px 12px;border-bottom:1px solid #e8e8e8;color:#333}.rol-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.rol-badge.medewerker{background:#dbeafe;color:#1d4ed8}.rol-badge.planner{background:#dcfce7;color:#16a34a}.rol-badge.teammanager{background:#fef3c7;color:#d97706}.preview-more{text-align:center;color:#666;font-size:13px;font-style:italic;margin:8px 0 0}.import-actions{display:flex;justify-content:flex-end;gap:12px}.cancel-btn{background:#f0f0f0;color:#666;border:none;padding:12px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.cancel-btn:hover:not(:disabled){background:#e0e0e0}.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.import-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.import-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #22c55e4d}.import-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.import-result{padding:16px;border-radius:10px;font-size:14px;font-weight:500;margin-bottom:16px}.import-result.success{background:#dcfce7;color:#166534}.import-result.warning{background:#fef3c7;color:#92400e}.error-detail{margin:8px 0 0;font-size:12px;font-weight:400}.import-help{background:#f8fafc;border-radius:10px;padding:16px;margin-top:16px}.import-help h4{margin:0 0 10px;font-size:14px;color:#1e3a5f}.import-help ul{margin:0;padding-left:20px}.import-help li{font-size:13px;color:#666;margin-bottom:4px}@media(max-width:600px){.import-header{flex-direction:column;align-items:flex-start}.template-btn{width:100%;text-align:center}.file-input-label{padding:20px 16px;font-size:14px}.preview-table{font-size:12px}.preview-table th,.preview-table td{padding:8px 6px}.import-actions{flex-direction:column}.cancel-btn,.import-btn{width:100%}}.templates-container{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 10px #0000000f}.templates-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.templates-header h2{margin:0;color:#1e3a5f;font-size:20px}.add-template-btn{background:#22c55e;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.add-template-btn:hover{background:#16a34a}.no-templates{text-align:center;padding:60px 20px}.no-templates-icon{font-size:64px;margin-bottom:16px}.no-templates h3{margin:0 0 8px;color:#1e3a5f}.no-templates p{color:#666;margin:0 0 24px}.add-first-btn{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:14px 28px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.add-first-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #1e3a5f4d}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.template-card{background:#f8fafc;border:2px solid #e0e8f0;border-radius:12px;padding:16px;transition:all .2s}.template-card:hover{border-color:#1e3a5f;box-shadow:0 4px 15px #00000014}.template-card-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.template-icon{font-size:28px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px;box-shadow:0 2px 6px #00000014}.template-title{flex:1}.template-title h3{margin:0 0 4px;font-size:15px;color:#1e3a5f}.template-location{font-size:13px;color:#666}.template-actions-small{display:flex;gap:4px}.template-actions-small button{background:none;border:none;font-size:14px;cursor:pointer;padding:4px;border-radius:4px;opacity:.6;transition:all .2s}.template-actions-small button:hover{opacity:1;background:#e0e8f0}.template-details{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.template-time{font-size:14px;color:#333;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.sleep-badge{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.template-functie{font-size:13px;color:#666}.template-kwalificaties{display:flex;flex-wrap:wrap;gap:4px}.kwal-tag{background:#e0e8f0;color:#1e3a5f;padding:2px 8px;border-radius:8px;font-size:11px}.template-card-actions{display:flex;gap:8px}.schedule-btn{flex:1;background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.schedule-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #1e3a5f4d}.template-form-container{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 10px #0000000f}.template-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.template-form-header h2{margin:0;color:#1e3a5f}.close-btn{background:#f0f0f0;border:none;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;transition:background .2s}.template-form{display:flex;flex-direction:column;gap:16px}.form-group input,.form-group select,.form-group textarea{padding:12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#1e3a5f}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.kwalificaties-grid{display:flex;flex-wrap:wrap;gap:8px}.kwal-checkbox{display:flex;align-items:center;gap:6px;background:#f5f5f5;padding:8px 12px;border-radius:8px;font-size:13px;cursor:pointer;transition:background .2s}.kwal-checkbox:hover{background:#e8e8e8}.kwal-checkbox input{margin:0}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer}.checkbox-label input{width:18px;height:18px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid #f0f0f0}.save-btn:disabled{opacity:.7;cursor:not-allowed}.scheduler-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.scheduler-modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.scheduler-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #f0f0f0}.scheduler-header h2{margin:0;font-size:18px;color:#1e3a5f}.scheduler-template-info{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#f8fafc;border-bottom:1px solid #f0f0f0}.scheduler-template-info .template-icon{font-size:24px;width:40px;height:40px}.scheduler-template-info div{display:flex;flex-direction:column}.scheduler-template-info strong{color:#1e3a5f;font-size:15px}.scheduler-template-info span{color:#666;font-size:13px}.scheduler-form{padding:24px;display:flex;flex-direction:column;gap:20px}.herhaling-options{display:flex;flex-wrap:wrap;gap:8px}.herhaling-btn{background:#f5f5f5;border:2px solid #e0e0e0;padding:10px 16px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.herhaling-btn:hover{border-color:#1e3a5f}.herhaling-btn.active{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.dagen-selector{display:flex;gap:6px}.dag-btn{width:40px;height:40px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.dag-btn:hover{border-color:#1e3a5f}.dag-btn.active{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.scheduler-preview{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:16px}.preview-count{font-size:15px;color:#166534;margin-bottom:8px}.preview-dates{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.preview-date{background:#fff;padding:4px 10px;border-radius:6px;font-size:12px;color:#333}.preview-dots{color:#666;padding:0 4px}.scheduler-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #f0f0f0}.create-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.create-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.create-btn:disabled{opacity:.7;cursor:not-allowed}@media(max-width:600px){.templates-header{flex-direction:column;align-items:flex-start;gap:12px}.add-template-btn{width:100%}.templates-grid,.form-row{grid-template-columns:1fr}.dagen-selector{flex-wrap:wrap}.herhaling-options{flex-direction:column}.herhaling-btn{width:100%;text-align:center}.scheduler-actions{flex-direction:column}.scheduler-actions button{width:100%}}.form-hint{font-size:12px;color:#6b7280;margin:0 0 8px}.template-distributie{font-size:12px;color:#6b7280;display:flex;align-items:center;gap:4px;margin-top:6px;padding:6px 10px;background:#f0f4ff;border-radius:6px;width:fit-content}.team-form-container{background:#fff;border-radius:16px;box-shadow:0 2px 10px #0000000f;max-width:800px;margin:0 auto}.team-form-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #f0f0f0}.team-form-header h2{margin:0;color:#1e3a5f;font-size:20px}.close-btn{background:#f0f0f0;border:none;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#e0e0e0}.team-form{padding:24px;display:flex;flex-direction:column;gap:24px}.form-section{display:flex;flex-direction:column;gap:16px}.section-title{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.section-title h3{margin:0;font-size:16px;color:#1e3a5f}.selected-count{background:#f0f9ff;color:#0369a1;padding:4px 12px;border-radius:20px;font-size:13px;font-weight:500}.form-row{display:flex;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.flex-1{flex:1}.form-group input,.form-group select{padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .2s}.icon-picker{min-width:200px}.icon-options{display:flex;flex-wrap:wrap;gap:4px}.icon-btn{width:36px;height:36px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;font-size:18px;cursor:pointer;transition:all .2s}.icon-btn:hover{border-color:#1e3a5f;transform:scale(1.05)}.icon-btn.active{border-color:#1e3a5f;background:#f0f5ff}.color-options{display:flex;gap:8px}.color-btn{width:32px;height:32px;border:3px solid transparent;border-radius:50%;cursor:pointer;transition:all .2s}.color-btn:hover{transform:scale(1.1)}.color-btn.active{border-color:#1e3a5f;box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor}.filters-row{display:flex;gap:12px;flex-wrap:wrap}.search-input{flex:1;min-width:200px;position:relative}.search-input .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:14px}.search-input input{width:100%;padding:10px 12px 10px 36px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px}.search-input input:focus{outline:none;border-color:#1e3a5f}.filters-row select{padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;background:#fff;cursor:pointer}.filters-row select:focus{outline:none;border-color:#1e3a5f}.bulk-actions{display:flex;gap:8px}.bulk-btn{background:#f5f5f5;border:1px solid #e0e0e0;padding:8px 12px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.bulk-btn:hover{background:#e8e8e8}.members-list{max-height:300px;overflow-y:auto;border:1px solid #e0e0e0;border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:4px}.no-results{text-align:center;color:#999;padding:40px 20px;margin:0}.member-checkbox{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .2s}.member-checkbox:hover{background:#f5f7fa}.member-checkbox input{width:18px;height:18px;flex-shrink:0;cursor:pointer}.member-checkbox .member-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:#fff;flex-shrink:0;transition:background .2s}.member-details{display:flex;flex-direction:column;min-width:0;flex:1}.member-details .member-name{font-size:14px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-meta{display:flex;align-items:center;gap:8px;margin-top:2px}.member-meta .badge{font-size:10px;padding:2px 6px;border-radius:4px;font-weight:500;text-transform:uppercase}.member-meta .badge.vast{background:#dcfce7;color:#166534}.member-meta .badge.flexpool{background:#dbeafe;color:#1d4ed8}.member-meta .badge.uitzend{background:#fef3c7;color:#92400e}.member-meta .badge.zzp{background:#f3e8ff;color:#7c3aed}.member-meta .badge.stagiair{background:#fce7f3;color:#be185d}.member-meta .location-text{font-size:12px;color:#999;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-preview{background:#f8fafc;border-radius:10px;padding:16px}.preview-header{display:flex;align-items:center;gap:12px;border-left:4px solid;padding-left:12px}.preview-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px}.preview-header strong{display:block;font-size:15px;color:#1e3a5f}.preview-header span{font-size:13px;color:#666}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:16px;border-top:1px solid #f0f0f0}.cancel-btn{background:#f0f0f0;color:#666;border:none;padding:12px 24px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.save-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.save-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.team-form{padding:16px}.form-row{flex-direction:column}.icon-picker{min-width:unset}.filters-row{flex-direction:column}.filters-row select{width:100%}.search-input{min-width:unset}.bulk-actions{flex-direction:column}.bulk-btn{width:100%;text-align:center}.members-list{max-height:250px}.form-actions{flex-direction:column}.form-actions button{width:100%}}.teams-container{display:flex;flex-direction:column;gap:24px}.teams-header{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:20px 24px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.teams-header h2{margin:0;color:#1e3a5f;font-size:20px}.add-team-btn{background:#22c55e;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.add-team-btn:hover{background:#16a34a;transform:translateY(-1px)}.teams-section{background:#fff;border-radius:12px;padding:20px 24px;box-shadow:0 2px 10px #0000000f}.section-header{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #f0f0f0}.section-header h3{margin:0 0 4px;color:#1e3a5f;font-size:16px}.section-subtitle{font-size:13px;color:#666}.teams-list{display:flex;flex-direction:column;gap:12px}.team-card{background:#f8fafc;border:1px solid #e0e8f0;border-left:4px solid #6366f1;border-radius:10px;overflow:hidden;transition:all .2s}.team-card:hover{border-color:#c7d2e0;box-shadow:0 2px 8px #0000000f}.team-card.expanded{background:#fff}.team-card-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.team-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.team-info{flex:1;min-width:0}.team-info h3{margin:0 0 2px;font-size:15px;color:#1e3a5f;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-meta{font-size:13px;color:#666}.team-actions{display:flex;align-items:center;gap:4px}.team-action-btn{background:none;border:none;font-size:14px;padding:6px;cursor:pointer;border-radius:6px;opacity:.6;transition:all .2s}.team-action-btn:hover{opacity:1;background:#e0e8f0}.team-action-btn.delete:hover{background:#fee2e2}.expand-icon{font-size:12px;color:#999;transition:transform .2s;margin-left:8px}.expand-icon.rotated{transform:rotate(180deg)}.team-card-body{padding:16px;border-top:1px solid #e0e8f0;margin-top:0}.no-members{color:#999;font-size:14px;text-align:center;padding:20px}.team-members{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.team-member{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border:1px solid #e0e8f0;border-radius:8px}.member-avatar{width:32px;height:32px;background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.member-info{display:flex;flex-direction:column;min-width:0}.member-name{font-size:14px;color:#333;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-location{font-size:12px;color:#999}.virtual-team-note{margin-top:12px;padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;font-size:13px;color:#0369a1}.no-teams-message{text-align:center;padding:40px 20px}.no-teams-icon{font-size:48px;margin-bottom:12px}.no-teams-message h4{margin:0 0 8px;color:#1e3a5f}.no-teams-message p{margin:0 0 20px;color:#666;font-size:14px}.add-first-team-btn{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;border:none;padding:12px 24px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.add-first-team-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #1e3a5f4d}.teams-info-box{background:#f8fafc;border:1px solid #e0e8f0;border-radius:12px;padding:20px 24px}.teams-info-box h4{margin:0 0 12px;color:#1e3a5f;font-size:14px}.teams-info-box ul{margin:0;padding-left:20px}.teams-info-box li{font-size:13px;color:#666;margin-bottom:8px;line-height:1.5}.teams-info-box li:last-child{margin-bottom:0}.teams-info-box strong{color:#333}@media(max-width:600px){.teams-header{flex-direction:column;gap:12px;align-items:stretch}.add-team-btn{width:100%}.team-members{grid-template-columns:1fr}.team-card-header{padding:12px}.team-icon{width:36px;height:36px;font-size:16px}}.availability-container{display:flex;flex-direction:column;gap:20px}.availability-header{display:flex;justify-content:space-between;align-items:flex-start;background:#fff;padding:20px 24px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.availability-header h2{margin:0 0 4px;color:#1e3a5f;font-size:20px}.availability-subtitle{margin:0;color:#666;font-size:14px}.availability-header .save-btn{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;flex-shrink:0}.availability-header .save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.availability-header .save-btn:disabled{opacity:.7;cursor:not-allowed}.availability-header .save-btn.saved{background:#22c55e}.availability-tabs{display:flex;gap:8px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 2px 10px #0000000f}.tab-btn{flex:1;background:#f5f5f5;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.tab-btn:hover{background:#e8e8e8}.tab-btn.active{background:#1e3a5f;color:#fff}.tab-badge{background:#ffffff4d;padding:2px 8px;border-radius:10px;font-size:12px}.tab-btn:not(.active) .tab-badge{background:#1e3a5f;color:#fff}.availability-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 10px #0000000f}.section-info{background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;padding:12px 16px;margin-bottom:20px}.section-info p{margin:0;color:#0369a1;font-size:14px}.schedule-grid{display:flex;flex-direction:column;gap:4px;margin-bottom:20px}.grid-header,.grid-row{display:grid;grid-template-columns:100px repeat(4,1fr);gap:4px}.grid-cell{padding:12px 8px;text-align:center;border-radius:6px;font-size:13px}.grid-cell.corner{background:transparent}.header-cell{background:#f8fafc;cursor:pointer;transition:background .2s}.header-cell:hover{background:#e2e8f0}.dagdeel-header{display:flex;flex-direction:column;align-items:center;gap:2px}.dagdeel-icon{font-size:18px}.dagdeel-label{font-weight:600;color:#1e3a5f}.dagdeel-tijd{font-size:11px;color:#999}.dag-header{background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.dag-header:hover{background:#e2e8f0}.dag-kort{font-weight:700;color:#1e3a5f;font-size:14px}.dag-label{font-size:11px;color:#666}.toggle-cell{background:#fee2e2;cursor:pointer;transition:all .2s;font-weight:600;color:transparent;border:2px solid transparent}.toggle-cell:hover{border-color:#1e3a5f}.toggle-cell.checked{background:#dcfce7;color:#166534}.legend{display:flex;gap:20px;justify-content:center}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#666}.legend-box{width:24px;height:24px;border-radius:4px;background:#fee2e2}.legend-box.checked{background:#dcfce7}.empty-state{text-align:center;padding:40px 20px}.empty-icon{font-size:48px;display:block;margin-bottom:12px}.empty-state p{color:#666;margin:0 0 20px}.exceptions-list{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.exception-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:10px;background:#f8fafc;border:1px solid #e2e8f0}.exception-card.unavailable{border-left:4px solid #ef4444}.exception-card.available{border-left:4px solid #22c55e}.exception-card.vacation{border-left:4px solid #f59e0b;background:#fffbeb}.exception-icon{font-size:24px;flex-shrink:0}.exception-info{flex:1;display:flex;flex-direction:column}.exception-info strong{color:#1e3a5f;font-size:14px}.exception-info span{color:#666;font-size:13px}.delete-btn{background:none;border:none;font-size:16px;cursor:pointer;padding:8px;border-radius:6px;opacity:.6;transition:all .2s}.delete-btn:hover{opacity:1;background:#fee2e2}.add-btn{background:#f0f5ff;color:#1e3a5f;border:2px dashed #c7d2e0;padding:14px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;width:100%;transition:all .2s}.add-btn:hover{background:#e0e8f5;border-color:#1e3a5f}.add-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:20px}.add-form h4{margin:0 0 16px;color:#1e3a5f;font-size:15px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.form-group label{font-size:13px;font-weight:600;color:#333}.form-group input,.form-group select{padding:10px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#1e3a5f}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.cancel-btn{background:#f0f0f0;color:#666;border:none;padding:10px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.cancel-btn:hover{background:#e0e0e0}.confirm-btn{background:#1e3a5f;color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.confirm-btn:hover{background:#2e5a8f}.availability-help{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.availability-help h4{margin:0 0 12px;color:#1e3a5f;font-size:14px}.availability-help ul{margin:0;padding-left:20px}.availability-help li{font-size:13px;color:#666;margin-bottom:8px;line-height:1.5}.availability-help li:last-child{margin-bottom:0}.availability-help strong{color:#333}@media(max-width:600px){.availability-header{flex-direction:column;gap:16px}.availability-header .save-btn{width:100%}.availability-tabs{flex-direction:column}.tab-btn{justify-content:flex-start}.grid-header,.grid-row{grid-template-columns:60px repeat(4,1fr)}.dagdeel-label,.dagdeel-tijd,.dag-label{display:none}.dag-kort{font-size:12px}.grid-cell{padding:10px 4px}.form-row{grid-template-columns:1fr}.legend{flex-direction:column;align-items:center;gap:8px}}.handleiding-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.handleiding-modal{background:#fff;border-radius:16px;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.handleiding-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.handleiding-header h2{margin:0;font-size:20px;color:#1e3a5f}.handleiding-header .close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:4px 8px;border-radius:6px;transition:all .2s}.handleiding-header .close-btn:hover{background:#f0f0f0;color:#333}.handleiding-content{display:flex;flex:1;overflow:hidden}.handleiding-nav{width:260px;border-right:1px solid #e5e7eb;overflow-y:auto;padding:12px;background:#f8fafc}.nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:none;background:transparent;border-radius:8px;cursor:pointer;text-align:left;font-size:14px;color:#333;transition:all .2s;margin-bottom:4px}.nav-item:hover{background:#e5e7eb}.nav-item.active{background:#1e3a5f;color:#fff}.nav-icon{font-size:16px;flex-shrink:0}.nav-title{flex:1;font-weight:500}.nav-arrow{font-size:10px;color:#999}.nav-item.active .nav-arrow{color:#ffffffb3}.handleiding-section{flex:1;padding:24px;overflow-y:auto}.handleiding-section h3{margin:0 0 20px;color:#1e3a5f;font-size:22px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.section-content{line-height:1.7;color:#333}.section-content h4{margin:20px 0 10px;color:#1e3a5f;font-size:16px}.section-content p{margin:6px 0}.section-content .bullet,.section-content .numbered{padding-left:8px;margin:4px 0}.section-content .arrow{padding-left:16px;color:#666;font-size:13px}.section-content .italic{font-style:italic;color:#555;margin-top:12px}.section-content strong{color:#1e3a5f}.handleiding-welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center}.welcome-icon{font-size:64px;margin-bottom:20px}.handleiding-welcome h3{margin:0 0 12px;color:#1e3a5f;font-size:22px}.handleiding-welcome p{color:#666;margin:0;font-size:15px}.welcome-tip{margin-top:24px!important;padding:16px 20px;background:#fef3c7;border-radius:10px;color:#92400e!important;font-size:14px!important}@media(max-width:700px){.handleiding-overlay{padding:0}.handleiding-modal{border-radius:0;max-height:100vh;height:100vh}.handleiding-content{flex-direction:column}.handleiding-nav{width:100%;max-height:200px;border-right:none;border-bottom:1px solid #e5e7eb}.handleiding-section{padding:16px}.handleiding-welcome{padding:24px}.welcome-icon{font-size:48px}}.helpdesk-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:flex-end;align-items:flex-end;z-index:1001;padding:20px}.helpdesk-modal{background:#fff;border-radius:16px;width:400px;max-width:100%;height:600px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:slideUp .3s ease}.helpdesk-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#1e3a5f,#2d4a6f);border-radius:16px 16px 0 0;color:#fff}.helpdesk-title{display:flex;align-items:center;gap:12px}.helpdesk-icon{font-size:28px}.helpdesk-title h2{margin:0;font-size:16px;font-weight:600}.helpdesk-subtitle{font-size:12px;opacity:.8}.helpdesk-actions{display:flex;gap:8px}.helpdesk-actions button{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}.helpdesk-actions button:hover{background:#ffffff4d}.helpdesk-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#f8fafc}.message{display:flex;gap:10px;max-width:90%;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.user{align-self:flex-end;flex-direction:row-reverse}.message.assistant{align-self:flex-start}.message-avatar{font-size:24px;flex-shrink:0}.message-content{background:#fff;padding:12px 16px;border-radius:12px;box-shadow:0 1px 3px #0000001a;font-size:14px;line-height:1.5}.message.user .message-content{background:#1e3a5f;color:#fff}.message-content p{margin:0}.message-content p+p{margin-top:8px}.message-content.loading{display:flex;gap:4px;padding:16px 20px}.dot{width:8px;height:8px;background:#1e3a5f;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.dot:nth-child(1){animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.helpdesk-suggestions{padding:12px 16px;display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #e5e7eb;background:#fff}.suggestion-btn{background:#f0f4ff;border:1px solid #d0d9ff;padding:8px 12px;border-radius:20px;font-size:12px;color:#1e3a5f;cursor:pointer;transition:all .2s}.suggestion-btn:hover{background:#1e3a5f;color:#fff;border-color:#1e3a5f}.helpdesk-input{display:flex;padding:12px 16px;gap:10px;border-top:1px solid #e5e7eb;background:#fff}.helpdesk-input input{flex:1;padding:12px 16px;border:2px solid #e5e7eb;border-radius:24px;font-size:14px;outline:none;transition:border-color .2s}.helpdesk-input input:focus{border-color:#1e3a5f}.helpdesk-input button{width:44px;height:44px;border-radius:50%;border:none;background:#1e3a5f;color:#fff;font-size:18px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.helpdesk-input button:hover:not(:disabled){background:#2d4a6f;transform:scale(1.05)}.helpdesk-input button:disabled{background:#ccc;cursor:not-allowed}.helpdesk-footer{padding:10px 16px;text-align:center;font-size:11px;color:#999;background:#f8fafc;border-radius:0 0 16px 16px}.help-floating-btn{position:fixed;bottom:24px;right:24px;background:linear-gradient(135deg,#1e3a5f,#2d4a6f);color:#fff;border:none;border-radius:28px;padding:12px 20px;display:flex;align-items:center;gap:8px;cursor:pointer;box-shadow:0 4px 20px #1e3a5f66;transition:all .3s;z-index:999}.help-floating-btn:hover{transform:translateY(-2px);box-shadow:0 6px 24px #1e3a5f80}.help-icon{font-size:20px}.help-text{font-size:14px;font-weight:600}@media(max-width:500px){.helpdesk-overlay{padding:0}.helpdesk-modal{width:100%;height:100%;max-height:100%;border-radius:0}.helpdesk-header{border-radius:0;padding-top:calc(env(safe-area-inset-top,0px) + 16px)}.helpdesk-footer{border-radius:0;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 10px)}.help-floating-btn{bottom:calc(env(safe-area-inset-bottom,0px) + 80px);right:16px}}.employee-view .help-floating-btn{bottom:calc(env(safe-area-inset-bottom,0px) + 90px)}.rooster-import-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.rooster-import-modal{background:#fff;border-radius:16px;width:100%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;overflow:hidden}.import-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#1e3a5f,#2d4a6f);color:#fff}.import-header h2{margin:0;font-size:20px}.import-header .close-btn{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:8px;cursor:pointer;font-size:20px;transition:all .2s}.import-header .close-btn:hover{background:#ffffff4d}.import-error{background:#fef2f2;color:#dc2626;padding:12px 20px;display:flex;align-items:center;gap:10px;font-size:14px}.import-content{flex:1;overflow-y:auto;padding:24px}.import-upload-step{display:flex;flex-direction:column;gap:24px}.supported-systems h3{margin:0 0 12px;font-size:14px;color:#666;font-weight:600}.systems-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.system-card{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#f8fafc;border-radius:8px;font-size:13px;color:#333}.system-icon{font-size:18px}.system-name{font-weight:500}.upload-zone{border:2px dashed #d1d5db;border-radius:12px;padding:40px 20px;text-align:center;cursor:pointer;transition:all .3s;background:#fafafa}.upload-zone:hover,.upload-zone.dragover{border-color:#1e3a5f;background:#f0f4ff}.upload-icon{font-size:48px;margin-bottom:12px}.upload-text{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.upload-text strong{font-size:16px;color:#333}.upload-text span{font-size:14px;color:#666}.upload-formats{font-size:12px;color:#999;background:#e5e7eb;padding:4px 12px;border-radius:20px;display:inline-block}.import-tips{background:#fef3c7;border-radius:10px;padding:16px}.import-tips h4{margin:0 0 10px;font-size:14px;color:#92400e}.import-tips ul{margin:0;padding-left:20px;font-size:13px;color:#78350f}.import-tips li{margin-bottom:6px}.import-preview-step{display:flex;flex-direction:column;gap:16px}.detected-system{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#dcfce7;border-radius:10px;color:#166534;font-size:14px}.detected-system .system-icon{font-size:24px}.preview-header{display:flex;justify-content:space-between;align-items:center}.preview-count{font-size:14px;color:#666;font-weight:500}.select-all-btn{background:none;border:1px solid #d1d5db;padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;color:#333;transition:all .2s}.select-all-btn:hover{background:#f3f4f6}.no-diensten{text-align:center;padding:40px 20px;color:#666}.no-icon{font-size:48px;display:block;margin-bottom:12px}.diensten-preview-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.dienst-preview-item{display:flex;gap:12px;padding:14px 16px;background:#f8fafc;border-radius:10px;cursor:pointer;transition:all .2s;border:2px solid transparent}.dienst-preview-item:hover{background:#f0f4f8}.dienst-preview-item.selected{background:#eff6ff;border-color:#3b82f6}.dienst-checkbox{font-size:20px;color:#666;flex-shrink:0}.dienst-preview-item.selected .dienst-checkbox{color:#3b82f6}.dienst-preview-content{flex:1;display:flex;flex-direction:column;gap:6px}.dienst-preview-main{display:flex;gap:12px;font-weight:600;color:#1e3a5f}.dienst-datum{min-width:100px}.dienst-preview-details{display:flex;gap:16px;font-size:13px;color:#666}.dienst-preview-kwal{display:flex;gap:6px;flex-wrap:wrap}.dienst-preview-kwal .kwal-tag{font-size:11px;padding:2px 8px;background:#e5e7eb;border-radius:10px;color:#333}.dienst-warning{font-size:12px;color:#d97706;margin-top:4px}.preview-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e5e7eb}.back-btn{background:#f3f4f6;border:none;padding:12px 20px;border-radius:8px;font-size:14px;cursor:pointer;color:#333;transition:all .2s}.back-btn:hover{background:#e5e7eb}.import-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;color:#fff;transition:all .2s}.import-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.import-btn:disabled{background:#d1d5db;cursor:not-allowed}.import-progress-step{text-align:center;padding:40px 20px}.progress-icon{font-size:48px;margin-bottom:16px;animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.import-progress-step h3{margin:0 0 20px;color:#1e3a5f}.progress-bar{height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden;margin-bottom:10px}.progress-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;color:#666;font-weight:600}@media(max-width:600px){.rooster-import-overlay{padding:0}.rooster-import-modal{border-radius:0;max-height:100vh;height:100vh}.systems-grid{grid-template-columns:repeat(2,1fr)}.dienst-preview-main,.dienst-preview-details{flex-direction:column;gap:4px}.preview-actions{flex-direction:column}.preview-actions button{width:100%}}.preview-warning{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;font-size:13px;color:#92400e;margin-bottom:16px}.preview-warning .warning-icon{font-size:20px;flex-shrink:0}.dienst-preview-item.incomplete{border-left:3px solid #f59e0b}.incomplete-badge{font-size:14px;margin-left:auto}.dienst-no-kwal{font-size:12px;color:#d97706;font-style:italic;padding:4px 0}.import-success-step{text-align:center;padding:40px 20px}.import-success-step h3{margin:0 0 24px;color:#166534;font-size:20px}.success-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:12px;text-align:left;margin-bottom:24px}.success-warning .warning-icon{font-size:24px;flex-shrink:0}.success-warning .warning-content{font-size:14px;color:#92400e}.success-warning .warning-content strong{color:#78350f}.success-warning .warning-content p{margin:8px 0 0;font-size:13px;opacity:.9}.success-complete{padding:16px;background:#dcfce7;border-radius:12px;font-size:16px;color:#166534;margin-bottom:24px}.success-complete span{margin-right:8px}.success-actions{display:flex;flex-direction:column;gap:12px}.review-btn{background:linear-gradient(135deg,#f59e0b,#d97706);border:none;padding:14px 24px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;color:#fff;transition:all .2s}.review-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.done-btn{background:linear-gradient(135deg,#22c55e,#16a34a);border:none;padding:14px 24px;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;color:#fff;transition:all .2s}.done-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #22c55e4d}.rooster-export-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1001;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.rooster-export-modal{background:#fff;border-radius:20px;width:100%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 80px #0006;overflow:hidden}.export-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#059669,#047857);color:#fff}.export-header h2{margin:0;font-size:20px;font-weight:600}.export-header .close-btn{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:18px;transition:background .2s}.export-header .close-btn:hover{background:#ffffff4d}.export-content{padding:20px 24px;overflow-y:auto;flex:1}.export-section{margin-bottom:20px}.export-section h3{margin:0 0 12px;font-size:14px;font-weight:600;color:#1e3a5f}.periode-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.periode-buttons button{background:#f1f5f9;border:1px solid #e2e8f0;padding:8px 14px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s;color:#64748b}.periode-buttons button:hover{background:#e2e8f0}.periode-buttons button.active{background:#059669;border-color:#059669;color:#fff}.datum-inputs{display:flex;gap:12px}.datum-field{flex:1}.datum-field label{display:block;font-size:12px;color:#666;margin-bottom:4px}.datum-field input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.datum-field input:focus{outline:none;border-color:#059669}.export-section select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;background:#fff;cursor:pointer}.export-section select:focus{outline:none;border-color:#059669}.format-buttons{display:flex;gap:12px}.format-buttons button{flex:1;background:#f8fafc;border:2px solid #e2e8f0;padding:16px;border-radius:12px;cursor:pointer;transition:all .2s;text-align:center}.format-buttons button:hover{border-color:#cbd5e1}.format-buttons button.active{border-color:#059669;background:#ecfdf5}.format-icon{display:block;font-size:28px;margin-bottom:8px}.format-name{display:block;font-size:15px;font-weight:600;color:#1e3a5f;margin-bottom:4px}.format-desc{display:block;font-size:11px;color:#666}.export-preview{background:#f8fafc;border-radius:12px;padding:16px}.export-preview h3{margin:0 0 12px;font-size:14px;font-weight:600;color:#1e3a5f}.loading-preview{text-align:center;padding:20px;color:#666}.preview-stats{display:flex;gap:16px;margin-bottom:16px}.stat-item{flex:1;text-align:center;padding:12px;background:#fff;border-radius:10px;border:1px solid #e5e7eb}.stat-value{display:block;font-size:24px;font-weight:700;color:#059669}.stat-label{display:block;font-size:12px;color:#666;margin-top:2px}.preview-table-container{overflow-x:auto;max-height:200px;overflow-y:auto}.preview-table{width:100%;border-collapse:collapse;font-size:12px}.preview-table th,.preview-table td{padding:8px 10px;text-align:left;border-bottom:1px solid #e5e7eb}.preview-table th{background:#f1f5f9;font-weight:600;color:#374151;position:sticky;top:0}.preview-table tr:hover td{background:#f8fafc}.more-row td{text-align:center;color:#666;font-style:italic}.no-shifts-preview{text-align:center;padding:24px;color:#666}.no-shifts-preview span{font-size:32px;display:block;margin-bottom:8px}.no-shifts-preview p{margin:0;font-size:14px}.export-actions{display:flex;gap:12px;padding:16px 24px;background:#f8fafc;border-top:1px solid #e5e7eb}.cancel-btn{flex:1;background:#fff;border:1px solid #d1d5db;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;color:#374151;transition:all .2s}.cancel-btn:hover{background:#f1f5f9}.export-btn{flex:2;background:linear-gradient(135deg,#059669,#047857);border:none;padding:12px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;color:#fff;transition:all .2s}.export-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0596694d}.export-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.rooster-export-overlay{padding:0}.rooster-export-modal{border-radius:0;max-height:100vh;height:100%}.periode-buttons button{padding:6px 10px;font-size:12px}.datum-inputs,.format-buttons{flex-direction:column}.preview-stats{flex-wrap:wrap}.stat-item{min-width:calc(50% - 8px)}.export-actions{flex-direction:column}}.modules-container{padding:20px;max-width:1000px;margin:0 auto}.modules-header{text-align:center;margin-bottom:24px}.modules-header h2{margin:0 0 8px;font-size:24px;color:#1e3a5f}.modules-header p{margin:0;color:#666;font-size:14px}.modules-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #e5e7eb;padding-bottom:0}.tab-btn{background:none;border:none;padding:12px 20px;font-size:14px;font-weight:500;color:#666;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s}.tab-btn:hover{color:#1e3a5f}.tab-btn.active{color:#1e3a5f;border-bottom-color:#1e3a5f}.modules-section{margin-bottom:32px}.modules-section h3{margin:0 0 8px;font-size:18px;color:#1e3a5f}.section-subtitle{margin:0 0 16px;color:#666;font-size:13px}.modules-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.module-card{background:#fff;border-radius:12px;border:1px solid #e5e7eb;overflow:hidden;transition:all .2s}.module-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #0000000d}.module-card.active{background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-color:#86efac}.module-card.configurable{border-left:3px solid #3b82f6}.module-card.configurable.enabled{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-left-color:#1e3a5f}.module-card.request{border-left:3px solid #f59e0b}.module-card.future{border-left:3px solid #a855f7;opacity:.9}.module-header{display:flex;align-items:center;gap:12px;padding:16px;cursor:pointer}.module-icon{font-size:28px;flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:#fffc;border-radius:10px}.module-info{flex:1;min-width:0}.module-info h4{margin:0 0 4px;font-size:15px;font-weight:600;color:#1e3a5f}.module-info p{margin:0;font-size:13px;color:#666;line-height:1.4}.module-status{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;padding:4px 10px;border-radius:12px;flex-shrink:0}.module-status.actief{background:#dcfce7;color:#166534}.status-dot{width:6px;height:6px;border-radius:50%;background:#22c55e}.module-toggle{flex-shrink:0}.switch{position:relative;display:inline-block;width:48px;height:26px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#cbd5e1;transition:.3s;border-radius:26px}.slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}input:checked+.slider{background:linear-gradient(135deg,#22c55e,#16a34a)}input:checked+.slider:before{transform:translate(22px)}.module-expanded{padding:0 16px 16px;border-top:1px solid #e5e7eb;margin-top:-1px;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.module-features{margin-top:12px}.module-features h5{margin:0 0 8px;font-size:13px;color:#1e3a5f;font-weight:600}.module-features ul{margin:0;padding:0;list-style:none}.module-features li{font-size:13px;color:#4b5563;padding:4px 0}.module-note{margin-top:12px;padding:10px 14px;border-radius:8px;font-size:13px}.module-note.success{background:#dcfce7;color:#166534}.module-config{margin-top:16px;padding:16px;background:#f8fafc;border-radius:10px}.module-config h5{margin:0 0 8px;font-size:14px;color:#1e3a5f}.config-help{font-size:12px;color:#666;margin-bottom:16px;line-height:1.5}.config-field{margin-bottom:14px}.config-field label{display:block;font-size:12px;font-weight:600;color:#374151;margin-bottom:6px}.config-field input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;font-family:monospace;transition:border-color .2s}.config-field input:focus{outline:none;border-color:#1e3a5f}.config-readonly{padding:10px 12px;background:#e5e7eb;border-radius:8px;font-size:12px;font-family:monospace;color:#374151;-webkit-user-select:all;user-select:all}.save-config-btn{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-top:8px}.save-config-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #1e3a5f4d}.save-config-btn:disabled{opacity:.7;cursor:wait}.info-btn{background:#f1f5f9;border:1px solid #e2e8f0;padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;color:#1e3a5f;cursor:pointer;transition:all .2s;flex-shrink:0}.info-btn:hover{background:#e2e8f0}.coming-soon-badge{background:linear-gradient(135deg,#a855f7,#7c3aed);color:#fff;padding:6px 12px;border-radius:12px;font-size:11px;font-weight:600;flex-shrink:0}.module-contact,.module-interest{margin-top:16px;padding:12px;background:#fef3c7;border-radius:8px;text-align:center}.module-contact p,.module-interest p{margin:0 0 10px;font-size:13px;color:#92400e}.contact-btn,.interest-btn{display:inline-block;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;text-decoration:none;padding:8px 20px;border-radius:8px;font-size:13px;font-weight:500;transition:all .2s}.contact-btn:hover,.interest-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #f59e0b4d}.interest-btn{background:linear-gradient(135deg,#a855f7,#7c3aed)}.interest-btn:hover{box-shadow:0 4px 12px #a855f74d}.modules-list{display:flex;flex-direction:column;gap:12px}.modules-footer{margin-top:32px;padding:20px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-radius:12px;border:1px solid #bae6fd}.footer-content{display:flex;align-items:center;gap:16px}.footer-icon{font-size:32px}.footer-text strong{display:block;color:#0c4a6e;margin-bottom:4px}.footer-text p{margin:0;font-size:13px;color:#0369a1}.footer-text a{color:#1e3a5f;font-weight:500}.modules-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:10px;font-size:14px;font-weight:500;z-index:1000;animation:toastIn .3s ease}.modules-toast.success{background:#166534;color:#fff}.modules-toast.error{background:#dc2626;color:#fff}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@media(max-width:600px){.modules-container{padding:16px}.modules-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-btn{white-space:nowrap;padding:10px 16px}.modules-grid{grid-template-columns:1fr}.module-header{flex-wrap:wrap}.module-info{flex:1 1 100%;order:2;margin-top:8px}.module-icon,.module-toggle,.module-status,.info-btn,.coming-soon-badge{order:1}.footer-content{flex-direction:column;text-align:center}}.demo-mode-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1001;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.demo-mode-modal{background:#fff;border-radius:20px;width:100%;max-width:500px;box-shadow:0 25px 80px #0006;overflow:hidden}.demo-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff}.demo-header h2{margin:0;font-size:20px;font-weight:600}.demo-header .close-btn{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:18px;transition:background .2s}.demo-header .close-btn:hover{background:#ffffff4d}.demo-content{padding:24px}.demo-intro p{color:#4b5563;font-size:15px;line-height:1.6;margin:0 0 20px}.demo-includes{background:#f8fafc;border-radius:12px;padding:16px;margin-bottom:20px}.demo-includes h4{margin:0 0 12px;font-size:14px;font-weight:600;color:#1e3a5f}.demo-includes ul{list-style:none;margin:0;padding:0}.demo-includes li{font-size:14px;color:#4b5563;padding:6px 0;display:flex;align-items:center;gap:8px}.demo-progress{display:flex;align-items:center;gap:12px;padding:16px;background:#eff6ff;border-radius:10px;margin-bottom:16px}.progress-spinner{width:24px;height:24px;border:3px solid #dbeafe;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.demo-progress p{margin:0;font-size:14px;color:#1e40af}.demo-error{padding:16px;background:#fef2f2;border-radius:10px;margin-bottom:16px}.demo-error p{margin:0;font-size:14px;color:#b91c1c}.demo-success{text-align:center;padding:24px 0}.success-icon{font-size:64px;margin-bottom:16px}.demo-success h3{margin:0 0 12px;font-size:22px;color:#1e3a5f}.demo-success p{margin:0;font-size:15px;color:#4b5563;line-height:1.6}.demo-actions{display:flex;gap:12px;margin-top:20px}.demo-btn{flex:1;padding:14px 20px;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.demo-btn.primary{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;box-shadow:0 4px 14px #7c3aed4d}.demo-btn.primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #7c3aed66}.demo-btn.secondary{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}.demo-btn.secondary:hover:not(:disabled){background:#e2e8f0}.demo-btn:disabled{opacity:.6;cursor:not-allowed}.demo-footer{padding:16px 24px;background:#fefce8;border-top:1px solid #fef08a}.demo-footer p{margin:0;font-size:13px;color:#a16207;text-align:center}@media(max-width:500px){.demo-mode-overlay{padding:0}.demo-mode-modal{border-radius:0;height:100%;display:flex;flex-direction:column}.demo-content{flex:1;overflow-y:auto}.demo-actions{flex-direction:column}}.demo-welcome-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.demo-welcome-modal{background:#fff;border-radius:20px;max-width:480px;width:100%;box-shadow:0 20px 60px #0000004d;overflow:hidden;animation:welcomeSlideIn .3s ease}@keyframes welcomeSlideIn{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.demo-welcome-header{background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:#fff;padding:30px;text-align:center}.demo-welcome-icon{font-size:48px;display:block;margin-bottom:12px}.demo-welcome-header h2{margin:0;font-size:24px;font-weight:700}.demo-welcome-content{padding:24px 30px}.demo-welcome-intro{font-size:16px;color:#4b5563;margin:0 0 20px;text-align:center}.demo-welcome-features{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.demo-feature{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f3f4f6;border-radius:10px;font-size:14px;font-weight:500;color:#374151}.feature-icon{font-size:20px}.demo-welcome-tips{background:#fef3c7;border-radius:12px;padding:16px;margin-bottom:16px}.demo-welcome-tips h4{margin:0 0 12px;font-size:15px;color:#92400e}.demo-welcome-tips ul{margin:0;padding-left:0;list-style:none}.demo-welcome-tips li{font-size:14px;color:#78350f;line-height:1.6;margin-bottom:6px}.demo-welcome-tips li:last-child{margin-bottom:0}.demo-welcome-note{background:#eff6ff;border-radius:10px;padding:12px 16px}.demo-welcome-note p{margin:0;font-size:14px;color:#1e40af}.demo-welcome-progress{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px;background:#eff6ff;border-radius:10px;margin-top:16px}.demo-welcome-progress .progress-spinner{width:24px;height:24px;border:3px solid #bfdbfe;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.demo-welcome-progress p{margin:0;font-size:14px;color:#1e40af;font-weight:500}.demo-welcome-error{padding:12px 16px;background:#fef2f2;border-radius:10px;margin-top:16px}.demo-welcome-error p{margin:0;color:#dc2626;font-size:14px}.demo-welcome-actions{display:flex;gap:12px;padding:20px 30px;border-top:1px solid #e5e7eb;background:#f9fafb}.demo-welcome-btn{flex:1;padding:14px 20px;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s;border:none}.demo-welcome-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.demo-welcome-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);transform:translateY(-1px)}.demo-welcome-btn.secondary{background:#fff;color:#6b7280;border:1px solid #d1d5db}.demo-welcome-btn.secondary:hover:not(:disabled){background:#f3f4f6}.demo-welcome-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:500px){.demo-welcome-modal{margin:10px;max-height:90vh;overflow-y:auto}.demo-welcome-header{padding:24px 20px}.demo-welcome-content{padding:20px}.demo-welcome-features{grid-template-columns:1fr}.demo-welcome-actions{flex-direction:column-reverse;padding:16px 20px}}.over-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:1002;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.over-modal{background:#fff;border-radius:20px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 80px #0006;overflow:hidden;animation:modalSlideIn .3s ease}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.over-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;background:linear-gradient(135deg,#1e3a5f,#2d5a87);color:#fff}.over-header-actions{display:flex;align-items:center;gap:12px}.lang-switch{display:flex;background:#ffffff26;border-radius:8px;overflow:hidden}.lang-btn{background:transparent;border:none;color:#ffffffb3;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.lang-btn:hover{color:#fff;background:#ffffff1a}.lang-btn.active{background:#ffffff40;color:#fff}.over-logo{display:flex;align-items:center;gap:14px}.logo-icon{font-size:40px;background:#fff3;padding:10px;border-radius:12px}.logo-text h1{margin:0;font-size:24px;font-weight:700}.versie{font-size:13px;opacity:.8;font-weight:500}.over-header .close-btn{background:#fff3;border:none;color:#fff;width:36px;height:36px;border-radius:10px;cursor:pointer;font-size:18px;transition:all .2s}.over-header .close-btn:hover{background:#ffffff4d}.over-content{padding:24px;overflow-y:auto;flex:1}.tagline{text-align:center;font-size:15px;color:#666;margin:0 0 24px;padding-bottom:20px;border-bottom:1px solid #e5e7eb}.over-section{margin-bottom:24px}.over-section:last-child{margin-bottom:0}.over-section h3{margin:0 0 12px;font-size:14px;font-weight:600;color:#1e3a5f}.info-grid{display:flex;flex-direction:column;gap:10px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#f8fafc;border-radius:10px}.info-label{font-size:13px;color:#666}.info-value{font-size:13px;font-weight:600;color:#333}.info-link{font-size:13px;font-weight:600;color:#1e3a5f;text-decoration:none;transition:color .2s}.info-link:hover{color:#3b82f6;text-decoration:underline}.licentie-box{background:#fef3c7;border:1px solid #fcd34d;border-radius:10px;padding:14px 16px}.licentie-box p{margin:0;font-size:13px;color:#92400e;line-height:1.5}.licentie-box p+p{margin-top:8px}.tech-badges{display:flex;flex-wrap:wrap;gap:8px}.tech-badge{background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;padding:6px 14px;border-radius:20px;font-size:12px;font-weight:600}.over-footer{padding:16px 24px;background:#f8fafc;text-align:center;border-top:1px solid #e5e7eb}.over-footer p{margin:0;font-size:13px;color:#666;font-weight:500}.over-footer .rights{font-size:11px;color:#999;margin-top:4px;font-weight:400}@media(max-width:500px){.over-modal-overlay{padding:0}.over-modal{border-radius:0;max-height:100%;height:100%}.over-header{padding-top:calc(env(safe-area-inset-top,0px) + 24px)}.over-footer{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}}.dashboard{min-height:100vh;background:#f5f7fa}.dashboard-header{background:#1e3a5f;color:#fff;padding:12px 24px;padding-top:calc(env(safe-area-inset-top,0px) + 12px);display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.header-left h1{margin:0;font-size:24px}.header-logo{height:72px;width:auto}.header-right{display:flex;align-items:center;gap:20px}.user-info{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.user-name{font-weight:600;font-size:16px}.user-role{background:#fff3;padding:4px 12px;border-radius:20px;font-size:11px;text-transform:uppercase;font-weight:600;letter-spacing:.5px}.user-role.planner{background:#22c55e}.user-role.medewerker{background:#fff3}.logout-button{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3);padding:8px 16px;border-radius:6px;cursor:pointer;transition:background .2s}.logout-button:hover{background:#fff3}.refresh-button{background:#fff3;color:#fff;border:2px solid rgba(255,255,255,.5);width:40px;height:40px;border-radius:8px;cursor:pointer;transition:all .2s;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.refresh-button:hover{background:#ffffff4d;transform:rotate(180deg)}.refresh-button:active{transform:rotate(360deg)}.dashboard-nav{background:#fff;padding:12px 24px;display:flex;gap:12px;border-bottom:1px solid #e0e0e0}.employee-top-nav{background:#1e3a5f;border-bottom:none}.employee-top-nav .nav-button{background:#ffffff26;color:#fff}.employee-top-nav .nav-button:hover{background:#ffffff40}.employee-top-nav .nav-button.active{background:#fff;color:#1e3a5f}.nav-button{background:#f0f0f0;border:none;padding:10px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.nav-button:hover{background:#e0e0e0}.nav-button.active{background:#1e3a5f;color:#fff}.nav-badge{background:#ef4444;color:#fff;font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px;margin-left:8px}.nav-badge.green{background:#22c55e}.nav-badge.gray{background:#6b7280}.nav-button.active .nav-badge,.nav-button.active .nav-badge.green{background:#ffffff4d}.dashboard-main{padding:24px;max-width:1200px;margin:0 auto}.shifts-container h2{margin:0 0 20px;color:#333}.no-shifts{background:#fff;border-radius:12px;padding:60px 40px;text-align:center;box-shadow:0 2px 10px #0000000d}.no-shifts p{font-size:18px;color:#666;margin:0 0 20px}.no-shifts-hint{font-size:14px!important;color:#999!important;margin-top:-10px!important}.calendar-sync-section{margin-top:32px;padding-top:24px;border-top:1px solid #e5e7eb}.add-shift-button{background:#1e3a5f;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:16px;cursor:pointer;transition:background .2s}.add-shift-button:hover{background:#2e5a8f}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f7fa}.spinner{width:40px;height:40px;border:4px solid #e0e0e0;border-top-color:#1e3a5f;border-radius:50%;animation:spin 1s linear infinite}.notification-banner{background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;padding:16px 24px;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.notification-banner-content{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:16px}.notification-banner-icon{font-size:32px;flex-shrink:0}.notification-banner-text{flex:1}.notification-banner-text strong{display:block;font-size:16px;margin-bottom:4px}.notification-banner-text p{margin:0;font-size:14px;opacity:.9}.notification-banner-actions{display:flex;gap:12px;flex-shrink:0}.notification-banner-enable{background:#fff;color:#1e3a5f;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.notification-banner-enable:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.notification-banner-dismiss{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3);padding:10px 20px;border-radius:8px;font-size:14px;cursor:pointer;transition:background .2s}.notification-banner-dismiss:hover{background:#fff3}.push-toast{position:fixed;top:20px;right:20px;z-index:9999;animation:slideInRight .3s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.push-toast-content{background:#fff;border-radius:12px;padding:16px 20px;box-shadow:0 8px 30px #00000026;display:flex;align-items:flex-start;gap:12px;max-width:360px;border-left:4px solid #1e3a5f}.push-toast-icon{font-size:24px;flex-shrink:0}.push-toast-text{flex:1}.push-toast-text strong{display:block;font-size:15px;color:#1e3a5f;margin-bottom:4px}.push-toast-text p{margin:0;font-size:14px;color:#666}.push-toast-close{background:none;border:none;font-size:20px;color:#999;cursor:pointer;padding:0;line-height:1;flex-shrink:0}.push-toast-close:hover{color:#333}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid #e0e0e0;padding:8px 0;padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:1000;box-shadow:0 -2px 10px #0000001a}.bottom-nav-button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;background:none;border:none;cursor:pointer;position:relative;color:#666;transition:color .2s}.bottom-nav-button.active{color:#1e3a5f}.bottom-nav-icon{font-size:24px}.bottom-nav-label{font-size:11px;font-weight:600}.bottom-nav-badge{position:absolute;top:2px;right:50%;transform:translate(18px);background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 5px}.bottom-nav-badge.green{background:#22c55e}@media(max-width:600px){.dashboard-header{padding:12px 16px}.header-left h1{font-size:18px}.header-logo{height:48px}.header-right{gap:12px}.user-info{display:none}.refresh-button{width:36px;height:36px;font-size:16px}.logout-button{padding:6px 12px;font-size:13px}.employee-view .dashboard-main{padding-bottom:100px}.employee-top-nav{display:none}.employee-view .bottom-nav{display:flex}.planner-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:12px 16px}.planner-nav::-webkit-scrollbar{display:none}.planner-nav .nav-button{flex-shrink:0;padding:8px 14px;font-size:13px}.nav-dropdown{flex-shrink:0}.dropdown-menu{position:fixed;inset:auto 0 0;border-radius:20px 20px 0 0;max-height:60vh;overflow-y:auto;padding:16px 16px 32px;animation:dropdownSlideUp .2s ease}@keyframes dropdownSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.dropdown-menu button{padding:16px;font-size:16px}.shifts-grid{grid-template-columns:1fr;gap:12px}.dashboard-main{padding:16px}.shifts-container h2{font-size:18px;margin-bottom:16px}.no-shifts{padding:40px 20px}.no-shifts p{font-size:16px}.notification-banner{padding:12px 16px}.notification-banner-content{flex-wrap:wrap}.notification-banner-icon{font-size:24px}.notification-banner-text{flex:1;min-width:200px}.notification-banner-text strong{font-size:14px}.notification-banner-text p{font-size:13px}.notification-banner-actions{width:100%;margin-top:12px}.notification-banner-enable,.notification-banner-dismiss{flex:1;padding:10px 16px;font-size:13px}.push-toast{inset:auto 16px 80px}.push-toast-content{max-width:none}}@media(min-width:601px)and (max-width:900px){.shifts-grid{grid-template-columns:repeat(2,1fr)}.planner-nav{overflow-x:auto;-webkit-overflow-scrolling:touch}}.employees-view{display:flex;flex-direction:column;gap:20px}.help-nav-btn{background:linear-gradient(135deg,#7c3aed,#5b21b6)!important;color:#fff!important}.help-nav-btn:hover{background:linear-gradient(135deg,#6d28d9,#4c1d95)!important}.import-nav-btn{background:linear-gradient(135deg,#0891b2,#0e7490)!important;color:#fff!important}.import-nav-btn:hover{background:linear-gradient(135deg,#06b6d4,#0891b2)!important}.demo-nav-btn{background:linear-gradient(135deg,#f59e0b,#d97706)!important;color:#fff!important}.demo-nav-btn:hover{background:linear-gradient(135deg,#fbbf24,#f59e0b)!important}.nav-dropdown{position:relative}.dropdown-trigger{display:flex;align-items:center;gap:6px}.dropdown-arrow{font-size:10px;opacity:.7;transition:transform .2s}.dropdown-trigger:hover .dropdown-arrow{transform:translateY(2px)}.dropdown-menu{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;min-width:200px;z-index:100;padding:8px;animation:dropdownFadeIn .15s ease}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:transparent;border:none;border-radius:8px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;text-align:left;transition:all .15s}.dropdown-menu button:hover{background:#f3f4f6}.dropdown-menu button.active{background:#eff6ff;color:#1e3a5f}.dropdown-menu .badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;background:#3b82f6;color:#fff;font-size:12px;font-weight:600;border-radius:50px}.dropdown-menu .badge.green{background:#10b981}.dropdown-menu .badge.gray{background:#9ca3af}.magic-nav-btn{background:linear-gradient(135deg,#8b5cf6,#a855f7)!important;color:#fff!important}.magic-nav-btn:hover{background:linear-gradient(135deg,#7c3aed,#9333ea)!important}.about-button{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:16px;transition:all .2s}.about-button:hover{background:#ffffff1a;border-color:#ffffff80}.app-footer{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px 20px;background:#f8fafc;border-top:1px solid #e5e7eb;font-size:12px;color:#666;margin-top:auto}.app-footer span{opacity:.8}.footer-link{background:none;border:none;color:#1e3a5f;font-size:12px;cursor:pointer;text-decoration:underline;padding:0}.footer-link:hover{color:#3b82f6}@media(max-width:768px){.employee-view .app-footer{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 70px)}}.shifts-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.shifts-header h2{margin:0}.shift-filters{display:flex;gap:8px}.filter-btn{background:#f1f5f9;border:1px solid #e2e8f0;padding:6px 14px;border-radius:20px;font-size:13px;cursor:pointer;transition:all .2s;color:#64748b}.filter-btn:hover{background:#e2e8f0}.filter-btn.active{background:#1e3a5f;border-color:#1e3a5f;color:#fff}.filter-btn.incomplete{color:#d97706;border-color:#fcd34d;background:#fef3c7}.filter-btn.incomplete:hover{background:#fde68a}.filter-btn.incomplete.active{background:#f59e0b;border-color:#f59e0b;color:#fff}@media(max-width:600px){.shifts-header{flex-direction:column;align-items:flex-start}.shift-filters{width:100%}.filter-btn{flex:1;text-align:center}}.assigned-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.assigned-header h2{margin:0}.export-nav-btn{background:linear-gradient(135deg,#059669,#047857);color:#fff;border:none;padding:10px 18px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.export-nav-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0596694d}.nav-button:has(🧩){background:linear-gradient(135deg,#a855f7,#7c3aed)}html,body{overscroll-behavior-y:contain}.pull-refresh-indicator{position:fixed;top:0;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 20px;background:#fff;border-radius:0 0 16px 16px;box-shadow:0 4px 20px #00000026;z-index:10000;transition:opacity .2s}.pull-refresh-spinner{font-size:24px;transition:transform .3s}.pull-refresh-spinner.ready{transform:rotate(180deg)}.pull-refresh-spinner.spinning{animation:spinRefresh 1s linear infinite}@keyframes spinRefresh{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pull-refresh-text{font-size:12px;color:#666;font-weight:500}.update-banner{position:fixed;bottom:80px;left:16px;right:16px;background:linear-gradient(135deg,#1e3a5f,#2e5a8f);color:#fff;padding:16px;border-radius:12px;box-shadow:0 4px 20px #0003;z-index:9998;display:flex;align-items:center;justify-content:space-between;gap:12px;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.update-banner-content{display:flex;align-items:center;gap:12px}.update-banner-icon{font-size:24px}.update-banner-text{font-size:14px;font-weight:500}.update-banner-button{background:#fff;color:#1e3a5f;border:none;padding:10px 20px;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;flex-shrink:0;transition:transform .2s}.update-banner-button:hover{transform:scale(1.05)}@media(max-width:600px){.update-banner{flex-direction:column;text-align:center;bottom:90px}.update-banner-button{width:100%}}.update-overlay{position:fixed;inset:0;background:#1e3a5ff2;z-index:99999;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.update-overlay-content{text-align:center;color:#fff}.update-overlay-content p{margin-top:16px;font-size:18px;font-weight:500}.update-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;margin:0 auto;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
