@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Bricolage+Grotesque:wght@400;500;600;700&display=swap");:root{--color-brand-50:#f0f5ff;--color-brand-100:#d7e4fe;--color-brand-200:#b1cafb;--color-brand-300:#80a7f5;--color-brand-400:#5184ec;--color-brand-500:#2966e0;--color-brand-600:#1c54c4;--color-brand-700:#1745a1;--color-brand-800:#153779;--color-brand-900:#122854;--color-gray-0:#fff;--color-gray-50:#f9fafb;--color-gray-100:#f0f2f4;--color-gray-150:#e5e7eb;--color-gray-200:#d7dae0;--color-gray-300:#b5bac4;--color-gray-400:#8a919e;--color-gray-500:#676d79;--color-gray-600:#4d525c;--color-gray-700:#373b43;--color-gray-800:#262a31;--color-gray-900:#181b20;--color-gray-950:#0f1115;--color-priority-jour:#f04438;--color-priority-jour-bg:#fff1f0;--color-priority-semaine:#f4852a;--color-priority-semaine-bg:#fff7f0;--color-priority-mois:#e7b008;--color-priority-mois-bg:#fffaeb;--color-priority-trimestre:#21c45d;--color-priority-trimestre-bg:#f2fdf6;--color-status-a-faire:#8a919e;--color-status-en-cours:#2086f3;--color-status-en-attente:#7c3bed;--color-status-complete:#21c45d;--color-status-validee:#1daf8d;--color-status-annulee:#999;--color-surface:var(--color-gray-0);--color-surface-soft:var(--color-gray-50);--color-surface-hover:var(--color-gray-100);--color-border:var(--color-gray-150);--color-border-strong:var(--color-gray-200);--color-text-primary:var(--color-gray-900);--color-text-secondary:var(--color-gray-500);--color-text-tertiary:var(--color-gray-400);--color-brand:var(--color-brand-500);--color-brand-hover:var(--color-brand-600);--font-display:"Bricolage Grotesque",sans-serif;--font-body:"Inter",sans-serif;--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--leading-tight:1.25;--leading-normal:1.5;--leading-loose:1.75;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-xs:0 1px 2px 0 rgba(24,27,32,.05);--shadow-sm:0 1px 3px 0 rgba(24,27,32,.08),0 1px 2px -1px rgba(24,27,32,.05);--shadow-md:0 4px 6px -1px rgba(24,27,32,.07),0 2px 4px -2px rgba(24,27,32,.05);--shadow-lg:0 10px 15px -3px rgba(24,27,32,.08),0 4px 6px -4px rgba(24,27,32,.05);--shadow-xl:0 20px 25px -5px rgba(24,27,32,.1),0 8px 10px -6px rgba(24,27,32,.05);--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-normal:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--sidebar-width:260px;--header-height:60px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text-primary);background-color:var(--color-surface-soft);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,video{max-width:100%;height:auto}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100dvh;width:100%}.app-sidebar-wrapper{grid-column:1;width:var(--sidebar-width);min-width:var(--sidebar-width);height:100%}.app-sidebar{width:100%;height:100dvh;border-right:1px solid var(--color-border);flex-direction:column;overflow-y:auto;overflow-x:hidden;padding:var(--space-4) var(--space-3);gap:var(--space-1)}.app-header,.app-sidebar{background:var(--color-surface);display:flex;position:-webkit-sticky;position:sticky;top:0}.app-header{border-bottom:1px solid var(--color-border);height:var(--header-height);align-items:center;padding:0 var(--space-6);gap:var(--space-4);z-index:10;box-shadow:var(--shadow-xs)}.app-main{grid-column:2;width:100%;min-width:0;padding:var(--space-6);overflow-x:hidden}.app-shell-terrain{grid-template-columns:1fr;display:block}.app-main-terrain{padding:12px;max-width:650px;margin:0 auto}.task-detail-layout{display:flex;gap:24px;align-items:flex-start}.task-detail-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:24px}@media (max-width:1024px){.task-detail-layout{flex-direction:column}.task-sidebar{max-width:100%;position:static}}.sidebar-logo{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-2);margin-bottom:var(--space-4);border-radius:var(--radius-md)}.sidebar-logo-icon{width:36px;height:36px;background:var(--color-brand);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;flex-shrink:0}.sidebar-logo-text{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.sidebar-section-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-tertiary);padding:var(--space-3) var(--space-2) var(--space-1);margin-top:var(--space-3)}.sidebar-nav-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);min-height:44px;border:none;background:none;width:100%;text-align:left;text-decoration:none}.sidebar-nav-item:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-nav-item.active{background:var(--color-brand-50);color:var(--color-brand-600);font-weight:600}.sidebar-nav-item.active .nav-icon{color:var(--color-brand-500)}.nav-icon{width:18px;height:18px;flex-shrink:0}.sidebar-footer{margin-top:auto;padding-top:var(--space-4);border-top:1px solid var(--color-border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;line-height:1;cursor:pointer;border:1px solid transparent;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);min-height:40px;white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-primary{background:var(--color-brand);color:#fff;border-color:var(--color-brand)}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover);border-color:var(--color-brand-hover);box-shadow:0 0 0 3px rgba(41,102,224,.15)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-gray-300)}.btn-ghost{background:transparent;color:var(--color-text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);color:var(--color-text-primary)}.btn-danger{background:#fef1f1;color:#dc2828;border-color:#fbd0d0}.btn-danger:hover:not(:disabled){background:#fde3e3}.btn-sm{min-height:32px;padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{min-height:48px;padding:var(--space-3) var(--space-6);font-size:var(--text-base)}.btn-icon{min-height:36px;min-width:36px;padding:var(--space-2);border-radius:var(--radius-md)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary)}.form-label.required:after{content:" *";color:var(--color-priority-jour)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-primary);background:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);min-height:44px}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-brand);box-shadow:0 0 0 3px rgba(41,102,224,.12)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-tertiary)}.form-textarea{resize:vertical;min-height:100px;line-height:var(--leading-normal)}.form-error{color:#dc2828;display:flex;align-items:center;gap:var(--space-1)}.form-error,.form-hint{font-size:var(--text-xs)}.form-hint{color:var(--color-text-tertiary)}.card{background:var(--color-surface);border:1px solid rgba(226,232,240,.9);border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 rgba(0,0,0,.04),0 1px 2px -1px rgba(0,0,0,.02);transition:transform var(--transition-normal),box-shadow var(--transition-normal),border-color var(--transition-normal)}.card-interactive:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px rgba(0,0,0,.06),0 8px 10px -6px rgba(0,0,0,.04);border-color:rgba(59,130,246,.4)}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background:var(--color-surface-soft);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.badge-priority{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1}.badge-priority-JOUR{background:var(--color-priority-jour-bg);color:var(--color-priority-jour)}.badge-priority-SEMAINE{background:var(--color-priority-semaine-bg);color:var(--color-priority-semaine)}.badge-priority-MOIS{background:var(--color-priority-mois-bg);color:var(--color-priority-mois)}.badge-priority-TRIMESTRE{background:var(--color-priority-trimestre-bg);color:var(--color-priority-trimestre)}.badge-priority-ANNEE{background:#f0f6fe;color:#0a5adb;border:1px solid #b6d1fc}.task-sidebar{display:flex;flex-direction:column;gap:16px;width:100%;max-width:320px;flex-shrink:0;align-self:flex-start;position:-webkit-sticky;position:sticky;top:80px}.props-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06)}.props-card-header{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.props-card-header-icon{font-size:14px;color:#64748b}.props-card-header-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.props-card-body{display:flex;flex-direction:column}.prop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;border-bottom:1px solid #f1f5f9;min-height:44px}.prop-row:last-child{border-bottom:none}.prop-row.prop-row-col{flex-direction:column;align-items:stretch;gap:8px}.prop-row-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;flex-shrink:0}.prop-row-value{justify-content:flex-end;flex:1 1;min-width:0}.prop-row-header,.prop-row-value{display:flex;align-items:center;gap:8px}.prop-row-header{justify-content:space-between}.prop-select-inline{padding:5px 8px;border-radius:7px;border:1px solid #e2e8f0;background:#f8fafc;font-size:12px;font-weight:600;color:#334155;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s;max-width:130px}.prop-select-inline:hover{border-color:#94a3b8}.prop-select-inline:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.prop-select-full{width:100%;padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;font-size:13px;font-weight:500;color:#0f172a;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.prop-select-full:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.prop-date-input{width:100%;padding:8px 12px;border-radius:8px;border:1px solid #e2e8f0;background:#f8fafc;font-size:13px;font-weight:500;color:#0f172a;cursor:pointer;outline:none;transition:border-color .15s,box-shadow .15s}.prop-date-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.12)}.prop-action-btn{display:inline-flex;align-items:center;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;border:1px solid #bfdbfe;background:#eff6ff;color:#2563eb;transition:background .15s,color .15s;white-space:nowrap}.prop-action-btn:hover{background:#dbeafe;color:#1d4ed8}.prop-action-btn.prop-action-btn-danger{background:#fef2f2;color:#dc2626;border-color:#fecaca}.prop-action-btn.prop-action-btn-danger:hover{background:#fee2e2;color:#b91c1c}.prop-project-link{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1e293b;text-decoration:none;transition:color .15s;overflow:hidden}.prop-project-link:hover{color:#2563eb}.prop-project-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.prop-project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-overdue-badge{display:inline-block;font-size:11px;font-weight:700;color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:5px;padding:2px 8px}.prop-empty-hint{font-size:12px;color:#94a3b8;font-style:italic}.prop-meta-section{padding:12px 18px;display:flex;flex-direction:column;gap:8px;background:#f8fafc;border-top:1px solid #f1f5f9}.prop-meta-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.prop-meta-label{font-size:11px;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.prop-meta-value{font-size:12px;font-weight:500;color:#334155}.prop-meta-muted{color:#94a3b8;font-style:italic}.prop-validated-badge{font-size:11px;font-weight:700;color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:5px;padding:2px 8px}.assignee-picker{border:1px solid #e2e8f0;border-radius:10px;background:#fff;overflow:hidden;max-height:200px;overflow-y:auto;box-shadow:0 4px 12px rgba(0,0,0,.08)}.assignee-picker-item{display:flex;align-items:center;gap:10px;padding:9px 14px;width:100%;background:none;cursor:pointer;font-size:13px;font-weight:500;color:#1e293b;text-align:left;border:none;border-bottom:1px solid #f1f5f9;transition:background .12s}.assignee-picker-item:last-child{border-bottom:none}.assignee-picker-item:hover{background:#eff6ff}.assignee-picker-name{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-picker-empty{padding:14px;font-size:12px;color:#94a3b8;font-style:italic;text-align:center}.assignee-spinner{font-size:14px;color:#2563eb;animation:spin 1s linear infinite}.assignee-list{display:flex;flex-direction:column;gap:6px}.assignee-row{display:flex;align-items:center;gap:10px;padding:7px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;transition:background .12s,border-color .12s}.assignee-row:hover{background:#f1f5f9;border-color:#cbd5e1}.assignee-row-name{flex:1 1;font-size:13px;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignee-row-remove{background:none;border:none;font-size:13px;color:#cbd5e1;cursor:pointer;padding:3px 5px;border-radius:5px;transition:color .12s,background .12s;line-height:1}.assignee-row-remove:hover{background:#fef2f2;color:#ef4444}.assignee-av{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}.assignee-av-blue{background:#dbeafe;color:#1d4ed8}.assignee-av-brand{background:#2563eb;color:#fff}.validate-card{background:#fff;border:1px solid #fde68a;border-left:3px solid #f59e0b;border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.04)}.validate-card-header{display:flex;align-items:center;gap:8px;padding:12px 16px 8px}.validate-card-icon{font-size:14px}.validate-card-title{font-size:12px;font-weight:700;color:#92400e;text-transform:uppercase;letter-spacing:.06em}.validate-card-body{padding:0 16px 12px;font-size:12px;color:#78350f;line-height:1.5}.validate-card-actions{display:flex;gap:8px;padding:12px 16px;background:#fffbeb;border-top:1px solid #fde68a}.validate-btn{flex:1 1;padding:9px 14px;border-radius:8px;border:none;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .15s}.validate-btn:disabled{opacity:.5;cursor:not-allowed}.validate-btn:active:not(:disabled){transform:scale(.97)}.validate-btn-approve{background:#16a34a;color:#fff}.validate-btn-approve:hover:not(:disabled){background:#15803d}.validate-btn-reject{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.validate-btn-reject:hover:not(:disabled){background:#fee2e2}.history-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.06)}.history-card-header{display:flex;align-items:center;gap:8px;padding:14px 18px;background:#f8fafc;border-bottom:1px solid #e2e8f0}.history-card-icon{font-size:14px}.history-card-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.history-card-body{padding:16px 18px;max-height:280px;overflow-y:auto}.history-timeline{display:flex;flex-direction:column;gap:16px;padding-left:16px;border-left:2px solid #e2e8f0}.history-entry{position:relative;display:flex;gap:12px}.history-dot{position:absolute;left:-21px;top:4px;width:8px;height:8px;border-radius:50%;background:#94a3b8;border:2px solid #fff;box-shadow:0 0 0 1px #e2e8f0}.history-content{flex:1 1}.history-author{font-size:12px;font-weight:600;color:#334155}.history-action{font-size:12px;color:#64748b}.history-time{font-size:10px;color:#94a3b8;margin-top:2px}.history-empty{font-size:12px;color:#94a3b8;font-style:italic;text-align:center;padding:8px 0}.badge-status{display:inline-flex;align-items:center;gap:var(--space-1);padding:3px var(--space-2);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500}.badge-status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-status-A_FAIRE{color:var(--color-status-a-faire);background:#f4f4f6}.badge-status-EN_COURS{color:var(--color-status-en-cours);background:#ecf4fe}.badge-status-EN_ATTENTE{color:var(--color-status-en-attente);background:#f3ecfd}.badge-status-COMPLETE{color:var(--color-status-complete);background:#eefcf3}.badge-status-VALIDEE{color:var(--color-status-validee);background:#edfcf9}.badge-status-ANNULEE{color:var(--color-status-annulee);background:#f5f5f5}.task-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);cursor:pointer;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast);display:flex;flex-direction:column;gap:var(--space-3)}.task-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong);transform:translateY(-1px)}.task-card.dragging{opacity:.5;box-shadow:var(--shadow-xl)}.task-card-title{font-size:var(--text-sm);font-weight:500;color:var(--color-text-primary);line-height:var(--leading-tight)}.task-card-title.done{text-decoration:line-through;color:var(--color-text-tertiary)}.task-card-meta{gap:var(--space-2);flex-wrap:wrap}.task-card-due,.task-card-meta{display:flex;align-items:center}.task-card-due{font-size:var(--text-xs);color:var(--color-text-tertiary);gap:var(--space-1)}.task-card-due.overdue{color:var(--color-priority-jour);font-weight:500}.avatar{border-radius:var(--radius-full);object-fit:cover;flex-shrink:0}.avatar-sm{width:28px;height:28px;font-size:var(--text-xs)}.avatar-md{width:36px;height:36px;font-size:var(--text-sm)}.avatar-lg{width:48px;height:48px;font-size:var(--text-base)}.avatar-placeholder{display:inline-flex;align-items:center;justify-content:center;background:var(--color-brand-100);color:var(--color-brand-700);font-weight:600;border-radius:var(--radius-full);flex-shrink:0}.avatar-stack{display:flex}.avatar-stack .avatar,.avatar-stack .avatar-placeholder{border:2px solid var(--color-surface);margin-left:-8px}.avatar-stack .avatar-placeholder:first-child,.avatar-stack .avatar:first-child{margin-left:0}.modal-backdrop{position:fixed;inset:0;background:rgba(24,27,32,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn var(--transition-normal) forwards}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:580px;max-height:90dvh;display:flex;flex-direction:column;animation:slideUp var(--transition-normal) forwards}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-shrink:0}.modal-title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-text-primary)}.modal-body{padding:var(--space-6);overflow-y:auto;flex:1 1;display:flex;flex-direction:column;gap:var(--space-5)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;gap:var(--space-3);justify-content:flex-end;flex-shrink:0}.kanban-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--space-4);gap:var(--space-4);align-items:start}.kanban-column{background:var(--color-surface-soft);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:var(--space-2);min-height:200px}.kanban-column-header{padding:var(--space-4) var(--space-4) var(--space-3);display:flex;align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border)}.kanban-column-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text-primary);flex:1 1}.kanban-column-count{font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-gray-100);padding:2px 6px;border-radius:var(--radius-full);font-weight:600}.kanban-column-body{padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.kanban-drop-zone{min-height:60px;border-radius:var(--radius-md);border:2px dashed transparent;transition:border-color var(--transition-fast),background var(--transition-fast)}.kanban-drop-zone.drag-over{border-color:var(--color-brand-300);background:var(--color-brand-50)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:linear-gradient(135deg,var(--color-brand-50) 0,var(--color-gray-50) 50%,#f6f1fe 100%)}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--space-10);width:100%;max-width:440px}.auth-logo{gap:var(--space-3);margin-bottom:var(--space-8)}.auth-logo,.auth-logo-icon{display:flex;align-items:center}.auth-logo-icon{width:48px;height:48px;background:var(--color-brand);border-radius:var(--radius-md);justify-content:center;color:#fff;font-size:24px}.auth-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em;margin-bottom:var(--space-1)}.auth-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-8)}.auth-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--color-border)}.btn-oauth{width:100%;background:var(--color-surface);border:1px solid var(--color-border-strong);color:var(--color-text-primary);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:var(--space-3);transition:background var(--transition-fast),box-shadow var(--transition-fast);min-height:44px}.btn-oauth:hover{background:var(--color-surface-hover);box-shadow:var(--shadow-sm)}.page-header{margin-bottom:var(--space-6);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.page-subtitle{margin-top:var(--space-1)}.breadcrumb,.page-subtitle{font-size:var(--text-sm);color:var(--color-text-secondary)}.breadcrumb{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.breadcrumb-sep{color:var(--color-text-tertiary)}.filters-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-6)}.search-input-wrapper{position:relative;flex:1 1;min-width:200px;max-width:360px}.search-input-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none;width:16px;height:16px}.search-input{padding-left:var(--space-10)}.filter-chip{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);min-height:36px}.filter-chip.active,.filter-chip:hover{background:var(--color-brand-50);color:var(--color-brand-600);border-color:var(--color-brand-200)}.audit-timeline{display:flex;flex-direction:column;gap:0}.audit-entry{display:grid;grid-template-columns:40px 1fr;grid-gap:0 var(--space-3);gap:0 var(--space-3);position:relative}.audit-entry:not(:last-child):before{content:"";position:absolute;left:19px;top:36px;bottom:0;width:2px;background:var(--color-border)}.audit-dot{width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-surface-soft);border:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;color:var(--color-text-tertiary);flex-shrink:0}.audit-content{padding-bottom:var(--space-5)}.audit-action{font-size:var(--text-sm);color:var(--color-text-primary);font-weight:500}.audit-meta{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.mobile-header{display:none!important}@media (max-width:768px){:root{--sidebar-width:0px}.mobile-header{display:flex!important}.app-shell{display:flex;flex-direction:column;min-height:100dvh}.app-sidebar-wrapper{position:fixed;top:0;left:0;width:280px;height:100dvh;z-index:200;transform:translateX(-100%);transition:transform var(--transition-normal);box-shadow:var(--shadow-xl)}.app-sidebar-wrapper.open{transform:translateX(0)}.app-sidebar{width:100%!important;height:100%!important;position:static!important;transform:none!important}.sidebar-overlay{position:fixed;inset:0;background:rgba(24,27,32,.4);z-index:190;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--transition-fast) forwards}.app-main{padding:var(--space-4)}.kanban-board{grid-template-columns:1fr}.modal{max-height:95dvh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;align-self:flex-end;margin-bottom:0}.modal-backdrop{align-items:flex-end;padding:0}.auth-card{padding:var(--space-6)}.page-header{flex-direction:column;align-items:stretch}}@media print{.app-header,.app-sidebar,.btn,.filters-bar,.no-print{display:none!important}.app-shell{display:block}body{background:#fff;color:#000;font-size:11pt}.card{border:1px solid #ccc;box-shadow:none;page-break-inside:avoid}.print-title{font-size:18pt;font-weight:700;margin-bottom:12pt}table{width:100%;border-collapse:collapse}td,th{border:1px solid #ccc;padding:6pt 8pt;text-align:left}th{background:#f0f0f0;font-weight:700}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);border-width:0}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.truncate{text-overflow:ellipsis}.flex-1{flex:1 1}.flex-center{justify-content:center}.flex-between,.flex-center{display:flex;align-items:center}.flex-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-muted{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.font-semibold{font-weight:600}.font-bold{font-weight:700}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}