:root{--primary-color:#e3001b;--primary-dark:#8f0011;--secondary-color:#64748b;--success-color:#10b981;--warning-color:#f59e0b;--danger-color:#e3001b;--bg-color:#f8fafc;--surface-color:#ffffff;--text-primary:#1e293b;--text-secondary:#64748b;--border-color:#e2e8f0;--shadow:0 1px 3px rgba(0,0,0,0.1);--shadow-lg:0 10px 25px rgba(0,0,0,0.15)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--bg-color);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased}#app{max-width:1200px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.pwa-open-banner{background:linear-gradient(135deg,#10b981 0%,#059669 100%);color:white;padding:0.75rem 1rem;box-shadow:0 2px 8px rgba(0,0,0,0.2);position:sticky;top:0;z-index:101;animation:slideDown 0.3s ease-out}@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.pwa-banner-content{display:flex;align-items:center;gap:0.75rem;max-width:1200px;margin:0 auto}.pwa-banner-icon{font-size:1.5rem;flex-shrink:0}.pwa-banner-text{flex:1;display:flex;flex-direction:column;gap:0.125rem}.pwa-banner-text strong{font-size:0.95rem;font-weight:600}.pwa-banner-text small{font-size:0.8rem;opacity:0.9}.pwa-open-button{background:white;color:#059669;border:none;padding:0.5rem 1rem;border-radius:0.375rem;font-weight:600;font-size:0.875rem;cursor:pointer;white-space:nowrap;transition:transform 0.2s,box-shadow 0.2s}.pwa-open-button:hover{transform:translateY(-1px);box-shadow:0 4px 8px rgba(0,0,0,0.15)}.pwa-banner-close{background:transparent;border:none;color:white;font-size:1.5rem;cursor:pointer;padding:0.25rem 0.5rem;margin-left:0.5rem;opacity:0.8;transition:opacity 0.2s;flex-shrink:0}.pwa-banner-close:hover{opacity:1}.app-header{background:var(--primary-color);color:white;padding:1rem;padding-top:max(1rem,env(safe-area-inset-top,0px));display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);position:sticky;top:0;z-index:100}.header-logo-container{display:flex;align-items:center;gap:0.75rem;cursor:pointer;user-select:none}.header-title-block{display:flex;flex-direction:column;line-height:1}.header-offline-label{font-size:0.6rem;font-weight:500;color:rgba(255,255,255,0.85);letter-spacing:0.03em;margin-top:0.15rem}.header-logo{height:40px;width:auto;object-fit:contain}.header-logo-combined{height:40px;width:auto;object-fit:contain}.app-header h1{font-size:1.5rem;font-weight:700;margin:0}.app-header--offline{background:#b0b0b0 !important;transition:background 0.3s ease}.offline-queue-badge{display:inline-block;font-size:0.65rem;font-weight:600;color:#fff;background:#555;border-radius:0.75rem;padding:0.1rem 0.5rem;margin-left:0.4rem;vertical-align:middle;white-space:nowrap}.edited-badge{display:inline-block;font-size:0.7rem;font-weight:600;color:#222222;background:#f0f0f0;border:1px solid #b0b0b0;border-radius:0.75rem;padding:0.05rem 0.45rem;margin-left:0.4rem;vertical-align:middle;white-space:nowrap}.admin-badge{width:48px;height:48px;border-radius:50%;background:white;color:#64748b;border:2px solid white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;margin-right:0.75rem;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.admin-badge svg{width:24px;height:24px}.admin-badge:hover{background:rgba(255,255,255,0.95);transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,0.2);color:#475569}.admin-badge:active{transform:scale(0.95)}.admin-badge.view-active{background:var(--primary-color);border:2px solid white;color:white}.admin-badge.view-active:hover{background:var(--primary-dark);transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,0.2)}.admin-badge.hidden{display:none}.manual-lock-btn{width:48px;height:48px;border-radius:50%;background:white;color:var(--primary-color);border:2px solid white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all 0.2s ease;margin-right:0.75rem;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.manual-lock-btn svg{width:24px;height:24px}.manual-lock-btn:hover{background:rgba(255,255,255,0.95);transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,0.2);color:var(--primary-dark)}.manual-lock-btn:active{transform:scale(0.95)}.manual-lock-btn.hidden{display:none}.user-avatar-btn{width:48px;height:48px;border-radius:50%;background:white;color:var(--primary-color);border:2px solid white;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.875rem;cursor:pointer;transition:all 0.2s ease;margin-right:0.75rem;box-shadow:0 2px 8px rgba(0,0,0,0.15)}.user-avatar-btn:hover{background:rgba(255,255,255,0.95);transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,0.2)}.user-avatar-btn:active{transform:scale(0.95)}.user-avatar-btn.view-active{background:var(--primary-color);color:white;border:2px solid white}.user-avatar-btn.view-active:hover{background:var(--primary-dark);transform:scale(1.1);box-shadow:0 4px 12px rgba(0,0,0,0.2)}.header-actions{display:flex;gap:1rem;align-items:center}.header-fab-container{position:relative;display:flex;flex-direction:row;align-items:center;gap:0}.status-badge{background:rgba(255,255,255,0.2);padding:0.25rem 0.75rem;border-radius:1rem;font-size:0.875rem}.status-active{color:#4caf50;font-weight:600}.status-inactive{color:#f44336;font-weight:600}.icon-btn{background:transparent;border:none;color:white;font-size:1.5rem;cursor:pointer;padding:0.5rem;border-radius:0.5rem;transition:background 0.2s}.icon-btn:hover{background:rgba(255,255,255,0.1)}.main-nav{display:flex;background:var(--surface-color);border-bottom:1px solid var(--border-color);overflow-x:auto;position:sticky;top:92px;z-index:99}.nav-btn{flex:1;min-width:120px;padding:1rem;border:none;background:transparent;cursor:pointer;font-size:0.875rem;color:var(--text-secondary);border-bottom:2px solid transparent;transition:all 0.2s;white-space:nowrap;display:flex;align-items:center;justify-content:center;gap:0.5rem}.nav-icon{font-size:1.25rem;display:inline-flex;align-items:center}.nav-icon img{width:20px;height:20px;vertical-align:middle;position:relative;top:1px}.main-nav .nav-btn:nth-child(-n+4) .nav-icon img{top:-1px}.nav-text{font-size:0.875rem}.nav-btn:hover{background:var(--bg-color);color:var(--text-primary)}.nav-btn.active{color:var(--primary-color);border-bottom-color:var(--primary-color);font-weight:600}.main-content{flex:1;padding:1.5rem}.card{background:var(--surface-color);border-radius:0.75rem;padding:1.5rem;margin-bottom:1.5rem;box-shadow:var(--shadow)}.card h3{margin-top:0;margin-bottom:1.5rem}.card h4{margin-bottom:1rem}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.card-title{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.btn{padding:0.75rem 1.5rem;border:none;border-radius:0.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all 0.2s;display:inline-flex;align-items:center;gap:0.5rem}.btn-primary{background:var(--primary-color);color:white}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:var(--secondary-color);color:white}.btn-secondary:hover{background:#475569}.btn-success{background:var(--success-color);color:white}.btn-danger{background:var(--danger-color);color:white}.btn-inaktiv,.btn-inaktiv:hover{background:var(--secondary-color,#64748b);opacity:0.55;cursor:not-allowed}.fab-container{display:none}.fab{width:60px;height:60px;border-radius:50%;color:white;border:none;cursor:pointer;box-shadow:var(--shadow-lg);transition:all 0.3s ease;display:flex;align-items:center;justify-content:center;position:relative}.fab:hover{transform:scale(1.1)}.fab-tooltip{position:absolute;right:calc(100% + 0.75rem);top:50%;transform:translateY(-50%);background:rgba(30,41,59,0.95);color:white;padding:0.5rem 0.75rem;border-radius:0.375rem;font-size:0.875rem;font-weight:500;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity 0.2s ease;box-shadow:0 4px 12px rgba(0,0,0,0.15);z-index:1001}.fab:hover .fab-tooltip{opacity:1;transition-delay:0s}.fab-timer.tooltip-suppressed .fab-tooltip{opacity:0 !important}.fab-timer{background:#10b981;font-size:1.5rem;position:relative;z-index:10;border:3px solid white !important}.fab-timer:hover{background:#059669;box-shadow:0 10px 30px rgba(16,185,129,0.5);border:3px solid white !important}.fab-timer.active{background:var(--danger-color);border:3px solid white !important}.fab-timer.active .fab-tooltip{opacity:0 !important}.fab-timer.active:hover{background:var(--primary-color);box-shadow:0 10px 30px rgba(239,68,68,0.5);border:3px solid white !important}@keyframes stop-rect-pulse{0%{transform:scale(1)}4%{transform:scale(1.4)}8%{transform:scale(1)}13%{transform:scale(1.4)}17%{transform:scale(1)}100%{transform:scale(1)}}.fab-timer.active .fab-icon rect{transform-box:fill-box;transform-origin:center;animation:stop-rect-pulse 5s ease-in-out infinite}.fab-icon{width:28px;height:28px;stroke-width:2.5}.category-flyout{display:flex;flex-direction:column;align-items:flex-end;gap:0.75rem;padding:0.75rem 0.75rem 0.75rem 0.75rem;background:var(--surface-color);border-radius:1rem;box-shadow:var(--shadow-lg);transition:all 0.3s ease;position:absolute;top:calc(100% + 0.75rem);right:-0.55rem;z-index:1000}.category-flyout.hidden{opacity:0;pointer-events:none;transform:translateY(-20px)}.category-flyout:not(.hidden){opacity:1;pointer-events:all;transform:translateY(0)}.fab-category{background:#10b981;width:52px;height:52px;opacity:0;transform:translateY(-20px) scale(0.8);transition:all 0.3s ease}.category-flyout:not(.hidden) .fab-category{opacity:1;transform:translateY(0) scale(1)}.fab-category:hover{background:#059669;box-shadow:0 8px 20px rgba(16,185,129,0.4)}.fab-category--sonder{background:#047857}.fab-category--sonder:hover{background:#065f46;box-shadow:0 8px 20px rgba(4,120,87,0.4)}.fab-category .fab-icon{width:24px;height:24px;stroke-width:2}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal.hidden{display:none}.modal-content{background:var(--surface-color);border-radius:1rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:1.5rem;font-weight:600}.close-btn{background:transparent;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);line-height:1;padding:0;width:2rem;height:2rem}.close-btn:hover{color:var(--text-primary)}.modal-body{padding:1.5rem}.push-hint{position:fixed;left:50%;bottom:6rem;transform:translateX(-50%);z-index:1200;width:min(480px,calc(100vw - 2rem));background:var(--surface-color);border:1px solid var(--border-color);border-left:4px solid var(--primary-color);border-radius:0.75rem;box-shadow:var(--shadow-lg);padding:0.9rem 1rem;animation:pushHintIn 0.25s ease-out}@keyframes pushHintIn{from{opacity:0;transform:translateX(-50%) translateY(12px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.push-hint-text{color:var(--text-primary);font-size:0.92rem;line-height:1.45;margin-bottom:0.7rem}.push-hint-text strong{display:block;margin-bottom:0.15rem}.push-hint-actions{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}.push-hint-never{background:none;border:none;color:var(--text-secondary);font-size:0.82rem;cursor:pointer;margin-left:auto;padding:0.25rem;text-decoration:underline}.push-hint-never:hover{color:var(--text-primary)}.form-group{margin-bottom:1.5rem}.placeholder-hell::placeholder{color:#cbd5e1;opacity:1}.form-group label{display:block;margin-bottom:0.5rem;font-weight:500;color:var(--text-primary)}.form-group .sp-check{display:flex;margin-bottom:0}.form-group input,.form-group select,.form-group textarea{width:100%;padding:0.75rem;border:1px solid var(--border-color);border-radius:0.5rem;font-size:1rem;font-family:inherit;transition:border-color 0.2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-color)}.radio-card{display:flex;align-items:center;gap:0.6rem;padding:0.65rem 1rem;border:2px solid var(--border-color);border-radius:0.6rem;background:var(--bg-secondary,#f8fafc);cursor:pointer;transition:border-color 0.15s,background 0.15s,box-shadow 0.15s;font-weight:normal;user-select:none;flex:0 1 auto}.radio-card input[type="radio"]{display:none}.radio-card__icon{font-size:1.3rem;line-height:1;display:flex;align-items:center;justify-content:center}.radio-card__text{display:flex;flex-direction:column;line-height:1.25}.radio-card__text strong{font-size:0.95rem;color:var(--text-primary)}.radio-card__text small{font-size:0.75rem;color:var(--text-secondary,#64748b)}.radio-card:hover{border-color:var(--primary-color);background:var(--bg-primary,#fff);box-shadow:0 1px 4px rgba(0,0,0,0.08)}.radio-card--selected{border-color:var(--primary-color);background:color-mix(in srgb,var(--primary-color) 8%,transparent);box-shadow:0 0 0 1px var(--primary-color)}.radio-card--selected .radio-card__text strong{color:var(--primary-color)}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:3rem}.password-toggle-btn{position:absolute;right:0.5rem;background:none;border:none;cursor:pointer;padding:0.5rem;display:flex;align-items:center;justify-content:center;font-size:1.25rem;opacity:0.6;transition:opacity 0.2s}.password-toggle-btn:hover{opacity:1}.password-toggle-btn .eye-icon{display:flex;align-items:center;justify-content:center;color:#64748b}.password-toggle-btn .eye-icon svg{display:block}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.category-hint{display:block;margin-top:0.5rem;padding:0.5rem 0.75rem;background:rgba(245,158,11,0.1);border-left:3px solid var(--warning-color);border-radius:0.25rem;color:var(--text-primary);font-size:0.875rem;line-height:1.4}.form-hint-warn{display:block;margin-top:0.4rem;padding:0.45rem 0.65rem;background:rgba(245,158,11,0.12);border-left:3px solid var(--warning-color);border-radius:0.25rem;color:var(--text-primary);font-size:0.75rem;line-height:1.35}.form-hint-ok{display:inline-block;margin-top:0.4rem;padding:0.3rem 0.65rem;border-radius:999px;background:rgba(16,185,129,0.12);border:1px solid rgba(16,185,129,0.35);color:#065f46;font-size:0.75rem;line-height:1.35}.duration-preview{margin:-0.5rem 0 1.5rem;padding:0.6rem 0.75rem;background:var(--bg-secondary);border-left:3px solid var(--primary-color);border-radius:0.25rem;font-size:0.95rem;color:var(--text-primary)}.duration-preview .duration-warning{color:var(--danger-color);font-weight:500}.radio-group{display:flex;flex-direction:row;flex-wrap:wrap;gap:1rem;align-items:center}.radio-group label{display:inline-flex;align-items:center;gap:0.5rem;font-weight:normal;cursor:pointer;white-space:nowrap;padding:0.5rem 0.75rem;border-radius:0.5rem;transition:background-color 0.2s;-webkit-tap-highlight-color:transparent}.radio-group label:hover{background-color:var(--bg-secondary)}.radio-group input[type="radio"]{margin:0;cursor:pointer;width:18px;height:18px;flex-shrink:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:2px solid var(--border-color);border-radius:50%;outline:none;transition:all 0.2s;position:relative}.radio-group input[type="radio"]:checked{border-color:var(--primary-color);background-color:var(--primary-color)}.radio-group input[type="radio"]:checked::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background-color:white}.radio-group input[type="radio"]:focus{box-shadow:0 0 0 3px rgba(37,99,235,0.1)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;align-items:stretch;margin-top:2rem}.form-actions .btn{white-space:nowrap;padding:0.875rem 1.25rem}.form-actions .btn-large{width:auto;flex:1;margin-top:0}.hidden{display:none !important}.dashboard-heading{margin-bottom:1.25rem}.dashboard-heading-row{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.dashboard-heading-row .dashboard-heading{margin-bottom:0}.dashboard-install-btn{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.85rem;padding:0.45rem 0.8rem}.dashboard-quicklinks-card{margin-bottom:1.5rem}.dashboard-quicklinks-title{margin-bottom:0.85rem !important}.dashboard-quick-links{display:flex;flex-direction:column;gap:0.25rem}.dashboard-quick-link{display:flex;align-items:center;gap:0.6rem;background:none;border:none;border-radius:0.4rem;padding:0.55rem 0.5rem;font-size:0.95rem;color:var(--text-primary);cursor:pointer;text-align:left;transition:background 0.15s}.dashboard-quick-link:hover{background:var(--bg-color)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--surface-color);padding:1.5rem;border-radius:0.75rem;box-shadow:var(--shadow);text-align:center}.stat-value{font-size:2rem;font-weight:700;color:var(--primary-color);margin-bottom:0.5rem}.stat-label{font-size:0.875rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:0.05em}.stat-percentage{font-size:1.25rem;font-weight:600;color:var(--text-secondary);margin-top:0.5rem}.stat-over{color:var(--danger-color)}.category-list{display:flex;flex-direction:column;gap:1rem}.category-item{display:grid;grid-template-columns:1fr auto;gap:0.5rem;align-items:center}.category-info{display:flex;justify-content:space-between;align-items:center;grid-column:1 / -1}.category-name{font-weight:500}.category-hours{color:var(--primary-color);font-weight:600}.progress-bar{grid-column:1;height:8px;background:var(--border-color);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:var(--primary-color);transition:width 0.3s ease}.category-percentage{grid-column:2;font-size:0.875rem;color:var(--text-secondary);text-align:right;min-width:50px}.stat-detail{font-size:0.875rem;margin-top:0.5rem}.stat-detail.positive{color:var(--success-color)}.stat-detail.negative{color:var(--danger-color)}.entries-list{display:flex;flex-direction:column;gap:0.75rem}.entry-item{padding:1rem;background:var(--bg-color);border-radius:0.5rem;display:grid;grid-template-columns:auto 1fr auto auto auto;gap:0.5rem 1rem;align-items:center}.dashboard-entry-item{grid-template-columns:1fr 2fr 1fr 1fr 1fr auto}.entry-day-group .dashboard-entry-item{grid-template-columns:2fr 1fr 1fr 1fr auto}.entry-day-group .dashboard-entry-item .entry-category{min-width:0}.entry-actions{display:flex;gap:0.25rem;align-items:center}.entry-toggle{display:none}.entry-date{font-weight:500;color:var(--text-primary);white-space:nowrap}.entry-category{color:var(--text-secondary)}.entry-start,.entry-end{font-size:0.875rem;color:var(--text-secondary);white-space:nowrap;text-align:right}.entry-hours{font-weight:600;color:var(--primary-color);white-space:nowrap;text-align:right}.entry-description-inline{display:block;font-size:0.8rem;color:var(--text-secondary);margin-top:0.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-description{grid-column:1 / -1;font-size:0.875rem;color:var(--text-secondary)}.empty-state{text-align:center;padding:2rem;color:var(--text-secondary)}.btn-sm{padding:0.5rem 1rem;font-size:0.875rem}.wtc-mobile-hint{display:none}@media (max-width:768px){.wtc-mobile-hint{display:flex;align-items:flex-start;gap:0.6rem;margin-bottom:1.25rem;padding:0.75rem 1rem;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;color:#92400e;font-size:0.875rem;line-height:1.4}}@media (max-width:768px){.main-content{padding:1rem}.form-row{grid-template-columns:1fr}.radio-group{flex-direction:column;align-items:flex-start;gap:0.75rem}.radio-group label{width:100%;padding:0.75rem 1rem;background-color:var(--bg-secondary);border:1px solid var(--border-color)}.radio-group label:has(input:checked){background-color:rgba(37,99,235,0.1);border-color:var(--primary-color)}.nav-btn{min-width:auto;padding:0.75rem 0.5rem;flex-direction:column;gap:0.25rem}.nav-text{display:none}.nav-icon{font-size:1.5rem}.fab-timer{width:50px;height:50px}.user-avatar-btn,.admin-badge{width:40px;height:40px;margin-right:0.5rem}.fab-timer .fab-icon{width:22px;height:22px}.fab-category{width:46px;height:46px}.fab-category .fab-icon{width:20px;height:20px}.category-flyout{gap:0.5rem;margin-top:0.5rem;padding:0.75rem 0.75rem 0.75rem 14rem;background:linear-gradient(to right,transparent 0,var(--surface-color) 2rem,var(--surface-color) 100%)}.fab-tooltip{font-size:0.75rem;padding:0.375rem 0.625rem}.fab-category .fab-tooltip{opacity:1;pointer-events:auto}.entry-item,.dashboard-entry-item{grid-template-columns:1fr auto auto;gap:0.2rem 0.5rem}.dashboard-entry-item .entry-date{grid-column:1;grid-row:1}.dashboard-entry-item .entry-start{grid-column:2;grid-row:1;font-size:0.8rem}.dashboard-entry-item .entry-end{grid-column:3;grid-row:1;font-size:0.8rem}.dashboard-entry-item .entry-category{grid-column:1 / 4;grid-row:2}.dashboard-entry-item .entry-hours{grid-column:1 / 2;grid-row:3;text-align:left}.dashboard-entry-item .entry-actions{grid-column:2 / 4;grid-row:3;justify-self:end}}@media (max-width:768px){.entry-day-group .dashboard-entry-item{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:0.15rem 0.6rem;padding:0.6rem 0.75rem;color:var(--text-primary)}.entry-day-group .dashboard-entry-item .entry-category{grid-column:1;grid-row:1;min-width:0;color:var(--text-primary);align-self:center}.entry-day-group .dashboard-entry-item .entry-cat-head{display:block;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-day-group .dashboard-entry-item .entry-hours{grid-column:2;grid-row:1;align-self:center;white-space:nowrap}.entry-day-group .dashboard-entry-item .entry-toggle{display:inline-flex;align-items:center;justify-content:center;grid-column:3;grid-row:1;align-self:center;width:2rem;height:2rem;padding:0;background:none;border:none;color:var(--text-primary);cursor:pointer}.entry-day-group .dashboard-entry-item .entry-toggle-icon{transition:transform 0.2s ease}.entry-day-group .dashboard-entry-item .entry-start,.entry-day-group .dashboard-entry-item .entry-end,.entry-day-group .dashboard-entry-item .entry-actions,.entry-day-group .dashboard-entry-item .entry-description-inline{display:none}.entry-day-group .dashboard-entry-item.is-open{align-items:start}.entry-day-group .dashboard-entry-item.is-open .entry-hours,.entry-day-group .dashboard-entry-item.is-open .entry-toggle{align-self:start}.entry-day-group .dashboard-entry-item.is-open .entry-toggle-icon{transform:rotate(180deg)}.entry-day-group .dashboard-entry-item.is-open .entry-description-inline{display:block;color:var(--text-primary);white-space:normal;overflow:visible;text-overflow:clip;margin-top:0.25rem}.entry-day-group .dashboard-entry-item.is-open .entry-start,.entry-day-group .dashboard-entry-item.is-open .entry-end{display:block;grid-row:2;text-align:left;color:var(--text-primary);font-size:0.85rem}.entry-day-group .dashboard-entry-item.is-open .entry-start{grid-column:1}.entry-day-group .dashboard-entry-item.is-open .entry-end{grid-column:2 / 4}.entry-day-group .dashboard-entry-item.is-open .entry-start::before{content:"Start:";color:var(--text-secondary)}.entry-day-group .dashboard-entry-item.is-open .entry-end::before{content:"Stopp:";color:var(--text-secondary)}.entry-day-group .dashboard-entry-item.is-open .entry-actions{display:flex;grid-column:1 / 4;grid-row:3;justify-self:end;margin-top:0.25rem}}.data-table{width:100%;border-collapse:collapse;font-size:0.875rem}.data-table thead{background:var(--bg-color)}.data-table th{padding:0.75rem;text-align:left;font-weight:600;color:var(--text-primary);border-bottom:2px solid var(--border-color)}.data-table td{padding:0.75rem;border-bottom:1px solid var(--border-color)}.data-table tbody tr:hover{background:var(--bg-color)}.data-table tbody tr.sick-row{background:#fef2f2}.data-table tbody tr.sick-row:hover{background:#fee2e2}.data-table tbody tr.week-separator{background:#e5e5e5;border:none}.data-table tbody tr.week-separator:hover{background:#e5e5e5}.data-table tbody tr.week-separator td{padding:0.5rem 0.75rem;border:none}.week-separator-content{display:flex;align-items:center;gap:1rem;color:#1a1a1a;font-weight:600;font-size:0.875rem}.data-table tbody tr.week-header{background:var(--surface-color);border-bottom:2px solid var(--border-color)}.data-table tbody tr.week-header th{padding:0.75rem;text-align:left;font-weight:600;color:var(--text-primary);font-size:0.875rem;border-bottom:2px solid var(--border-color)}.data-table tbody tr.week-header:hover{background:var(--surface-color)}.week-label{font-size:1rem;font-weight:700;letter-spacing:0.5px}.week-range{flex:1;font-weight:500;opacity:0.95}.week-hours{font-size:1rem;font-weight:700;background:rgba(0,0,0,0.1);padding:0.25rem 0.75rem;border-radius:1rem}.data-table tbody tr.day-separator{background:#f8f8f8;border-top:1px solid #d4d4d4}.data-table tbody tr.day-separator:hover{background:#f8f8f8}.data-table tbody tr.day-separator td{padding:0.3rem 0.75rem 0.3rem 1.1rem;border-bottom:none;border-left:3px solid #c0c0c0}.day-separator-content{display:flex;align-items:center;gap:0.75rem}.day-label{font-size:0.8rem;font-weight:600;color:#555;letter-spacing:0.2px}.day-hours-badge{font-size:0.75rem;font-weight:600;color:#666;background:rgba(0,0,0,0.07);padding:0.1rem 0.5rem;border-radius:0.75rem;margin-left:auto}.btn-icon{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:0.5rem;cursor:pointer;font-size:1.2rem;padding:0.5rem 0.75rem;transition:all 0.2s;color:var(--text-primary);min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{transform:scale(1.05);background:rgba(0,0,0,0.05);border-color:var(--text-secondary)}.btn-icon:active{transform:scale(0.95)}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header-buttons{display:flex;gap:0.75rem;flex-wrap:wrap}.timeentry-sort-row{margin-bottom:1rem}body.calendar-fullscreen .calendar-view{position:fixed;inset:0;z-index:9000;overflow-y:auto;background:var(--bg-color,#f1f5f9);padding:1.5rem 2rem;animation:cal-fs-in 0.18s ease}@keyframes cal-fs-in{from{opacity:0.6;transform:scale(0.99)}to{opacity:1;transform:scale(1)}}body.calendar-fullscreen .calendar-view .card{max-width:1400px;margin-left:auto;margin-right:auto}body.calendar-fullscreen .calendar-day{aspect-ratio:unset;min-height:90px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}#calendar-title{margin:0;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0 0.4rem;line-height:1.2}.cal-title-range-short{display:none}@media (max-width:768px){#calendar-title{flex-direction:column;gap:0;font-size:1rem;line-height:1.15}.cal-title-range-full{display:none}.cal-title-range-short{display:block}}.calendar-grid{margin-top:1rem}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem;margin-bottom:0.5rem}.calendar-weekday{text-align:center;font-weight:600;color:var(--text-secondary);padding:0.5rem}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:0.5rem}.calendar-day{aspect-ratio:1;border:1px solid var(--border-color);border-radius:0.5rem;padding:0.5rem;cursor:pointer;transition:all 0.2s;display:flex;flex-direction:column;align-items:center;justify-content:center}.calendar-day:hover:not(.empty){background:var(--bg-color);border-color:var(--primary-color)}.calendar-day.today:hover{color:var(--text-primary)}.calendar-day.today:hover .day-hours{color:var(--text-primary)}.calendar-day.today:hover .day-number{color:var(--text-primary)}.calendar-day.today:hover .day-indicator{filter:none}.calendar-day.empty{border:none;cursor:default}.calendar-day.today{border:3px solid var(--primary-color) !important;color:var(--text-primary);font-weight:800}.calendar-day.weekend{background:var(--bg-color)}.calendar-day.has-entries{background:#dbeafe;border-color:var(--primary-color);border-width:2px}.calendar-day.sick-day{background:#fecaca;border-color:var(--danger-color);border-width:2px}.calendar-day.public-holiday{background:#fef3c7;border-color:#f59e0b;border-width:2px}.calendar-day.boegertag{background:#ede9fe;border-color:#8b5cf6;border-width:2px}.calendar-day.school-holiday{background:#a7f3d0;border-color:#10b981;border-width:2px}.calendar-day.public-holiday-multi{background:#fef3c7;border-color:#f59e0b;border-width:2px}.calendar-day.boegertag-multi{background:#ede9fe;border-color:#8b5cf6;border-width:2px}.calendar-day.sick-day-multi{background:#fecaca;border-color:var(--danger-color);border-width:2px}.calendar-day.school-holiday-multi{background:#a7f3d0;border-color:#10b981;border-width:2px}.calendar-day.has-entries-multi{background:#dbeafe;border-color:var(--primary-color);border-width:2px}.calendar-day.split-holiday-sick{background:linear-gradient(135deg,#a7f3d0 50%,#fecaca 50%);border:2px solid #10b981}.calendar-day.split-holiday-work{background:linear-gradient(135deg,#a7f3d0 50%,#dbeafe 50%);border:2px solid #10b981}.calendar-day.split-sick-work{background:linear-gradient(135deg,#fecaca 50%,#dbeafe 50%);border:2px solid var(--danger-color)}.calendar-day.triple-holiday-sick-work{background:linear-gradient(135deg,#a7f3d0 33.33%,#fecaca 33.33%,#fecaca 66.66%,#dbeafe 66.66%);border:2px solid #10b981}.day-indicator{font-size:0.75rem;margin-top:0.125rem}.day-indicators{font-size:0.7rem;margin-top:0.125rem;display:flex;gap:0.125rem;justify-content:center;flex-wrap:wrap}.day-number{font-size:0.875rem}.day-hours{font-size:0.75rem;color:var(--primary-color);font-weight:600;margin-top:0.25rem}.calendar-day.today .day-hours{color:var(--primary-color)}.cal-modes{display:flex;gap:0.25rem;margin-bottom:0.75rem;flex-wrap:wrap}.cal-mode-btn{padding:0.3rem 0.75rem;border:1px solid var(--border-color,#e2e8f0);border-radius:0.4rem;background:transparent;color:var(--text-color,#1e293b);font-size:0.85rem;cursor:pointer;transition:background 0.15s,color 0.15s}.cal-mode-btn:hover{background:var(--hover-bg,#f1f5f9)}.cal-mode-btn.active{background:var(--primary-color,#b91c1c);color:#fff;border-color:var(--primary-color,#b91c1c)}.cal-tg-wrap{border:1px solid var(--border-color,#e2e8f0);border-radius:0.75rem;overflow:auto;max-height:70vh;background:var(--surface-color,#fff)}.cal-tg-head{display:grid;position:sticky;top:0;z-index:3;background:var(--surface-color,#fff);border-bottom:1px solid var(--border-color,#e2e8f0)}.cal-tg-head .sp-corner{position:sticky;left:0;z-index:5;background:var(--surface-color,#fff)}.cal-tg-dayhead{cursor:pointer;user-select:none}.cal-tg-dayhead span{display:block}.cal-tg-dayhead small{font-weight:400;font-size:0.75rem;color:var(--text-secondary,#64748b)}.cal-tg-dayhead.is-today{color:var(--primary-color,#b91c1c)}.cal-tg-today-badge{display:inline-block;margin-top:2px;padding:1px 6px;border-radius:10px;font-size:0.68rem;font-weight:600;color:#fff;background:var(--primary-color,#b91c1c)}.cal-tg-day .cal-tg-today-badge{margin-left:8px}.cal-tg-sum{margin-top:2px;font-size:0.72rem;font-weight:600;color:var(--primary-color,#b91c1c)}.cal-tg-ind{display:flex;gap:2px;justify-content:center;margin-top:2px;flex-wrap:wrap}.cal-tg-body{display:grid;position:relative}.cal-tg-body .sp-hours{position:sticky;left:0;z-index:2;background:var(--surface-color,#fff)}.cal-tg-col{position:relative;border-right:1px solid var(--border-color,#e2e8f0);box-sizing:border-box;cursor:default}.cal-tg-col.is-today-col{background:rgba(185,28,28,0.03)}.cal-tg-col.is-sick{background:rgba(254,202,202,0.25)}.cal-tg-col.is-holiday{background:rgba(254,243,199,0.30)}.cal-tg-col.is-school{background:rgba(167,243,208,0.25)}.cal-tg-col::before{content:'';position:absolute;inset:0;background-image:repeating-linear-gradient( to bottom,transparent 0px,transparent 43px,var(--border-color,#e2e8f0) 43px,var(--border-color,#e2e8f0) 44px );pointer-events:none}.cal-tg-col .sp-event{position:absolute;border-radius:4px;overflow:hidden;box-sizing:border-box;min-height:1.25rem;padding:2px 4px;font-size:0.72rem;line-height:1.25;color:#fff;cursor:grab;box-shadow:0 1px 3px rgba(0,0,0,0.18);transition:box-shadow 0.1s;user-select:none}.cal-tg-col .sp-event:not(.is-locked){touch-action:none}.cal-tg-col .sp-event:hover{box-shadow:0 2px 6px rgba(0,0,0,0.28)}.cal-tg-col .sp-event.is-locked{cursor:default;opacity:0.75}.cal-tg-col .sp-event.is-dragging{opacity:0.85;box-shadow:0 4px 12px rgba(0,0,0,0.32);cursor:grabbing}.cal-tg-col .sp-ev-time{font-size:0.68rem;opacity:0.9;white-space:nowrap}.cal-tg-col .sp-ev-cat{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-tg-col .sp-ev-note{opacity:0.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-tg-col .sp-ev-resize{position:absolute;bottom:0;left:0;right:0;height:6px;cursor:s-resize;background:rgba(0,0,0,0.15);border-radius:0 0 4px 4px}.legend{display:flex;flex-direction:column;gap:0.5rem}.legend-item{display:flex;align-items:center;gap:0.5rem}.legend-color{width:20px;height:20px;border-radius:0.25rem}.export-buttons{display:flex;gap:1rem;flex-wrap:wrap}.overview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;padding:1rem;background:var(--bg-color);border-radius:0.5rem}.overview-item{display:flex;justify-content:space-between;align-items:center}.overview-label{font-weight:500;color:var(--text-secondary)}.overview-value{font-weight:700;font-size:1.25rem;color:var(--text-primary)}.overview-value.positive{color:var(--success-color)}.overview-value.negative{color:var(--danger-color)}.report-table-week td.negative{color:var(--danger-color)}.report-table-week td.positive{color:var(--success-color)}.report-table-month td.negative{color:var(--danger-color)}.report-table-month td.positive{color:var(--success-color)}.kw-zeitraum-mobile{display:none}.kw-modus{margin-left:0.5rem;font-size:0.8rem;font-weight:400;color:var(--text-secondary);white-space:nowrap}.kw-uebergang{display:block;margin-top:0.3rem;font-size:0.78rem;font-weight:400;line-height:1.35;color:var(--text-secondary);white-space:normal}.data-actions{display:flex;gap:1rem;flex-wrap:wrap}.no-spin::-webkit-outer-spin-button,.no-spin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spin{-moz-appearance:textfield;appearance:textfield}.text-secondary{color:var(--text-secondary);font-size:0.875rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.error{text-align:center;padding:2rem;color:var(--danger-color)}@media (max-width:640px){.calendar-header{margin-bottom:1rem}.calendar-header h3{font-size:1.25rem}.calendar-header .btn{padding:0.5rem 1rem;font-size:1.25rem;min-width:44px}.calendar-weekdays{gap:0.125rem;margin-bottom:0.25rem}.calendar-weekday{padding:0.25rem 0.125rem;font-size:0.7rem;font-weight:700;letter-spacing:-0.5px}.calendar-days{gap:0.125rem}.calendar-day{padding:0.125rem;font-size:0.7rem;border-radius:0.25rem;min-height:44px}.calendar-day.has-entries{border-width:1.5px}.day-number{font-size:0.75rem}.day-hours{font-size:0.6rem;margin-top:0.125rem}.calendar-day .day-indicators ~ .day-hours{display:none}.calendar-day.public-holiday-multi .day-hours,.calendar-day.sick-day-multi .day-hours,.calendar-day.school-holiday-multi .day-hours,.calendar-day.has-entries-multi .day-hours{display:none}.legend{gap:0.75rem}.legend-item{font-size:0.875rem}.export-buttons,.data-actions{flex-direction:column}.export-buttons .btn,.data-actions .btn{width:100%}.overview-stats{grid-template-columns:1fr;gap:0.75rem;padding:0.75rem}.overview-item{padding:0.5rem;background:var(--surface-color);border-radius:0.375rem}.overview-label{font-size:0.875rem}.overview-value{font-size:1.1rem}.report-table-category thead{display:none}.report-table-category,.report-table-category tbody,.report-table-category tr{display:block;width:100%}.report-table-category tr{display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;gap:0.25rem;margin-bottom:0.5rem;padding:0.75rem;background:var(--bg-color);border-radius:0.375rem;border:1px solid var(--border-color)}.report-table-category td{padding:0;border:none}.report-table-category td:nth-child(1){grid-column:1;grid-row:1;font-weight:600;font-size:1rem}.report-table-category td:nth-child(1)::after{content:none !important}.report-table-category td:nth-child(2){display:block !important;grid-column:1;grid-row:2;font-weight:400;font-size:0.9rem;color:var(--text-secondary)}.report-table-category td:nth-child(2):after{content:" - " attr(data-percentage)}.report-table-category td:nth-child(3){display:none}.report-table-week thead{display:none}.report-table-week,.report-table-week tbody,.report-table-week tr{display:block;width:100%}.report-table-week tr{display:grid;grid-template-columns:auto 1fr;gap:0.5rem;margin-bottom:0.75rem;padding:0.75rem;background:var(--bg-color);border-radius:0.375rem;border:1px solid var(--border-color)}.report-table-week td{padding:0.25rem 0;border:none}.report-table-week td:nth-child(1){grid-column:1 / -1;font-weight:700;font-size:1rem;color:var(--primary-color)}.report-table-week td:nth-child(1)::after{content:none !important}.kw-zeitraum-mobile{display:inline;font-size:0.85rem;font-weight:400;color:var(--text-secondary)}.report-table-week td:nth-child(2){display:none}.kw-modus{display:block;margin:0.25rem 0 0;font-size:0.85rem;font-weight:400;color:var(--text-secondary)}.report-table-week td:nth-child(3){grid-column:1;font-weight:600}.report-table-week td:nth-child(3):before{content:"Gearbeitet:";font-weight:400;color:var(--text-secondary)}.report-table-week td:nth-child(4){display:block !important;grid-column:2;text-align:right;color:var(--text-secondary)}.report-table-week td:nth-child(4):before{content:"Sollstunden:"}.report-table-week td:nth-child(4)::after{content:none !important}.report-table-week td:nth-child(5){display:block !important;grid-column:1 / -1;font-weight:700;font-size:1.1rem;padding-top:0.5rem;margin-top:0.5rem;border-top:1px solid var(--border-color);text-align:center}.report-table-week td:nth-child(5):before{content:"Bilanz:";font-weight:400;font-size:0.875rem}.report-table-month td:nth-child(1){font-weight:700;font-size:1rem;color:var(--text-primary)}.report-table-month td:nth-child(1)::after{content:none !important}.report-table-month td:nth-child(2){display:block !important;margin-top:0.25rem;font-weight:600}.report-table-month td:nth-child(2):before{content:"Stunden:";font-weight:400;color:var(--text-secondary)}.report-table-month td:nth-child(3){margin-top:0.25rem;font-weight:400 !important;color:var(--text-secondary)}.report-table-month td:nth-child(3):before{content:"Soll:"}.report-table-month td:nth-child(4){margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--border-color);font-weight:700}.report-table-month td:nth-child(4):before{content:"Bilanz:";font-weight:400;font-size:0.875rem;color:var(--text-secondary)}.report-table-month td:nth-child(4)::after{content:none !important}.report-table-month td:nth-child(4).negative{color:var(--danger-color) !important}.report-table-month td:nth-child(4).positive{color:var(--success-color) !important}.data-table thead{display:none}.data-table,.data-table tbody{display:block;width:100%}.data-table tr{display:flex;flex-direction:column;width:100%;box-sizing:border-box;margin-bottom:0.75rem;background:var(--surface-color);border-radius:0.5rem;padding:0.75rem;border:1px solid var(--border-color);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.data-table tbody tr:hover{box-shadow:0 2px 8px rgba(0,0,0,0.15)}.data-table td{display:block;padding:0;border:none;min-width:0}.data-table tbody tr.week-separator{display:block;padding:0.75rem 1rem;margin-bottom:0.75rem;border-radius:0.5rem}.data-table tbody tr.week-separator td{padding:0}.week-separator-content{display:flex;flex-direction:column;gap:0.25rem;align-items:flex-start}.week-label{font-size:1.1rem}.week-range{font-size:0.8rem;opacity:0.9}.week-hours{align-self:flex-end;margin-top:0.25rem}.data-table tbody tr.week-header{display:none}.data-table tr.sick-row{flex-direction:row;align-items:center;padding:0.5rem 0.75rem;gap:0.5rem}.data-table tr.sick-row td:nth-child(1){font-weight:600;font-size:0.9rem;flex-shrink:0}.data-table tr.sick-row td:nth-child(2),.data-table tr.sick-row td:nth-child(4),.data-table tr.sick-row td:nth-child(5),.data-table tr.sick-row td:nth-child(7){display:none}.data-table tr.sick-row td:nth-child(3){font-size:0.9rem;font-weight:600;flex-shrink:0}.data-table tr.sick-row td:nth-child(6){flex:1;font-size:0.9rem;text-align:right}.data-table tr.sick-row td:nth-child(6) strong{font-weight:normal}.data-table tr.sick-row td:nth-child(8){display:flex;gap:0.5rem;flex-shrink:0}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header):not(.day-separator) td:nth-child(1){font-weight:600;font-size:0.95rem;color:var(--text-primary);white-space:nowrap}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header):not(.day-separator) td:nth-child(2){display:none}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header):not(.day-separator) td:nth-child(1):after{content:"," " " attr(data-date)}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(3){margin-top:0.5rem;font-size:0.9rem;font-weight:600}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(4){margin-top:0.25rem;font-size:0.9rem;color:var(--text-secondary)}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(4):after{content:" \002013 " attr(data-end) "\0000a0(" attr(data-hours) ")"}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(5),.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(6){display:none}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(7){margin-top:0.25rem;font-size:0.85rem;color:var(--text-secondary);font-style:italic}.data-table tr:not(.sick-row):not(.week-separator):not(.week-header) td:nth-child(8){margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--border-color);display:flex;gap:0.75rem;justify-content:flex-end}.data-table.data-table--plain{display:table;width:100%;table-layout:auto}.data-table.data-table--plain thead{display:table-header-group}.data-table.data-table--plain tbody{display:table-row-group}.data-table.data-table--plain tr{display:table-row;margin-bottom:0;background:none;border:none;border-radius:0;padding:0;box-shadow:none}.data-table.data-table--plain th,.data-table.data-table--plain td{display:table-cell !important;padding:0.6rem 0.4rem;border:none;border-bottom:1px solid var(--border-color);white-space:normal !important;overflow-wrap:break-word}.data-table.data-table--plain td::before,.data-table.data-table--plain td::after{content:none !important}.view-header{flex-direction:column;gap:1rem;align-items:stretch}.view-header h2{font-size:1.5rem}.view-header .btn{width:100%}.admin-view .data-table table{width:100%}.admin-view .data-table tr td:nth-child(1)::after{content:none !important}.admin-view .data-table tr td:nth-child(2){display:block !important;font-size:0.9rem;color:var(--text-secondary);margin-top:0.2rem}.admin-view .data-table tr td:nth-child(3)::after{content:none !important}.admin-view .data-table tr td:nth-child(3){font-weight:400 !important;color:var(--text-secondary)}.admin-view .data-table tr td:nth-child(3).actions,.admin-view .data-table tr td.actions{margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--border-color);display:flex !important;gap:0.5rem;align-items:center}.admin-view .data-table tr td:nth-child(4){display:flex !important;gap:0.5rem;margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--border-color);align-items:center}.admin-view .data-table tr td:nth-child(4)::after{content:none !important}}.wieder-more-btn{display:inline-flex;align-items:center;gap:0.45rem;background:#fff;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:0.5rem 0.9rem;font-size:0.9rem;font-weight:500;cursor:pointer;margin-bottom:0.75rem;transition:background 0.15s ease,border-color 0.15s ease,box-shadow 0.15s ease}.wieder-more-btn:hover{background:#fef2f2;border-color:#fca5a5;box-shadow:0 1px 3px rgba(185,28,28,0.12)}.wieder-more-btn img{display:block;flex-shrink:0}.wieder-del-wrap{align-self:flex-end}.wieder-del-btn{display:inline-flex;align-items:center;gap:0.4rem;background:#fff;border:1px solid #fecaca;color:#b91c1c;border-radius:8px;padding:0.5rem 0.7rem;font-size:0.85rem;font-weight:500;cursor:pointer}.wieder-del-btn:hover{background:#fef2f2;border-color:#fca5a5}.wieder-del-btn img{display:block}@media (max-width:640px){.wieder-entry-row{flex-direction:column !important;align-items:stretch !important;gap:0.5rem !important}.wieder-entry-row > div{width:100%}.wieder-entry-row input[type="date"]{width:100%;box-sizing:border-box}.wieder-entry-row .wieder-del-wrap{width:100%}.wieder-entry-row .wieder-del-btn{width:100%;justify-content:center}}@media (max-width:374px){.calendar-weekday{font-size:0.6rem;padding:0.2rem 0.1rem}.calendar-day{min-height:40px;padding:0.1rem}.day-number{font-size:0.7rem}.day-hours{font-size:0.55rem}.calendar-header h3{font-size:1.1rem}.calendar-header .btn{padding:0.4rem 0.8rem;font-size:1.1rem}}@media (min-width:641px) and (max-width:1024px){.data-table{font-size:0.8rem}.data-table th,.data-table td{padding:0.5rem}.view-header h2{font-size:1.75rem}.calendar-weekday{font-size:0.75rem;padding:0.375rem}.calendar-days{gap:0.375rem}.calendar-day{padding:0.375rem}.day-number{font-size:0.8rem}.day-hours{font-size:0.7rem}.overview-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0.875rem}.overview-value{font-size:1.15rem}.export-buttons{gap:0.75rem}}.wieder-hist-summary{display:inline-flex;align-items:center;gap:0.5rem;cursor:pointer;color:#475569;font-size:0.92rem;font-weight:500;user-select:none;padding:0.4rem 0;list-style:none}.wieder-hist-summary::-webkit-details-marker{display:none}.wieder-hist-summary::before{content:"\25B8";color:#94a3b8;font-size:0.8rem;transition:transform 0.15s ease}details[open] > .wieder-hist-summary::before{transform:rotate(90deg)}.wieder-hist-summary img{display:block;opacity:0.65}.wieder-hist-list{margin-top:0.75rem;display:flex;flex-direction:column;gap:0.5rem}.wieder-hist-item{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:0.7rem 0.9rem;background:#f8fafc;border:1px solid #e2e8f0;border-left:3px solid #cbd5e1;border-radius:8px}.wieder-hist-period{display:inline-flex;align-items:center;gap:0.5rem;font-size:0.95rem;color:#334155;font-weight:600}.wieder-hist-arrow{color:#94a3b8;font-weight:400}.wieder-hist-value{display:inline-flex;align-items:center;gap:0.3rem;background:#eef2ff;color:#4338ca;border-radius:999px;padding:0.2rem 0.75rem;font-size:0.85rem;font-weight:600;white-space:nowrap}.wieder-hist-closed{margin-left:auto;font-size:0.78rem;color:#94a3b8;white-space:nowrap}@media (max-width:640px){.wieder-hist-item{align-items:flex-start;gap:0.45rem}.wieder-hist-closed{margin-left:0}}.push-status-box{margin:0.75rem 0 1rem;padding:0.7rem 0.9rem;background:var(--bg-color);border-left:3px solid var(--primary-color);border-radius:0.35rem;color:var(--text-primary);font-size:0.95rem}.push-status-box.push-status-warn{border-left-color:#f59e0b;background:rgba(245,158,11,0.08)}.push-pref-item{border:1px solid var(--border-color);border-radius:0.6rem;background:var(--surface-color);padding:0.9rem 1rem;margin-bottom:0.75rem;transition:border-color 0.15s ease,background 0.15s ease,box-shadow 0.15s ease}.push-pref-item:hover{border-color:var(--primary-color);background:rgba(227,0,27,0.03)}.push-pref-main{display:flex;gap:0.75rem;align-items:flex-start;cursor:pointer;-webkit-tap-highlight-color:transparent}.push-pref-main input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.25rem;height:1.25rem;margin:0.15rem 0 0;border:2px solid var(--border-color);border-radius:0.3rem;background:var(--surface-color) center / 75% no-repeat;cursor:pointer;transition:background-color 0.15s ease,border-color 0.15s ease}.push-pref-main input[type="checkbox"]:checked{border-color:var(--primary-color);background-color:var(--primary-color);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.push-pref-main input[type="checkbox"]:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.push-pref-text strong{color:var(--text-primary)}.push-pref-desc{display:block;color:var(--text-secondary);font-size:0.9rem;line-height:1.45;margin-top:0.1rem}.push-pref-badge{display:inline-flex;align-items:flex-start;gap:0.4rem;margin-top:0.45rem;padding:0.35rem 0.6rem;border-radius:999px;background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.35);color:#92400e;font-size:0.82rem;line-height:1.35}.push-pref-config{margin:0.75rem 0 0.1rem 2rem;padding-top:0.65rem;border-top:1px dashed var(--border-color);display:flex;flex-direction:column;gap:0.15rem}.push-radio-option{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;padding:0.35rem 0.5rem;border-radius:0.5rem;cursor:pointer;font-size:0.95rem;color:var(--text-primary);transition:background-color 0.15s ease;-webkit-tap-highlight-color:transparent}.push-radio-option:hover{background:var(--bg-color)}.push-radio-option input[type="radio"]{appearance:none;-webkit-appearance:none;width:18px;height:18px;margin:0;flex-shrink:0;border:2px solid var(--border-color);border-radius:50%;cursor:pointer;position:relative;transition:all 0.2s}.push-radio-option input[type="radio"]:checked{border-color:var(--primary-color);background-color:var(--primary-color)}.push-radio-option input[type="radio"]:checked::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;border-radius:50%;background-color:white}.push-radio-option input[type="radio"]:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.push-select{appearance:none;-webkit-appearance:none;width:auto;display:inline-block;padding:0.3rem 1.9rem 0.3rem 0.65rem;border:1px solid var(--border-color);border-radius:0.5rem;background:var(--surface-color) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5l3.5 3.5 3.5-3.5' stroke='%2364748b' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 0.55rem center / 0.75rem no-repeat;font-size:0.9rem;color:var(--text-primary);cursor:pointer;transition:border-color 0.15s ease,box-shadow 0.15s ease}.push-select:hover{border-color:var(--primary-color)}.push-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(227,0,27,0.12)}@media (max-width:480px){.push-pref-config{margin-left:0.5rem}}.push-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem 1.5rem}@media (max-width:640px){.push-info-grid{grid-template-columns:1fr}}.push-installed-info{display:inline-flex;align-items:center;gap:0.5rem;font-weight:600;color:var(--success-color,#10b981)}.push-installed-check{display:inline-block;width:1.25rem;height:1.25rem;border-radius:0.3rem;background:var(--success-color,#10b981) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 75% no-repeat}.sd-slot{border:1px solid var(--border-color,#e2e8f0);border-radius:0.6rem;padding:0.85rem;margin-bottom:0.75rem}.sd-row{display:grid;grid-template-columns:2fr minmax(5.5rem,1fr) 6fr minmax(8rem,1fr);gap:0.75rem;align-items:end}.sd-row .form-group label{white-space:nowrap}.sd-titel{font-weight:600;color:var(--text-primary,#1e293b);padding-bottom:0.65rem}.sd-row .form-group{margin:0;min-width:0}.sd-row .sd-aktiv{justify-self:start}.sd-row .sd-aktiv input[type="checkbox"]{appearance:none;-webkit-appearance:none;width:1.4rem;height:1.4rem;margin:0 0 0.55rem;border:2px solid var(--border-color,#cbd5e1);border-radius:0.3rem;background:var(--surface-color,#fff) center / 75% no-repeat;cursor:pointer;transition:background-color 0.15s ease,border-color 0.15s ease}.sd-row .sd-aktiv input[type="checkbox"]:checked{border-color:var(--primary-color,#b91c1c);background-color:var(--primary-color,#b91c1c);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.sd-row .sd-aktiv input[type="checkbox"]:focus-visible{outline:2px solid var(--primary-color,#b91c1c);outline-offset:2px}.sd-vorschau{margin-top:0.5rem;font-size:0.85rem;color:var(--text-secondary,#64748b)}.sd-hinweis{display:flex;align-items:flex-start;gap:0.6rem;margin:0 0 1.1rem;padding:0.7rem 0.9rem;background:var(--bg-color,#f8fafc);border-left:3px solid var(--primary-color,#b91c1c);border-radius:0.35rem}.sd-hinweis img{flex-shrink:0;margin-top:0.1rem}.sd-hinweis p{margin:0;font-size:0.85rem;line-height:1.45;color:var(--text-secondary,#64748b)}@media (max-width:640px){.sd-row{grid-template-columns:1fr}.sd-titel{padding-bottom:0}}.weekly-progress-card{margin-bottom:1.5rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:0.5rem}.weekly-progress-title{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 1rem 0}.weekly-progress-container{margin-bottom:0.75rem}.weekly-progress-bar{display:flex;height:32px;background:#e5e7eb;border-radius:0.375rem;overflow:hidden;position:relative}.weekly-progress-fill{background:linear-gradient(90deg,#10b981,#059669);transition:width 0.3s ease;min-width:0;height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:0.5rem}.weekly-progress-fill.maxhours{animation:weekly-maxhours-pulse 1.6s ease-in-out infinite}@keyframes weekly-maxhours-pulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25)}}.weekly-progress-empty{display:flex;align-items:center;justify-content:flex-start;padding-left:0.5rem;flex:1}.weekly-progress-text{font-size:0.8rem;font-weight:700;white-space:nowrap}.weekly-progress-fill .weekly-progress-text{color:white;text-shadow:0 1px 2px rgba(0,0,0,0.2)}.weekly-progress-empty .weekly-progress-text{color:#374151}.weekly-progress-info{display:flex;flex-direction:column;gap:0.5rem}.weekly-progress-labels{display:flex;justify-content:space-between;align-items:center;font-size:0.75rem;font-weight:500;color:#1f2937}.weekly-progress-zero{text-align:left}.weekly-progress-target{text-align:right}.weekly-uebergang{display:flex;align-items:flex-start;gap:0.4rem;margin-top:0.75rem;padding-top:0.6rem;border-top:1px solid #e5e7eb;font-size:0.8rem;line-height:1.4;color:#6b7280}.weekly-uebergang img{flex-shrink:0;margin-top:0.15rem}.timer-card{margin-bottom:1.5rem;background:#e5e5e5;color:#1a1a1a;border:1px solid #d0d0d0}.timer-container{display:flex;align-items:center;gap:1.5rem;padding:0.5rem}.timer-btn{width:80px;height:80px;border-radius:50%;border:none;background:var(--danger-color);color:white;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.3s ease;box-shadow:0 4px 15px rgba(239,68,68,0.4);flex-shrink:0}.timer-btn:hover{transform:scale(1.05);box-shadow:0 6px 20px rgba(239,68,68,0.6)}.timer-icon{width:36px;height:36px;stroke-width:2.5}.timer-info{flex:1;display:flex;flex-direction:column;gap:0.25rem}.timer-label{font-size:0.875rem;color:#4a4a4a;font-weight:500;text-transform:uppercase;letter-spacing:0.05em}.timer-display{font-size:2.5rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0.05em;line-height:1;color:#1a1a1a}.timer-category{font-size:1rem;color:#4a4a4a;font-weight:500}.timer-autostop-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;margin-top:0.75rem;padding:0.6rem 0.5rem 0.25rem;border-top:1px solid #d0d0d0}.timer-autostop-btn{display:inline-flex;align-items:center;gap:0.4rem;background:#fff;color:var(--danger-color);border:1px solid var(--danger-color);border-radius:0.6rem;padding:0.45rem 0.9rem;font-size:0.9rem;font-weight:600;cursor:pointer;transition:all 0.2s ease}.timer-autostop-btn:hover{background:var(--danger-color);color:#fff}.timer-autostop-btn:hover img{filter:brightness(0) invert(1)}.timer-autostop-chip{display:inline-flex;align-items:center;gap:0.5rem;background:#fff;border:1px solid #d0d0d0;border-radius:999px;padding:0.35rem 0.4rem 0.35rem 0.8rem;font-size:0.9rem;color:#1a1a1a}.timer-autostop-chip img{opacity:0.85}.timer-autostop-chip-text{white-space:nowrap}.timer-autostop-chip strong{font-weight:700}.timer-autostop-cancel{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:50%;background:#ececec;color:#6b7280;cursor:pointer;padding:0;transition:background 0.15s ease,color 0.15s ease}.timer-autostop-cancel:hover{background:var(--danger-color);color:#fff}.autostop-option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.6rem;margin:1rem 0}.autostop-option-btn{background:var(--danger-color);border:3px solid #fff;border-radius:0.75rem;padding:0.9rem 0.5rem;color:#fff;font-weight:600;cursor:pointer;transition:all 0.2s ease;box-shadow:0 2px 8px rgba(239,68,68,0.3)}.autostop-option-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(239,68,68,0.5)}.autostop-option-btn:active{transform:translateY(0)}@media (max-width:640px){.autostop-option-grid{grid-template-columns:repeat(2,1fr);gap:0.45rem}.autostop-option-btn{padding:0.7rem 0.4rem;border-width:2px;font-size:0.9rem}}.startedit-option-btn[disabled]{opacity:0.35;pointer-events:none;box-shadow:none}.startedit-limit-hint{font-size:0.9rem;color:#6b7280;margin:0.35rem 0 0}.startedit-custom-row{display:flex;align-items:center;gap:0.6rem;margin:1rem 0 0.25rem}.startedit-custom-row input[type="time"]{flex:1;min-width:0;padding:0.6rem 0.5rem;border:1px solid #d0d0d0;border-radius:0.5rem;font-size:1rem}.timer-selection{padding:0.5rem 0}.timer-selection-title{font-size:1.25rem;font-weight:600;margin-bottom:1rem;text-align:center}.timer-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem}.timer-category-btn{background:#10b981;border:3px solid white;border-radius:0.75rem;padding:1rem;color:white;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0.5rem;transition:all 0.3s ease;box-shadow:0 2px 8px rgba(16,185,129,0.3)}.timer-category-btn:hover{background:#059669;transform:translateY(-2px);box-shadow:0 4px 12px rgba(16,185,129,0.5)}.timer-category-btn:active{transform:translateY(0)}.timer-category-btn--sonder{background:#047857;box-shadow:0 2px 8px rgba(4,120,87,0.3)}.timer-category-btn--sonder:hover{background:#065f46;box-shadow:0 4px 12px rgba(4,120,87,0.5)}.category-icon{width:32px;height:32px;stroke-width:2}.category-label{font-size:0.875rem;font-weight:500;text-align:center}.quick-backfill-card{background:#e5e5e5;color:#1a1a1a;border:1px solid #d0d0d0}.quick-backfill-title{font-size:1.25rem;font-weight:600;margin-bottom:0.25rem !important;text-align:center}.quick-backfill-hint{font-size:0.875rem;color:#4a4a4a;text-align:center;margin-bottom:1rem}.quick-backfill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem}.quick-backfill-btn{background:#f59e0b;border:3px solid white;border-radius:0.75rem;padding:1rem 0.5rem;color:white;font-weight:600;cursor:pointer;transition:all 0.3s ease;box-shadow:0 2px 8px rgba(245,158,11,0.3)}.quick-backfill-btn:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px rgba(245,158,11,0.5)}.quick-backfill-btn:active{transform:translateY(0)}.qb-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.75rem;margin:1rem 0}.qb-category-btn{background:#f59e0b;border:3px solid white;border-radius:0.75rem;padding:1rem;color:white;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0.5rem;transition:all 0.3s ease;box-shadow:0 2px 8px rgba(245,158,11,0.3)}.qb-category-btn:hover{background:#d97706;transform:translateY(-2px);box-shadow:0 4px 12px rgba(245,158,11,0.5)}.qb-category-btn--sonder{background:#b45309;box-shadow:0 2px 8px rgba(180,83,9,0.3)}.qb-category-btn--sonder:hover{background:#92400e;box-shadow:0 4px 12px rgba(180,83,9,0.5)}@media (max-width:640px){.qb-category-grid{grid-template-columns:repeat(2,1fr);gap:0.35rem;margin:0.4rem 0}.qb-category-btn{padding:0.4rem 0.25rem;border-radius:0.5rem;border-width:2px;gap:0.2rem}.qb-category-btn .category-icon{width:18px;height:18px}.qb-category-btn .category-label{font-size:0.62rem;line-height:1.2}}@media (max-width:768px){.timer-container{gap:1rem}.quick-backfill-grid{grid-template-columns:repeat(2,1fr);gap:0.5rem}.timer-btn{width:64px;height:64px}.timer-icon{width:28px;height:28px}.timer-display{font-size:2rem}.timer-label,.timer-category{font-size:0.875rem}.timer-category-grid{grid-template-columns:repeat(2,1fr);gap:0.5rem}.timer-category-btn{padding:0.75rem}.category-icon{width:28px;height:28px}.category-label{font-size:0.75rem}.timer-selection-title{font-size:1.125rem}}.btn-toggle-quicklinks{background:none;border:none;padding:0.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:color 0.2s ease}.btn-toggle-quicklinks:hover{color:#374151}.toggle-icon{transition:transform 0.2s ease}.toggle-icon.collapsed{transform:rotate(180deg)}.dashboard-quick-links{max-height:500px;overflow:hidden;transition:max-height 0.3s ease,opacity 0.3s ease;opacity:1}.dashboard-quick-links.collapsed{max-height:0;opacity:0}.entry-day-group{margin-bottom:1rem}.entry-day-header{padding:0.6rem 0;font-size:0.875rem;font-weight:600;color:#6b7280;border-bottom:1px solid #e5e7eb;margin-bottom:0.5rem}.entry-day-group .entry-item{margin-bottom:0.35rem}.entry-day-group .entry-item:last-child{margin-bottom:0}.setup-wizard{max-width:700px}.setup-intro{font-size:1.125rem;color:var(--text-secondary);margin-bottom:2rem;text-align:center}.setup-info{background:var(--background-color);padding:1rem;border-radius:0.5rem;margin:1.5rem 0;border-left:4px solid var(--primary-color)}.setup-info p{margin:0;color:var(--text-secondary)}.btn-large{width:100%;padding:1rem 2rem;font-size:1.125rem;margin-top:1rem}.btn-text{background:transparent;color:var(--text-secondary);border:none;padding:0.5rem 1rem;cursor:pointer;font-size:0.875rem}.btn-text:hover{color:var(--primary-color);background:transparent}#setup-wizard-form .form-group{margin-bottom:1.5rem}#setup-wizard-form small{display:block;margin-top:0.25rem;color:var(--text-secondary);font-size:0.875rem}.setup-form-left{text-align:left}.setup-form-left .form-group{text-align:left;padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid #d1d5db}.setup-form-left .form-group:last-of-type{border-bottom:none}.setup-form-left .form-group > label{text-align:left}.setup-form-left .wizard-checkbox{display:flex;align-items:center;gap:0.5rem;margin-bottom:0;cursor:pointer}.setup-form-left .wizard-checkbox input[type="checkbox"]{width:auto;margin:0;cursor:pointer}.no-spinner::-webkit-outer-spin-button,.no-spinner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spinner{-moz-appearance:textfield;appearance:textfield}.setup-slide{display:none;text-align:center;padding:2rem 1rem;min-height:400px;animation:slideIn 0.3s ease-in-out}.setup-slide.active{display:block}@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.slide-icon{font-size:5rem;margin-bottom:1.5rem;animation:bounceIn 0.6s ease-in-out;display:flex;justify-content:center;align-items:center}.slide-icon img{width:80px;height:80px}@keyframes bounceIn{0%{transform:scale(0)}50%{transform:scale(1.1)}100%{transform:scale(1)}}.slide-title{font-size:1.75rem;color:var(--text-primary);margin-bottom:1rem;font-weight:600}.slide-description{font-size:1.125rem;color:var(--text-secondary);line-height:1.6;margin-bottom:2rem;max-width:500px;margin-left:auto;margin-right:auto}.slide-actions{display:flex;gap:1rem;justify-content:center;align-items:stretch;margin-top:2rem}.slide-actions .btn{flex:1;min-width:0;white-space:nowrap;padding:0.875rem 1.25rem;font-size:1rem}.slide-actions[style*="flex-direction:column"] .btn,.slide-actions[style*="flex-direction:column"] .btn{white-space:normal;word-break:break-word}.slide-actions .btn-large{width:auto;flex:1;margin-top:0}.slide-actions-vertical{flex-direction:column;gap:0.75rem;align-items:center}.slide-actions-vertical .btn{flex:0 0 auto;width:auto;min-width:280px;max-width:400px}.slide-indicators{display:flex;justify-content:center;gap:0.5rem;margin-top:2rem;padding-top:1rem}.indicator{width:10px;height:10px;border-radius:50%;background:var(--border-color);cursor:pointer;transition:all 0.3s ease}.indicator.active{background:var(--primary-color);width:24px;border-radius:5px}.indicator:hover{background:var(--primary-color);opacity:0.7}.wizard-inner-tabs{display:flex;gap:0;margin:0 0 1.5rem;border-bottom:2px solid #e2e8f0}.wizard-inner-tab{padding:0.55rem 1.1rem;font-size:0.88rem;font-weight:600;color:#64748b;background:transparent;border:none;border-bottom:2px solid transparent;cursor:pointer;margin-bottom:-2px;transition:color 0.15s,border-color 0.15s;white-space:nowrap;line-height:1.4;text-align:left}.wizard-inner-tab:hover{color:#1e293b}.wizard-inner-tab.active{color:var(--primary-color,#dc2626);border-bottom-color:var(--primary-color,#dc2626)}.wizard-tab-desc{font-size:0.875rem;color:#64748b;background:#f8fafc;border-left:3px solid #e2e8f0;border-radius:4px;padding:0.6rem 0.9rem;margin:0 0 1.25rem;line-height:1.5}@media (max-width:768px){.setup-slide{padding:1.5rem 0.5rem;min-height:350px}.slide-icon{font-size:4rem;margin-bottom:1rem}.slide-icon img{width:64px;height:64px}.slide-title{font-size:1.5rem}.slide-description{font-size:1rem}.slide-actions{flex-direction:column;gap:0.5rem}.slide-actions .btn{width:100%;white-space:normal;word-break:break-word}}#day-details-content{max-height:60vh;overflow-y:auto}.day-entry-item{padding:1rem;margin-bottom:0.75rem;background:var(--background-color);border-radius:0.5rem;border-left:4px solid var(--primary-color)}.day-entry-item.sick{border-left-color:var(--danger-color)}.day-sick-locked{display:flex;align-items:flex-start;gap:0.5rem;margin-bottom:0.75rem;padding:0.75rem;border-radius:0.5rem;border-left:4px solid var(--danger-color);background:color-mix(in srgb,var(--danger-color) 8%,var(--background-color));color:var(--text-secondary);font-size:0.875rem;line-height:1.35}.day-sick-locked img{flex:0 0 auto;margin-top:0.1rem}.day-entry-item.public-holiday-entry{border-left-color:#f59e0b;background:#fef3c7}.day-entry-item.school-holiday-entry{border-left-color:#10b981;background:#a7f3d0}.day-entry-item.boegertag-entry{border-left-color:#8b5cf6;background:#ede9fe}.day-entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}.day-entry-category{font-weight:600;font-size:1rem}.day-entry-hours{font-weight:700;color:var(--primary-color);font-size:1.125rem}.day-entry-item.sick .day-entry-hours{color:var(--danger-color)}.day-entry-time{color:var(--text-secondary);font-size:0.875rem;margin-bottom:0.25rem}.day-entry-description{color:var(--text-color);font-size:0.875rem;margin-top:0.5rem;font-style:italic}.day-entry-actions{display:flex;justify-content:flex-end;gap:0.25rem;margin-top:0.5rem}.day-entry-item.recently-changed{border-left-color:var(--success-color,#10b981);background:color-mix(in srgb,var(--success-color,#10b981) 8%,var(--background-color))}.day-entry-recent-badge{display:inline-block;font-size:0.7rem;font-weight:600;color:var(--success-color,#10b981);border:1px solid var(--success-color,#10b981);border-radius:0.75rem;padding:0.1rem 0.5rem;margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.04em}.day-total{margin-top:1rem;padding-top:1rem;border-top:2px solid var(--border-color);text-align:right;font-size:1.125rem;font-weight:700}.faq-view{padding:1rem}.faq-view h2{margin-bottom:1.5rem;color:var(--text-primary)}.faq-container{display:flex;flex-direction:column;gap:1.75rem}.faq-category-group{display:flex;flex-direction:column;gap:0.75rem}.faq-item{background:var(--surface-color);border-radius:0.5rem;box-shadow:var(--shadow);overflow:hidden;transition:box-shadow 0.2s}.faq-item:hover{box-shadow:var(--shadow-lg)}.faq-question{padding:1.25rem;background:#CCCCCC;color:#000000;cursor:pointer;user-select:none;position:relative;transition:all 0.3s ease}.faq-question:hover{background:#B8B8B8}.faq-question::after{content:'\25B6';position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);transition:transform 0.3s ease;font-size:0.875rem;color:#000000}.faq-question.active::after{transform:translateY(-50%) rotate(90deg)}.faq-question h3{margin:0;font-size:1.125rem;font-weight:600;padding-right:2rem}.faq-answer{padding:1.25rem;color:var(--text-primary);line-height:1.7;display:none;animation:fadeIn 0.3s ease}.faq-answer.show{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.faq-answer p{margin-bottom:1rem}.faq-answer p:last-child{margin-bottom:0}.faq-answer ul{margin-left:1.5rem;margin-bottom:1rem}.faq-answer li{margin-bottom:0.5rem}.faq-category{margin-bottom:1rem;padding:0.75rem;background:var(--bg-color);border-radius:0.375rem;border-left:3px solid var(--primary-color)}.faq-category:last-child{margin-bottom:0}.faq-category strong{display:block;margin-bottom:0.5rem;color:var(--primary-color);font-size:1rem}.faq-category p{margin:0;color:var(--text-primary)}.faq-item.faq-category-help-highlight .faq-question{background:#ffff99;color:#000000}.faq-item.faq-category-help-highlight .faq-question:hover{background:#ffffaa}@keyframes highlightFade{0%{background-color:#ffff99}100%{background-color:transparent}}.entry-highlight{animation:highlightFade 3s ease-out}@media (max-width:768px){.faq-view{padding:0.75rem}.faq-question h3{font-size:1rem}.faq-answer{padding:1rem;font-size:0.9375rem}}.info-btn{background:transparent;border:1px solid var(--border-color);border-radius:50%;width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;transition:all 0.2s;padding:0;flex-shrink:0}.info-btn:hover{background:#f1f5f9;border-color:var(--border-color);transform:scale(1.1)}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem}.modal-overlay .modal-content{background:var(--surface-color);border-radius:1rem;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-overlay .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--border-color)}.modal-overlay .modal-header h3{font-size:1.5rem;font-weight:600;margin:0}.modal-overlay .modal-close{background:transparent;border:none;font-size:2rem;cursor:pointer;color:var(--text-secondary);line-height:1;padding:0;width:2rem;height:2rem}.modal-overlay .modal-close:hover{color:var(--text-primary)}.modal-overlay .modal-body{padding:1.5rem}.modal-overlay .modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:0.75rem}.calculation-info{font-size:1rem;line-height:1.8}.calculation-info p{margin-bottom:0.75rem}.calculation-info strong{color:var(--primary-color);font-weight:600}.calculation-info em{color:var(--text-secondary);font-size:0.9rem}.week-selection{display:flex;flex-direction:column;gap:0.5rem}.week-checkbox-item{transition:all 0.2s ease}.week-checkbox-item:hover{background-color:var(--background-color)}.week-checkbox-item input[type="checkbox"]{width:1.25rem;height:1.25rem;cursor:pointer}.week-checkbox-item .positive{color:#10b981;font-weight:600}.week-checkbox-item .negative{color:var(--danger-color);font-weight:600}.optional-info.hidden{display:none}.admin-view{padding:1rem}.admin-tabs,.settings-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0.5rem;row-gap:0.1rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-color)}.admin-tab{padding:0.45rem 0.75rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;line-height:1.25;color:var(--text-secondary);transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;min-width:0;gap:0.4rem}.admin-tab img{width:18px;height:18px;flex-shrink:0}.admin-view h2 img{vertical-align:middle;position:relative;top:-5px;margin-right:0.35rem}.admin-section h3 img,.dialog-header h3 img,.dialog-content h3 img{vertical-align:middle;position:relative;top:-1px;margin-right:0.25rem}.btn img{vertical-align:middle;position:relative;top:-1px}.btn-icon img,.btn-sm img{vertical-align:middle;display:block}.admin-tab:hover{color:var(--text-primary);background:var(--bg-color)}.admin-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.admin-content{padding:1rem 0}.settings-view{padding:1rem}.settings-tab{padding:0.45rem 0.75rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;line-height:1.25;color:var(--text-secondary);transition:all 0.2s ease;display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;min-width:0;gap:0.4rem}.settings-tab img{width:18px;height:18px;flex-shrink:0}.settings-tab .tab-label-short{display:none}@media (max-width:1024px){.admin-tabs,.settings-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:640px){.admin-tabs,.settings-tabs{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:0.25rem}.admin-tab,.settings-tab{padding:0.4rem 0.35rem;font-size:0.8rem;gap:0.3rem}.admin-tab img,.settings-tab img{width:16px;height:16px}.settings-tab .tab-label-full{display:none}.settings-tab .tab-label-short{display:inline}}@media (max-width:374px){.admin-tab,.settings-tab{font-size:0.72rem;padding:0.4rem 0.2rem}}.settings-tab:hover{color:var(--text-primary);background:var(--bg-color)}.settings-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color)}.settings-content{padding:1rem 0}.admin-section.full-width{max-width:100%;margin:0}.admin-section.full-width .admin-list{max-width:100%}.admin-section + .admin-section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--border-color)}.admin-section h3{font-size:1.5rem;margin-bottom:0.5rem;color:var(--text-primary)}.admin-section .info-text{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.6}.admin-filter{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.5rem;padding:1rem;background:var(--background-color);border-radius:0.5rem;border:1px solid var(--border-color)}.admin-filter label{font-weight:600;color:var(--text-primary);margin:0}.admin-filter select{padding:0.5rem 2rem 0.5rem 0.75rem;border:1px solid var(--border-color);border-radius:0.375rem;background:white;color:var(--text-primary);font-size:1rem;cursor:pointer;transition:all 0.2s ease;min-width:120px}.admin-filter select:hover{border-color:var(--primary-color)}.admin-filter select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(220,38,38,0.1)}.flex-days-row{display:flex;align-items:center;flex-wrap:wrap;gap:0.75rem}.flex-days-row label{font-weight:600;color:var(--text-primary);margin:0}.flex-days-field{display:inline-flex;align-items:center;gap:0.5rem}.flex-days-field input{width:5rem;padding:0.5rem 0.75rem;border:1px solid var(--border-color);border-radius:0.375rem;background:var(--surface-color);color:var(--text-primary);font-size:1rem;font-family:inherit;text-align:center;transition:border-color 0.2s ease,box-shadow 0.2s ease}.flex-days-field input:hover{border-color:var(--primary-color)}.flex-days-field input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(227,0,27,0.12)}.flex-days-unit{color:var(--text-secondary)}.flex-days-status{margin:1rem 0 0;color:var(--text-secondary);font-size:0.9rem;line-height:1.6}.admin-actions{display:flex;gap:1rem;margin-bottom:1.5rem}.admin-list{background:var(--surface-color);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow)}.error-message{text-align:center;padding:3rem 1rem}.error-message h2{color:var(--danger-color);margin-bottom:1rem}.error-message p{color:var(--text-secondary)}.dialog-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1rem;opacity:0;transition:opacity 0.3s ease}.dialog-overlay.active{opacity:1}.dialog-box{background:var(--surface-color);border-radius:1rem;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);transform:scale(0.9);transition:transform 0.3s ease}.dialog-overlay.active .dialog-box{transform:scale(1)}.dialog-header{padding:1.5rem 1.5rem 0}.dialog-header h3{font-size:1.5rem;margin:0;color:var(--text-primary)}.dialog-content{padding:1.5rem}.dialog-content h3{font-size:1.5rem;margin-bottom:1rem;color:var(--text-primary)}.dialog-content p{color:var(--text-secondary);margin-bottom:1rem}.dialog-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.confirm-delete-dialog .confirm-delete-header{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.75rem}.confirm-delete-dialog .confirm-delete-header h3{margin:0}.confirm-delete-dialog .confirm-delete-icon-wrap{flex-shrink:0;width:56px;height:56px;border-radius:50%;background:rgba(220,38,38,0.1);display:flex;align-items:center;justify-content:center}.confirm-delete-dialog .confirm-delete-icon-wrap img{display:block}.confirm-delete-dialog .btn-danger img{vertical-align:middle;position:relative;top:-1px;margin-right:0.25rem}.dialog-body-html{color:var(--text-secondary)}.dialog-body-html p:last-child{margin-bottom:0}.dialog-body-html .sick-result-range{font-weight:600;color:var(--text-primary);margin-bottom:0.75rem}.sick-result-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:0.6rem}.sick-result-list li{position:relative;padding-left:1.1rem;line-height:1.45}.sick-result-list li::before{content:"•";position:absolute;left:0;color:var(--primary-color,#b91c1c)}.sick-result-list li.sick-result-ok::before{content:"✓";color:#16a34a}.sick-result-list li.sick-result-warn::before{content:"!";font-weight:700}.dialog-footer-link{margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--border-color,rgba(0,0,0,0.1));text-align:center}.dialog-footer-link .btn-text{padding:0.25rem 0.5rem;text-decoration:underline}.bulk-delete-hint{margin:0 0 1rem;color:var(--text-secondary);font-size:0.9rem}.inline-info-row{display:flex;align-items:center;gap:0.5rem}.inline-info-btn{flex-shrink:0;background:none;border:none;padding:2px;cursor:pointer;display:inline-flex;align-items:center}.inline-info-btn img{display:block}.overlap-dialog{padding:1.25rem 1.5rem 1.5rem}.overlap-dialog-header{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.75rem}.overlap-dialog-header h3{margin:0;font-size:1.25rem;color:var(--text-primary)}.overlap-dialog-icon{font-size:1.4rem;color:var(--warning-color);line-height:1;flex-shrink:0}.overlap-dialog-icon img{display:block}.overlap-desc{color:var(--text-secondary);font-size:0.9rem;margin-bottom:0.75rem}.overlap-dialog .overlap-conflict-list{list-style:none;margin:0 0 1rem;padding:0.6rem 0.875rem;background:rgba(245,158,11,0.08);border-left:3px solid var(--warning-color);border-radius:0.5rem}.overlap-dialog .overlap-conflict-list li{color:var(--text-primary);font-size:0.9rem;padding:0.2rem 0}.overlap-options{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:1rem}.overlap-option-btn{width:100%;justify-content:center;text-align:center;white-space:normal;line-height:1.3;padding:0.65rem 1rem;font-size:0.95rem}.overlap-option-btn:hover{filter:brightness(0.92)}.overlap-no-options{font-size:0.875rem;color:var(--text-secondary);margin-bottom:1rem}.overlap-secondary-actions{display:flex;gap:0.5rem;padding-top:0.875rem;border-top:1px solid var(--border-color);justify-content:flex-end}.overlap-secondary-actions .btn{font-size:0.875rem;padding:0.5rem 1rem}@media (max-width:480px){.overlap-secondary-actions{flex-direction:column-reverse;align-items:stretch}.overlap-secondary-actions .btn{width:100%;text-align:center;justify-content:center}}@media (max-width:640px){.quick-backfill-dialog .dialog-header{padding:0.85rem 1rem 0}.quick-backfill-dialog .dialog-header h3{font-size:1.1rem}.quick-backfill-dialog .dialog-content{padding:0.85rem 1rem 1rem}.quick-backfill-dialog .dialog-content > p{font-size:0.8rem;margin-bottom:0.5rem}}.no-data{text-align:center;padding:2rem;color:var(--text-secondary);font-style:italic}.text-muted{color:var(--text-secondary);font-size:0.875rem}.past-entry{opacity:0.6}.actions{display:flex;gap:0.5rem;justify-content:flex-end}.auto-lock-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-color);display:none;align-items:center;justify-content:center;z-index:9999;opacity:0;transition:opacity 0.3s ease}.auto-lock-screen.active{display:flex;opacity:1}.lock-screen-content{text-align:center;padding:2rem;max-width:400px;animation:lockFadeIn 0.5s ease}@keyframes lockFadeIn{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.lock-screen-logo{margin-bottom:2rem;color:var(--primary-color);animation:lockPulse 2s ease-in-out infinite}@keyframes lockPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.8;transform:scale(1.05)}}.lock-screen-content h2{font-size:2rem;margin-bottom:0.5rem;color:var(--text-primary)}.lock-screen-user{font-size:1.125rem;color:var(--text-secondary);margin-bottom:1.5rem}.lock-screen-message{font-size:1rem;color:var(--text-secondary);margin-bottom:2rem}.btn-large{padding:1rem 2rem;font-size:1.125rem}.faq-admin-group{display:flex;flex-direction:column;gap:0.75rem}.faq-admin-list{display:flex;flex-direction:column;gap:1.75rem;margin-top:1.5rem}.faq-admin-item{background:var(--surface-color);border:1px solid var(--border-color);border-radius:0.5rem;padding:1rem;transition:box-shadow 0.2s}.faq-admin-item:hover{box-shadow:var(--shadow)}.faq-admin-item.faq-inactive{opacity:0.6;background:var(--bg-color)}.faq-admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:0.5rem}.faq-admin-question{flex:1;font-size:1rem;color:var(--text-primary)}.faq-admin-question strong{display:block;margin-bottom:0.25rem}.faq-admin-actions{display:flex;gap:0.5rem;flex-shrink:0}.faq-admin-meta{font-size:0.875rem;color:var(--text-secondary);margin-top:0.5rem;padding-top:0.5rem;border-top:1px solid var(--border-color)}.badge{display:inline-block;padding:0.25rem 0.5rem;border-radius:0.25rem;font-size:0.75rem;font-weight:600;margin-left:0.5rem}.badge-inactive{background:var(--warning-color);color:white}.html-editor{min-height:200px;max-height:400px;overflow-y:auto;border:1px solid var(--border-color);border-radius:0.375rem;padding:0.75rem;background:var(--surface-color);font-family:inherit;font-size:1rem;line-height:1.6;color:var(--text-primary)}.html-editor:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(59,130,246,0.1)}.html-editor[contenteditable="true"]:empty:before{content:attr(placeholder);color:var(--text-secondary);opacity:0.5}.editor-toolbar{display:flex;gap:0.5rem;margin-bottom:0.5rem;padding:0.5rem;background:var(--bg-color);border:1px solid var(--border-color);border-radius:0.375rem}.editor-toolbar button{padding:0.375rem 0.75rem;border:1px solid var(--border-color);border-radius:0.25rem;background:var(--surface-color);color:var(--text-primary);cursor:pointer;font-size:0.875rem;transition:all 0.2s}.editor-toolbar button:hover{background:var(--primary-color);color:white;border-color:var(--primary-color)}.editor-toolbar button b,.editor-toolbar button i,.editor-toolbar button u{font-size:1rem}.emoji-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:0.25rem;max-height:200px;overflow-y:auto;padding:0.5rem;background:var(--background-color);border:1px solid var(--border-color);border-radius:0.375rem;margin-top:0.5rem}.emoji-picker button{background:transparent;border:1px solid transparent;border-radius:0.25rem;font-size:1.5rem;padding:0.5rem;cursor:pointer;transition:all 0.2s;line-height:1}.emoji-picker button:hover{background:var(--surface-color);border-color:var(--primary-color);transform:scale(1.1)}.emoji-picker button.selected{background:var(--primary-color);color:white}.icon-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0.5rem;margin-top:0.5rem}.icon-picker-btn{display:flex;flex-direction:column;align-items:center;gap:0.3rem;padding:0.5rem 0.25rem;border:2px solid var(--border-color);border-radius:0.5rem;background:var(--background-color);cursor:pointer;font-size:0.65rem;color:var(--text-secondary);transition:all 0.15s ease;text-align:center;line-height:1.2}.icon-picker-btn:hover{border-color:var(--primary-color);background:#fef2f2;color:var(--primary-color)}.icon-picker-btn.selected{border-color:var(--primary-color);background:#fef2f2;color:var(--primary-color)}.color-picker-wrapper{display:flex;gap:1rem;align-items:center}.color-preview{width:60px;height:40px;border:2px solid var(--border-color);border-radius:0.375rem;cursor:pointer;transition:all 0.2s}.color-preview:hover{border-color:var(--primary-color);transform:scale(1.05)}.color-input-native{width:60px;height:40px;border:none;border-radius:0.375rem;cursor:pointer}.color-presets{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.5rem}.color-preset{width:32px;height:32px;border:2px solid transparent;border-radius:0.25rem;cursor:pointer;transition:all 0.2s}.color-preset:hover{transform:scale(1.1);border-color:var(--text-primary)}.color-preset.selected{border-color:var(--primary-color);border-width:3px}.table-responsive{width:100%;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;background:white;border-radius:0.5rem;overflow:hidden}.admin-table thead{background:var(--primary-color);color:white}.admin-table th{padding:1rem;text-align:left;font-weight:600;white-space:nowrap}.admin-table td{padding:0.75rem 1rem;border-top:1px solid var(--border-color);vertical-align:middle}.admin-table tbody tr:hover{background:var(--background-color)}.admin-table code{background:var(--background-color);padding:0.25rem 0.5rem;border-radius:0.25rem;font-family:'Courier New',monospace;font-size:0.875rem}.admin-table .action-buttons{display:flex;gap:0.5rem;white-space:nowrap}.admin-table .action-buttons .btn-sm{padding:0.375rem 0.75rem;font-size:0.875rem}.dialog-large{width:90%;max-width:800px}.required{color:var(--error-color);font-weight:bold}.app-footer{background:var(--surface-color);border-top:1px solid var(--border-color);padding:0.65rem 1.5rem;padding-bottom:calc(0.65rem + env(safe-area-inset-bottom,0px));margin-top:auto;text-align:center}.app-footer-inner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0.5rem 1rem;max-width:1200px;margin:0 auto;font-size:0.78rem;color:var(--text-secondary)}.app-footer-links{display:flex;align-items:center;gap:0.35rem}.footer-link{color:var(--text-secondary);text-decoration:none;transition:color 0.2s}.footer-link:hover{color:var(--primary-color);text-decoration:underline}.footer-sep{color:var(--border-color);user-select:none}.footer-version{color:var(--text-secondary);user-select:none}.footer-divider{color:var(--border-color);user-select:none}.footer-heart{color:var(--primary-color)}.app-footer-brand{display:flex;align-items:center;gap:0.25rem}.footer-brand-link{display:inline-flex;align-items:center;gap:0.3rem;color:var(--text-secondary);text-decoration:none;transition:color 0.2s}.footer-jhsc-logo{height:1.3em;width:auto;display:block}.footer-brand-link:hover{color:var(--primary-color);text-decoration:underline}.app-footer-gew{display:flex;align-items:center;justify-content:center;gap:0.4rem;width:100%;margin-top:0.5rem;font-size:0.78rem;color:var(--text-secondary)}.footer-kooperation{white-space:nowrap}.footer-gew-logo{height:32px;width:auto;display:block}@media (max-width:768px){.app-footer{padding:0.65rem 1rem}.app-footer-inner{flex-direction:column;gap:0.2rem}.footer-divider{display:none}}.legal-view{max-width:800px;margin:0 auto}.legal-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.legal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.legal-intro{color:var(--text-secondary);font-size:0.9rem;margin-bottom:1.5rem;font-style:italic}.legal-section{margin-bottom:1.5rem}.legal-section h3{font-size:1rem;color:var(--primary-color);margin-bottom:0.5rem;padding-bottom:0.25rem;border-bottom:1px solid var(--border-color)}.legal-section h4{font-size:0.9rem;color:var(--text-primary);margin:0.75rem 0 0.25rem}.legal-section p,.legal-section ul{font-size:0.9rem;color:var(--text-secondary);line-height:1.7}.legal-section ul{padding-left:1.25rem}.legal-section a{color:var(--primary-color);text-decoration:none}.legal-section a:hover{text-decoration:underline}.legal-contact-card{background:var(--surface-color);border:1px solid var(--border-color);border-left:3px solid var(--primary-color);border-radius:0.5rem;padding:0.875rem 1rem;margin-top:0.75rem;box-shadow:var(--shadow)}.legal-contact-card + .legal-contact-card{margin-top:0.625rem}.legal-section .legal-contact-card p{margin:0;color:var(--text-secondary)}.legal-section .legal-contact-card p + p{margin-top:0.625rem;padding-top:0.625rem;border-top:1px dashed var(--border-color)}.legal-contact-card strong{display:block;color:var(--text-primary);font-size:0.95rem;margin-bottom:0.15rem}.legal-placeholder{background:#fff8e1;border-left:3px solid var(--warning-color);padding:0.5rem 0.75rem;border-radius:0 0.25rem 0.25rem 0;font-size:0.85rem;color:#7c5c00;margin-top:0.25rem}.legal-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem}.legal-modal-overlay.hidden{display:none}.legal-modal-box{background:var(--surface-color);border-radius:0.75rem;max-width:700px;width:100%;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.legal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.legal-modal-header h3{margin:0;font-size:1.1rem}.legal-modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-secondary);padding:0.25rem;line-height:1}.legal-modal-close:hover{color:var(--primary-color)}.legal-modal-body{padding:1.25rem;overflow-y:auto;flex:1}.bezuege-preview{display:flex;flex-direction:column;align-items:flex-start;margin:0.75rem 0 1.25rem}.bezuege-thumb{width:140px;height:auto;border-radius:6px;border:1px solid var(--border-color);cursor:zoom-in;transition:box-shadow 0.2s,transform 0.2s;object-fit:cover}.bezuege-thumb:hover{box-shadow:0 4px 16px rgba(0,0,0,0.18);transform:scale(1.04)}#personal-work-time::-webkit-inner-spin-button,#personal-work-time::-webkit-outer-spin-button,#full-time-work-time::-webkit-inner-spin-button,#full-time-work-time::-webkit-outer-spin-button,#setup-personal-work::-webkit-inner-spin-button,#setup-personal-work::-webkit-outer-spin-button,#setup-fulltime-work::-webkit-inner-spin-button,#setup-fulltime-work::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}#personal-work-time,#full-time-work-time,#setup-personal-work,#setup-fulltime-work{-moz-appearance:textfield}.bezuege-caption{display:block;margin-top:0.35rem;color:var(--text-secondary,#64748b);font-size:0.8rem}.stundenplan-root{display:block}body.sp-fullscreen .stundenplan-root{position:fixed;inset:0;z-index:9000;overflow-y:auto;background:var(--bg-color,#f8fafc);padding:1.5rem 2rem;animation:sp-fs-in 0.18s ease}body.sp-fullscreen .sp-grid-wrap{max-height:calc(100vh - 8rem)}body.sp-fullscreen .modal{z-index:9100}@keyframes sp-fs-in{from{opacity:0.6;transform:scale(0.99)}to{opacity:1;transform:scale(1)}}.sp-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;margin-bottom:1rem}.sp-hint{color:var(--text-secondary,#64748b);font-size:0.85rem;margin:0}.sp-grid-wrap{border:1px solid var(--border-color,#e2e8f0);border-radius:0.75rem;overflow:auto;max-height:70vh;background:var(--surface-color,#fff)}.sp-head{display:grid;grid-template-columns:48px repeat(7,minmax(72px,1fr));position:sticky;top:0;z-index:3;background:var(--surface-color,#fff);border-bottom:1px solid var(--border-color,#e2e8f0)}.sp-corner{border-right:1px solid var(--border-color,#e2e8f0)}.sp-dayhead{text-align:center;font-weight:600;font-size:0.85rem;padding:0.5rem 0.25rem;border-right:1px solid var(--border-color,#e2e8f0)}.sp-dayhead.is-today{color:var(--primary-color,#b91c1c)}.sp-body{display:grid;grid-template-columns:48px repeat(7,minmax(72px,1fr));position:relative}.sp-hours{position:relative}.sp-hour{height:44px;box-sizing:border-box;border-bottom:1px solid var(--border-color,#eef2f6);border-right:1px solid var(--border-color,#e2e8f0);font-size:0.7rem;color:var(--text-secondary,#64748b);text-align:right;padding-right:4px}.sp-col{position:relative;border-right:1px solid var(--border-color,#e2e8f0);background-image:repeating-linear-gradient( to bottom,transparent 0,transparent 43px,var(--border-color,#eef2f6) 43px,var(--border-color,#eef2f6) 44px )}.sp-event{position:absolute;left:3px;right:3px;border-radius:0.4rem;padding:3px 6px;color:#fff;font-size:0.72rem;line-height:1.15;overflow:hidden;cursor:grab;box-shadow:0 1px 3px rgba(0,0,0,0.2);user-select:none;box-sizing:border-box}.sp-event.is-dragging{cursor:grabbing;opacity:0.85;z-index:5}.sp-event.is-inactive{opacity:0.45}.sp-event .sp-ev-time{font-weight:600}.sp-event .sp-ev-cat{opacity:0.95}.sp-event .sp-ev-note{opacity:0.85;font-style:italic;font-size:0.68rem}.sp-event .sp-ev-resize{position:absolute;left:0;right:0;bottom:0;height:8px;cursor:ns-resize}.sp-ghost{position:absolute;left:3px;right:3px;border-radius:0.4rem;background:rgba(185,28,28,0.35);border:1px dashed var(--primary-color,#b91c1c);pointer-events:none;box-sizing:border-box}.sp-check-row{display:flex;flex-direction:column;gap:0.5rem}.sp-check{display:flex;flex-wrap:nowrap;align-items:center;gap:0.75rem;width:100%;padding:0.6rem 0.75rem;cursor:pointer;font-size:0.9rem;color:var(--text-primary,#1a1a1a);user-select:none;border:1px solid var(--border-color,#e2e8f0);border-radius:0.6rem;background:var(--surface-color,#fff);transition:border-color 0.15s ease,background 0.15s ease}.sp-check:hover{border-color:var(--primary-color,#b91c1c);background:rgba(185,28,28,0.04)}.sp-check span{flex:1;white-space:normal;word-break:break-word;line-height:1.3}.sp-check input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex-shrink:0;width:1.2rem;height:1.2rem;margin:0;border:2px solid var(--border-color,#cbd5e1);border-radius:0.3rem;background:var(--surface-color,#fff) center / 75% no-repeat;cursor:pointer;transition:background-color 0.15s ease,border-color 0.15s ease}.sp-check input[type="checkbox"]:checked{border-color:var(--primary-color,#b91c1c);background-color:var(--primary-color,#b91c1c);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6l3 3 5-5' stroke='white' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.sp-check input[type="checkbox"]:focus-visible{outline:2px solid var(--primary-color,#b91c1c);outline-offset:2px}.fab-timer.auto-active{background:#f59e0b}.fab-timer.auto-active:hover{background:#d97706;box-shadow:0 10px 30px rgba(245,158,11,0.5)}.fab-ring{position:absolute;inset:-5px;border-radius:50%;background:conic-gradient(#fff calc(var(--sp-progress,0) * 1%),rgba(255,255,255,0.25) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));pointer-events:none;z-index:1}.sp-fab-popover{position:fixed;background:var(--surface-color,#fff);color:var(--text-primary,#1a1a1a);border:1px solid var(--border-color,#e2e8f0);border-radius:0.6rem;box-shadow:var(--shadow-lg,0 10px 25px rgba(0,0,0,0.2));padding:1.25rem 1.4rem;z-index:2100;min-width:300px;max-width:340px}.sp-fab-popover h4{margin:0 0 0.5rem;font-size:1.05rem}.sp-fab-popover p{margin:0 0 0.9rem;font-size:1rem;color:var(--text-primary,#1a1a1a)}.sp-fab-popover .sp-pop-actions{display:flex;gap:0.6rem;justify-content:flex-end}.auto-slot-dashboard{padding:0.6rem 0.5rem 0.5rem}.auto-slot-header{display:flex;align-items:flex-start;gap:0.6rem;margin-bottom:0.75rem}.auto-slot-icon{width:26px;height:26px;flex-shrink:0;color:#f59e0b;display:block;margin-top:1px}.auto-slot-title{font-size:1.05rem;font-weight:600;color:#92400e;margin:0;line-height:1.3}.auto-slot-details{background:rgba(245,158,11,0.12);border:1px solid rgba(245,158,11,0.45);border-radius:0.6rem;padding:0.7rem 1rem;margin-bottom:0.9rem;display:flex;flex-direction:column;gap:0.25rem}.auto-slot-category{font-size:1.05rem;font-weight:600;color:#1a1a1a}.auto-slot-description{font-size:0.88rem;color:#4a4a4a;font-style:italic}.auto-slot-time{font-size:0.93rem;color:#374151;font-weight:500}.auto-slot-remaining{font-size:0.83rem;color:#6b7280;margin-top:0.1rem}.auto-slot-suspend-btn{background:#f59e0b;color:#fff;border:none;width:100%;font-weight:600;justify-content:center}.auto-slot-suspend-btn:hover{background:#d97706;color:#fff}.wtp-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.5);display:flex;align-items:flex-end;justify-content:center;z-index:2600}.wtp-sheet{width:100%;max-width:480px;background:var(--surface-color,#fff);border-radius:1rem 1rem 0 0;box-shadow:var(--shadow-lg,0 -10px 25px rgba(0,0,0,0.2));padding-bottom:env(safe-area-inset-bottom,0);animation:wtp-slide-up 0.22s ease}@keyframes wtp-slide-up{from{transform:translateY(100%)}to{transform:translateY(0)}}.wtp-bar{display:flex;align-items:center;justify-content:space-between;padding:0.6rem 1rem;border-bottom:1px solid var(--border-color,#e2e8f0)}.wtp-title{font-weight:600;color:var(--text-primary,#1e293b)}.wtp-btn{background:transparent;border:none;font-size:1rem;cursor:pointer;padding:0.25rem 0.25rem;color:var(--text-secondary,#64748b)}.wtp-btn.wtp-ok{color:var(--primary-color,#e3001b);font-weight:700}.wtp-wheels{position:relative;display:flex;align-items:stretch;justify-content:center;gap:0.5rem;padding:0.5rem 1rem 1rem;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 22%,#000 78%,transparent)}.wtp-band{position:absolute;left:1rem;right:1rem;border-top:1px solid var(--border-color,#e2e8f0);border-bottom:1px solid var(--border-color,#e2e8f0);background:color-mix(in srgb,var(--primary-color,#e3001b) 6%,transparent);border-radius:0.4rem;pointer-events:none}.wtp-col{flex:1;max-width:120px;overflow-y:scroll;scroll-snap-type:y mandatory;scrollbar-width:none;-ms-overflow-style:none;text-align:center}.wtp-col::-webkit-scrollbar{display:none}.wtp-item{height:40px;line-height:40px;scroll-snap-align:center;font-size:1.3rem;color:var(--text-secondary,#94a3b8);cursor:pointer;transition:color 0.15s,transform 0.15s}.wtp-item.is-active{color:var(--text-primary,#1e293b);font-weight:700;transform:scale(1.05)}.wtp-sep{align-self:center;font-size:1.3rem;font-weight:700;color:var(--text-primary,#1e293b)}#setup-success-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:2000;background:rgba(0,0,0,0.5);display:flex;align-items:center;justify-content:center;animation:fadeIn 0.3s ease-out}#setup-success-modal.hidden{display:none}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.modal-content.setup-success{background:white;border-radius:20px;box-shadow:0 20px 60px rgba(0,0,0,0.2);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;padding:0;animation:slideUp 0.4s ease-out}@keyframes slideUp{from{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.setup-success-container{text-align:center;padding:3rem 2rem 2.5rem;position:relative;overflow:hidden}.setup-success-logo{margin-bottom:2rem;animation:scaleIn 0.6s cubic-bezier(0.34,1.56,0.64,1)}@keyframes scaleIn{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}.setup-success-logo img{filter:drop-shadow(0 4px 12px rgba(227,0,27,0.2));transition:transform 0.3s ease}.setup-success-logo img:hover{transform:scale(1.05)}.setup-success-title{font-size:2rem;font-weight:700;color:#1f2937;margin:0 0 0.75rem 0;animation:fadeInUp 0.6s ease-out 0.2s both}@keyframes fadeInUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.setup-success-message{font-size:1.1rem;color:#64748b;margin:0 0 2rem 0;animation:fadeInUp 0.6s ease-out 0.4s both}.setup-success-btn{animation:fadeInUp 0.6s ease-out 0.6s both;min-width:200px;background:linear-gradient(135deg,#e3001b 0%,#c8000e 100%);border:none;cursor:pointer;font-size:1rem;font-weight:600;padding:0.875rem 2rem;border-radius:8px;color:white;transition:all 0.3s ease}.setup-success-btn:hover{background:linear-gradient(135deg,#c8000e 0%,#a80009 100%);transform:translateY(-2px);box-shadow:0 8px 20px rgba(227,0,27,0.3)}.setup-success-btn:active{transform:translateY(0)}#setup-success-confetti{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden;border-radius:20px}.confetti{position:absolute;width:10px;height:10px;background:#e3001b;border-radius:50%;animation:confettiFall linear forwards;will-change:transform,opacity}.confetti.red{background:#e3001b}.confetti.yellow{background:#fbbf24}.confetti.blue{background:#3b82f6}.confetti.green{background:#10b981}.confetti.pink{background:#ec4899}@keyframes confettiFall{0%{transform:translateY(0) rotate(0deg);opacity:1}100%{transform:translateY(500px) translateX(var(--tx,0px)) rotate(360deg);opacity:0}}@media (prefers-color-scheme:dark){.modal-content.setup-success{background:#1f2937}.setup-success-title{color:#f3f4f6}.setup-success-message{color:#d1d5db}#setup-success-modal{background:rgba(0,0,0,0.7)}}.schulsuche{position:relative;max-width:400px}.schulsuche-liste{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:60;margin:0;padding:0.25rem 0;list-style:none;max-height:16rem;overflow-y:auto;background:#fff;border:1px solid var(--border-color,#d1d5db);border-radius:0.5rem;box-shadow:0 8px 20px rgba(0,0,0,0.12)}.schulsuche-liste.hidden{display:none}.schulsuche-liste li{display:flex;flex-direction:column;gap:0.1rem;padding:0.45rem 0.75rem;cursor:pointer;line-height:1.3}.schulsuche-liste li.aktiv,.schulsuche-liste li:hover{background:#f1f5f9}.schulsuche-name{font-weight:600;color:#1e293b}.schulsuche-ort{font-size:0.8rem;color:#64748b}@media (max-width:480px){.schulsuche{max-width:100%}}.ue-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.15rem;height:1.15rem;margin-left:0.3rem;padding:0 0.25rem;border:1px solid #f59e0b;border-radius:4px;background:#fffbeb;color:#b45309;font-size:0.7rem;font-weight:700;line-height:1;vertical-align:middle;cursor:help;white-space:nowrap}button.ue-badge,.ue-badge[role="button"]{cursor:pointer}.ue-badge:focus-visible{outline:2px solid #b45309;outline-offset:1px}input.input-error,input.input-error:focus{border-color:#dc2626 !important;border-left-color:#dc2626 !important;background-color:#fef2f2;outline-color:#dc2626}.deputat-stelle-info{display:block;margin-top:0.35rem;color:#64748b;font-size:0.82rem;line-height:1.35}.deputat-stelle-info .ue-gerechnet{color:#b45309;font-weight:600}.ue-modal-vergleich{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin:0.9rem 0}.ue-modal-vergleich > div{padding:0.65rem 0.75rem;border:1px solid var(--border-color,#e2e8f0);border-radius:8px;text-align:center}.ue-modal-vergleich .ue-modal-gerechnet{border-color:#f59e0b;background:#fffbeb}.ue-modal-vergleich dt{margin-bottom:0.2rem;color:#64748b;font-size:0.78rem}.ue-modal-vergleich dd{margin:0;font-size:1.05rem;font-weight:700}@media (max-width:480px){.ue-modal-vergleich{grid-template-columns:1fr}}