:root{color-scheme:light;--bg: #e8ecf2;--bg-subtle: #f3f5f8;--panel: #ffffff;--surface: #ffffff;--surface-muted: #f4f6f9;--border: #d5dde8;--border-strong: #b8c4d4;--text: #1a2332;--muted: #5c6b7e;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-soft: #eff6ff;--success: #16a34a;--success-light: #dcfce7;--success-light-border: #86efac;--success-light-text: #166534;--success-dark: #14532d;--warning: #d97706;--warning-soft: #fffbeb;--warning-border: #fcd34d;--warning-text: #b45309;--overlay: rgba(15, 23, 42, .4);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .05);--shadow-sm: 0 2px 6px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .1);--shadow-lg: 0 16px 40px rgba(15, 23, 42, .12);--page-x: clamp(1.25rem, 4vw, 2.75rem);--board-max: 1680px;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#dfe5ee 0%,var(--bg) 180px);color:var(--text);-webkit-font-smoothing:antialiased}input,textarea,select{font:inherit}button{font:inherit;cursor:pointer;border:none;background:none;padding:0;color:inherit}.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.5rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.875rem;font-weight:500;line-height:1.2;box-shadow:var(--shadow-xs);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease,transform .1s ease}.btn:hover:not(:disabled){background:var(--surface-muted);border-color:var(--border-strong)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 3px #2563eb59}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}.btn-ghost:hover:not(:disabled){background:var(--surface-muted);border-color:var(--border);color:var(--text)}.btn-warning{background:var(--warning-soft);border-color:var(--warning-border);color:var(--warning-text)}.btn-warning:hover:not(:disabled){background:#fef3c7}.btn-sm{padding:.35rem .7rem;font-size:.8rem;border-radius:7px}.btn-icon{width:2.25rem;height:2.25rem;padding:0;flex-shrink:0}.chip,.chip-sm{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);padding:.35rem .65rem;font-size:.8rem;font-weight:500;box-shadow:var(--shadow-xs);transition:background .15s,border-color .15s,color .15s}.chip:hover:not(:disabled),.chip-sm:hover:not(:disabled){background:var(--surface-muted);border-color:var(--border-strong)}.chip-sm{padding:.22rem .5rem;font-size:.72rem;border-radius:7px}.chip.active,.chip-sm.active{background:var(--accent);border-color:var(--accent);color:#fff}.primary{display:inline-flex;align-items:center;justify-content:center;padding:.5rem .95rem;border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:.875rem;font-weight:500;box-shadow:0 1px 3px #2563eb59;text-decoration:none}.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-shell.has-board{background:transparent}.login{display:grid;place-content:center;min-height:100vh;padding:var(--page-x)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);padding:2.5rem 2.75rem;box-shadow:var(--shadow-lg);text-align:center;display:flex;flex-direction:column;gap:1.25rem;align-items:center;max-width:360px}.login-card h1{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}.login-card p{margin:0;color:var(--muted);font-size:.9rem}.topbar{display:flex;align-items:center;gap:1rem;padding:.65rem var(--page-x);border-bottom:1px solid var(--border);background:#ffffffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em;color:var(--text)}.segmented{display:inline-flex;padding:.2rem;background:var(--surface-muted);border-radius:var(--radius-md);border:1px solid var(--border);gap:.15rem}.segmented .btn{border:none;box-shadow:none;background:transparent;padding:.4rem 1rem;font-size:.82rem;font-weight:600;color:var(--muted);border-radius:7px}.segmented .btn:hover:not(:disabled){background:#fff9;color:var(--text)}.segmented .btn.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-xs)}.user{color:var(--muted);font-size:.82rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-raz{display:flex;align-items:center;gap:.5rem;margin-left:auto}.admin-raz-msg{font-size:.78rem;color:var(--success);white-space:nowrap}.board-view{flex:1;display:flex;flex-direction:column;width:100%;max-width:var(--board-max);margin:0 auto;padding:0 var(--page-x) 4rem}.columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;padding:1.25rem 0 0;align-items:start;flex:1}.column{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:68vh;min-width:0;overflow:hidden;box-shadow:var(--shadow-sm)}.column.over{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px #2563eb1f}.column header{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1rem;border-bottom:1px solid var(--border);background:var(--bg-subtle)}.column header h3{margin:0;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.column-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.5rem;padding:0 .4rem;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:.75rem;font-weight:600;color:var(--muted)}.column-body{display:flex;flex-direction:column;gap:.55rem;padding:.85rem;min-height:200px}.column-cards{display:flex;flex-direction:column;gap:.55rem;min-height:2rem}.column-add{display:flex;gap:.4rem;margin-bottom:.15rem;width:100%;min-width:0}.column-add input{flex:1;min-width:0;width:0;padding:.5rem .65rem;border-radius:var(--radius-sm);border:1px dashed var(--border);background:var(--surface-muted);color:var(--text);font-size:.85rem;transition:border-color .15s,background .15s,box-shadow .15s}.column-add input::placeholder{color:#94a3b8}.column-add input:focus{border-style:solid;border-color:var(--accent);outline:none;background:var(--surface);box-shadow:0 0 0 3px #2563eb1f}.board-view,.board-view .column,.kanban-card{user-select:none;-webkit-user-select:none}.kanban-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.7rem .75rem;cursor:grab;touch-action:none;box-shadow:var(--shadow-xs);transition:box-shadow .15s,border-color .15s,transform .15s}.kanban-card:hover{box-shadow:var(--shadow-sm)}.kanban-card.focused{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb2e}.kanban-card.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 3px #2563eb47}.kanban-card.selected.focused{box-shadow:0 0 0 3px #2563eb61}.kanban-card.status-fait{background:var(--success-light);border-color:var(--success-light-border);border-left:4px solid #4ade80}.kanban-card.status-fait .card-title{color:var(--success-light-text)}.kanban-card.status-termine{background:#14532d;border-color:#0f3d24;border-left:4px solid #052e16}.kanban-card.status-termine .card-title{color:#fff;font-weight:700}.kanban-card.status-termine .badge{background:#ffffff24;border-color:#ffffff38;color:#e8f7ee}.kanban-card.status-termine .badge.bonus{background:#fbbf2440;border-color:#fbbf24;color:#fef3c7}.kanban-card.status-termine .badge.recurring{background:#93c5fd33;border-color:#93c5fd;color:#eff6ff}.kanban-card.status-termine .description-icon{color:#d1fae5;opacity:1}.kanban-card.dragging{opacity:.4;cursor:grabbing;box-shadow:var(--shadow-md)}.card-title-row{display:flex;align-items:flex-start;gap:.35rem}.card-title{flex:1;font-size:.9rem;line-height:1.4}.description-icon{flex-shrink:0;color:var(--muted);margin-top:.1rem;opacity:.85}.kanban-card.status-fait .description-icon,.kanban-card.status-termine .description-icon{color:inherit;opacity:.7}.card-meta{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem}.badge{font-size:.68rem;padding:.12rem .4rem;border-radius:999px;background:var(--surface-muted);color:var(--muted);border:1px solid var(--border);font-weight:500}.badge.bonus{color:var(--warning);background:#fffbeb;border-color:#fcd34d}.badge.recurring{color:var(--accent);background:var(--accent-soft);border-color:#93c5fd}.shortcuts-bar{position:fixed;bottom:0;left:0;right:0;z-index:10;display:flex;align-items:center;gap:1rem;padding:.6rem var(--page-x);background:#fffffff0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);font-size:.84rem;box-shadow:0 -4px 16px #0f172a0f}.shortcuts-bar-inner{width:100%;max-width:var(--board-max);margin:0 auto;display:flex;align-items:center;gap:1rem}.shortcuts-bar-title{color:var(--muted);max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.shortcuts-bar-keys{display:flex;gap:1.1rem;flex-wrap:wrap;align-items:center;color:var(--text)}.shortcuts-bar-hint{font-size:.78rem;color:var(--muted);margin-left:.25rem}.shortcuts-bar-keys kbd{display:inline-block;min-width:1.35rem;text-align:center;padding:.12rem .38rem;margin-right:.3rem;border-radius:5px;background:var(--surface-muted);border:1px solid var(--border);font-size:.72rem;font-weight:600;box-shadow:0 1px 0 var(--border);color:var(--text)}.date-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:grid;place-content:center;z-index:30;padding:var(--page-x)}.date-picker-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem;width:min(380px,100%);display:flex;flex-direction:column;gap:.85rem;box-shadow:var(--shadow-lg)}.date-picker-panel h3{margin:0;font-size:1rem;font-weight:600;letter-spacing:-.01em}.date-picker-panel label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--muted)}.date-picker-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.25rem;padding-top:.75rem;border-top:1px solid var(--border)}.editor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;justify-content:flex-end;z-index:20}.editor-panel{width:min(420px,100%);height:100%;background:var(--panel);border-left:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-lg);overflow:hidden}.editor-panel header{flex-shrink:0;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--border)}.editor-panel header h2{margin:0;font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.editor-panel-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:.85rem;padding-right:.15rem}.editor-status{display:inline-block;margin-top:.35rem;padding:.18rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600}.editor-status-fait{background:var(--success-light);color:var(--success-light-text);border:1px solid var(--success-light-border)}.editor-status-termine{background:#14532d;color:#fff;border:1px solid #0f3d24}.editor-panel label{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:500;color:var(--muted)}.editor-panel input,.editor-panel select,.editor-panel textarea,.french-date-input,.date-picker-panel input{padding:.55rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);transition:border-color .15s,box-shadow .15s}.editor-panel input:focus,.editor-panel select:focus,.editor-panel textarea:focus,.french-date-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.editor-panel textarea{resize:vertical;min-height:5rem;font-family:inherit;line-height:1.45}.date-hint{font-size:.78rem;color:var(--muted)}.french-date-field{display:flex;flex-direction:column;gap:.25rem;width:100%}.french-date-row{display:flex;align-items:center;gap:.4rem;width:100%;min-width:0}.french-date-input{flex:1;min-width:0}.date-picker-anchor{position:relative;flex-shrink:0;width:2.25rem;height:2.25rem}.date-picker-native{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;border:none;background:transparent}.recurrence-editor{display:flex;flex-direction:column;gap:.55rem}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:var(--text);font-weight:500}.recurrence-sections{display:flex;flex-direction:column;gap:.45rem}.recurrence-section{padding:.55rem .65rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);transition:border-color .15s,background .15s}.recurrence-section.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px #2563eb1f}.recurrence-section-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:.4rem}.recurrence-section.active .recurrence-section-label{color:var(--accent)}.preset-row,.weekdays-row{display:flex;flex-wrap:nowrap;gap:.3rem;align-items:center}.weekdays-row{justify-content:space-between}.interval-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem;font-size:.85rem}.interval-input{width:2.8rem;padding:.3rem .35rem;border-radius:7px;border:1px solid var(--border);background:var(--surface);text-align:center}.interval-select{padding:.3rem .45rem;border-radius:7px;border:1px solid var(--border);background:var(--surface);font-size:.85rem}@media(max-width:1200px){.columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.columns{grid-template-columns:1fr}.topbar{flex-wrap:wrap}.admin-raz{margin-left:0}}
