: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-check: #22c55e;--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}.test-mode-panel{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-wrap:wrap}.test-mode-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--warning-text)}.test-mode-date{font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;padding:.25rem .5rem;border-radius:var(--radius-sm);background:var(--warning-soft);border:1px solid var(--warning-border);color:var(--warning-text)}.test-mode-actions{display:flex;align-items:center;gap:.35rem}.test-mode-actions .btn-sm{min-width:2rem;padding:.35rem .55rem}.test-mode-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)}.drag-count-badge{position:absolute;top:-.4rem;right:-.4rem;min-width:1.35rem;height:1.35rem;padding:0 .3rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);z-index:1}.kanban-card--mobile{display:flex;align-items:flex-start;gap:.25rem}.kanban-card-main{flex:1;min-width:0}.board-view--mobile .kanban-card--draggable .kanban-card-main{cursor:grab}.board-view--mobile .kanban-card--draggable .kanban-card-main:active{cursor:grabbing}.kanban-card-edit-btn{flex-shrink:0;width:2.25rem;height:2.25rem;margin-top:.05rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--muted);font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center}.kanban-card-edit-btn:active{background:var(--surface-muted);color:var(--accent)}.kanban-card--mobile-selected{background:var(--surface);border-color:var(--border);box-shadow:none;outline:2px dashed var(--accent);outline-offset:2px}.kanban-card--mobile-selected.focused{box-shadow:none}.kanban-card.status-en-cours.kanban-card--mobile-selected{background:#ecfeff;border-color:#67e8f9;border-left:4px solid #0891b2}.kanban-card.status-en-cours.kanban-card--mobile-selected .card-title{color:#0e7490}.kanban-card.status-fait.kanban-card--mobile-selected{background:var(--success-light);border-color:var(--success-light-border);border-left:4px solid #4ade80}.card-title-row{display:flex;align-items:flex-start;gap:.35rem}.card-checkbox{flex-shrink:0;width:1.15rem;height:1.15rem;margin-top:.1rem;border:2px solid var(--border-strong);border-radius:4px;display:flex;align-items:center;justify-content:center;background:var(--surface);color:transparent;transition:background .2s,border-color .2s,color .2s;cursor:pointer;padding:0}.card-checkbox:disabled{opacity:.45;cursor:default}.card-checkbox--checked{background:var(--success-check);border-color:var(--success-check);color:#fff}.card-checkbox--termine.card-checkbox--checked{background:#fff;border-color:#fff;color:#14532d}.kanban-card.status-termine .card-checkbox:disabled{opacity:1;cursor:default}.work-time-row{display:inline-flex;align-items:center;gap:.15rem}.work-time-btn{width:1.35rem;height:1.35rem;min-width:1.35rem;padding:0;font-size:.85rem;line-height:1;touch-action:manipulation}.badge.work-time{color:#0e7490;background:#cffafe;border-color:#67e8f9}.badge.work-time--live{color:#0e7490;background:#a5f3fc;border-color:#22d3ee}.badge.work-time--paused{color:#92400e;background:#fef3c7;border-color:#fcd34d}.work-time-paused-label{font-weight:600;text-transform:lowercase}.active-work-panel{position:relative;display:flex;align-items:center;gap:.35rem}.active-work-pause-btn,.active-work-play-btn{white-space:nowrap}.active-work-item--paused{opacity:.85}.active-work-paused-icon{font-size:.75rem}.active-work-hint{margin:.35rem .55rem .2rem;font-size:.72rem;color:var(--muted);text-align:center}.active-work-dropdown{position:absolute;right:0;top:calc(100% + .35rem);min-width:260px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.35rem;z-index:40}.active-work-item{display:flex;flex-direction:column;gap:.1rem;padding:.45rem .55rem;border-radius:var(--radius-sm);text-decoration:none;color:inherit}.active-work-item:hover{background:var(--surface-muted)}.active-work-title{font-size:.85rem;font-weight:600}.active-work-meta{font-size:.72rem;color:var(--muted)}.active-work-empty{margin:.35rem .55rem;font-size:.82rem;color:var(--muted)}.editor-total-time{margin:.5rem 0 0;font-size:.85rem;color:var(--muted)}.editor-total-time strong{color:var(--text)}.editor-status-en_cours{background:#cffafe;color:#0e7490;border:1px solid #67e8f9}.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-action{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .55rem;border-radius:5px;border:1px solid var(--border);background:var(--surface-muted);font-size:.78rem;font-weight:600;color:var(--text)}.shortcuts-bar-action:hover{background:var(--surface);border-color:var(--border-strong)}.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--quick{width:min(240px,100%);padding:.85rem;gap:.5rem}.date-picker-panel--quick h3{font-size:.85rem}.date-picker-panel--quick label{font-size:.75rem;gap:.25rem}.date-picker-panel--quick .french-date-input{padding:.4rem .5rem;font-size:.8rem}.date-picker-panel--quick .date-hint{font-size:.68rem}.date-picker-panel--quick .date-picker-anchor{width:1.85rem;height:1.85rem}.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{position:relative;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-mobile-back{position:absolute;right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:2;padding:.65rem 1.1rem;border-radius:999px;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-md);font-size:.95rem;font-weight:600;color:var(--text)}.editor-mobile-back:active{background:var(--surface-muted)}.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:none;min-height:5rem;font-family:inherit;line-height:1.45}.editor-description-label{flex-shrink:0}.editor-description-input{width:100%}.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}.mini-cal{margin-top:.2rem;padding:.35rem;width:fit-content;max-width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-muted);outline:none}.mini-cal:focus-visible{box-shadow:0 0 0 2px #2563eb26}.mini-cal-header{display:flex;align-items:center;justify-content:space-between;gap:.2rem;margin-bottom:.3rem}.mini-cal-title{flex:1;text-align:center;font-size:.72rem;font-weight:600;text-transform:capitalize;color:var(--text)}.mini-cal-nav{width:1.35rem;height:1.35rem;min-width:1.35rem;padding:0;font-size:.85rem;line-height:1}.mini-cal-weekdays,.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1.35rem);gap:.1rem}.mini-cal-weekdays{margin-bottom:.15rem}.mini-cal-weekday{text-align:center;font-size:.55rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--muted);line-height:1.35rem}.mini-cal-weekday--weekend{color:#c62828}.mini-cal-day{width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;border-radius:4px;border:1.5px solid transparent;background:var(--surface);font-size:.62rem;font-weight:500;color:var(--text);transition:background .15s ease,border-color .15s ease,transform .12s ease,box-shadow .15s ease}.mini-cal-day:hover:not(.mini-cal-day--selected){background:var(--accent-soft);border-color:#2563eb40}.mini-cal-day--outside{color:var(--muted);opacity:.55}.mini-cal-day--weekend:not(.mini-cal-day--selected){color:#c62828;background:#e2e6ed}.mini-cal-day--weekend.mini-cal-day--outside:not(.mini-cal-day--selected){background:#d8dde6}.mini-cal-day--weekend:hover:not(.mini-cal-day--selected){background:#d0d6e0;border-color:#c6282840}.mini-cal-day--weekend.mini-cal-day--today:not(.mini-cal-day--selected){border-color:#c62828;background:#d8dde6;box-shadow:inset 0 0 0 1px #c6282826}.mini-cal-day--today{border-color:var(--accent);border-width:2px;font-weight:700;color:var(--accent);box-shadow:inset 0 0 0 1px #2563eb26}.mini-cal-day--selected{background:var(--accent);border-color:var(--accent-hover);color:#fff;font-weight:700;animation:mini-cal-selected-pulse 2.2s ease-in-out infinite}.mini-cal-day--selected.mini-cal-day--today{border-color:#fff;box-shadow:0 0 0 1px var(--accent),0 0 0 2px #2563eb59;color:#fff}.mini-cal-day:active{transform:scale(.94)}.mini-cal-hint{margin:.3rem 0 0;font-size:.58rem;line-height:1.25;color:var(--muted);text-align:center}@keyframes mini-cal-selected-pulse{0%,to{box-shadow:0 0 #2563eb73}50%{box-shadow:0 0 0 4px #2563eb00}}.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:768px){.board-view--mobile .columns{grid-template-columns:1fr}.topbar{flex-wrap:wrap}.test-mode-panel{margin-left:0}.shortcuts-bar{display:none}.mobile-multiselect-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.date-picker-overlay{place-content:start center;padding:.75rem var(--page-x);align-items:stretch}.date-picker-panel--quick{width:100%;max-width:none;padding:1rem;gap:.75rem}.date-picker-panel--quick h3{font-size:1rem}.date-picker-panel--quick label{font-size:.85rem}.date-picker-panel--quick .mini-cal{width:100%;max-width:none;padding:.65rem;box-sizing:border-box}.date-picker-panel--quick .mini-cal-weekdays,.date-picker-panel--quick .mini-cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.25rem}.date-picker-panel--quick .mini-cal-weekday{font-size:.72rem;line-height:2rem}.date-picker-panel--quick .mini-cal-day{width:100%;height:auto;aspect-ratio:1;min-height:2.5rem;font-size:.95rem;border-radius:var(--radius-sm)}.date-picker-panel--quick .mini-cal-nav{width:2.25rem;height:2.25rem;min-width:2.25rem;font-size:1.1rem}.date-picker-panel--quick .mini-cal-title{font-size:1rem}.date-picker-panel--quick .mini-cal-hint{display:none}.mobile-column-tabs{position:sticky;top:var(--mobile-topbar-height, 9rem);z-index:15;display:flex;gap:.35rem;overflow-x:auto;padding:.35rem 0 .75rem;margin-bottom:.25rem;background:var(--bg, #eef1f6);border-bottom:1px solid var(--border)}.mobile-column-tab{flex-shrink:0}.mobile-column-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:25;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:1.25rem;display:flex;align-items:center;justify-content:center}.mobile-column-arrow--left{left:.35rem}.mobile-column-arrow--right{right:.35rem}.mobile-column-arrow:disabled{opacity:.35}.mobile-column-switch-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:34;pointer-events:none;overflow:hidden}.mobile-column-switch-overlay:before{content:"";position:absolute;top:50%;width:120vmax;height:120vmax;margin-top:-60vmax;border-radius:50%;background:#2563eb2e;transform:scale(calc(.15 + var(--switch-progress, 0) * .85));transition:transform .05s linear}.mobile-column-switch-overlay--left:before{right:100%;margin-right:-3rem;transform-origin:right center}.mobile-column-switch-overlay--right:before{left:100%;margin-left:-3rem;transform-origin:left center}.mobile-column-switch-arrow{position:fixed;top:50%;transform:translateY(-50%);z-index:35;font-size:2rem;font-weight:700;color:var(--accent);text-shadow:0 0 12px rgba(255,255,255,.9);line-height:1}.mobile-column-switch-overlay--left .mobile-column-switch-arrow{left:.75rem}.mobile-column-switch-overlay--right .mobile-column-switch-arrow{right:.75rem}.mobile-column-switch-overlay--committing{opacity:0;transition:opacity .22s ease}.mobile-column-switch-overlay--committing:before{transition:transform .22s ease,opacity .22s ease}.mobile-columns-viewport{overflow:hidden;width:100%}.mobile-columns-track{display:flex;width:100%;transition:transform .38s cubic-bezier(.32,.72,0,1);will-change:transform}.mobile-column-pane{flex:0 0 100%;min-width:0}.mobile-action-bar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;align-items:center;justify-content:center;gap:.35rem;flex-wrap:wrap;padding:.55rem var(--page-x) calc(.55rem + env(safe-area-inset-bottom,0px));background:#fffffff5;border-top:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:2.5rem;min-height:2.5rem;padding:.25rem .4rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);font-size:.72rem;gap:.1rem}.mobile-action-btn span{font-size:.62rem;font-weight:700;color:var(--muted)}.mobile-action-btn--danger{color:#b91c1c;border-color:#fecaca}.mobile-action-hint{width:100%;text-align:center;font-size:.72rem;color:var(--muted)}.app-shell.has-board{min-height:100vh;height:auto}.board-view--mobile{flex:none;overflow:visible;padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.board-view--mobile .columns{flex:none}.board-view--mobile .column{min-height:auto;overflow:visible}.board-view--mobile .column-body{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom,0px))}.board-view--mobile .kanban-card:not(.kanban-card--draggable):not(.dragging){touch-action:pan-y}.board-view--mobile .kanban-card--draggable,.board-view--mobile .kanban-card.dragging{touch-action:none}.active-work-panel{z-index:45}.active-work-dropdown--mobile{position:fixed;left:var(--page-x);right:var(--page-x);top:calc(var(--mobile-topbar-height, 9rem) + .35rem);bottom:auto;max-height:min(55vh,24rem);overflow-y:auto;z-index:60;-webkit-overflow-scrolling:touch}.editor-overlay{z-index:50}}.anim-lab-page{max-width:1100px;margin:0 auto;padding:1.5rem var(--page-x) 3rem}.anim-lab-header h1{margin:0 0 .35rem;font-size:1.35rem}.anim-lab-header p{margin:0 0 1rem;color:var(--muted)}.anim-lab-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.anim-lab-prefs{font-size:.72rem;padding:.35rem .5rem;background:var(--surface-muted);border-radius:var(--radius-sm);word-break:break-all}.anim-lab-section{margin-top:2rem}.anim-lab-section h2{font-size:1rem;margin:0 0 .85rem}.anim-lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.anim-lab-tile{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.anim-lab-tile--selected{border-color:var(--accent);box-shadow:0 0 0 2px #2563eb33}.anim-lab-radio{display:flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600;cursor:pointer}.anim-lab-card{cursor:default;min-height:4.5rem}.anim-lab-playing{animation-duration:.65s;animation-fill-mode:both}.card-checkbox{flex-shrink:0;width:1.15rem;height:1.15rem;border:2px solid var(--border-strong);border-radius:4px;display:flex;align-items:center;justify-content:center;background:var(--surface);color:transparent;transition:background .2s,border-color .2s,color .2s}.card-checkbox--checked{background:var(--success);border-color:var(--success);color:#fff}.kanban-card.status-en-cours{background:#ecfeff;border-color:#67e8f9;border-left:4px solid #0891b2}.kanban-card.status-en-cours .card-title{color:#0e7490;font-weight:600}.kanban-card.status-en-cours.selected{background:var(--accent-soft);border-color:var(--accent);border-left-width:1px}.kanban-card.status-en-cours.selected .card-title{color:var(--text)}.kanban-card.status-fait-partial{background:linear-gradient(to bottom,var(--success-light) 75%,var(--surface) 75%);border-color:var(--success-light-border);border-left:4px solid #4ade80}.kanban-card.status-fait-partial .card-title{color:var(--success-light-text)}@keyframes fait-bounce-check{0%{transform:scale(1)}40%{transform:scale(1.08)}70%{transform:scale(.97)}to{transform:scale(1)}}.anim-fait-bounce-check.card-checkbox--checked,.anim-lab-playing.anim-fait-bounce-check{animation:fait-bounce-check .45s ease}@keyframes fait-ripple-green{0%{box-shadow:0 0 #22c55e80}to{box-shadow:0 0 0 14px #22c55e00}}.anim-fait-ripple-green.anim-lab-playing{animation:fait-ripple-green .55s ease-out}@keyframes fait-scale-pop{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.anim-fait-scale-pop.anim-lab-playing{animation:fait-scale-pop .4s cubic-bezier(.34,1.56,.64,1)}@keyframes fait-confetti-lite{0%,to{filter:brightness(1)}30%{filter:brightness(1.15) hue-rotate(20deg)}60%{filter:brightness(1.05)}}.anim-fait-confetti-lite.anim-lab-playing{animation:fait-confetti-lite .6s ease}@keyframes termine-stamp-slam{0%{transform:scale(1.15) rotate(-3deg);opacity:.7}60%{transform:scale(.98) rotate(0)}to{transform:scale(1);opacity:1}}.anim-termine-stamp-slam.anim-lab-playing{animation:termine-stamp-slam .5s cubic-bezier(.22,1,.36,1)}@keyframes termine-glow-fade-dark{0%{box-shadow:0 0 #14532d99;background:#dcfce7}to{box-shadow:0 0 20px #14532d4d}}.anim-termine-glow-fade-dark.anim-lab-playing{animation:termine-glow-fade-dark .7s ease forwards}@keyframes termine-cascade-shrink{0%{transform:scaleY(1)}50%{transform:scaleY(.92)}to{transform:scaleY(1)}}.anim-termine-cascade-shrink.anim-lab-playing{animation:termine-cascade-shrink .55s ease}@keyframes termine-star-burst{0%{box-shadow:0 0 #fbbf24}50%{box-shadow:0 0 0 8px #fbbf2400}to{box-shadow:none}}.anim-termine-star-burst.anim-lab-playing{animation:termine-star-burst .65s ease}@keyframes encours-pulse-blue{0%,to{box-shadow:0 0 #2563eb59}50%{box-shadow:0 0 0 8px #2563eb00}}.anim-en_cours-pulse-blue{animation:encours-pulse-blue 2s ease-in-out infinite}.anim-en_cours-pulse-blue.anim-lab-playing{animation:encours-pulse-blue .8s ease-in-out 2}@keyframes encours-slide-highlight{0%{background-position:-100% 0}to{background-position:200% 0}}.anim-en_cours-slide-highlight{background-image:linear-gradient(90deg,#eff6ff,#bfdbfe,#eff6ff);background-size:50% 100%;animation:encours-slide-highlight 1.5s ease infinite}@keyframes encours-ring-expand{0%{box-shadow:0 0 #2563eb80}to{box-shadow:0 0 0 12px #2563eb00}}.anim-en_cours-ring-expand.anim-lab-playing{animation:encours-ring-expand .7s ease-out 2}@keyframes encours-border-run{0%{border-color:#2563eb}50%{border-color:#93c5fd}to{border-color:#2563eb}}.anim-en_cours-border-run{animation:encours-border-run 1.2s linear infinite}@keyframes recent-soft-glow{0%,to{box-shadow:0 0 12px #22c55e40}50%{box-shadow:0 0 20px #22c55e73}}.anim-recently_done-soft-glow{animation:recent-soft-glow 2.5s ease-in-out infinite}@keyframes recent-left-bar-fade{0%{border-left-width:8px;border-left-color:#4ade80}to{border-left-width:4px;border-left-color:#86efac}}.anim-recently_done-left-bar-fade{border-left:8px solid #4ade80;animation:recent-left-bar-fade 3s ease-in-out infinite alternate}@keyframes recent-shimmer-once{0%{background-position:-200% 0}to{background-position:200% 0}}.anim-recently_done-shimmer-once{background-image:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);background-size:50% 100%;animation:recent-shimmer-once 2s ease-in-out infinite}@keyframes recent-tint-decay{0%{background-color:#bbf7d0}to{background-color:var(--success-light)}}.anim-recently_done-tint-decay{animation:recent-tint-decay 4s ease-in-out infinite alternate}
