.layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.navbar{background:#1e293b;flex-shrink:0;height:48px;justify-content:space-between;padding:0 1.25rem}.navbar,.navbar-brand a{align-items:center;color:#fff;display:flex}.navbar-brand a{font-size:1rem;font-weight:700;gap:.25rem;text-decoration:none}.brand-icon{font-size:1.15rem}.navbar-links{display:flex;gap:.5rem}.nav-btn{align-items:center;background:#0000;border:1px solid #60a5fa;border-radius:4px;color:#60a5fa;display:inline-flex;font-size:.75rem;font-weight:500;justify-content:center;min-width:90px;padding:.3rem .85rem;text-decoration:none;transition:all .15s;white-space:nowrap}.nav-btn:hover{text-decoration:none}.nav-btn-active,.nav-btn:hover{background:#3b82f6;border-color:#3b82f6;color:#fff}.nav-btn-active{font-weight:600}.navbar-user{align-items:center;display:flex;font-size:.75rem;gap:.5rem}.navbar-username{border-right:1px solid #475569;color:#e2e8f0;font-weight:600;margin-right:.25rem;padding-right:.5rem;white-space:nowrap}.btn-view{background:#0000;border:1px solid #a78bfa;border-radius:4px;color:#a78bfa;cursor:pointer;font-size:.75rem;font-weight:500;min-width:90px;padding:.3rem .85rem;transition:all .15s;white-space:nowrap}.btn-view.active,.btn-view:hover{background:#7c3aed;border-color:#7c3aed;color:#fff}.btn-view.active{font-weight:600}.btn-logout{background:#0000;border:1px solid #94a3b8;border-radius:4px;color:#cbd5e1;cursor:pointer;font-size:.75rem;padding:.3rem .75rem;transition:all .15s}.btn-logout:hover{background:#334155;color:#fff}.main-content{flex:1 1;margin:0 auto;max-width:1400px;padding:1.25rem;width:100%}.navbar-menu{display:contents}.navbar-backdrop,.navbar-mode-badge,.navbar-toggle{display:none}@media (max-width:768px){.navbar{flex-wrap:nowrap;height:52px;padding:0 .5rem 0 .75rem;position:relative;z-index:30}.navbar-brand{align-items:center;display:flex;gap:.5rem}.navbar-mode-badge{background:#7c3aed;border-radius:4px;color:#fff;display:inline-block;font-size:.65rem;font-weight:600;letter-spacing:.03em;padding:.1rem .4rem;text-transform:uppercase}.navbar-toggle{align-items:center;background:#0000;border:none;display:flex;flex-shrink:0;height:var(--touch-target);justify-content:center;padding:0;width:var(--touch-target)}.burger,.burger:after,.burger:before{background:#e2e8f0;border-radius:2px;display:block;height:2px;transition:transform .2s,background .2s;width:22px}.burger{position:relative}.burger:after,.burger:before{content:"";left:0;position:absolute}.burger:before{top:-7px}.burger:after{top:7px}.burger-open{background:#0000}.burger-open:after,.burger-open:before{top:0}.burger-open:before{transform:rotate(45deg)}.burger-open:after{transform:rotate(-45deg)}.navbar-menu{background:#1e293b;border-top:1px solid #334155;box-shadow:0 8px 24px #00000040;display:none;flex-direction:column;gap:.75rem;left:0;max-height:calc(100dvh - 52px);overflow-y:auto;padding:.75rem;position:absolute;right:0;top:52px;z-index:30}.navbar-menu-open{display:flex}.navbar-backdrop{background:#0006;display:block;inset:52px 0 0 0;position:fixed;z-index:20}.navbar-links{flex-direction:column;gap:.4rem;width:100%}.nav-btn{font-size:.9rem;min-height:var(--touch-target);min-width:0;padding:.5rem .85rem;width:100%}.navbar-user{align-items:stretch;border-top:1px solid #334155;flex-direction:column;gap:.4rem;padding-top:.75rem;width:100%}.navbar-username{border-right:none;font-size:.85rem;margin:0;padding:0 0 .25rem;text-align:center}.btn-logout,.btn-view{font-size:.9rem;min-height:var(--touch-target);min-width:0;width:100%}.main-content{padding:.75rem}}.login-page{align-items:center;background:#f5f7fa;display:flex;justify-content:center;min-height:100vh;min-height:100dvh;padding:1rem}.login-card{background:#fff;border-radius:12px;box-shadow:0 4px 24px #00000014;max-width:400px;padding:2.5rem;width:100%}.login-card h1{color:#1e293b;font-size:1.5rem;margin-bottom:.15rem;text-align:center}.login-fullname{color:#94a3b8;font-size:.75rem;font-weight:500;letter-spacing:.05em;margin-bottom:.25rem;text-align:center}.login-subtitle{color:#64748b;font-size:.9rem;margin-bottom:1.5rem;text-align:center}.remember-me{margin-bottom:1rem}.remember-me label{align-items:center;color:#475569;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem}.remember-me input[type=checkbox]{accent-color:#2563eb;width:auto}@media (max-width:480px){.login-card{padding:1.5rem 1.25rem}.remember-me label{font-size:.9rem;min-height:var(--touch-target)}.remember-me input[type=checkbox]{height:20px;width:20px}}.table-container{display:flex;flex-direction:column}.table-toolbar{display:flex;justify-content:flex-end;margin-bottom:.4rem}.col-toggle-wrapper{position:relative}.btn-col-toggle{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#64748b;cursor:pointer;font-size:.72rem;padding:.25rem .6rem;transition:all .15s}.btn-col-toggle:hover{background:#f1f5f9;color:#1e293b}.col-menu{background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 4px 16px #0000001f;margin-top:.25rem;min-width:170px;padding:.35rem 0;position:absolute;right:0;top:100%;z-index:50}.col-menu-item{align-items:center;color:#334155;cursor:pointer;display:flex;font-size:.72rem;gap:.4rem;padding:.3rem .75rem;white-space:nowrap}.col-menu-item:hover{background:#f1f5f9}.col-menu-item input[type=checkbox]{accent-color:#2563eb;width:auto}.table-scroll{border-radius:8px;box-shadow:0 1px 3px #00000014;max-height:calc(100vh - 170px);overflow:auto;overscroll-behavior-x:contain}.sortable-table{background:#fff;border-collapse:collapse;table-layout:auto;width:100%}.sortable-table thead th{position:sticky;top:0;z-index:10}.sortable-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;border-right:1px solid #e2e8f0;color:#64748b;font-size:.72rem;font-weight:600;padding:.45rem .75rem .45rem .5rem;position:relative;text-align:left;white-space:nowrap}.sortable-table th:last-child{border-right:none}.sortable-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-table th.sortable:hover{color:#2563eb}.th-content{display:inline}.sort-indicator{color:#2563eb;font-size:.6rem}.col-resizer{bottom:0;cursor:col-resize;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none;width:6px;z-index:11}.col-resizer:active,.col-resizer:hover{background:#93c5fd}.sortable-table td{border-bottom:1px solid #e2e8f0;border-right:1px solid #f1f5f9;font-size:.78rem;overflow:hidden;padding:.35rem .5rem;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.sortable-table td:last-child{border-right:none}.sortable-table tbody tr:hover{background:#f8fafc}.sortable-table tbody tr.clickable-row{cursor:pointer}.sortable-table tbody tr.clickable-row:hover{background:#eef2ff}.empty-row{color:#94a3b8;padding:2rem!important;text-align:center;white-space:normal!important}@media (max-width:768px){.table-scroll{max-height:calc(100dvh - 200px)}.sortable-table{min-width:100%;table-layout:auto!important;width:max-content}.sortable-table td,.sortable-table th{font-size:.82rem;padding:.6rem .65rem}.sortable-table th{font-size:.75rem;padding-bottom:.8rem;padding-top:.8rem}.sort-indicator{font-size:.7rem}.sortable-table td:first-child,.sortable-table th:first-child{background:#fff;box-shadow:1px 0 0 #e2e8f0;left:0;position:sticky;z-index:5}.sortable-table thead th:first-child{background:#f8fafc;z-index:15}.sortable-table td.empty-row{box-shadow:none;position:static}.col-resizer{display:none}.btn-col-toggle{font-size:.8rem;min-height:var(--touch-target-sm);padding:.4rem .75rem}.col-menu-item{font-size:.85rem;min-height:var(--touch-target);padding:.5rem .9rem}.col-menu-item input[type=checkbox]{height:18px;width:18px}}.badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .55rem;white-space:nowrap}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#dbeafe;color:#1e40af}.badge-secondary{background:#f1f5f9;color:#475569}@media (max-width:768px){.badge{font-size:.8rem;padding:.25rem .6rem}}.page{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.page-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.page-header h2{color:#1e293b;font-size:1.1rem}.btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;display:inline-flex;font-size:.78rem;font-weight:500;gap:.25rem;padding:.4rem .85rem;transition:all .15s}.btn:hover{background:#f9fafb;text-decoration:none}.btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-danger{background:#ef4444;border-color:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-secondary{background:#f1f5f9;border-color:#e2e8f0;color:#475569}.btn-small{font-size:.7rem;padding:.2rem .5rem}.btn-full{justify-content:center;width:100%}.btn:disabled{cursor:not-allowed;opacity:.6}.form-group{margin-bottom:.85rem}.form-group label{color:#374151;display:block;font-size:.78rem;font-weight:500;margin-bottom:.25rem}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;padding:.4rem .55rem;transition:border-color .15s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;max-width:600px;padding:1.25rem}.form-row{grid-gap:.85rem;display:grid;gap:.85rem;grid-template-columns:1fr 1fr}.form-actions{display:flex;gap:.5rem;margin-top:1rem}.error-message{background:#fee2e2;color:#991b1b}.error-message,.success-message{border-radius:6px;font-size:.78rem;margin-bottom:.85rem;padding:.4rem .65rem}.success-message{background:#dcfce7;color:#166534}.filters-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}.filter-input{border:1px solid #d1d5db;border-radius:6px;font-size:.82rem;min-width:240px;padding:.4rem .65rem;transition:border-color .15s}.filter-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.cell-overdue{background:#fee2e2!important;color:#991b1b;font-weight:600}.cell-editable{cursor:text}.cell-editable:hover{background:#f0f4ff}.cell-edit-input{background:#fff;border:1px solid #93c5fd;border-radius:3px;box-shadow:0 0 0 2px #2563eb26;font-family:inherit;font-size:inherit;outline:none;padding:.15rem .3rem;width:100%}td.row-actions{text-align:right;white-space:nowrap}.row-actions-inner{display:inline-flex;gap:.25rem}.tag-list{display:flex;flex-wrap:nowrap;gap:.15rem;min-width:max-content}.tag-inline{background:#e0e7ff;border-radius:8px;color:#3730a3;display:inline-block;font-size:.65rem;padding:.05rem .35rem;white-space:nowrap}.tag-inline.tag-todo-done{background:#dcfce7;color:#166534}.counter-cell{text-align:center}.counter-link{align-items:center;background:#eef2ff;border-radius:6px;color:#2563eb;cursor:pointer;display:inline-flex;font-size:.75rem;font-weight:600;height:24px;justify-content:center;min-width:24px;padding:0 .3rem;transition:all .15s}.counter-link.counter-red{background:#fee2e2;color:#dc2626}.counter-link.counter-red:hover{background:#dc2626;color:#fff}.counter-link.counter-green{background:#dcfce7;color:#16a34a}.counter-link.counter-green:hover{background:#16a34a;color:#fff}.counter-link:hover{background:#2563eb;color:#fff}.counter-link.counter-disabled{cursor:default;opacity:.5}.counter-link.counter-disabled:hover{background:inherit;color:inherit}.inline-pending-section{border-top:1px solid #e2e8f0;margin-top:1rem;padding-top:.85rem}.inline-pending-section h4{color:#1e293b;font-size:.85rem;margin:0}.pending-item{align-items:center;background:#f1f5f9;border-radius:6px;color:#334155;display:flex;font-size:.78rem;justify-content:space-between;margin-bottom:.4rem;padding:.4rem .65rem}.inline-contact-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:.5rem;padding:.85rem}.inline-contact-section h4{color:#1e293b;font-size:.82rem;margin:0 0 .65rem}.admin-tabs{border-bottom:2px solid #e2e8f0;display:flex;gap:0;margin-bottom:1.25rem}.admin-tab{border-bottom:2px solid #0000;color:#64748b;cursor:pointer;font-size:.82rem;font-weight:500;margin-bottom:-2px;padding:.5rem 1rem;text-decoration:none;transition:all .15s}.admin-tab:hover{color:#1e293b;text-decoration:none}.admin-tab.active{border-bottom-color:#2563eb;color:#2563eb;font-weight:600}@media (max-width:768px){.form-row{grid-template-columns:1fr}.page-header{align-items:stretch;flex-direction:column}.cell-edit-input,.filter-input,.form-group input,.form-group select,.form-group textarea,.inline-form-card .form-group input,.inline-form-card .form-group select,.inline-form-card .form-group textarea,.tag-create input{font-size:var(--mobile-input-font);padding:.5rem .65rem}.btn{font-size:.85rem;min-height:var(--touch-target);padding:.55rem 1rem}.btn-small{font-size:.78rem;min-height:var(--touch-target-sm);padding:.35rem .7rem}.filters-row{align-items:stretch;flex-direction:column}.filter-input{min-width:0;width:100%}.page-header .btn{justify-content:center;width:100%}.row-actions-inner{gap:.4rem}.counter-link{font-size:.85rem;height:var(--touch-target-sm);min-width:var(--touch-target-sm)}.form-actions{flex-direction:column;gap:.5rem}.form-actions .btn,.form-actions .btn-small{font-size:.9rem;justify-content:center;min-height:var(--touch-target);width:100%}.form-card{max-width:100%;padding:1rem}.inline-form-card{padding:.85rem}.inline-contact-section{padding:.75rem}.tag-chip{font-size:.85rem;min-height:var(--touch-target-sm);padding:.4rem .9rem}.tag-create{align-items:stretch;flex-direction:column}.tag-create input{max-width:100%}.pending-item{font-size:.85rem;gap:.5rem}.admin-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}.admin-tab{align-items:center;display:inline-flex;font-size:.88rem;min-height:var(--touch-target);white-space:nowrap}}.tag-selector{display:flex;flex-direction:column;gap:.5rem}.tag-chips{display:flex;flex-wrap:wrap;gap:.35rem}.tag-chip{background:#fff;border:1px solid #d1d5db;border-radius:16px;color:#374151;font-size:.8rem;padding:.25rem .6rem;transition:all .15s}.tag-chip:hover{border-color:#2563eb;color:#2563eb}.tag-chip.selected{background:#2563eb;border-color:#2563eb;color:#fff}.tag-create{align-items:center;display:flex;gap:.35rem}.tag-create input{border:1px solid #d1d5db;border-radius:4px;flex:1 1;font-size:.85rem;max-width:200px;padding:.3rem .5rem}.confirm-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.confirm-box{background:#fff;border-radius:8px;box-shadow:0 8px 32px #00000026;max-width:400px;padding:1.5rem;width:90%}.confirm-box p{font-size:.95rem;line-height:1.5;margin-bottom:1.25rem}.confirm-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}@media (max-width:768px){.confirm-overlay{align-items:flex-end}.confirm-box{animation:confirm-slide-up .2s ease-out;border-radius:16px 16px 0 0;max-width:100%;padding:1.25rem 1.25rem 1.5rem;width:100%}.confirm-box p{font-size:1rem}.confirm-actions{flex-direction:column-reverse;gap:.5rem}.confirm-actions .btn{font-size:.95rem;justify-content:center;min-height:var(--touch-target);width:100%}}@keyframes confirm-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.contact-detail-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #00000014;max-width:700px;padding:1.5rem}.detail-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.detail-field{display:flex;flex-direction:column;gap:.15rem}.detail-label{color:#64748b;font-size:.78rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.detail-value{color:#1e293b;font-size:.92rem}.detail-section{margin-bottom:.75rem}.detail-comments{background:#f8fafc;border-radius:6px;color:#475569;font-size:.9rem;margin-top:.25rem;padding:.6rem .75rem;white-space:pre-wrap}.contact-section{margin-top:2rem}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.section-title{border-bottom:2px solid #e2e8f0;color:#1e293b;font-size:1.1rem;margin:0;padding-bottom:.5rem}.section-header .section-title{border-bottom:none;padding-bottom:0}.section-empty{color:#94a3b8;font-size:.9rem;padding:1rem 0}.inline-table-wrapper{overflow-x:auto;overscroll-behavior-x:contain}.inline-form-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;padding:1rem 1.25rem}.inline-form-card .form-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr}.inline-form-card .form-group{margin-bottom:.75rem}.inline-form-card .form-group label{font-size:.8rem}.inline-form-card .form-group input,.inline-form-card .form-group select,.inline-form-card .form-group textarea{font-size:.85rem;padding:.4rem .55rem}.inline-form-card .form-group textarea{min-height:60px}@media (max-width:768px){.detail-grid,.inline-form-card .form-row{grid-template-columns:1fr}.contact-detail-card{max-width:100%;padding:1rem}.section-header{align-items:stretch;flex-direction:column;gap:.5rem}.section-header .btn,.section-header .btn-small{font-size:.9rem;justify-content:center;min-height:var(--touch-target);width:100%}.contact-section{margin-top:1.5rem}.section-title{font-size:1rem}.detail-value{font-size:.95rem}.detail-comments{font-size:.92rem}.form-actions .btn-danger{margin-top:.35rem}}.timeline-company{color:#64748b;font-size:.9rem;margin-bottom:1.5rem}.timeline{padding-left:2rem;position:relative}.timeline:before{background:#e2e8f0;bottom:0;content:"";left:8px;position:absolute;top:0;width:2px}.timeline-item{margin-bottom:1.25rem;position:relative}.timeline-marker{border:2px solid #fff;border-radius:50%;height:14px;left:-2rem;position:absolute;top:4px;width:14px;z-index:1}.timeline-todo .timeline-marker{background:#2563eb}.timeline-action .timeline-marker{background:#10b981}.timeline-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000f;padding:.75rem 1rem}.timeline-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.35rem}.timeline-date{color:#475569;font-size:.8rem;font-weight:600}.timeline-type-badge{border-radius:8px;font-size:.7rem;font-weight:600;padding:.15rem .45rem}.timeline-type-badge.todo{background:#dbeafe;color:#1e40af}.timeline-type-badge.action{background:#d1fae5;color:#065f46}.timeline-responsable{color:#64748b;font-size:.75rem;font-style:italic;margin-left:auto}.timeline-description{color:#334155;font-size:.88rem;margin-bottom:.35rem}.timeline-empty{color:#94a3b8;padding:2rem 0;text-align:center}@media (max-width:768px){.timeline{padding-left:1.5rem}.timeline-marker{left:-1.5rem}.timeline-content{padding:.75rem}.timeline-responsable{margin-left:0;width:100%}.timeline-description{font-size:.92rem}.timeline-company{font-size:.95rem;margin-bottom:1rem}}@media (hover:none){.cell-editable:hover,.sortable-table tbody tr.clickable-row:hover,.sortable-table tbody tr:hover{background:#0000}.sortable-table th.sortable:hover{color:#64748b}.col-menu-item:hover{background:#0000}.btn:hover{background:#fff}.btn-primary:hover{background:#2563eb}.btn-danger:hover{background:#ef4444}.btn-secondary:hover{background:#f1f5f9}.nav-btn:hover{background:#0000;border-color:#60a5fa;color:#60a5fa}.nav-btn.nav-btn-active:hover{background:#3b82f6;color:#fff}.btn-view:hover{background:#0000;border-color:#a78bfa;color:#a78bfa}.btn-view.active:hover{background:#7c3aed;color:#fff}.btn-logout:hover{background:#0000;color:#cbd5e1}.btn-col-toggle:hover{background:#fff;color:#64748b}.tag-chip:hover{border-color:#d1d5db;color:#374151}.tag-chip.selected:hover{border-color:#2563eb;color:#fff}.admin-tab:hover{color:#64748b}.admin-tab.active:hover{color:#2563eb}.counter-link:hover{background:#eef2ff;color:#2563eb}.counter-link.counter-red:hover{background:#fee2e2;color:#dc2626}.counter-link.counter-green:hover{background:#dcfce7;color:#16a34a}a:hover{text-decoration:none}.admin-tab:active,.btn-col-toggle:active,.btn-logout:active,.btn-view:active,.btn:active,.counter-link:active,.nav-btn:active,.tag-chip:active{opacity:.75;transform:scale(.98)}.sortable-table tbody tr.clickable-row:active{background:#eef2ff}.col-menu-item:active{background:#f1f5f9}.btn:disabled:active{opacity:.6;transform:none}}:root{--touch-target:44px;--touch-target-sm:36px;--mobile-input-font:16px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{-webkit-text-size-adjust:100%;background-color:#f5f7fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:.82rem;line-height:1.5}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}button{-webkit-tap-highlight-color:transparent;cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:.82rem}
/*# sourceMappingURL=main.469061de.css.map*/