body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{min-height:100vh}.sidebar-nav{display:flex;flex-direction:column;gap:2px}.sidebar-nav-item-wrapper{position:relative}.sidebar-nav-item{align-items:center;border-radius:6px;color:var(--gray-700);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:12px;margin-left:0;margin-left:calc(var(--level, 0)*16px);padding:10px 12px;position:relative;text-decoration:none;transition:all .15s ease}.sidebar-nav-item:hover{background-color:var(--gray-100);color:var(--black)}.sidebar-nav-item--active{font-weight:600}.sidebar-nav-item--active,.sidebar-nav-item--active:hover{background-color:var(--black);color:var(--white)}.sidebar-nav-item--parent-active:not(.sidebar-nav-item--active){color:var(--black);font-weight:600}.sidebar-nav-item--collapsed{justify-content:center;margin-left:0;padding:12px}.sidebar-nav-item--collapsed .sidebar-nav-item__chevron,.sidebar-nav-item--collapsed .sidebar-nav-item__label{display:none}.sidebar-nav-item__number{align-items:center;animation:numberBadgePop .2s cubic-bezier(.34,1.56,.64,1);background-color:var(--black);border-radius:50%;box-shadow:0 2px 8px #0003;color:var(--white);display:flex;font-size:.75rem;font-weight:700;height:24px;justify-content:center;left:-8px;position:absolute;width:24px;z-index:10}@keyframes numberBadgePop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.sidebar-nav-item__icon{align-items:center;display:flex;flex-shrink:0;font-size:1.25rem;height:20px;justify-content:center;width:20px}.sidebar-nav-item__label{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-nav-item__chevron{align-items:center;color:inherit;display:flex;flex-shrink:0;height:20px;justify-content:center;opacity:.6;pointer-events:none;transition:all .15s ease;width:20px}.sidebar-nav-item:hover .sidebar-nav-item__chevron{opacity:1}.sidebar-nav-children{animation:expandChildren .2s ease-out;display:flex;flex-direction:column;gap:2px;margin-top:2px}@keyframes expandChildren{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sidebar-nav-item-wrapper:has(.sidebar-nav-children){position:relative}.sidebar-nav-children .sidebar-nav-item-wrapper:before{background-color:var(--gray-200);bottom:0;content:"";left:22px;left:calc(var(--level, 0)*16px + 22px);position:absolute;top:0;width:1px}.sidebar-nav-children .sidebar-nav-item-wrapper:last-child:before{bottom:50%}.sidebar-nav-tooltip{animation:tooltipIn .15s ease-out;background-color:var(--white);border:1px solid var(--gray-200);border-radius:8px;box-shadow:0 4px 16px #0000001f;display:none;left:calc(100% + 12px);min-width:220px;padding:8px;position:absolute;top:0;z-index:1000}@keyframes tooltipIn{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}.sidebar-nav-item-wrapper:hover>.sidebar-nav-tooltip{display:block}.sidebar-nav-tooltip__header{border-bottom:1px solid var(--gray-200);color:var(--black);font-size:.875rem;font-weight:600;margin-bottom:4px;padding:8px 12px}.sidebar-nav-tooltip__item{align-items:center;border-radius:4px;color:var(--gray-700);display:flex;font-size:.875rem;gap:12px;padding:8px 12px;text-decoration:none;transition:all .15s ease}.sidebar-nav-tooltip__item:hover{background-color:var(--gray-100);color:var(--black)}.sidebar-nav-tooltip__icon{align-items:center;display:flex;font-size:1.125rem;height:20px;justify-content:center;width:20px}.sidebar-nav-tooltip__label{flex:1 1;white-space:nowrap}.sidebar-nav-item--has-children{font-weight:600}@media (max-width:768px){.sidebar-nav-item{padding:12px 14px}.sidebar-nav-tooltip{display:none!important}}.user-profile{position:relative}.user-profile__trigger{align-items:center;background-color:initial;border:none;border-radius:8px;color:var(--gray-700);cursor:pointer;display:flex;gap:12px;padding:10px 12px;transition:all .15s ease;width:100%}.user-profile__trigger:hover{background-color:var(--gray-100)}.user-profile--collapsed .user-profile__trigger{justify-content:center;padding:10px}.user-profile__avatar{align-items:center;background:linear-gradient(135deg,var(--black) 0,var(--gray-700) 100%);border:2px solid var(--gray-200);border-radius:50%;color:var(--white);display:flex;flex-shrink:0;font-size:.875rem;font-weight:700;height:36px;justify-content:center;transition:all .15s ease;width:36px}.user-profile__trigger:hover .user-profile__avatar{border-color:var(--gray-300);transform:scale(1.05)}.user-profile__info{flex:1 1;overflow:hidden;text-align:left}.user-profile__name{color:var(--black);font-size:.875rem;font-weight:600}.user-profile__email,.user-profile__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-profile__email{color:var(--gray-500);font-size:.75rem;margin-top:2px}.user-profile__chevron{color:var(--gray-500);flex-shrink:0;transition:transform .15s ease}.user-profile__chevron--open{transform:rotate(180deg)}.user-profile__menu{animation:menuSlideUp .2s ease-out;background-color:var(--white);border:1px solid var(--gray-200);border-radius:8px;bottom:calc(100% + 8px);box-shadow:0 4px 16px #0000001f;left:8px;padding:6px;position:absolute;right:8px;z-index:1000}@keyframes menuSlideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.user-profile__menu--collapsed{animation:menuSlideRight .2s ease-out;bottom:auto;left:calc(100% + 12px);min-width:200px;right:auto;top:0}@keyframes menuSlideRight{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}.user-profile__menu-item{align-items:center;background:none;border:none;border-radius:6px;color:var(--gray-700);cursor:pointer;display:flex;font-family:inherit;font-size:.875rem;gap:12px;padding:10px 12px;text-align:left;text-decoration:none;transition:all .15s ease;width:100%}.user-profile__menu-item:hover{background-color:var(--gray-100);color:var(--black)}.user-profile__menu-item svg{color:var(--gray-500);flex-shrink:0}.user-profile__menu-item:hover svg{color:var(--black)}.user-profile__menu-item--danger{color:#dc2626}.user-profile__menu-item--danger:hover{background-color:#fee;color:#dc2626}.user-profile__menu-item--danger svg{color:#dc2626}.user-profile__menu-divider{background-color:var(--gray-200);height:1px;margin:6px 0}@media (max-width:768px){.user-profile__menu{bottom:calc(100% + 8px);left:0;right:0}.user-profile__menu--collapsed{left:0;right:auto}}.sidebar{background-color:var(--white);border-right:1px solid var(--gray-200);display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;width:280px;z-index:1000}.sidebar__header{border-bottom:1px solid var(--gray-200);flex-direction:column;padding:16px}.sidebar__header,.sidebar__header .logo{align-items:center;display:flex;justify-content:center}.sidebar__header .logo{width:100%}.sidebar__header .logo img{height:auto;max-width:90%}.sidebar__nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:12px 8px}.sidebar__nav::-webkit-scrollbar{width:6px}.sidebar__nav::-webkit-scrollbar-track{background:#0000}.sidebar__nav::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.sidebar__nav::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.sidebar__footer{border-top:1px solid var(--gray-200);padding:12px 8px}.sidebar__search-hint{background-color:var(--gray-50);border-top:1px solid var(--gray-200);color:var(--gray-500);font-size:.75rem;padding:12px 16px;text-align:center}.sidebar__search-hint kbd{background-color:var(--white);border:1px solid var(--gray-300);border-radius:3px;box-shadow:0 1px 2px #0000000d;color:var(--gray-700);display:inline-block;font-family:monospace;font-size:.7rem;font-weight:600;padding:2px 6px}@media (max-width:768px){.sidebar{width:280px}}.sidebar__nav{animation:slideIn .3s ease-out}.feedback-modal-overlay{animation:fadeIn .2s ease;background-color:#00000080}.feedback-modal{animation:slideIn .3s ease;background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.feedback-modal__header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px 24px}.feedback-modal__header h2{color:#1a1a2e;font-size:18px;font-weight:600;margin:0}.feedback-modal__close{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:18px;padding:4px;transition:all .2s}.feedback-modal__close:hover{background:#f5f5f5;color:#333}.feedback-modal__success{padding:60px 24px;text-align:center}.feedback-modal__success .success-icon{align-items:center;background:#27ae60;border-radius:50%;color:#fff;display:flex;font-size:32px;height:64px;justify-content:center;margin:0 auto 20px;width:64px}.feedback-modal__success p{color:#1a1a2e;font-size:18px;font-weight:600;margin:0}.feedback-modal__success .success-subtitle{color:#666;font-size:14px;font-weight:400;margin-top:8px}.feedback-modal__form{padding:24px}.feedback-modal__field{margin-bottom:20px}.feedback-modal__field label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.feedback-modal__field input,.feedback-modal__field textarea{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;padding:12px;transition:border-color .2s,box-shadow .2s;width:100%}.feedback-modal__field input:focus,.feedback-modal__field textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.feedback-modal__field textarea{min-height:120px;resize:vertical}.feedback-type-selector{display:flex;gap:10px}.feedback-type-btn{align-items:center;background:#fff;border:2px solid #eee;border-radius:8px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:6px;padding:12px;transition:all .2s}.feedback-type-btn svg{color:#999;font-size:20px;transition:color .2s}.feedback-type-btn span{color:#666;font-size:13px;font-weight:500}.feedback-type-btn:hover{border-color:var(--type-color)}.feedback-type-btn:hover svg{color:var(--type-color)}.feedback-type-btn.active{background:color-mix(in srgb,var(--type-color) 10%,#fff);border-color:var(--type-color)}.feedback-type-btn.active span,.feedback-type-btn.active svg{color:var(--type-color)}.feedback-priority-selector{display:flex;gap:10px}.feedback-priority-btn{background:#fff;border:2px solid #eee;border-radius:8px;color:#666;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:10px 16px;transition:all .2s}.feedback-priority-btn:hover{border-color:var(--priority-color);color:var(--priority-color)}.feedback-priority-btn.active{background:var(--priority-color);border-color:var(--priority-color);color:#fff}.feedback-modal__page-info{color:#888;font-size:12px;margin-bottom:20px}.feedback-modal__page-info code{background:#f5f5f5;border-radius:4px;font-family:monospace;padding:2px 6px}.feedback-modal__error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;font-size:14px;margin-bottom:20px;padding:12px}.feedback-modal__actions{display:flex;gap:12px;justify-content:flex-end}.feedback-modal__cancel{background:#fff;border:1px solid #ddd;border-radius:8px;color:#666;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.feedback-modal__cancel:hover{background:#f5f5f5}.feedback-modal__submit{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s}.feedback-modal__submit:hover:not(:disabled){background:#2980b9}.feedback-modal__submit:disabled{background:#ccc;cursor:not-allowed}@media (max-width:520px){.feedback-modal{margin:16px;max-height:calc(100vh - 32px)}.feedback-priority-selector,.feedback-type-selector{flex-wrap:wrap}.feedback-priority-btn,.feedback-type-btn{flex-basis:calc(50% - 5px);flex-grow:1;flex-shrink:1}}.task-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;z-index:10000}.task-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:100%}.task-modal-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.task-modal-header h2{color:#111827;font-size:1.1rem;font-weight:600;margin:0}.task-modal-close{align-items:center;background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;transition:background .2s;width:32px}.task-modal-close:hover{background:#e5e7eb;color:#374151}.task-modal-content{flex:1 1;overflow-y:auto;padding:1rem}.task-item{background:#fafafa;border-left:4px solid #6b7280;border-radius:8px;margin-bottom:.75rem;padding:1rem;transition:box-shadow .2s}.task-item:hover{box-shadow:0 2px 8px #00000014}.task-item.running{background:#f0f9ff;border-left-color:#3b82f6}.task-item.completed{background:#f0fdf4;border-left-color:#10b981}.task-item.failed{background:#fef2f2;border-left-color:#ef4444}.task-item-header{align-items:flex-start;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.5rem}.task-item-title{align-items:center;display:flex;flex:1 1;gap:.5rem;min-width:0}.task-type-icon{flex-shrink:0;font-size:1.1rem}.task-name{color:#111827;font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-status-badge{border-radius:12px;flex-shrink:0;font-size:.75rem;font-weight:600;padding:.25rem .625rem}.task-progress-container{margin:.75rem 0}.task-progress-bar{background:#e5e7eb;border-radius:4px;height:8px;overflow:hidden}.task-progress-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;height:100%;transition:width .3s ease}.task-progress-text{color:#6b7280;font-size:.75rem;margin-top:.375rem;text-align:right}.task-message{background:#00000008;color:#4b5563;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-error-message,.task-message{border-radius:4px;font-size:.8rem;margin:.5rem 0;padding:.5rem}.task-error-message{background:#fee2e2;color:#dc2626}.task-result{color:#059669;font-size:.8rem;margin-top:.25rem}.task-item-footer{align-items:center;border-top:1px solid #0000000d;display:flex;justify-content:space-between;margin-top:.75rem;padding-top:.5rem}.task-meta{color:#9ca3af;display:flex;font-size:.75rem;gap:.75rem}.task-user{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-cancel-btn{background:#fff;border:1px solid #ef4444;border-radius:4px;color:#ef4444;cursor:pointer;font-size:.75rem;font-weight:500;padding:.375rem .75rem;transition:all .2s}.task-cancel-btn:hover{background:#ef4444;color:#fff}.task-empty,.task-loading{color:#6b7280;padding:3rem 1rem;text-align:center}.task-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.task-empty-hint{color:#9ca3af;font-size:.85rem;margin-top:.5rem}.task-error{background:#fee2e2;border-radius:8px;color:#dc2626;padding:1rem;text-align:center}.task-modal-tabs{background:#fafafa;border-bottom:1px solid #e5e7eb;display:flex;padding:0 1rem}.task-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;cursor:pointer;font-size:.875rem;font-weight:500;margin-bottom:-1px;padding:.75rem 1.25rem;transition:all .2s}.task-tab:hover{color:#3b82f6}.task-tab.active{border-bottom-color:#3b82f6;color:#3b82f6}.cron-info{background:#f0f9ff;border-left:3px solid #3b82f6;border-radius:8px;color:#0369a1;font-size:.8rem;margin-bottom:1rem;padding:.75rem 1rem}.cron-job-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:.75rem;padding:1rem}.cron-job-item:hover{box-shadow:0 2px 8px #0000000f}.cron-job-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.cron-job-name{align-items:center;color:#111827;display:flex;font-size:.95rem;font-weight:600;gap:.5rem}.cron-job-icon{font-size:1.1rem}.cron-job-status{border-radius:12px;font-size:.7rem;font-weight:600;letter-spacing:.025em;padding:.25rem .625rem;text-transform:uppercase}.cron-job-status.enabled{background:#d1fae5;color:#059669}.cron-job-status.disabled{background:#f3f4f6;color:#6b7280}.cron-job-description{color:#6b7280;font-size:.8rem;line-height:1.4;margin-bottom:.75rem}.cron-job-schedule{align-items:center;color:#3b82f6;display:flex;font-size:.8rem;font-weight:500;gap:.375rem;margin-bottom:.5rem}.cron-schedule-icon{font-size:.9rem}.cron-job-last-run{align-items:center;color:#9ca3af;display:flex;font-size:.75rem;gap:.5rem}.cron-status-badge{border-radius:4px;font-size:.7rem;padding:.125rem .375rem}.cron-status-badge.completed{background:#d1fae5;color:#059669}.cron-status-badge.failed{background:#fee2e2;color:#dc2626}.cron-status-badge.running{background:#dbeafe;color:#2563eb}.cron-job-actions{border-top:1px solid #f3f4f6;display:flex;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem}.cron-run-btn{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:500;padding:.5rem 1rem;transition:all .2s}.cron-run-btn:hover:not(:disabled){background:#2563eb}.cron-run-btn:disabled{background:#9ca3af;cursor:not-allowed}.task-modal-large{max-width:750px}.cron-action-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;cursor:pointer;display:inline-flex;font-size:.8rem;gap:.375rem;margin-right:.5rem;padding:.5rem .75rem;transition:all .2s}.cron-action-btn:hover{background:#f3f4f6;border-color:#3b82f6;color:#3b82f6}.job-history-view{padding:0}.job-history-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;gap:1rem;margin-bottom:1rem;padding-bottom:1rem}.job-history-header h3{color:#111827;flex:1 1;font-size:1rem;margin:0}.job-history-actions{display:flex;gap:.5rem}.back-btn{border:1px solid #e5e7eb;border-radius:6px;color:#6b7280;font-size:.8rem;padding:.375rem .75rem}.back-btn:hover{background:#f3f4f6;color:#111827}.job-config-summary{background:#f9fafb;border-radius:8px;color:#4b5563;display:flex;font-size:.85rem;gap:1rem;margin-bottom:1rem;padding:.75rem 1rem}.job-config-summary span{align-items:center;display:flex;gap:.375rem}.job-history-view h4{color:#6b7280;font-size:.9rem;font-weight:600;margin:1rem 0 .75rem}.execution-item{background:#fff;border:1px solid #e5e7eb;border-left:4px solid #6b7280;border-radius:8px;margin-bottom:.5rem;padding:.875rem}.execution-item.completed{border-left-color:#10b981}.execution-item.failed{border-left-color:#ef4444}.execution-item.running{border-left-color:#3b82f6}.execution-header{align-items:center;display:flex;gap:1rem;margin-bottom:.5rem}.execution-date{color:#374151;font-size:.85rem;font-weight:500}.execution-status{font-size:.8rem;font-weight:500}.execution-duration{background:#f3f4f6;border-radius:4px;color:#9ca3af;font-size:.8rem;margin-left:auto;padding:.125rem .5rem}.execution-message{color:#6b7280;font-size:.8rem;padding:.375rem 0}.execution-error{background:#fee2e2;border-radius:4px;color:#dc2626;font-size:.8rem;margin-top:.375rem;padding:.5rem}.execution-result{border-top:1px dashed #e5e7eb;color:#059669;display:flex;font-size:.75rem;gap:1rem;margin-top:.375rem;padding-top:.375rem}.execution-result span{background:#ecfdf5;border-radius:4px;padding:.25rem .5rem}.execution-result .result-errors{background:#fee2e2;color:#dc2626}.edit-modal-overlay{align-items:center;background:#00000080;border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:100}.edit-modal{background:#fff;border-radius:10px;box-shadow:0 10px 40px #0003;max-width:420px;overflow:hidden;width:90%}.edit-modal-header{align-items:center;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:1rem 1.25rem}.edit-modal-header h3{color:#111827;font-size:1rem;margin:0}.edit-modal-header button{align-items:center;background:#0000;border:none;border-radius:6px;color:#6b7280;cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.edit-modal-header button:hover{background:#e5e7eb;color:#111827}.edit-modal-body{padding:1.25rem}.form-group label{margin-bottom:.375rem}.form-group label:has(input[type=checkbox]){align-items:center;cursor:pointer;display:flex;gap:.5rem}.form-group input[type=number],.form-group input[type=text],.form-group select{border:1px solid #d1d5db;border-radius:6px;color:#111827;font-size:.9rem;padding:.625rem .75rem;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.form-row .form-group{flex:1 1}.edit-modal-footer{background:#f9fafb;border-top:1px solid #e5e7eb;display:flex;gap:.75rem;justify-content:flex-end;padding:1rem 1.25rem}.btn-cancel,.btn-save{font-size:.875rem;padding:.625rem 1.25rem}.btn-save{background:#3b82f6;font-weight:500}.btn-save:hover:not(:disabled){background:#2563eb}.btn-save:disabled{background:#9ca3af}.recipient-emails-list{margin-top:.5rem}.recipient-email-row{align-items:center;display:flex;gap:.5rem;margin-bottom:.5rem}.recipient-email-row input[type=email]{border:1px solid #d1d5db;border-radius:6px;color:#111827;flex:1 1;font-size:.875rem;padding:.5rem .75rem}.recipient-email-row input[type=email]:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.remove-email-btn{align-items:center;background:#fef2f2;border:1px solid #fee2e2;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;flex-shrink:0;font-size:1.25rem;height:32px;justify-content:center;transition:all .2s;width:32px}.remove-email-btn:hover{background:#ef4444;border-color:#ef4444;color:#fff}.add-email-btn{background:#f9fafb;border:1px dashed #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:.85rem;margin-top:.25rem;padding:.5rem .75rem;transition:all .2s;width:100%}.add-email-btn:hover{background:#f0f9ff;border-color:#3b82f6;color:#3b82f6}.form-help{color:#9ca3af;display:block;font-size:.75rem;margin-top:.5rem}.top-header{align-items:center;background-color:var(--white);border-bottom:1px solid var(--gray-200);display:flex;gap:24px;justify-content:space-between;min-height:76px;padding:20px 32px}.top-header__left{display:flex;flex:1 1;flex-direction:column;gap:8px;min-width:0}.top-header__title-section{display:flex;flex-direction:column;gap:4px}.top-header__title{align-items:center;color:var(--black);display:flex;font-size:1.5rem;font-weight:700;gap:12px;line-height:1.2;margin:0}.top-header__title-icon{font-size:1.75rem}.top-header__subtitle{color:var(--gray-600);font-size:.875rem;line-height:1.4;margin:0}.top-header__actions{align-items:center;display:flex;flex-shrink:0;gap:12px}.top-header__projectgs-btn{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:6px;cursor:pointer;display:flex;padding:6px 12px;transition:all .2s ease}.top-header__projectgs-btn:hover{border-color:#000;box-shadow:0 2px 6px #00000014}.top-header__projectgs-logo{color:#000;font-size:.8rem;font-weight:300;letter-spacing:-.3px}.top-header__projectgs-logo span{font-weight:700}.top-header__task-btn{align-items:center;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:8px;color:var(--gray-600);cursor:pointer;display:flex;height:36px;justify-content:center;position:relative;transition:all .2s ease;width:36px}.top-header__task-btn:hover{background:var(--gray-200);color:var(--gray-800)}.top-header__task-btn.has-tasks{animation:pulse-task 2s ease-in-out infinite;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-color:#3b82f6;color:#fff}@keyframes pulse-task{0%,to{box-shadow:0 0 0 0 #3b82f666}50%{box-shadow:0 0 0 6px #3b82f600}}.top-header__task-btn svg{font-size:1rem}.top-header__task-badge{align-items:center;background:#ef4444;border:2px solid #fff;border-radius:10px;color:#fff;display:flex;font-size:.65rem;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 5px;position:absolute;right:-4px;top:-4px}.top-header__feedback-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;display:flex;font-size:.85rem;font-weight:500;gap:6px;padding:8px 14px;transition:all .2s ease}.top-header__feedback-btn:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-1px)}.top-header__feedback-btn:active{transform:translateY(0)}.top-header__feedback-btn svg{font-size:.9rem}.top-header__search-indicator{align-items:center;background-color:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;color:var(--gray-600);cursor:pointer;display:flex;flex-shrink:0;font-size:.75rem;gap:8px;padding:6px 12px;transition:all .15s ease}.top-header__search-indicator:hover{background-color:var(--gray-100);border-color:var(--gray-300);color:var(--black)}.top-header__search-indicator svg{color:var(--gray-500);flex-shrink:0}.top-header__search-indicator:hover svg{color:var(--black)}.top-header__search-indicator kbd{background-color:var(--white);border:1px solid var(--gray-300);border-radius:3px;box-shadow:0 1px 2px #0000000d;color:var(--gray-700);display:inline-block;font-family:monospace;font-size:.7rem;font-weight:600;padding:2px 6px}@media (max-width:1024px){.top-header{padding:12px 24px}.top-header__search-indicator{display:none}}@media (max-width:768px){.top-header{flex-wrap:wrap;padding:12px 16px}.top-header__title{font-size:1.25rem}.top-header__breadcrumb{font-size:.8rem}.top-header__actions{justify-content:flex-end;width:100%}}@media (max-width:640px){.top-header__breadcrumb-label{max-width:100px;overflow:hidden;text-overflow:ellipsis}.top-header__title{font-size:1.125rem}}.keyboard-nav-overlay{animation:overlayFadeIn .2s ease-out;background-color:#000000b3;bottom:0;cursor:pointer;left:280px;position:fixed;right:0;top:0;z-index:9998}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.keyboard-nav-breadcrumb{animation:breadcrumbSlideIn .2s ease-out;background-color:var(--white);border:1px solid var(--gray-200);border-radius:8px;box-shadow:0 4px 16px #00000026;left:300px;max-width:600px;padding:12px 16px;position:fixed;top:20px;z-index:9999}@keyframes breadcrumbSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.keyboard-nav-breadcrumb__content{align-items:center;color:var(--black);display:flex;font-size:.875rem;font-weight:500;gap:8px;margin-bottom:8px}.keyboard-nav-breadcrumb__item{color:var(--gray-700)}.keyboard-nav-breadcrumb__item:last-child{color:var(--black);font-weight:600}.keyboard-nav-breadcrumb__separator{color:var(--gray-400);font-weight:400}.keyboard-nav-breadcrumb__hint{align-items:center;color:var(--gray-600);display:flex;font-size:.75rem;gap:8px}.keyboard-nav-breadcrumb__hint kbd{background-color:var(--gray-100);border:1px solid var(--gray-300);border-radius:3px;color:var(--gray-700);display:inline-block;font-family:monospace;font-size:.7rem;font-weight:600;padding:2px 6px}@media (max-width:768px){.keyboard-nav-overlay{display:none}.keyboard-nav-breadcrumb{left:20px;max-width:none;right:20px}}.main-layout{background-color:var(--gray-50);display:flex;min-height:100vh;overflow-x:hidden;width:100%}.main-layout__content{display:flex;flex:1 1;flex-direction:column;margin-left:280px;min-width:0;width:100%}.main-layout__main{background-color:var(--gray-50);flex:1 1;overflow-y:auto;padding:32px}.main-layout__main::-webkit-scrollbar{width:8px}.main-layout__main::-webkit-scrollbar-track{background:var(--gray-100)}.main-layout__main::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}.main-layout__main::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}@media (max-width:1024px){.main-layout__main{padding:24px}}@media (max-width:768px){.main-layout--sidebar-collapsed .main-layout__content,.main-layout__content{margin-left:60px}.main-layout__main{padding:16px}}@media (max-width:640px){.main-layout__content{margin-left:0}.main-layout__main{padding:12px}}@media print{.main-layout__content{margin-left:0}.main-layout__main{padding:0}}.animated-logo{cursor:pointer;margin:0 auto;position:relative}.animated-logo svg{height:100%;width:100%}.animated-logo .molecule{transition:transform .3s ease-out}.animated-logo-sm{height:200px;width:200px}.animated-logo-md{height:300px;width:300px}.animated-logo-lg{height:400px;width:400px}.animated-logo-xl{height:500px;width:500px}@media (max-width:768px){.animated-logo-xl{height:350px;width:350px}.animated-logo-lg{height:300px;width:300px}}@media (max-width:480px){.animated-logo-lg{height:250px;width:250px}.animated-logo-md{height:200px;width:200px}.animated-logo-sm{height:150px;width:150px}}:root{--auth-dark-bg:#000;--auth-dark-text:#fff;--auth-dark-text-secondary:#a0a0a0;--auth-dark-border:#ffffff1a;--auth-dark-border-hover:#fff3;--auth-dark-border-focus:#fff6;--glass-bg:#ffffff0d;--glass-bg-hover:#ffffff14;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px 0 #0000005e;--glow-primary:#ffffff4d;--glow-focus:#ffffff80;--glow-button:#fff3}.auth-dark-container{background-color:#000;background-color:var(--auth-dark-bg);display:flex;flex-direction:row;height:100vh;overflow:hidden;position:relative}.auth-dark-container:before{background-image:radial-gradient(circle at 1px 1px,#ffffff08 1px,#0000 0);background-size:40px 40px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.auth-dark-form-side,.auth-dark-logo-side{align-items:center;display:flex;flex:1 1;justify-content:center;padding:2rem;z-index:1}.auth-dark-card{animation:fadeInUp .6s ease-out;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffff0d;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--glass-border);border-radius:16px;box-shadow:0 8px 32px 0 #0000005e;box-shadow:var(--glass-shadow);max-height:90vh;max-width:420px;overflow-y:auto;padding:2rem 1.5rem;position:relative;width:100%;z-index:1}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.auth-dark-card:hover{background:#ffffff14;background:var(--glass-bg-hover);border-color:#fff3;border-color:var(--auth-dark-border-hover);transition:all .3s ease}.auth-dark-header{margin-bottom:1.5rem;text-align:center}.auth-dark-logo-container{display:flex;justify-content:center;margin-bottom:1.5rem}.auth-dark-title{color:#fff;color:var(--auth-dark-text);font-size:2rem;font-weight:600;letter-spacing:-.5px;margin-bottom:.5rem}.auth-dark-subtitle{color:#a0a0a0;color:var(--auth-dark-text-secondary);font-size:.9rem;font-weight:300;letter-spacing:.3px}.auth-dark-form{display:flex;flex-direction:column;gap:1rem}.auth-dark-form-group{display:flex;flex-direction:column;gap:.5rem}.auth-dark-label{font-size:.875rem;font-weight:500;letter-spacing:.3px}.auth-dark-input,.auth-dark-label{color:#fff;color:var(--auth-dark-text)}.auth-dark-input{background:#ffffff08;border:1px solid #ffffff1a;border:1px solid var(--auth-dark-border);border-radius:8px;font-family:var(--font-primary);font-size:.95rem;outline:none;padding:.875rem 1rem;transition:all .3s ease;width:100%}.auth-dark-input::placeholder{color:#ffffff4d}.auth-dark-input:hover{background:#ffffff0d;border-color:#fff3;border-color:var(--auth-dark-border-hover)}.auth-dark-input:focus{background:#ffffff0f;border-color:#fff6;border-color:var(--auth-dark-border-focus)}.auth-dark-input.error{background:#ff64640d;border-color:#ff646480}.auth-dark-input.error:focus{border-color:#ff6464b3}.auth-dark-btn{background:#fff;background:var(--auth-dark-text);border:none;border-radius:8px;color:#000;color:var(--auth-dark-bg);cursor:pointer;font-family:var(--font-primary);font-size:.95rem;font-weight:600;letter-spacing:.5px;outline:none;overflow:hidden;padding:.95rem 1.5rem;position:relative;transition:all .3s ease;width:100%}.auth-dark-btn:before{background:#0000001a;border-radius:50%;content:"";height:0;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:width .6s,height .6s;width:0}.auth-dark-btn:hover:before{height:300px;width:300px}.auth-dark-btn:hover{background:#fffffff2;transform:translateY(-2px)}.auth-dark-btn:active{transform:translateY(0)}.auth-dark-btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.auth-dark-btn:disabled:hover{transform:none}.auth-dark-btn-loading{align-items:center;display:flex;gap:.75rem;justify-content:center}.auth-dark-btn-secondary{background:#0000;border:1px solid #ffffff1a;border:1px solid var(--auth-dark-border);color:#fff;color:var(--auth-dark-text);padding:.875rem 1.5rem}.auth-dark-btn-secondary:hover{background:#ffffff0d;background:var(--glass-bg);border-color:#fff3;border-color:var(--auth-dark-border-hover)}.auth-dark-btn-ghost{background:#0000;border:none;color:#a0a0a0;color:var(--auth-dark-text-secondary);font-size:.875rem;font-weight:400;padding:.5rem 1rem}.auth-dark-btn-ghost:hover{background:#ffffff0d;color:#fff;color:var(--auth-dark-text)}.auth-dark-error{animation:shake .4s ease;background:#ff64641a;border:1px solid #ff64644d;border-radius:8px;color:#ff6b6b;font-size:.875rem;padding:.875rem 1rem;text-align:center}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}.auth-dark-success{background:#64ff961a;border:1px solid #64ff964d;border-radius:8px;color:#6bffb4}.auth-dark-info,.auth-dark-success{font-size:.875rem;padding:.875rem 1rem;text-align:center}.auth-dark-info{background:#6496ff1a;border:1px solid #6496ff4d;border-radius:8px;color:#6bb4ff}.auth-dark-link{color:#a0a0a0;color:var(--auth-dark-text-secondary);display:inline-block;font-size:.875rem;position:relative;text-decoration:none;transition:all .3s ease}.auth-dark-link:after{background:#fff;background:var(--auth-dark-text);bottom:-2px;content:"";height:1px;left:0;position:absolute;transition:width .3s ease;width:0}.auth-dark-link:hover{color:#fff;color:var(--auth-dark-text)}.auth-dark-link:hover:after{width:100%}.auth-dark-divider{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);background:linear-gradient(to right,#0000,var(--auth-dark-border),#0000);height:1px;margin:1.5rem 0}.auth-dark-loader{animation:spin .6s linear infinite;border:2px solid #0003;border-radius:50%;border-top:2px solid var(--auth-dark-bg);display:inline-block;height:18px;width:18px}.auth-dark-loader-white{border:2px solid #fff3;border-top:2px solid var(--auth-dark-text)}.auth-dark-text-center{text-align:center}.auth-dark-mt-1{margin-top:.5rem}.auth-dark-mt-2{margin-top:1rem}.auth-dark-mt-3{margin-top:1.5rem}.auth-dark-mb-1{margin-bottom:.5rem}.auth-dark-mb-2{margin-bottom:1rem}.auth-dark-mb-3{margin-bottom:1.5rem}.auth-dark-2fa-methods{display:flex;gap:.75rem;margin-bottom:1rem}.auth-dark-method-btn{background:#ffffff08;border:1px solid #ffffff1a;border:1px solid var(--auth-dark-border);border-radius:8px;color:#a0a0a0;color:var(--auth-dark-text-secondary);cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.75rem 1rem;transition:all .3s ease}.auth-dark-method-btn:hover{background:#ffffff0d;border-color:#fff3;border-color:var(--auth-dark-border-hover)}.auth-dark-method-btn.active{background:#fff;background:var(--auth-dark-text);border-color:#fff;border-color:var(--auth-dark-text);color:#000;color:var(--auth-dark-bg)}.auth-dark-code-input{font-family:var(--font-mono);font-size:1.5rem;letter-spacing:.5rem;padding-left:.5rem;text-align:center}.auth-dark-webcam-wrapper{background:#000;border:2px solid #ffffff1a;border:2px solid var(--auth-dark-border);border-radius:12px;margin:1rem 0;max-width:100%;overflow:hidden;position:relative;width:100%}.auth-dark-webcam-wrapper:hover{border-color:#fff3;border-color:var(--auth-dark-border-hover)}@media (max-width:768px){.auth-dark-container{flex-direction:column}.auth-dark-logo-side{flex:0 0 auto;padding:1.5rem}.auth-dark-form-side{flex:1 1;padding:1.5rem}.auth-dark-card{max-width:100%;padding:2rem 1.5rem}.auth-dark-title{font-size:1.75rem}.auth-dark-subtitle{font-size:.85rem}}@media (max-width:480px){.auth-dark-container{padding:1rem .5rem}.auth-dark-card{border-radius:12px;padding:1.5rem 1rem}.auth-dark-title{font-size:1.5rem}.auth-dark-btn,.auth-dark-input{font-size:.9rem;padding:.75rem 1rem}.auth-dark-2fa-methods{flex-direction:column}}.auth-dark-fade-in{animation:fadeIn .4s ease-out}.auth-dark-slide-up{animation:slideUp .5s ease-out}.settings-container{background-color:#fafafa;background-color:var(--gray-50,#fafafa);min-height:100vh}.settings-content{margin:0 auto;max-width:900px;padding:2rem 1rem}.message{border-radius:4px;font-size:.875rem;font-weight:500;margin-bottom:1.5rem;padding:1rem}.message.success{background-color:#f5f5f5;background-color:var(--gray-100,#f5f5f5);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);color:#000;color:var(--black,#000)}.message.error{background-color:#000;background-color:var(--black,#000);border:1px solid #000;border:1px solid var(--black,#000);color:#fff;color:var(--white,#fff)}.settings-section{background:#fff;background:var(--white,#fff);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:6px;box-shadow:0 1px 2px 0 #0000000d;margin-bottom:1.5rem;padding:2rem}.settings-section h2{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200,#e5e5e5);color:#000;color:var(--black,#000);font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;padding-bottom:1rem}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.info-item{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:4px;padding:1rem}.info-item label{color:#525252;color:var(--gray-600,#525252);display:block;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:.5rem;text-transform:uppercase}.info-item span{color:#000;color:var(--black,#000);display:block;font-size:1rem;font-weight:500}.badge-role{background-color:#000!important;background-color:var(--black,#000)!important;border-radius:4px!important;color:#fff!important;color:var(--white,#fff)!important;display:inline-block!important;font-size:.875rem!important;font-weight:500!important;padding:.25rem .75rem!important}.security-item{border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:4px;margin-bottom:1.5rem;padding:1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.security-item:hover{border-color:#a3a3a3;border-color:var(--gray-400,#a3a3a3);box-shadow:0 1px 2px 0 #0000000d}.security-info h3{color:#000;color:var(--black,#000);font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.security-info p{color:#525252;color:var(--gray-600,#525252);font-size:.875rem;line-height:1.5;margin:0 0 1rem}.status-badge{margin:1rem 0}.badge-disabled,.badge-enabled{border-radius:4px;display:inline-block;font-size:.875rem;font-weight:500;padding:.375rem 1rem}.badge-enabled{background-color:#000;background-color:var(--black,#000);color:#fff;color:var(--white,#fff)}.badge-disabled{background-color:#e5e5e5;background-color:var(--gray-200,#e5e5e5);color:#404040;color:var(--gray-700,#404040)}.security-actions{margin-top:1rem}.btn-configure,.btn-recalibrate{border:1px solid #000;border:1px solid var(--black,#000);border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-configure{background-color:#000;background-color:var(--black,#000);color:#fff;color:var(--white,#fff)}.btn-configure:hover{background-color:#262626;background-color:var(--gray-800,#262626);border-color:#262626;border-color:var(--gray-800,#262626)}.btn-recalibrate{background-color:#fff;background-color:var(--white,#fff);border-color:#d4d4d4;border-color:var(--gray-300,#d4d4d4);color:#000;color:var(--black,#000)}.btn-recalibrate:hover{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border-color:#a3a3a3;border-color:var(--gray-400,#a3a3a3)}.calibration-info{color:#525252;color:var(--gray-600,#525252);font-size:.8125rem;margin-top:.75rem}.security-recommendations{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:4px;margin-top:1.5rem;padding:1.5rem}.security-recommendations h4{color:#000;color:var(--black,#000);font-size:1rem;font-weight:600;margin:0 0 1rem}.security-recommendations ul{list-style:none;margin:0;padding:0}.security-recommendations li{color:#404040;color:var(--gray-700,#404040);font-size:.875rem;padding:.75rem 0}.security-recommendations .check{color:#000;color:var(--black,#000);font-weight:500}.security-recommendations .warning{color:#404040;color:var(--gray-700,#404040);font-weight:500}.security-recommendations .info{color:#525252;color:var(--gray-600,#525252);font-weight:500}.actions-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.btn-action{background-color:var(--white,#fff);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);color:#000;color:var(--black,#000);font-size:.875rem;padding:1rem 1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-action:hover{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border-color:#a3a3a3;border-color:var(--gray-400,#a3a3a3)}.btn-action.btn-danger{background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000);color:#fff;color:var(--white,#fff)}.btn-action.btn-danger:hover{background-color:#262626;background-color:var(--gray-800,#262626);border-color:#262626;border-color:var(--gray-800,#262626)}.modal-overlay{background-color:#0009}.modal-content{background-color:#fff;background-color:var(--white,#fff);box-shadow:0 10px 40px #0003}.modal-header{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200,#e5e5e5);padding:1.5rem 2rem}.modal-header h3{color:#000;color:var(--black,#000);font-size:1.25rem}.modal-close{color:#737373;color:var(--gray-500,#737373);transition:color .15s}.modal-close:hover{color:#000;color:var(--black,#000)}.modal-body{padding:2rem}.modal-body p{color:#404040;color:var(--gray-700,#404040);line-height:1.6;margin:0 0 1.5rem}.code-input{border:2px solid #d4d4d4;border:2px solid var(--gray-300,#d4d4d4);border-radius:6px;font-size:1.5rem;font-weight:600;letter-spacing:.5rem;padding:1rem;text-align:center;transition:border-color .15s;width:100%}.code-input:focus{border-color:#000;border-color:var(--black,#000);outline:none}.help-text{color:#525252;color:var(--gray-600,#525252);font-size:.8125rem;margin-top:.75rem;text-align:center}.modal-footer{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border-top:1px solid #e5e5e5;border-top:1px solid var(--gray-200,#e5e5e5);gap:1rem;padding:1.5rem 2rem}.btn-danger,.btn-primary,.btn-secondary{border:1px solid;border-radius:4px;cursor:pointer;flex:1 1;font-size:.875rem;font-weight:500;padding:.875rem 1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-primary{background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000);color:var(--white,#fff)}.btn-primary:hover:not(:disabled){background-color:#262626;background-color:var(--gray-800,#262626);border-color:#262626;border-color:var(--gray-800,#262626)}.btn-secondary{background-color:#fff;background-color:var(--white,#fff);border-color:#d4d4d4;border-color:var(--gray-300,#d4d4d4);color:#000;color:var(--black,#000)}.btn-secondary:hover:not(:disabled){background-color:#fafafa;background-color:var(--gray-50,#fafafa);border-color:var(--gray-400,#a3a3a3)}.btn-danger{background-color:#dc2626;border-color:#dc2626;color:var(--white,#fff)}.btn-danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.btn-danger:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.settings-content{padding:1.5rem .75rem}.settings-section{padding:1.5rem}.actions-grid,.info-grid{grid-template-columns:1fr}.page-header h1{font-size:1.5rem}.modal-content{margin:1rem}.modal-body,.modal-footer,.modal-header{padding:1.25rem}}:root{--black:#000;--white:#fff;--success:#404040;--warning:#737373;--error:#000;--info:#525252;--background-primary:var(--white);--background-secondary:var(--gray-50);--border-color:var(--gray-300);--primary-color:var(--black);--text-primary:var(--black);--text-secondary:var(--gray-600);--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;--space-20:5rem;--radius-none:0;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-full:9999px;--shadow-md:0 4px 6px -1px #00000014;--shadow-xl:0 20px 25px -5px #0000001a;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:200ms cubic-bezier(0.4,0,0.2,1);--transition-slow:300ms cubic-bezier(0.4,0,0.2,1);--font-primary:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",Arial,sans-serif;--font-mono:"SF Mono",Monaco,"Cascadia Code","Roboto Mono",Consolas,monospace;--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;--text-4xl:2.25rem;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75}*{margin:0;padding:0}*,:after,:before{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;text-rendering:optimizeLegibility}body{background-color:#fff;background-color:var(--white);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--font-primary);font-size:1rem;font-size:var(--text-base);font-weight:400;font-weight:var(--font-normal);line-height:1.5;line-height:var(--leading-normal);min-height:100vh}body,h1,h2,h3,h4,h5,h6{color:#000;color:var(--black)}h1,h2,h3,h4,h5,h6{font-weight:600;font-weight:var(--font-semibold);line-height:1.25;line-height:var(--leading-tight);margin-bottom:1rem;margin-bottom:var(--space-4)}h1{font-size:2.25rem;font-size:var(--text-4xl)}h2{font-size:1.875rem;font-size:var(--text-3xl)}h3{font-size:1.5rem;font-size:var(--text-2xl)}h4{font-size:1.25rem;font-size:var(--text-xl)}h5{font-size:1.125rem;font-size:var(--text-lg)}h6{font-size:1rem;font-size:var(--text-base)}p{color:#404040;color:var(--gray-700);line-height:1.75;line-height:var(--leading-relaxed);margin-bottom:1rem;margin-bottom:var(--space-4)}a{color:#000;color:var(--black);text-decoration:none;transition:opacity .15s cubic-bezier(.4,0,.2,1);transition:opacity var(--transition-fast)}a:hover{opacity:.7}strong{color:#000;color:var(--black);font-weight:600;font-weight:var(--font-semibold)}small{color:#525252;color:var(--gray-600);font-size:.875rem;font-size:var(--text-sm)}code{background-color:#f5f5f5;background-color:var(--gray-100);border:1px solid #e5e5e5;border:1px solid var(--gray-200);border-radius:2px;border-radius:var(--radius-sm);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,monospace;font-family:var(--font-mono);font-size:.9em;padding:.125rem .25rem}.container{margin:0 auto;max-width:1400px;padding:0 1rem;padding:0 var(--space-4);width:100%}.container-sm{max-width:640px}.container-md{max-width:960px}.container-lg{max-width:1200px}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:.25rem;gap:var(--space-1)}.gap-2{gap:.5rem;gap:var(--space-2)}.gap-3{gap:.75rem;gap:var(--space-3)}.gap-4{gap:1rem;gap:var(--space-4)}.gap-6{gap:1.5rem;gap:var(--space-6)}.gap-8{gap:2rem;gap:var(--space-8)}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f5f5f5;background:var(--gray-100)}::-webkit-scrollbar-thumb{background:#d4d4d4;background:var(--gray-300);border-radius:4px;border-radius:var(--radius-md)}::-webkit-scrollbar-thumb:hover{background:#a3a3a3;background:var(--gray-400)}:focus{outline:2px solid #000;outline:2px solid var(--black);outline-offset:2px}:focus:not(:focus-visible){outline:none}.fade-in{animation:fadeIn .3s ease-out}.slide-in{animation:slideIn .3s ease-out}@media (max-width:640px){html{font-size:14px}h1{font-size:1.875rem;font-size:var(--text-3xl)}h2{font-size:1.5rem;font-size:var(--text-2xl)}h3{font-size:1.25rem;font-size:var(--text-xl)}}@media (max-width:768px){.container{padding:0 .75rem;padding:0 var(--space-3)}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.google-ads-dashboard{margin:0 auto;max-width:1400px;padding:1.5rem}.dashboard-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.dashboard-header h1{color:#111827;font-size:1.75rem;font-weight:700;margin:0}.filters{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem}.filter-group select{color:#111827;padding:.5rem 2rem .5rem .75rem}.filter-group select:focus{border-color:#111827;box-shadow:0 0 0 2px #1118271a}.refresh-btn{background:#111827;transition:background .2s}.refresh-btn:hover:not(:disabled){background:#374151}.kpi-cards{margin-bottom:2rem}.kpi-label{font-weight:600;margin-bottom:.5rem}.kpi-value{font-size:1.75rem;margin-bottom:.25rem}.kpi-delta{font-size:.875rem;font-weight:600}.kpi-delta.positive{color:#10b981}.kpi-delta.negative{color:#ef4444}.kpi-subtitle{color:#9ca3af;font-size:.75rem}.chart-section{box-shadow:0 1px 3px #0000000d}.chart-section h2{color:#111827;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.chart-hint{color:#9ca3af;font-size:.75rem;margin:0 0 1rem}.section-header{margin-bottom:1rem}.close-btn{background:#f3f4f6;border:1px solid #d1d5db;color:#374151;font-size:.75rem;padding:.375rem .75rem}.close-btn:hover{background:#e5e7eb}.daily-section{border:2px solid #111827}.table-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;margin-bottom:1.5rem;padding:1.5rem}.table-section h2{color:#111827;font-size:1.125rem;font-weight:600;margin:0 0 1rem}.parking-table td,.parking-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem}.parking-table th{background:#f9fafb;color:#6b7280;font-size:.75rem}.parking-table td{color:#111827;font-size:.875rem}.parking-table td.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.parking-table td.percent{color:#6b7280}.parking-table tfoot td{background:#f9fafb;border-top:2px solid #e5e7eb}.parking-table tbody tr:hover{background:#f9fafb}.month-row.expandable{cursor:pointer;transition:background .15s}.month-row.expandable:hover,.month-row.expanded{background:#f3f4f6}.month-cell{align-items:center;display:flex;gap:.5rem}.expand-icon{align-items:center;color:#6b7280;display:inline-flex;justify-content:center;transition:color .15s}.month-row.expandable:hover .expand-icon{color:#111827}.expanded-row,.expanded-row:hover{background:#0000!important}.expanded-cell{border-bottom:1px solid #e5e7eb;padding:0!important}.parking-breakdown{animation:slideDown .2s ease-out;background:#fafafa;border-left:3px solid #111827;margin-left:1rem;padding:.75rem 1rem .75rem 2rem}.sub-table{border-collapse:collapse;font-size:.8125rem;width:100%}.sub-table td,.sub-table th{border-bottom:1px solid #e5e7eb;padding:.5rem .75rem;text-align:left}.sub-table th{background:#0000;color:#9ca3af;font-size:.6875rem;font-weight:600;text-transform:uppercase}.sub-table td{color:#374151}.sub-table td.amount{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.sub-table td.percent{color:#6b7280}.sub-table td.percent.positive{color:#10b981}.sub-table td.percent.negative{color:#ef4444}.sub-table tbody tr:last-child td{border-bottom:none}.sub-table tbody tr:hover{background:#f0f0f0}.empty-state,.error-message,.loading-state{color:#6b7280;padding:3rem;text-align:center}.success-message{background:#d1fae5;color:#059669;font-weight:500;text-align:center}.cache-warning{background:#fef3c7;color:#b45309;font-size:.875rem;text-align:center}.cache-warning,.refresh-progress{border-radius:8px;margin-bottom:1rem;padding:1rem}.refresh-progress{align-items:center;background:#f3f4f6;display:flex;flex-direction:column;gap:.75rem}.refresh-progress span{color:#374151;font-size:.875rem}.progress-bar-inner{background:linear-gradient(90deg,#10b981,#059669);border-radius:4px;height:100%;width:30%}@keyframes progress-animation{0%{transform:translateX(-100%);width:30%}50%{transform:translateX(200%);width:50%}to{transform:translateX(-100%);width:30%}}.empty-state p{margin:.5rem 0}@media (max-width:768px){.dashboard-header{align-items:flex-start;flex-direction:column}.filters{width:100%}.filter-group{flex:1 1;min-width:120px}.kpi-cards{grid-template-columns:repeat(2,1fr)}.parking-table{font-size:.8rem}.parking-table td,.parking-table th{padding:.5rem}}.adwords-daily-container{margin:0 auto;max-width:1600px;padding:1.5rem}.adwords-daily-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.adwords-daily-header h1{color:#111827;font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.adwords-daily-header p{color:#6b7280;font-size:.875rem;margin:0}.refresh-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 1rem;transition:all .15s}.refresh-btn:hover{background:#f9fafb;border-color:#9ca3af}.refresh-btn .spinning{animation:spin 1s linear infinite}.adwords-daily-filters{background:#f9fafb;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.filter-group select{border:1px solid #d1d5db;min-width:180px}.period-buttons{display:flex;gap:.25rem}.period-buttons button{background:#fff;border:1px solid #111827;color:#111827;cursor:pointer;font-size:.75rem;font-weight:600;padding:.5rem .75rem;transition:all .15s}.period-buttons button:first-child{border-radius:6px 0 0 6px}.period-buttons button:last-child{border-radius:0 6px 6px 0}.period-buttons button.active{background:#111827;color:#fff}.loading-container{gap:1rem;padding:3rem}.loading-bar{background:#f3f4f6;border-radius:4px;height:8px;max-width:400px;overflow:hidden;width:100%}.loading-progress{animation:loading 1.5s ease-in-out infinite;background:#111827;height:100%;width:30%}@keyframes loading{0%{transform:translateX(-100%)}50%{transform:translateX(300%)}to{transform:translateX(-100%)}}.loading-container p{color:#6b7280;font-size:.875rem}.error-message,.kpi-cards{margin-bottom:1.5rem}.kpi-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.kpi-card{align-items:center;border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;gap:1rem;padding:1.25rem}.kpi-icon{align-items:center;border-radius:12px;color:#fff;display:flex;height:48px;justify-content:center;width:48px}.kpi-icon.spend{background:#3b82f6}.kpi-icon.clicks{background:#8b5cf6}.kpi-icon.revenue{background:#10b981}.kpi-icon.cos{background:#f59e0b}.kpi-icon.cos.cos-excellent{background:#10b981}.kpi-icon.cos.cos-good{background:#22c55e}.kpi-icon.cos.cos-warning{background:#f59e0b}.kpi-icon.cos.cos-bad{background:#ef4444}.kpi-content{display:flex;flex-direction:column}.kpi-label{color:#6b7280;font-size:.75rem;font-weight:500;text-transform:uppercase}.kpi-value{color:#111827;font-size:1.5rem}.kpi-value.cos-excellent{color:#10b981}.kpi-value.cos-good{color:#22c55e}.kpi-value.cos-warning{color:#f59e0b}.kpi-value.cos-bad{color:#ef4444}.kpi-n1{color:#9ca3af;font-size:.75rem;margin-top:.25rem}.summary-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:1.25rem}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.summary-label{font-weight:500}.summary-value{font-size:1.125rem}.summary-value.summary-n1{color:#9ca3af}.summary-value.positive{color:#10b981}.summary-value.negative{color:#ef4444}.chart-section{border:1px solid #e5e7eb;margin-bottom:1.5rem;padding:1.5rem}.chart-section h3{color:#111827;font-size:1rem;font-weight:600;margin:0 0 .5rem}.chart-legend-info{border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin-top:1rem;padding-top:1rem}.legend-item{gap:.5rem}.legend-line{border-radius:2px;height:3px;width:24px}.legend-line.black{background:#1a1a1a}.legend-line.gray{background:#9ca3af}.legend-line.dashed{background:repeating-linear-gradient(90deg,#9ca3af,#9ca3af 4px,#0000 0,#0000 8px)}.legend-bar{border-radius:2px;height:16px;width:12px}.legend-bar.black{background:#1a1a1a;opacity:.7}.legend-bar.gray{background:#9ca3af;opacity:.5}.daily-chart-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.daily-chart-section h3{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.daily-bars{align-items:flex-end;display:flex;gap:4px;height:150px;overflow-x:auto;padding-bottom:.5rem}.daily-bar-container{align-items:center;display:flex;flex:1 1;flex-direction:column;min-width:24px}.daily-bar-wrapper{align-items:flex-end;display:flex;height:120px;width:100%}.daily-bar{border-radius:3px 3px 0 0;cursor:pointer;min-height:4px;transition:height .3s ease;width:100%}.daily-bar.cos-excellent{background:#10b981}.daily-bar.cos-good{background:#22c55e}.daily-bar.cos-warning{background:#f59e0b}.daily-bar.cos-bad{background:#ef4444}.daily-bar:hover{opacity:.8}.daily-bar-label{color:#9ca3af;font-size:.625rem;margin-top:.25rem;white-space:nowrap}.daily-detail-section,.parkings-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.5rem;padding:1.5rem}.daily-detail-section h3,.parkings-section h3{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.daily-table-container,.parkings-table-container{overflow-x:auto}.daily-table,.parkings-table{border-collapse:collapse;font-size:.875rem;width:100%}.daily-table td,.daily-table th,.parkings-table td,.parkings-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}.daily-table th,.parkings-table th{background:#f9fafb;color:#6b7280;font-size:.75rem;font-weight:600;text-transform:uppercase}.daily-table td.num,.daily-table th.num,.parkings-table td.num,.parkings-table th.num{text-align:right}.parking-name{color:#111827}.city{color:#6b7280}.date-cell{color:#111827;font-weight:500}.cos-cell.cos-excellent{color:#10b981;font-weight:600}.cos-cell.cos-good{color:#22c55e;font-weight:600}.cos-cell.cos-warning{color:#f59e0b;font-weight:600}.cos-cell.cos-bad{color:#ef4444;font-weight:600}.daily-table td.n1,.parkings-table td.n1{color:#9ca3af}.daily-table .positive,.daily-table td.positive,.parkings-table .positive,.parkings-table td.positive{color:#10b981;font-weight:600}.daily-table .negative,.daily-table td.negative,.parkings-table .negative,.parkings-table td.negative{color:#ef4444;font-weight:600}.future-row{background:#fefce8}.future-row td{color:#9ca3af!important}.future-badge{background:#fef3c7;border-radius:4px;color:#d97706;display:inline-block;font-size:.625rem;font-weight:600;margin-left:.5rem;padding:.125rem .375rem;text-transform:uppercase}.parkings-table tfoot td{background:#f9fafb;border-top:2px solid #e5e7eb}@media (max-width:768px){.adwords-daily-container{padding:1rem}.adwords-daily-header{flex-direction:column;gap:1rem}.kpi-cards{grid-template-columns:repeat(2,1fr)}.daily-bars{padding-left:.5rem;padding-right:.5rem}.daily-bar-container{min-width:20px}}.daily-booking-modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.daily-booking-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1100px;width:100%}.daily-booking-modal-content.wide{max-width:1500px}.daily-booking-modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.daily-booking-modal-header h3{color:#1a1a2e;font-size:1.25rem;font-weight:600;margin:0}.daily-booking-modal-header .modal-subtitle{color:#6b7280;font-size:.85rem;margin:4px 0 0}.daily-booking-modal-header .close-btn{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;transition:all .2s}.daily-booking-modal-header .close-btn:hover{background-color:#f3f4f6;color:#1a1a2e}.daily-booking-modal-info{background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;padding:16px 24px}.daily-booking-modal-info .info-badge{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:.875rem;padding:8px 16px}.daily-booking-modal-info .info-badge.total{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.daily-booking-modal-info .info-badge strong{font-weight:700}.daily-booking-modal-body{flex:1 1;overflow-y:auto;padding:24px}.bookings-split-view{display:flex;gap:24px;min-height:400px}.bookings-table-panel{flex:1 1;max-height:500px;overflow-x:auto;overflow-y:auto}.bookings-chart-panel{display:flex;flex-direction:column;flex-shrink:0;width:450px}.bookings-chart-panel h4{color:#1a1a2e;font-size:.95rem;font-weight:600;margin:0 0 4px;text-align:center}.bookings-chart-panel .chart-subtitle{color:#6b7280;font-size:.75rem;font-style:italic;margin:0 0 12px;text-align:center}.chart-header-row{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.chart-header-row h4{margin:0 0 4px;text-align:left}.chart-header-row .chart-subtitle{margin:0;text-align:left}.btn-3d-view{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 2px 8px #667eea4d;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:.8rem;font-weight:600;gap:6px;padding:8px 14px;transition:all .2s ease}.btn-3d-view:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-3d-view:active{transform:translateY(0)}.btn-3d-view svg{flex-shrink:0}.platform-legend{background-color:#f9fafb;border-radius:6px;display:flex;flex-wrap:wrap;gap:8px 16px;margin-bottom:16px;padding:8px 12px}.legend-item{color:#374151;font-size:.75rem;gap:6px;white-space:nowrap}.legend-dot{flex-shrink:0;height:10px;width:10px}.scatter-chart-container{flex:1 1;min-height:350px}.scatter-tooltip{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:180px;padding:12px}.scatter-tooltip .tooltip-number{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:.85rem;font-weight:700;margin:0 0 4px}.scatter-tooltip .tooltip-client{color:#374151;font-size:.85rem;margin:0 0 8px}.scatter-tooltip .tooltip-platform{font-size:.8rem;font-weight:600;margin:0 0 8px}.scatter-tooltip .tooltip-info{color:#6b7280;font-size:.8rem;margin:0}.scatter-tooltip .tooltip-info strong{color:#1a1a2e}.modal-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:48px}.modal-loading .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#1a1a2e;height:40px;width:40px}.modal-loading p{color:#6b7280;font-size:.875rem;margin:0}.modal-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:16px;text-align:center}.modal-empty{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:48px}.modal-empty p{font-size:1rem;margin:0}.bookings-table{border:2px solid #1a1a2e;font-size:12px}.bookings-table thead{background:#1a1a2e;position:-webkit-sticky;position:sticky;top:0;z-index:10}.bookings-table th{border-right:1px solid #374151;font-size:10px;padding:10px 8px}.bookings-table td{border-bottom:1px solid #e5e7eb;border-right:1px solid #f3f4f6;color:#374151;padding:8px}.bookings-table tbody tr{transition:background-color .15s ease}.bookings-table tbody tr:hover{background-color:#f3f4f6}.bookings-table tbody tr.highlighted{background-color:#fef3c7!important;box-shadow:inset 0 0 0 2px #f59e0b}.bookings-table tbody tr:last-child td{border-bottom:none}.bookings-table .col-number{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;font-weight:600;white-space:nowrap}.bookings-table .col-client{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookings-table .col-platform{font-weight:600;white-space:nowrap}.bookings-table .col-date{color:#6b7280;font-size:11px;white-space:nowrap}.bookings-table .col-duration{color:#1a1a2e;font-weight:600;text-align:center;white-space:nowrap}.bookings-table .col-amount{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,monospace;font-weight:600;text-align:right;white-space:nowrap}.bookings-table .col-options{color:#6b7280;font-weight:500}.bookings-table .col-total{color:#1a1a2e;font-weight:700}.bookings-table tfoot{background-color:#f9fafb;bottom:0;position:-webkit-sticky;position:sticky}.bookings-table tfoot td{border-bottom:none;border-top:2px solid #1a1a2e}.bookings-table .total-label{color:#1a1a2e;font-size:11px;font-weight:700;letter-spacing:.5px;text-align:right;text-transform:uppercase}.bookings-table .total-amount{color:#1a1a2e;font-size:13px;font-weight:700}.daily-booking-modal-footer{background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;padding:16px 24px}.daily-booking-modal-footer .btn-close{background:#1a1a2e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:10px 24px;transition:all .2s}.daily-booking-modal-footer .btn-close:hover{background:#374151}@media (max-width:1200px){.bookings-split-view{flex-direction:column}.bookings-chart-panel{width:100%}.bookings-table-panel{max-height:350px}}@media (max-width:768px){.daily-booking-modal-content{border-radius:0;max-height:100vh}.daily-booking-modal-content.wide{max-width:100%}.daily-booking-modal-body,.daily-booking-modal-footer,.daily-booking-modal-header{padding:16px}.daily-booking-modal-info{flex-wrap:wrap;padding:12px 16px}.bookings-table{font-size:10px}.bookings-table td,.bookings-table th{padding:6px 4px}}.scatter3d-modal-overlay{align-items:center;background:#0a0a14f2;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:10000}.scatter3d-modal-content{box-sizing:border-box;display:flex;flex-direction:column;height:100%;padding:20px;width:100%}.scatter3d-header{align-items:flex-start;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:10px}.scatter3d-title h2{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.scatter3d-subtitle{color:#94a3b8;font-size:.9rem;margin:5px 0 0}.scatter3d-close-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.scatter3d-close-btn:hover{background:#fff3;border-color:#fff6}.scatter3d-info{align-items:center;background:#ffffff0d;border-radius:8px;display:flex;flex-shrink:0;justify-content:space-between;margin-bottom:15px;padding:12px 16px}.scatter3d-axis-info{color:#e2e8f0;display:flex;font-size:.85rem;gap:24px}.scatter3d-axis-info span{display:flex;gap:6px}.scatter3d-axis-info strong{color:#60a5fa}.scatter3d-help{color:#64748b;font-size:.8rem;font-style:italic}.scatter3d-chart-container{background:#0000004d;border-radius:12px;flex:1 1;min-height:0;overflow:hidden}.scatter3d-legend-bottom{display:flex;flex-shrink:0;flex-wrap:wrap;gap:16px;justify-content:center;padding:15px 0 5px}.scatter3d-legend-bottom .legend-item{align-items:center;color:#e2e8f0;display:flex;font-size:.85rem;gap:6px}.scatter3d-legend-bottom .legend-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}@media (max-width:768px){.scatter3d-modal-content{padding:12px}.scatter3d-title h2{font-size:1.2rem}.scatter3d-info{align-items:flex-start;flex-direction:column;gap:10px}.scatter3d-axis-info{flex-direction:column;gap:6px}.scatter3d-help{display:none}.scatter3d-legend-bottom{gap:10px}.scatter3d-legend-bottom .legend-item{font-size:.75rem}}.monthly-booking-modal-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.monthly-booking-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:1300px;width:100%}.monthly-booking-modal-header{align-items:flex-start;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.monthly-booking-modal-header h3{color:#1a1a2e;font-size:1.25rem;font-weight:600;margin:0}.monthly-booking-modal-header .modal-subtitle{color:#6b7280;font-size:.85rem;margin:4px 0 0}.monthly-booking-modal-header .close-btn{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;transition:all .2s}.monthly-booking-modal-header .close-btn:hover{background-color:#f3f4f6;color:#1a1a2e}.monthly-booking-modal-info{align-items:center;background-color:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;gap:16px;padding:16px 24px}.monthly-booking-modal-info .info-badge{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;font-size:.875rem;padding:8px 16px}.monthly-booking-modal-info .info-badge.total{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.monthly-booking-modal-info .info-badge strong{font-weight:700}.monthly-booking-modal-info .export-btn{align-items:center;background:#059669;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:6px;margin-left:auto;padding:8px 16px;transition:all .2s}.monthly-booking-modal-info .export-btn:hover{background:#047857}.monthly-booking-modal-body{flex:1 1;overflow-y:auto;padding:24px}.monthly-booking-modal-body .modal-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:48px}.monthly-booking-modal-body .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#1a1a2e;height:40px;width:40px}.monthly-booking-modal-body .modal-loading p{color:#6b7280;font-size:.875rem;margin:0}.monthly-booking-modal-body .modal-error{background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;padding:16px;text-align:center}.monthly-booking-modal-body .modal-empty{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:48px}.monthly-booking-modal-body .modal-empty p{font-size:1rem;margin:0}.monthly-bookings-table-wrapper{max-height:500px;overflow-x:auto}.monthly-bookings-table{border:2px solid #1a1a2e;border-collapse:initial;border-radius:8px;border-spacing:0;font-size:12px;overflow:hidden;width:100%}.monthly-bookings-table thead{background:#1a1a2e;position:-webkit-sticky;position:sticky;top:0;z-index:10}.monthly-bookings-table th{border-right:1px solid #374151;color:#fff;font-size:10px;font-weight:600;letter-spacing:.5px;padding:10px 8px;text-align:left;text-transform:uppercase;white-space:nowrap}.monthly-bookings-table th:last-child{border-right:none}.monthly-bookings-table td{border-bottom:1px solid #e5e7eb;border-right:1px solid #f3f4f6;color:#374151;padding:8px}.monthly-bookings-table td:last-child{border-right:none}.monthly-bookings-table tbody tr{transition:background-color .15s ease}.monthly-bookings-table tbody tr:hover{background-color:#f3f4f6}.monthly-bookings-table tbody tr:last-child td{border-bottom:none}.monthly-bookings-table .col-number{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;font-weight:600;white-space:nowrap}.monthly-bookings-table .col-client{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monthly-bookings-table .col-plaque{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:11px;font-weight:600;text-transform:uppercase}.monthly-bookings-table .col-platform{font-weight:500;white-space:nowrap}.monthly-bookings-table .col-date{color:#6b7280;font-size:11px;white-space:nowrap}.monthly-bookings-table .col-duration{color:#1a1a2e;font-weight:600;text-align:center;white-space:nowrap}.monthly-bookings-table .col-amount{color:#1a1a2e;font-family:SF Mono,Monaco,Inconsolata,monospace;font-weight:600;text-align:right;white-space:nowrap}.monthly-bookings-table .col-total{color:#1a1a2e;font-weight:700}.monthly-bookings-table tfoot{background-color:#f9fafb;bottom:0;position:-webkit-sticky;position:sticky}.monthly-bookings-table tfoot td{border-bottom:none;border-top:2px solid #1a1a2e}.monthly-bookings-table .total-label{color:#1a1a2e;font-size:11px;font-weight:700;letter-spacing:.5px;text-align:right;text-transform:uppercase}.monthly-bookings-table .total-amount{color:#1a1a2e;font-size:13px;font-weight:700}.monthly-booking-modal-info .info-badge .badge-detail{color:#6b7280;font-size:.75rem;font-weight:400}.monthly-booking-modal-info .info-badge.total .badge-detail{color:#ffffffb3}.monthly-booking-modal-footer{align-items:center;background-color:#f9fafb;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:16px 24px}.monthly-booking-modal-footer .pagination-controls{align-items:center;display:flex;gap:8px}.monthly-booking-modal-footer .pagination-btn{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;transition:all .2s;width:36px}.monthly-booking-modal-footer .pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#d1d5db}.monthly-booking-modal-footer .pagination-btn:disabled{cursor:not-allowed;opacity:.4}.monthly-booking-modal-footer .pagination-info{color:#374151;font-size:.875rem;padding:0 12px}.monthly-booking-modal-footer .pagination-info strong{color:#1a1a2e;font-weight:700}.monthly-booking-modal-footer .btn-close{background:#1a1a2e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:600;padding:10px 24px;transition:all .2s}.monthly-booking-modal-footer .btn-close:hover{background:#374151}@media (max-width:1200px){.monthly-booking-modal-content{max-width:95%}}@media (max-width:768px){.monthly-booking-modal-content{border-radius:0;max-height:100vh;max-width:100%}.monthly-booking-modal-body,.monthly-booking-modal-footer,.monthly-booking-modal-header{padding:16px}.monthly-booking-modal-info{flex-wrap:wrap;padding:12px 16px}.monthly-bookings-table{font-size:10px}.monthly-bookings-table td,.monthly-bookings-table th{padding:6px 4px}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17171780;padding:1rem}.modal-content{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:auto}.modal-content.modal-large{max-width:900px}.modal-content.modal-xl{max-width:1200px}.modal-header{align-items:flex-start;border-bottom:1px solid var(--gray-200);padding:1.5rem}.modal-header h2{color:var(--gray-900);font-size:1.25rem;letter-spacing:-.025em}.modal-subtitle{color:var(--gray-500);font-size:.875rem;margin-top:.25rem}.modal-close{background:#0000;color:var(--gray-400);padding:.25rem}.modal-close:hover{background:var(--gray-100);color:var(--gray-600)}.modal-body,.modal-footer{padding:1.5rem}.modal-footer{background:var(--gray-50);border-bottom-left-radius:16px;border-bottom-right-radius:16px;border-top:1px solid var(--gray-200);gap:.75rem}.form-group{margin-bottom:1.25rem}.form-group label svg{color:var(--gray-400)}.form-group input,.form-group select,.form-group textarea{background:#fff;border:1px solid var(--gray-300);color:var(--gray-900);padding:.625rem .875rem;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--gray-600);box-shadow:0 0 0 3px #7373731a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed}.form-group small{margin-top:.375rem}.modules-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-top:.75rem}.module-card{background:#fff;border:2px solid var(--gray-200);border-radius:10px;cursor:pointer;padding:1rem .75rem;position:relative;text-align:center;transition:all .2s;-webkit-user-select:none;user-select:none}.module-card:hover{background:var(--gray-50);border-color:var(--gray-400);box-shadow:var(--shadow-md);transform:translateY(-2px)}.module-card.module-selected{background:var(--gray-100);border-color:var(--gray-800)}.module-icon{font-size:2rem;margin-bottom:.5rem}.module-label{color:var(--gray-700);font-size:.75rem;font-weight:500;line-height:1.3}.module-check{align-items:center;background:var(--gray-800);border-radius:50%;color:#fff;display:flex;height:20px;justify-content:center;position:absolute;right:.5rem;top:.5rem;width:20px}@media (max-width:640px){.modal-content{border-radius:0;max-height:100vh;max-width:100%}.modal-body,.modal-footer,.modal-header{padding:1rem}.modules-grid{gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))}.module-card{padding:.75rem .5rem}.module-icon{font-size:1.5rem}}.apps-tree{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;gap:.75rem;max-height:400px;overflow-y:auto;padding:.75rem}.module-section-compact{background-color:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:.5rem}.module-header-compact{border-bottom:1px solid var(--gray-200);margin-bottom:.5rem;padding-bottom:.25rem}.module-header-compact .checkbox-label{align-items:center;display:flex;font-size:.95rem;gap:.5rem}.apps-list-compact{display:flex;flex-direction:column;gap:.25rem;margin-top:.5rem;padding-left:1.5rem}.app-item-compact{border-radius:4px;font-size:.85rem;padding:.25rem .5rem;transition:background-color .15s}.app-item-compact:hover{background-color:var(--gray-100)}.admin-badge-small{background-color:#fff3cd;background-color:var(--warning-bg,#fff3cd);border-radius:8px;color:#856404;color:var(--warning-text,#856404);font-size:.7rem;font-weight:500;margin-left:auto;padding:.1rem .4rem}.info-message{border-left:3px solid #2196f3;border-left:3px solid var(--info-color,#2196f3);margin:.5rem 0;padding:.75rem}.info-message p{font-size:.9rem;margin:0}.my-devices-container{background-color:#fafafa;background-color:var(--gray-50,#fafafa);min-height:100vh}.devices-content{margin:0 auto;max-width:1200px;padding:2rem 1rem}.alert{align-items:center;display:flex;font-weight:500;gap:.75rem;padding:1rem 1.5rem}.alert svg{font-size:1.25rem}.alert-error{background-color:#fee;border:1px solid #fcc;color:#c00}.alert-success{background-color:#efe;border:1px solid #cfc;color:#060}.empty-state{background:var(--white,#fff);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:4rem 2rem}.empty-state svg{color:#d4d4d4;color:var(--gray-300,#d4d4d4);margin-bottom:1.5rem}.empty-state h3{color:#404040;color:var(--gray-700,#404040);font-size:1.25rem;margin:0 0 .5rem}.empty-state p{color:#525252;color:var(--gray-600,#525252);font-size:.875rem}.devices-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));margin-bottom:2rem}.device-card{background:#fff;background:var(--white,#fff);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem;position:relative;transition:all .2s ease}.device-card:hover{border-color:#d4d4d4;border-color:var(--gray-300,#d4d4d4);box-shadow:0 4px 12px #00000026}.current-device-badge{background:#000;border-radius:20px;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.375rem .75rem;position:absolute;right:1rem;text-transform:uppercase;top:1rem}.device-card-header{margin-bottom:1.25rem}.device-icon-wrapper{align-items:center;display:flex;gap:1rem}.device-icon{align-items:center;background:#f5f5f5;background:var(--gray-100,#f5f5f5);border-radius:12px;color:#404040;color:var(--gray-700,#404040);display:flex;font-size:2rem;height:60px;justify-content:center;width:60px}.device-name{color:#000;color:var(--black,#000);font-size:1.125rem;font-weight:600;margin:0}.device-status-badge{margin-bottom:1.5rem}.status-badge{font-size:.875rem;gap:.5rem;padding:.5rem 1rem}.status-badge svg{font-size:1rem}.status-badge.success{background-color:#f5f5f5;background-color:var(--gray-100,#f5f5f5);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);color:#000;color:var(--black,#000)}.status-badge.warning{background-color:#fff3cd;border:1px solid #ffc107;color:#856404}.device-info{margin-bottom:1.5rem}.device-info-row{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200,#e5e5e5);display:flex;justify-content:space-between;padding:.75rem 0}.device-info-row.no-border{border-bottom:none}.info-label{color:#525252;color:var(--gray-600,#525252);font-size:.875rem;font-weight:500}.info-value{color:#000;color:var(--black,#000);font-size:.875rem}.device-2fa-info{background:#fafafa;background:var(--gray-50,#fafafa);border-left:3px solid #000;border-left:3px solid var(--black,#000);border-radius:6px;margin-bottom:1.5rem;padding:1rem}.device-2fa-info p{color:#404040;color:var(--gray-700,#404040);font-size:.875rem;line-height:1.6;margin:0}.btn-revoke{align-items:center;background-color:#dc2626;border:1px solid #dc2626;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .15s ease;width:100%}.btn-revoke:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.btn-revoke:disabled{cursor:not-allowed;opacity:.6}.info-section{background:#fff;background:var(--white,#fff);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:8px;box-shadow:0 1px 2px #0000000d;padding:2rem}.info-section h3{color:#000;color:var(--black,#000);font-size:1.25rem;font-weight:600;margin:0 0 1.5rem}.info-section ul{color:#404040;color:var(--gray-700,#404040);line-height:1.8;padding-left:1.5rem}.info-section li{font-size:.875rem;margin-bottom:.5rem}.loader{border:4px solid #e5e5e5;border-top-color:#000;border:4px solid var(--gray-200,#e5e5e5);border-top-color:var(--black,#000);margin:0 auto}.loader-small{animation:spin .6s linear infinite}@media (max-width:768px){.devices-content{padding:1.5rem .75rem}.devices-grid{gap:1rem;grid-template-columns:1fr}.page-header h1{font-size:1.5rem}.device-card{padding:1.25rem}.device-icon{font-size:1.5rem;height:50px;width:50px}.device-name{font-size:1rem}}.edit-apps-modal{max-height:80vh;max-width:700px;overflow-y:auto}.info-message{background-color:#e3f2fd;background-color:var(--info-bg,#e3f2fd);border-left:4px solid #2196f3;border-left:4px solid var(--info-color,#2196f3);border-radius:4px;margin-bottom:1rem;padding:1rem}.info-message p{color:var(--text-color);margin:.5rem 0}.apps-tree{display:flex;flex-direction:column;gap:1.5rem}.module-section{background-color:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.module-header{border-bottom:2px solid var(--border-color);margin-bottom:.75rem;padding-bottom:.5rem}.module-header .checkbox-label{align-items:center;display:flex;font-size:1.1rem;gap:.5rem}.app-count{color:var(--text-muted);font-size:.9rem;font-weight:400;margin-left:.5rem}.apps-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem;padding-left:1.5rem}.checkbox-label{-webkit-user-select:none;user-select:none}.app-item{border-radius:4px;padding:.4rem .5rem;transition:background-color .15s}.app-item:hover{background-color:var(--hover-bg)}.admin-badge{background-color:#fff3cd;background-color:var(--warning-bg,#fff3cd);border-radius:12px;color:#856404;color:var(--warning-text,#856404);font-size:.75rem;font-weight:500;margin-left:auto;padding:.2rem .6rem}:root{--info:#6b7c93;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a}.admin-page{background-color:#fafafa;background-color:var(--gray-50);min-height:100vh}.admin-header{align-items:flex-start;border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.admin-header h1{color:#171717;color:var(--gray-900);font-size:1.875rem;font-weight:600;letter-spacing:-.025em;margin:0}.admin-subtitle{color:#737373;color:var(--gray-500);font-size:.875rem;margin-top:.25rem}.admin-filters{display:flex;flex-wrap:wrap;gap:1rem}.search-box{align-items:center;background:#fff;border:1px solid #d4d4d4;border:1px solid var(--gray-300);border-radius:8px;display:flex;flex:1 1;gap:.5rem;min-width:300px;padding:.5rem .75rem;transition:all .2s}.search-box:focus-within{border-color:#525252;border-color:var(--gray-600);box-shadow:0 0 0 3px #7373731a}.search-box svg{color:#a3a3a3;color:var(--gray-400);flex-shrink:0}.search-box input{background:#0000;border:none;color:#171717;color:var(--gray-900);flex:1 1;font-size:.875rem;outline:none}.search-box input::placeholder{color:#a3a3a3;color:var(--gray-400)}.search-box button{background:#262626;background:var(--gray-800);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;padding:.375rem .875rem;transition:background .2s}.search-box button:hover{background:#171717;background:var(--gray-900)}.filter-group select{border:1px solid #d4d4d4;border:1px solid var(--gray-300);color:#404040;color:var(--gray-700);transition:all .2s}.filter-group select:hover{border-color:#a3a3a3;border-color:var(--gray-400)}.filter-group select:focus{border-color:#525252;border-color:var(--gray-600);box-shadow:0 0 0 3px #7373731a}.admin-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.stat-card{border:1px solid #e5e5e5;border:1px solid var(--gray-200);padding:1.25rem;transition:all .2s}.stat-card:hover{border-color:#d4d4d4;border-color:var(--gray-300);box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow-md)}.stat-label{color:#737373;color:var(--gray-500);font-size:.875rem;margin-bottom:.5rem}.stat-value{color:#171717;color:var(--gray-900);line-height:1}.admin-table-container{border:1px solid #e5e5e5;border:1px solid var(--gray-200);border-radius:12px;box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm)}.admin-table thead{background:#f5f5f5;background:var(--gray-100);border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200)}.admin-table th{color:#525252;color:var(--gray-600);padding:.875rem 1rem}.admin-table tbody tr{border-bottom:1px solid #f5f5f5;border-bottom:1px solid var(--gray-100);transition:background .15s}.admin-table tbody tr:hover{background:#fafafa;background:var(--gray-50)}.admin-table td{color:#404040;color:var(--gray-700)}.admin-table td.text-center{text-align:center}.empty-state{color:#a3a3a3;color:var(--gray-400);font-size:.875rem;padding:3rem 1rem}.user-info{gap:.75rem}.user-avatar,.user-info{align-items:center;display:flex}.user-avatar{background:#262626;background:var(--gray-800);border-radius:50%;color:#fff;flex-shrink:0;font-size:.875rem;font-weight:600;height:40px;justify-content:center;width:40px}.user-name{color:#171717;color:var(--gray-900);font-weight:500;margin-bottom:.125rem}.user-email{color:#737373;color:var(--gray-500);font-size:.8125rem}.badge{border-radius:6px}.badge-super-admin{background:#171717;background:var(--gray-900);color:#fff}.badge-admin{background:#404040;background:var(--gray-700);color:#fff}.badge-manager{background:#737373;background:var(--gray-500);color:#fff}.badge-read-only{background:#e5e5e5;background:var(--gray-200);color:#404040;color:var(--gray-700)}.status-badge{border-radius:6px;padding:.25rem .625rem}.status-active{background:#52796f1a;color:#52796f;color:var(--success)}.status-inactive{background:#f5f5f5;background:var(--gray-100);color:#737373;color:var(--gray-500)}.tfa-status{align-items:center;display:flex;gap:.25rem}.tfa-badge{font-size:1rem}.tfa-text-badge{background:#f5f5f5;background:var(--gray-100);border-radius:4px;color:#404040;color:var(--gray-700);display:inline-block;font-size:.7rem;font-weight:500;padding:.2rem .5rem}.tfa-none{color:#a3a3a3;color:var(--gray-400);font-size:.75rem}.table-actions{display:flex;gap:.5rem;justify-content:flex-end}.btn-icon{align-items:center;border:1px solid #d4d4d4;border:1px solid var(--gray-300);color:#525252;color:var(--gray-600);display:flex;height:32px;justify-content:center;width:32px}.btn-icon:hover{background:#f5f5f5;background:var(--gray-100);border-color:#a3a3a3;border-color:var(--gray-400);color:#171717;color:var(--gray-900)}.btn-icon.text-success{color:#52796f;color:var(--success)}.btn-icon.text-danger{color:#8b6f6f;color:var(--danger)}.btn-primary{background:#262626;background:var(--gray-800);box-shadow:0 1px 2px 0 #0000000d;box-shadow:var(--shadow-sm);display:inline-flex;padding:.625rem 1.25rem}.btn-primary:hover{background:#171717;background:var(--gray-900);box-shadow:0 4px 6px -1px #0000001a;box-shadow:var(--shadow-md)}.btn-secondary{font-size:.875rem;padding:.625rem 1.25rem}.btn-secondary:hover{background:#fafafa;background:var(--gray-50);border-color:#a3a3a3;border-color:var(--gray-400)}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.loading-state{padding:3rem 1rem;text-align:center}.loading-state p{color:#737373;color:var(--gray-500);font-size:.875rem;margin-top:1rem}.spinner{border:3px solid #e5e5e5;border-top-color:#262626;border:3px solid var(--gray-200);border-top-color:var(--gray-800);margin:0 auto}.error-state{padding:3rem 1rem;text-align:center}.error-state p{color:#8b6f6f;color:var(--danger);font-size:.875rem;margin-bottom:1rem}.admin-actions-bar{align-items:center;display:flex;gap:.75rem;justify-content:flex-end;margin-bottom:1.5rem}.pagination{border-top:1px solid #e5e5e5;border-top:1px solid var(--gray-200);gap:1rem;margin-top:1.5rem;padding:1.5rem 0}.pagination-info{color:#525252;color:var(--gray-600);font-size:.875rem;font-weight:500}.alert{margin-bottom:1rem;padding:.875rem 1rem}.text-success{color:#52796f;color:var(--success)}.text-danger{color:#8b6f6f;color:var(--danger)}.text-warning{color:#9b8677;color:var(--warning)}.access-summary{display:flex;flex-wrap:wrap;gap:.25rem;max-width:250px}.access-module-badge{background:#f5f5f5;background:var(--gray-100);border-radius:4px;color:#404040;color:var(--gray-700);font-size:.7rem;padding:.2rem .5rem;white-space:nowrap}.access-badge,.access-module-badge{display:inline-block;font-weight:500}.access-badge{border-radius:6px;font-size:.75rem;padding:.25rem .625rem}.access-badge.full-access{background:#52796f1a;color:#52796f;color:var(--success)}.access-badge.no-access{background:#f5f5f5;background:var(--gray-100);color:#a3a3a3;color:var(--gray-400)}.admin-tabs{border-bottom:1px solid #e5e5e5;border-bottom:1px solid var(--gray-200);display:flex;gap:.5rem;margin-bottom:1.5rem;padding-bottom:0}.admin-tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#737373;color:var(--gray-500);cursor:pointer;display:flex;font-size:.9375rem;font-weight:500;gap:.5rem;margin-bottom:-1px;padding:.875rem 1.25rem;transition:all .2s ease}.admin-tab:hover{background:#f5f5f5;background:var(--gray-100);color:#404040;color:var(--gray-700)}.admin-tab.active{background:#0000;border-bottom-color:#171717;border-bottom-color:var(--gray-900);color:#171717;color:var(--gray-900)}.admin-tab svg{opacity:.7}.admin-tab.active svg{opacity:1}.admin-page{margin:0 auto;max-width:1400px;padding:2rem}.admin-page__header{align-items:flex-start;border-bottom:2px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1.5rem}.admin-page__title{color:#111827;font-size:1.875rem;font-weight:700;margin:0 0 .5rem}.admin-page__subtitle{color:#6b7280;font-size:.9375rem;margin:0}.admin-filters{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.admin-filters .form-group{margin:0;max-width:300px}.admin-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.admin-table{border-collapse:collapse;width:100%}.admin-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.admin-table th{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.admin-table tbody tr{border-bottom:1px solid #f3f4f6;transition:background-color .15s}.admin-table tbody tr:hover{background-color:#f9fafb}.admin-table tbody tr:last-child{border-bottom:none}.admin-table td{color:#374151;font-size:.875rem;padding:1rem}.admin-table__code{background:#f9fafb;border-radius:4px;color:#6b7280;font-family:Monaco,Courier New,monospace;font-size:.8125rem;padding:.25rem .5rem}.admin-table__label{color:#111827;font-weight:500}.admin-table__path{color:#059669;font-family:Monaco,Courier New,monospace;font-size:.8125rem}.admin-table__module{color:#6b7280;font-size:.8125rem}.admin-table__icon{font-size:1.125rem;text-align:center}.admin-table__order{color:#9ca3af;font-weight:500;text-align:center}.admin-table__count{color:#6b7280;font-size:.8125rem}.admin-table__actions{text-align:right;white-space:nowrap}.admin-table__empty{color:#9ca3af;padding:3rem;text-align:center}.admin-table__empty p{font-size:.9375rem;margin:0}.btn-icon{background:none;border-radius:4px;font-size:1.125rem;opacity:.6;padding:.375rem;transition:opacity .15s,transform .15s}.btn-icon:hover{opacity:1}.btn-icon-danger:hover{background:#fef2f2}.badge{border-radius:9999px;letter-spacing:.025em;padding:.25rem .625rem}.badge-success{background:#d1fae5;color:#065f46}.badge-inactive{background:#f3f4f6;color:#6b7280}.badge-secondary{background:#e5e7eb;color:#4b5563}.modal-large{max-width:700px}.form-row{grid-gap:1rem;gap:1rem}.checkbox-label{gap:.5rem;margin-top:.5rem}.checkbox-label span{color:#374151;font-size:.9375rem}.admin-page .loading{flex-direction:column;gap:1rem;min-height:400px}.admin-page .loading,.btn-expand{align-items:center;color:#6b7280;display:flex;justify-content:center}.btn-expand{background:none;border:none;cursor:pointer;font-size:.875rem;padding:.25rem;transition:transform .2s,color .15s}.btn-expand:hover{color:#111827}.module-row{background:#fafbfc;font-weight:500}.module-row:hover{background:#f3f4f6!important}.app-row{background:#fff}.app-row td{border-left:3px solid #e5e7eb}.app-row:hover{background:#f9fafb!important}@media (max-width:1024px){.admin-page{padding:1.5rem}.admin-page__header{flex-direction:column;gap:1rem}.form-row{grid-template-columns:1fr}.admin-table{font-size:.8125rem}.admin-table td,.admin-table th{padding:.625rem}}:root{--gray-50:#fafafa;--gray-100:#f5f5f5;--gray-200:#e5e5e5;--gray-300:#d4d4d4;--gray-400:#a3a3a3;--gray-500:#737373;--gray-600:#525252;--gray-700:#404040;--gray-800:#262626;--gray-900:#171717;--success:#52796f;--warning:#9b8677;--danger:#8b6f6f}.auth-container{background:linear-gradient(135deg,#f5f5f5,#e5e5e5);background:linear-gradient(135deg,var(--gray-100) 0,var(--gray-200) 100%);padding:2rem}.auth-card{border-radius:12px;box-shadow:0 4px 6px #0000000d,0 10px 20px #00000014;max-width:450px;padding:2.5rem}.auth-header{margin-bottom:2rem}.auth-header h1{color:#171717;color:var(--gray-900);font-size:1.75rem;font-weight:700;margin:0 0 .5rem;text-align:center}.auth-header p{color:#737373;color:var(--gray-500);margin:0;text-align:center}.form-group{margin-bottom:1.5rem}.form-group label{align-items:center;color:#404040;color:var(--gray-700);display:flex;gap:.5rem}.form-group input{background:#fff;border:1px solid #d4d4d4;border:1px solid var(--gray-300);border-radius:8px;color:#171717;color:var(--gray-900);font-size:.9375rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.form-group input:focus{border-color:#737373;border-color:var(--gray-500);box-shadow:0 0 0 3px #7373731a}.form-group input:disabled{background:#f5f5f5;background:var(--gray-100);cursor:not-allowed}.form-group small{color:#737373;color:var(--gray-500);font-size:.8125rem;margin-top:.5rem}.btn-primary{background:linear-gradient(135deg,#404040,#262626);background:linear-gradient(135deg,var(--gray-700) 0,var(--gray-800) 100%);font-size:.9375rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#262626,#171717);background:linear-gradient(135deg,var(--gray-800) 0,var(--gray-900) 100%)}.btn-secondary{border:1px solid #d4d4d4;border:1px solid var(--gray-300);color:#404040;color:var(--gray-700);font-size:.9375rem;font-weight:600;padding:.875rem 1.5rem;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:#fafafa;background:var(--gray-50);border-color:#a3a3a3}.alert{border-radius:8px;font-size:.875rem;margin-bottom:1.5rem;padding:1rem}.alert-error{background:#8b6f6f1a;border:1px solid #8b6f6f33;color:#8b6f6f;color:var(--danger)}.alert-success{background:#52796f1a;border:1px solid #52796f33;color:#52796f;color:var(--success)}.alert-warning{background:#9b86771a;border:1px solid #9b867733;color:#9b8677;color:var(--warning)}.spinner{border:3px solid #ffffff4d;height:24px;width:24px}.loading{gap:1rem;padding:3rem}.loading .spinner{border-color:#d4d4d4;border-color:var(--gray-300);border-top-color:#404040;border-top-color:var(--gray-700)}@media (max-width:640px){.auth-container{padding:1rem}.auth-card{padding:2rem 1.5rem}.auth-header h1{font-size:1.5rem}}.unmapped-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.unmapped-modal-container{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;height:90vh;max-width:1800px;width:95vw}.unmapped-modal-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;color:#1f2937;display:flex;justify-content:space-between;padding:20px 30px}.unmapped-modal-header h2{font-size:1.5rem;font-weight:600;margin:0}.close-btn{color:#6b7280;font-size:2rem;height:40px;width:40px}.close-btn:hover{background:#f3f4f6;color:#1f2937}.loading-container,.no-unmapped-container{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:40px}.spinner-small{animation:spin .8s linear infinite;border:2px solid #f3f4f6;border-top-color:#1f2937;height:24px;width:24px}.unmapped-modal-content{border-bottom:1px solid #e5e7eb;display:flex;flex:1 1;overflow:hidden}.unmapped-list-panel{background:#f9fafb;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;width:20%}.unmapped-list-header{background:#fff;border-bottom:1px solid #e5e7eb;padding:15px}.unmapped-list-header h3{color:#374151;font-size:1rem;font-weight:600;margin:0}.unmapped-list{flex:1 1;overflow-y:auto}.unmapped-item{background:#fff;border-bottom:1px solid #e5e7eb;cursor:pointer;padding:12px 15px;transition:all .2s}.unmapped-item:hover{background:#f3f4f6}.unmapped-item.active{background:#1f2937;color:#fff}.unmapped-item-number{font-size:.9rem;font-weight:600;margin-bottom:4px}.unmapped-item-name{font-size:.8rem;margin-bottom:6px;opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unmapped-item-status{display:flex;justify-content:flex-start}.status-badge{font-size:.7rem;padding:2px 8px}.status-pending{background:#fef3c7;color:#92400e}.status-accepted{background:#d1fae5;color:#065f46}.status-modified{background:#dbeafe;color:#1e40af}.status-suggested{background:#e0e7ff;color:#3730a3}.mapping-panel{border-right:1px solid #e5e7eb;display:flex;flex-direction:column;width:40%}.mapping-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:15px;justify-content:space-between;padding:15px 20px}.account-info-compact h3{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.entity-label{color:#6b7280;display:inline-block;font-size:.8rem;margin-top:4px}.site-selection-compact{align-items:center;display:flex;gap:8px}.site-selection-compact label{color:#374151;font-size:.9rem;font-weight:500}.form-select{border-radius:4px;cursor:pointer;font-size:.9rem;padding:6px 10px}.navigation-controls-compact{align-items:center;display:flex;gap:10px}.btn-nav{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;font-size:1rem;padding:6px 12px;transition:all .2s}.btn-nav:hover:not(:disabled){background:#f3f4f6;border-color:#1f2937}.btn-nav:disabled{cursor:not-allowed;opacity:.4}.nav-counter{color:#6b7280;font-size:.9rem;font-weight:500}.no-site-message{color:#6b7280;font-size:1rem}.loading-suggestion,.no-site-message{align-items:center;display:flex;flex:1 1;justify-content:center}.loading-suggestion{flex-direction:column;gap:10px}.mapping-table-container{background:#f9fafb;flex:1 1;overflow-y:auto;padding:20px}.mapping-table{background:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;overflow:hidden;width:100%}.mapping-table thead{background:#f3f4f6}.mapping-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-size:.85rem;font-weight:600;padding:12px;text-align:left}.mapping-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;font-size:.9rem;padding:12px}.account-row.account-before{background:#fef3c7}.account-row.account-current{background:#dbeafe;font-weight:600}.account-row.account-after{background:#fef3c7}.account-row.account-empty{background:#f9fafb;color:#9ca3af;font-style:italic;text-align:center}.form-select-table{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#1f2937;cursor:pointer;font-size:.85rem;padding:6px 8px;width:100%}.form-select-table:focus{border-color:#1f2937;box-shadow:0 0 0 2px #1f29371a;outline:none}.mapping-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn-skip{background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#374151;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 20px;transition:all .2s}.btn-skip:hover{background:#f3f4f6;border-color:#1f2937}.btn-next{background:#1f2937;border:1px solid #1f2937;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 20px;transition:all .2s}.btn-next:hover:not(:disabled){background:#111827}.btn-next:disabled{cursor:not-allowed;opacity:.5}.gl-extract-panel{background:#f9fafb;display:flex;flex-direction:column;width:40%}.gl-extract-header{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:15px 20px}.gl-extract-header h3{color:#1f2937;font-size:1rem;font-weight:600;margin:0}.gl-account-label{background:#f3f4f6;border-radius:12px;color:#6b7280;font-size:.9rem;font-weight:500;padding:4px 12px}.loading-gl{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:10px;justify-content:center}.gl-extract-content{flex:1 1;overflow-y:auto;padding:15px}.gl-table{background:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;font-size:.85rem;overflow:hidden;width:100%}.gl-table thead{background:#f3f4f6;position:-webkit-sticky;position:sticky;top:0}.gl-table th{border-bottom:2px solid #e5e7eb;color:#374151;font-size:.8rem;font-weight:600;padding:10px 12px;text-align:left}.gl-table td{border-bottom:1px solid #e5e7eb;color:#1f2937;padding:10px 12px}.gl-table tbody tr:hover{background:#f9fafb}.gl-label{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gl-amount{font-family:Courier New,monospace;font-weight:500;text-align:right}.no-gl-data{align-items:center;color:#9ca3af;display:flex;flex:1 1;font-style:italic;justify-content:center}.unmapped-modal-footer{align-items:center;background:#fff;display:flex;justify-content:space-between;padding:20px 30px}.footer-info{color:#6b7280;font-size:.9rem;font-weight:500}.footer-actions{display:flex;gap:12px}.btn-cancel{font-size:1rem;padding:10px 24px}.btn-cancel:hover{background:#f3f4f6;border-color:#1f2937}.btn-validate{background:#1f2937;border:1px solid #1f2937;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:10px 24px;transition:all .2s}.btn-validate:hover:not(:disabled){background:#111827}.btn-validate:disabled{cursor:not-allowed;opacity:.5}.btn-primary{font-size:1rem;padding:10px 24px}.btn-primary:hover{background:#111827}.gl-diagnostic-section{margin:0 auto;max-width:1200px;padding:20px}.diagnostic-subtitle{color:#6b7280;font-size:14px;margin-bottom:30px}.diagnostic-loading{padding:60px 20px;text-align:center}.spinner{border:4px solid #e5e7eb;border-top-color:#3b82f6}.quality-score-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;gap:30px;margin-bottom:30px;padding:30px}.quality-score-circle{align-items:center;border:6px solid;border-radius:50%;display:flex;flex-direction:column;flex-shrink:0;height:120px;justify-content:center;width:120px}.quality-score-value{font-size:36px;font-weight:700;line-height:1}.quality-score-label{color:#6b7280;font-size:12px;margin-top:5px}.quality-score-details{flex:1 1}.quality-status{font-size:18px;font-weight:600}.diagnostic-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.diagnostic-stat-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:20px;text-align:center}.diagnostic-stat-card.stat-warning{border-left:4px solid #f59e0b}.diagnostic-stat-card.stat-error{border-left:4px solid #ef4444}.diagnostic-stat-value{color:#1f2937;font-size:32px;font-weight:700;margin-bottom:8px}.diagnostic-stat-label{color:#6b7280;font-size:14px}.column-detection-box{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;margin-bottom:30px;padding:20px}.column-detection-box h3{color:#16a34a;font-size:16px;margin:0 0 10px}.column-status{color:#166534;margin:0}.warnings-section{margin-bottom:30px}.warnings-section h3{color:#1f2937;margin-bottom:15px}.warning-item{background:#fff;border-left:4px solid;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:15px;padding:20px}.warning-item.warning-high{background:#fef2f2;border-left-color:#ef4444}.warning-item.warning-medium{background:#fffbeb;border-left-color:#f59e0b}.warning-item.warning-low{background:#eff6ff;border-left-color:#3b82f6}.warning-header{align-items:center;display:flex;gap:10px;margin-bottom:10px}.warning-icon{font-size:20px}.warning-message{color:#1f2937;font-size:16px;font-weight:600}.warning-details{color:#4b5563;font-size:14px;margin:0 0 15px 30px}.warning-sample{margin:15px 0 0 30px}.warning-sample details{cursor:pointer}.warning-sample summary{color:#3b82f6;font-size:14px;padding:8px 0;-webkit-user-select:none;user-select:none}.warning-sample summary:hover{text-decoration:underline}.sample-table{border-collapse:collapse;font-size:13px;margin-top:10px;width:100%}.sample-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:8px 12px;text-align:left}.sample-table td{border-bottom:1px solid #e5e7eb;padding:8px 12px}.sample-table code{background:#f3f4f6;border-radius:4px;font-family:Courier New,monospace;padding:2px 6px}.sample-table em{color:#6b7280;font-size:12px}.recommendations-section{margin-bottom:30px}.recommendations-section h3{color:#1f2937;margin-bottom:15px}.recommendation-item{background:#eff6ff;border-left:4px solid #3b82f6;border-radius:8px;margin-bottom:10px;padding:15px 20px}.recommendation-message{color:#1e40af;font-weight:600;margin-bottom:8px}.recommendation-action{color:#1e3a8a;font-size:14px}.diagnostic-stat-card.stat-info{border-left:4px solid #3b82f6}.warning-full-list{margin-top:15px}.btn-show-all{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-show-all:hover{background:#2563eb}.full-accounts-table-container{border:1px solid #e5e7eb;border-radius:8px;margin-top:15px;max-height:400px;overflow-y:auto}.full-accounts-table{background:#fff;border-collapse:collapse;font-size:13px;width:100%}.full-accounts-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;font-weight:600;padding:10px 12px;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:1}.full-accounts-table td{border-bottom:1px solid #f3f4f6;padding:8px 12px}.full-accounts-table code{background:#f3f4f6;border-radius:4px;font-family:Courier New,monospace;font-size:12px;padding:3px 6px}.type-badge{font-size:11px;padding:3px 8px}.amount{font-family:Courier New,monospace;font-size:13px;text-align:right}.all-accounts-section{margin-bottom:30px}.all-accounts-section h3{color:#1f2937;margin-bottom:15px}.accounts-controls{display:flex;gap:15px;margin-bottom:15px}.search-input{border:1px solid #d1d5db;border-radius:8px;font-size:14px}.search-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filter-select{border:1px solid #d1d5db}.filter-select:focus{border-color:#3b82f6}.accounts-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;max-height:500px;overflow-y:auto}.accounts-table{font-size:13px}.accounts-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;padding:12px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.accounts-table td{border-bottom:1px solid #f3f4f6;padding:10px 12px}.accounts-table tbody tr:hover{background:#f9fafb}.accounts-table code{background:#f3f4f6;border-radius:4px;font-family:Courier New,monospace;font-size:12px;padding:4px 8px}.btn-view-details{background:#3b82f6;border-radius:6px;font-size:12px;padding:6px 12px;transition:background .2s}.btn-view-details:hover{background:#2563eb}.modal-content{box-shadow:0 20px 25px -5px #0000001a}.modal-header h3{color:#1f2937}.modal-close{color:#9ca3af;font-size:28px;height:32px;width:32px}.modal-close:hover{background:#f3f4f6;color:#374151}.account-info{background:#f9fafb;border-radius:8px;margin-bottom:24px;padding:20px}.info-row{border-bottom:1px solid #e5e7eb}.info-label{color:#6b7280}.entries-section h4,.info-value{color:#1f2937}.spinner-small{border:3px solid #e5e7eb;border-top-color:#3b82f6}.entries-table-container{border:1px solid #e5e7eb;border-radius:8px}.entries-table{font-size:12px}.entries-table th{background:#f9fafb;border-bottom:2px solid #e5e7eb;color:#374151;padding:10px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.entries-table td{border-bottom:1px solid #f3f4f6;padding:8px 10px}.entries-table .entry-description{max-width:300px}.entries-table tbody tr:hover{background:#f9fafb}.no-entries{background:#fffbeb;border:1px solid #fbbf24;border-radius:8px;color:#92400e}.diagnostic-actions{border-top:2px solid #e5e7eb;display:flex;gap:15px;justify-content:space-between;margin-top:30px;padding-top:30px}.btn{border-radius:8px;font-weight:600;padding:12px 24px}.btn-primary{background:#3b82f6}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{background:#9ca3af}.btn-secondary{background:#e5e7eb}.btn-secondary:hover{background:#d1d5db}.error-box{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;margin-top:20px;padding:15px 20px}.error-box strong{display:block;margin-bottom:8px}.gl-preview-section{padding:20px}.gl-preview-section h2{color:#2c3e50;margin-bottom:20px}.gl-preview-section h3{color:#34495e;font-size:1.2rem;margin-bottom:15px}.gl-preview-section h4{color:#34495e;font-size:1rem;font-weight:600;margin-bottom:10px}.warning-box{background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;margin-bottom:20px}.preview-stats{grid-gap:15px;gap:15px;margin-bottom:25px}.stat-card{box-shadow:0 2px 4px #0000000d}.stat-value{color:#3498db}.balance-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;padding:20px}.balance-row{border-bottom:1px solid #f0f0f0}.balance-row.balance-result{border-top:2px solid #e0e0e0;font-size:1.1rem;font-weight:700;margin-top:10px;padding-top:15px}.balance-ok{color:#27ae60}.balance-error{color:#e74c3c}.years-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;padding:20px}.years-info{margin-top:10px}.year-single{align-items:center;display:flex;gap:15px}.year-badge-large{background:#3498db;border-radius:6px;color:#fff;display:inline-block;font-size:1.5rem;font-weight:700;padding:10px 25px}.year-description{color:#7f8c8d;font-size:.95rem}.years-list{flex-wrap:wrap}.year-badge{background:#3498db;border-radius:4px;display:inline-block;font-weight:700}.accounts-browser{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;padding:20px}.browser-header{margin-bottom:20px}.browser-header h3{margin-bottom:15px}.browser-controls{display:flex;flex-wrap:wrap;gap:10px}.search-input{border:1px solid #ddd;border-radius:4px;flex:1 1;font-size:.95rem;min-width:250px;padding:10px 15px}.search-input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.filter-select{background:#fff;border:1px solid #ddd;font-size:.95rem;padding:10px 15px}.filter-select:focus{border-color:#3498db}.accounts-table-container{margin-bottom:15px;overflow-x:auto}.accounts-table{font-size:.9rem}.accounts-table thead{background:#f8f9fa;position:-webkit-sticky;position:sticky;top:0}.accounts-table th{border-bottom:2px solid #dee2e6;color:#2c3e50;padding:12px 10px;text-align:left}.accounts-table th.text-right{text-align:right}.accounts-table tbody tr{border-bottom:1px solid #f0f0f0;cursor:pointer}.accounts-table tbody tr:hover{background-color:#f8f9fa}.accounts-table td{padding:12px 10px}.accounts-table td.text-right{text-align:right}.accounts-table td.text-center{text-align:center}.account-number{color:#2c3e50;font-family:Courier New,monospace;font-weight:600}.account-name{color:#34495e}.type-badge{border-radius:12px;font-size:.8rem;padding:4px 10px}.type-badge.type-bilan{background:#e3f2fd;color:#1976d2}.type-badge.type-pl{background:#f3e5f5;color:#7b1fa2}.balance-value{font-family:Courier New,monospace;font-weight:500}.balance-value.debit{color:#e74c3c}.balance-value.credit{color:#27ae60}.btn-view-details{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:4px 10px;transition:background-color .2s}.btn-view-details:hover{background:#2980b9}.pagination{border-top:1px solid #e0e0e0;padding-top:15px}.pagination-btn{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:background-color .2s}.pagination-btn:hover:not(:disabled){background:#2980b9}.pagination-btn:disabled{background:#bdc3c7;cursor:not-allowed}.pagination-info{color:#7f8c8d;font-size:.9rem}.pagination-total{color:#95a5a6;font-size:.85rem;margin-left:8px}.modal-content{border-radius:8px;box-shadow:0 10px 40px #0000004d;max-width:900px}.account-detail-modal{max-width:1100px}.modal-header{border-bottom:1px solid #e0e0e0;padding:20px}.modal-close{color:#7f8c8d;font-size:2rem;height:30px;padding:0;transition:color .2s;width:30px}.modal-close:hover{color:#2c3e50}.modal-body{padding:20px}.modal-footer{border-top:1px solid #e0e0e0;gap:10px;padding:15px 20px}.account-info{background:#f8f9fa;border-radius:6px;margin-bottom:20px;padding:15px}.info-row{border-bottom:1px solid #e9ecef}.info-row:last-child{border-bottom:none}.info-label{color:#495057;min-width:120px}.info-value{color:#212529}.ran-section{background:#fff3e0;border-left:4px solid #ff9800;border-radius:4px;margin-bottom:20px;padding:15px}.ran-details{margin-top:10px}.ran-row{border-bottom:1px solid #ff98001a;display:flex;justify-content:space-between;padding:8px 0}.ran-row:last-child{border-bottom:none}.ran-row.total{border-top:2px solid #ff98004d;font-size:1.05rem;font-weight:700;margin-top:8px;padding-top:12px}.totals-section{background:#e8f5e9;border-left:4px solid #4caf50;border-radius:4px;margin-bottom:20px;padding:15px}.totals-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:10px}.total-item{background:#fff;border-radius:4px;padding:12px;text-align:center}.total-item.highlight{background:#c8e6c9;border:2px solid #4caf50}.total-label{color:#666;display:block;font-size:.85rem;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.total-value{color:#2c3e50;display:block;font-family:Courier New,monospace;font-size:1.2rem;font-weight:700}.entries-section{background:#f8f9fa;border-radius:4px;padding:15px}.entries-table-container{border:1px solid #dee2e6;border-radius:4px;margin-top:10px;overflow-x:auto;overflow-y:auto}.entries-table{background:#fff}.entries-table thead{background:#e9ecef}.entry-description{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entries-note{background:#f8f9fa;border-top:1px solid #dee2e6;color:#7f8c8d;font-size:.85rem;padding:10px;text-align:center}.no-entries{color:#7f8c8d;font-style:italic}.preview-actions{border-top:1px solid #e0e0e0;gap:10px;justify-content:space-between;padding-top:20px}.btn-primary:hover{background:#2980b9;box-shadow:0 4px 8px #00000026}@media (max-width:768px){.preview-stats{grid-template-columns:repeat(2,1fr)}.browser-controls{flex-direction:column}.search-input{min-width:100%}.accounts-table{font-size:.8rem}.accounts-table td,.accounts-table th{padding:8px 6px}.modal-content{max-width:95%}.totals-grid{grid-template-columns:1fr}.pagination{flex-direction:column;gap:10px}}.gl-validation-section{padding:20px}.gl-validation-section h2{color:#2c3e50;margin-bottom:20px}.gl-validation-section h3{color:#34495e;font-size:1.2rem;margin-bottom:15px}.validation-loading{align-items:center;background:#fff;border-radius:8px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.spinner{border-top-color:#3498db;margin-bottom:20px}.validation-summary-card{background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #00000014;margin-bottom:25px;padding:25px}.validation-summary-card.can-import{background:linear-gradient(180deg,#fff 0,#f0fff4);border-color:#27ae60}.validation-summary-card.cannot-import{background:linear-gradient(180deg,#fff 0,#fff5f5);border-color:#e74c3c}.summary-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.summary-header h3{margin:0}.import-badge{border-radius:6px;font-size:1rem;font-weight:600;padding:10px 20px}.import-badge.ready{background:#27ae60;color:#fff}.import-badge.blocked{background:#e74c3c;color:#fff}.summary-stats-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-stat-item{align-items:center;background:#fff;border:2px solid #0000;border-radius:6px;display:flex;gap:15px;padding:15px}.summary-stat-item.success{background:#e8f8f5;border-color:#27ae60}.summary-stat-item.warning{background:#fef5e7;border-color:#f39c12}.summary-stat-item.error{background:#fadbd8;border-color:#e74c3c}.summary-stat-item .stat-icon{font-size:2rem}.summary-stat-item .stat-content{flex:1 1}.summary-stat-item .stat-value{color:#2c3e50;font-size:1.8rem;font-weight:700}.summary-stat-item .stat-label{color:#7f8c8d;font-size:.9rem;letter-spacing:.5px;text-transform:uppercase}.validation-results{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;padding:25px}.validation-cards{display:flex;flex-direction:column;gap:15px}.validation-card{background:#fff;border:2px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:all .2s}.validation-card.pass{border-left:4px solid #27ae60}.validation-card.warning{border-left:4px solid #f39c12}.validation-card.error{border-left:4px solid #e74c3c}.validation-card:hover{box-shadow:0 4px 12px #0000001a}.validation-card-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:20px;-webkit-user-select:none;user-select:none}.validation-card-header:hover{background:#f8f9fa}.validation-card-left{align-items:center;display:flex;flex:1 1;gap:20px}.validation-status-badge{align-items:center;border-radius:6px;display:flex;font-size:.9rem;font-weight:600;gap:8px;min-width:110px;padding:8px 16px}.validation-status-badge.pass{background:#d4edda;color:#155724}.validation-status-badge.warning{background:#fff3cd;color:#856404}.validation-status-badge.error{background:#f8d7da;color:#721c24}.status-icon{font-size:1.2rem}.validation-title h4{color:#2c3e50;font-size:1.1rem;margin:0 0 5px}.validation-description{color:#7f8c8d;font-size:.9rem;margin:0}.validation-card-right{align-items:center;display:flex;gap:20px}.severity-indicator{align-items:center;display:flex;gap:8px}.severity-label{color:#7f8c8d;font-size:.85rem}.severity-badge{color:#fff;font-size:.85rem;padding:6px 12px;text-transform:uppercase}.severity-badge.severity-none{background:#27ae60}.severity-badge.severity-low{background:#3498db}.severity-badge.severity-medium{background:#f39c12}.severity-badge.severity-high{background:#e74c3c}.expand-btn{background:none;border:none;color:#7f8c8d;cursor:pointer;font-size:1.2rem;padding:5px 10px;transition:transform .2s}.expand-btn:hover{color:#2c3e50}.validation-card-body{background:#f8f9fa;border-top:1px solid #e9ecef;padding:20px}.validation-importance,.validation-message{background:#fff;border-radius:4px;margin-bottom:15px;padding:12px}.validation-importance strong,.validation-message strong{color:#495057;display:block;margin-bottom:5px}.validation-details-section{margin-bottom:15px}.validation-details-section>strong{color:#495057;display:block;margin-bottom:10px}.account-balance-details{background:#fff;border-radius:4px;margin-top:10px;padding:15px}.details-intro{color:#495057;font-weight:500;margin-bottom:15px}.balance-details-table{border-collapse:collapse;font-size:.9rem;margin-bottom:15px;width:100%}.balance-details-table thead{background:#e9ecef}.balance-details-table th{color:#495057;font-weight:600;padding:10px;text-align:left}.balance-details-table td{border-bottom:1px solid #f0f0f0;padding:10px}.balance-details-table .account-number{font-family:Courier New,monospace;font-weight:600}.balance-details-table .account-name{color:#495057}.details-note{color:#7f8c8d;font-style:italic;margin-bottom:15px;text-align:center}.details-explanation{background:#e3f2fd;border-left:4px solid #2196f3;border-radius:4px;margin-top:15px;padding:12px}.details-explanation strong{color:#1976d2;display:block;margin-bottom:8px}.details-explanation p{color:#495057;line-height:1.5;margin:5px 0}.details-explanation ul{margin:10px 0;padding-left:20px}.details-explanation li{color:#495057;margin:5px 0}.equilibre-details{background:#fff;border-radius:4px;margin-top:10px;padding:15px}.equilibre-table{border-collapse:collapse;margin-bottom:15px;width:100%}.equilibre-table td{border-bottom:1px solid #f0f0f0;padding:10px}.equilibre-table .text-right{font-family:Courier New,monospace;text-align:right}.equilibre-table .total-row{border-top:2px solid #495057;font-size:1.05rem;font-weight:700}.low-amount{color:#27ae60;font-weight:600}.high-amount{color:#e74c3c;font-weight:600}.success-text{background:#d4edda;color:#155724}.success-text,.warning-text{border-radius:4px;padding:10px}.warning-text{background:#fff3cd;color:#856404}.details-json{background:#2c3e50;border-radius:4px;color:#ecf0f1;margin-top:10px;overflow-x:auto;padding:15px}.details-json pre{font-family:Courier New,monospace;font-size:.85rem;margin:0}.validation-action-advice{background:#fff9e6;border-left:4px solid #ffc107;border-radius:4px;margin-top:15px;padding:15px}.validation-action-advice strong{color:#f57c00;display:block;margin-bottom:8px}.validation-action-advice p{color:#495057;line-height:1.5;margin:0}.validation-actions{border-top:1px solid #e0e0e0;display:flex;gap:10px;justify-content:space-between;padding-top:20px}.btn-primary:disabled{background:#bdc3c7;transform:none}.btn-secondary:hover{background:#7f8c8d}.text-right{text-align:right}.text-center{text-align:center}.search-bar-container{align-items:center;display:flex;gap:15px;margin-bottom:20px}.search-input-validation{border:2px solid #e0e0e0;border-radius:6px;flex:1 1;font-size:1rem;padding:12px 16px;transition:all .2s}.search-input-validation:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.search-results-count{color:#7f8c8d;font-size:.9rem;font-weight:500;white-space:nowrap}.balance-details-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 2px 8px #00000014;max-height:500px;overflow-y:auto}.balance-details-table-full{border-collapse:collapse;font-size:.9rem;width:100%}.balance-details-table-full thead{background:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:10}.balance-details-table-full th{border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:12px;text-align:left}.balance-details-table-full td{border-bottom:1px solid #f0f0f0;padding:10px 12px}.balance-details-table-full tbody tr:hover{background:#f8f9fa}.balance-details-table-full .account-number{font-family:Courier New,monospace;font-weight:600}.balance-details-table-full .account-name{color:#495057;max-width:300px}.balance-details-table-full .text-right{font-family:Courier New,monospace;text-align:right}.balance-details-table-full .text-center{text-align:center}.btn-view-details-small{background:#3498db;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 12px;transition:all .2s}.btn-view-details-small:hover{background:#2980b9;transform:translateY(-1px)}.type-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:4px 8px;text-transform:uppercase}.type-badge.type-bilan{background:#dbeafe;color:#1e40af}.type-badge.type-pl{background:#d1fae5;color:#065f46}.type-badge.type-unknown{background:#f3f4f6;color:#6b7280}.modal-overlay{animation:fadeIn .2s ease-out;background:#0009}.modal-content{animation:slideUp .3s ease-out;max-width:1200px}.modal-large{max-width:1400px}.modal-header{background:#f8f9fa;border-bottom:2px solid #e9ecef}.modal-header h3{color:#2c3e50;font-size:1.4rem}.modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#95a5a6;cursor:pointer;display:flex;font-size:32px;height:40px;justify-content:center;line-height:1;transition:all .2s;width:40px}.modal-close:hover{background:#dee2e6;color:#495057}.account-info-detail{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-bottom:24px;padding:20px}.info-row-detail{border-bottom:1px solid #dee2e6;display:flex;justify-content:space-between;padding:10px 0}.info-row-detail:last-child{border-bottom:none}.info-label{color:#6c757d;min-width:180px}.info-value{flex:1 1;font-family:Courier New,monospace;text-align:right}.calculation-breakdown{background:#fff;border:2px solid #3498db;border-radius:8px;margin-bottom:24px;padding:20px}.calculation-breakdown h4{align-items:center;color:#2c3e50;display:flex;font-size:1.1rem;gap:10px;margin:0 0 15px}.calculation-table{border-collapse:collapse;margin-bottom:10px;width:100%}.calculation-table td{border-bottom:1px solid #e9ecef;padding:12px 15px}.calculation-table td:first-child{color:#495057;font-weight:600;width:250px}.calculation-table td:last-child{font-family:Courier New,monospace;font-size:1rem;text-align:right}.calculation-total{background:#e3f2fd;font-size:1.05rem;font-weight:700}.calculation-expected{background:#f1f8e9;font-size:1.05rem;font-weight:700}.calculation-ecart{background:#fff3e0;border-top:3px solid #ff9800;font-size:1.1rem;font-weight:700}.calculation-ecart td:last-child{color:#f57c00;font-size:1.2rem}.ecart-minor{color:#27ae60!important}.ecart-major{color:#e74c3c!important}.info-box{border-left:4px solid;border-radius:6px;padding:15px 20px}.info-box.info{background:#e3f2fd;border-left-color:#2196f3;color:#0d47a1}.info-box.warning{background:#fff3e0;border-left-color:#ff9800;color:#e65100}.info-box strong{display:block;font-size:1rem;margin-bottom:5px}.entries-section{margin-top:24px}.entries-section h4{color:#2c3e50;font-size:1.1rem;margin:0 0 15px}.entries-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:6px;max-height:400px;overflow:auto}.entries-table{border-collapse:collapse;font-size:.85rem;width:100%}.entries-table thead{background:#f8f9fa;position:-webkit-sticky;position:sticky;top:0;z-index:1}.entries-table th{border-bottom:2px solid #dee2e6;color:#495057;font-weight:600;padding:10px 8px;text-align:left;white-space:nowrap}.entries-table td{border-bottom:1px solid #f0f0f0;padding:8px;white-space:nowrap}.entries-table .entry-description{word-wrap:break-word;max-width:250px;white-space:normal}.entries-table tbody tr:hover{background:#f8f9fa}.entries-table .text-right{font-family:Courier New,monospace;text-align:right}.table-total{background:#f8f9fa;border-top:2px solid #495057;font-weight:700}.table-total td{font-size:.95rem;padding:12px 8px}.loading-entries{color:#7f8c8d;padding:40px;text-align:center}.spinner-small{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#3498db;height:30px;margin:0 auto 15px;width:30px}.no-entries{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;color:#856404;padding:20px;text-align:center}@media (max-width:768px){.validation-card-header{align-items:flex-start;flex-direction:column;gap:15px}.validation-card-left{align-items:flex-start;flex-direction:column;gap:10px}.validation-card-right{justify-content:space-between;width:100%}.severity-indicator{flex:1 1}.summary-stats-grid{grid-template-columns:1fr}.summary-header{align-items:flex-start;flex-direction:column;gap:15px}.balance-details-table{font-size:.8rem}.balance-details-table td,.balance-details-table th{padding:8px 6px}.modal-content{max-height:95vh;max-width:100%}.search-bar-container{align-items:stretch;flex-direction:column}.balance-details-table-full{font-size:.8rem}.balance-details-table-full td,.balance-details-table-full th{padding:8px 6px}.calculation-table td:first-child{min-width:150px;width:auto}.entries-table{font-size:.75rem}.info-row-detail{flex-direction:column;gap:5px}.info-label{min-width:auto}.info-value{text-align:left}}.gl-conflict-resolution{padding:20px}.gl-conflict-resolution h2{color:#2c3e50;margin-bottom:20px}.gl-conflict-resolution h3{color:#34495e;font-size:1.2rem;margin-bottom:15px}.gl-conflict-resolution h4{color:#2c3e50;font-size:1.1rem;margin:0}.conflict-warning-box{align-items:flex-start;background:linear-gradient(135deg,#fff3cd,#ffeaa7);border:2px solid #ffc107;border-radius:8px;box-shadow:0 4px 12px #ffc10733;display:flex;gap:20px;margin-bottom:30px;padding:25px}.warning-icon{animation:pulse 2s infinite;font-size:3rem}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.warning-content h3{color:#856404;font-size:1.3rem;margin:0 0 10px}.warning-content p{color:#856404;font-size:1rem;line-height:1.6;margin:0}.warning-content strong{color:#533f03}.comparison-summary{grid-gap:20px;align-items:center;display:grid;gap:20px;grid-template-columns:1fr auto 1fr;margin-bottom:30px}.comparison-card{background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #00000014;overflow:hidden}.comparison-card.existing{border-color:#95a5a6}.comparison-card.new{border-color:#3498db}.card-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;gap:10px;padding:15px 20px}.comparison-card.existing .card-header{background:linear-gradient(135deg,#bdc3c7,#95a5a6);color:#fff}.comparison-card.new .card-header{background:linear-gradient(135deg,#5dade2,#3498db);color:#fff}.card-icon{font-size:1.5rem}.card-stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr;padding:20px}.stat-label{color:#7f8c8d;display:block;font-size:.85rem;margin-bottom:5px}.stat-value{color:#2c3e50}.card-footer{background:#f8f9fa;border-top:1px solid #e9ecef;padding:15px 20px}.import-info{display:flex;justify-content:space-between;padding:5px 0}.info-label{color:#7f8c8d;font-size:.9rem}.info-value{color:#2c3e50;font-size:.9rem}.info-value.filename{font-family:Courier New,monospace;font-size:.85rem;word-break:break-word}.comparison-arrow{align-items:center;color:#95a5a6;display:flex;font-size:1.5rem;font-weight:700;justify-content:center;padding:10px}.strategy-selection{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:25px;padding:25px}.strategy-options{display:flex;flex-direction:column;gap:15px}.strategy-option{align-items:flex-start;background:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;gap:15px;padding:20px;transition:all .2s}.strategy-option:hover{border-color:#3498db;box-shadow:0 4px 12px #3498db1a}.strategy-option.selected{background:linear-gradient(135deg,#fff,#ebf5fb);border-color:#3498db;box-shadow:0 4px 12px #3498db33}.strategy-option.selected.danger{background:linear-gradient(135deg,#fff,#fadbd8);border-color:#e74c3c}.strategy-option.selected.warning{background:linear-gradient(135deg,#fff,#fef5e7);border-color:#f39c12}.strategy-option.selected.safe{background:linear-gradient(135deg,#fff,#eafaf1);border-color:#27ae60}.strategy-radio{padding-top:5px}.strategy-radio input[type=radio]{cursor:pointer;height:20px;width:20px}.strategy-content{flex:1 1}.strategy-header{align-items:center;display:flex;gap:10px;margin-bottom:10px}.strategy-icon{font-size:1.5rem}.recommended-badge{background:#27ae60;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;margin-left:auto;padding:4px 10px;text-transform:uppercase}.strategy-description{color:#495057;line-height:1.5;margin:0 0 12px}.strategy-warning{border-radius:6px;font-size:.9rem;padding:10px 15px}.strategy-warning.danger{background:#fadbd8;border-left:4px solid #e74c3c;color:#721c24}.strategy-warning.warning{background:#fef5e7;border-left:4px solid #f39c12;color:#856404}.strategy-warning.safe{background:#eafaf1;border-left:4px solid #27ae60;color:#155724}.strategy-warning strong{font-weight:600}.selected-strategy-info{align-items:flex-start;border:2px solid;border-radius:8px;display:flex;gap:20px;margin-bottom:25px;padding:25px}.selected-strategy-info.danger{background:#fadbd8;border-color:#e74c3c}.selected-strategy-info.warning{background:#fef5e7;border-color:#f39c12}.selected-strategy-info.safe{background:#eafaf1;border-color:#27ae60}.info-icon{font-size:2.5rem}.info-content{flex:1 1}.info-content h4{margin:0 0 15px}.selected-strategy-info.danger h4{color:#721c24}.selected-strategy-info.warning h4{color:#856404}.selected-strategy-info.safe h4{color:#155724}.info-content p{font-weight:600;margin:0 0 10px}.selected-strategy-info.danger .info-content{color:#721c24}.selected-strategy-info.warning .info-content{color:#856404}.selected-strategy-info.safe .info-content{color:#155724}.info-content ol{margin:10px 0;padding-left:20px}.info-content li{line-height:1.5;margin:8px 0}.conflict-actions{border-top:1px solid #e0e0e0;display:flex;gap:10px;justify-content:space-between;padding-top:20px}.btn-primary,.btn-secondary{border-radius:4px}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #00000026}.btn-primary.btn-danger{background:#e74c3c}.btn-primary.btn-danger:hover:not(:disabled){background:#c0392b}.btn-primary:disabled,.btn-secondary:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover:not(:disabled){background:#7f8c8d}@media (max-width:768px){.comparison-summary{grid-template-columns:1fr}.comparison-arrow{transform:rotate(90deg)}.conflict-warning-box,.selected-strategy-info{flex-direction:column;text-align:center}.conflict-actions{flex-direction:column}.conflict-actions button{width:100%}.card-stats{grid-template-columns:1fr}}.gl-import-container{margin:0 auto;max-width:1200px;padding:30px}.gl-import-header{margin-bottom:40px}.gl-import-header h1{color:#1f2937;font-size:2rem;font-weight:600;margin:0 0 10px}.gl-import-header p{color:#6b7280;font-size:1rem}.gl-import-steps{align-items:center;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:center;margin-bottom:40px;padding:30px 0}.step{flex-direction:column;gap:10px}.step-number{background:#e5e7eb;color:#9ca3af;font-size:1.1rem;height:40px;width:40px}.step.active .step-number{background:#1f2937;color:#fff}.step.completed .step-number{background:#10b981;color:#fff}.step-label{color:#6b7280;font-size:.9rem}.step.active .step-label{color:#1f2937;font-weight:600}.step-line{background:#e5e7eb;margin:0 20px;width:100px}.gl-import-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:40px}.gl-preview-section h2,.gl-upload-section h2,.gl-validation-section h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 30px}.form-group{margin-bottom:25px}.form-group label{font-size:.9rem}.form-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#1f2937;font-size:1rem;padding:10px 12px;width:100%}.form-select:focus{border-color:#1f2937;box-shadow:0 0 0 3px #1f29371a;outline:none}.upload-zone{background:#f9fafb;border:2px dashed #d1d5db;border-radius:8px;cursor:pointer;padding:60px 40px;text-align:center;transition:all .2s}.upload-zone.drag-over{background:#f3f4f6;border-color:#1f2937}.upload-icon{font-size:4rem;margin-bottom:20px}.upload-zone p{color:#6b7280;margin:10px 0}.upload-or{color:#9ca3af;font-size:.9rem}.btn-upload{background:#1f2937;border-radius:6px;color:#fff;display:inline-block;font-weight:500;padding:10px 24px}.btn-upload:hover{background:#111827}.upload-hint{color:#9ca3af;font-size:.8rem;margin-top:15px}.file-selected{align-items:center;background:#fff;border-radius:6px;display:flex;gap:20px;padding:20px}.file-icon{color:#10b981;font-size:2rem}.file-info{flex:1 1;text-align:left}.file-name{color:#1f2937;margin:0}.file-size{color:#6b7280;font-size:.9rem;margin:5px 0 0}.btn-remove{color:#6b7280;font-size:2rem;height:40px;padding:0;width:40px}.btn-remove:hover{color:#ef4444}.error-message{background:#fee2e2;color:#991b1b;margin-top:20px;padding:15px}.upload-actions{margin-top:30px}.warning-box{background:#fef3c7;border:1px solid #fde047;color:#92400e;margin-bottom:30px;padding:15px}.warning-box strong{margin-bottom:5px}.preview-stats{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px}.stat-value{color:#1f2937;font-size:2rem;font-weight:600;margin-bottom:5px}.stat-label{font-size:.9rem}.balance-section,.years-section{background:#f9fafb;border-radius:6px;margin-bottom:30px;padding:20px}.balance-section h3,.years-section h3{color:#374151;font-size:1.1rem;margin:0 0 15px}.balance-row{border-bottom:1px solid #e5e7eb;padding:10px 0}.balance-row:last-child{border-bottom:none}.balance-result{font-size:1.1rem;font-weight:600;margin-top:10px}.balance-amount{font-family:Courier New,monospace}.balance-ok{color:#10b981}.balance-error{color:#ef4444}.years-list{display:flex;gap:10px}.year-badge{background:#1f2937;border-radius:6px;color:#fff;font-weight:500;padding:8px 16px}.preview-actions,.validation-actions{border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:30px;padding-top:30px}.validation-loading{padding:60px 0;text-align:center}.spinner{border:3px solid #f3f4f6;border-top-color:#1f2937;height:50px;margin:0 auto 20px;width:50px}.validation-summary{border-radius:6px;margin-bottom:30px;padding:25px}.validation-summary.can-import{background:#d1fae5;border:1px solid #a7f3d0}.validation-summary.cannot-import{background:#fee2e2;border:1px solid #fecaca}.validation-summary h3{color:#1f2937;font-size:1.2rem;margin:0 0 15px}.summary-stats{gap:20px;margin-bottom:15px}.summary-item{align-items:center;color:#374151;gap:8px}.summary-item.warning{color:#92400e}.summary-item.error{color:#991b1b}.summary-icon{font-size:1.2rem}.import-status{border-top:1px solid #0000001a;font-size:1.1rem;font-weight:600;margin-top:15px;padding-top:15px}.import-status.ready{color:#065f46}.import-status.blocked{color:#991b1b}.validation-results{margin-bottom:30px}.validation-results h3{color:#374151;font-size:1.1rem;margin:0 0 20px}.validation-item{border-radius:6px;margin-bottom:15px;padding:15px}.validation-item.pass{background:#f0fdf4;border:1px solid #bbf7d0}.validation-item.warning{background:#fffbeb;border:1px solid #fde68a}.validation-item.error{background:#fef2f2;border:1px solid #fecaca}.validation-header{align-items:center;display:flex;gap:10px;margin-bottom:8px}.validation-icon{font-size:1.2rem}.validation-type{color:#374151;flex:1 1;font-weight:600}.validation-status{border-radius:4px;font-size:.8rem;font-weight:600;padding:4px 12px}.validation-status.pass{background:#10b981;color:#fff}.validation-status.warning{background:#f59e0b;color:#fff}.validation-status.error{background:#ef4444;color:#fff}.validation-message{color:#6b7280;margin-bottom:10px}.validation-details{background:#f9fafb;border-radius:4px;font-size:.85rem;max-height:200px;overflow-y:auto;padding:10px}.validation-details pre{color:#4b5563;margin:0;white-space:pre-wrap}.btn-primary,.btn-secondary{border-radius:6px;font-size:1rem;transition:all .2s}.btn-primary{background:#1f2937}.btn-primary:hover:not(:disabled){background:#111827}.btn-secondary{border:1px solid #d1d5db;color:#374151}.btn-secondary:hover{background:#f3f4f6}.contract-modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.contract-modal-content{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;display:flex;flex-direction:column;max-height:90vh;max-width:900px;overflow-y:auto;width:100%}.contract-modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;flex-shrink:0;justify-content:space-between;padding:24px 24px 16px}.contract-modal-header h2{color:#1a202c;font-size:20px;font-weight:600;margin:0}.close-btn{align-items:center;border-radius:6px;color:#a0aec0;display:flex;font-size:28px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.close-btn:hover{background-color:#f7fafc;color:#4a5568}.employee-info{background-color:#f7fafc;border-bottom:1px solid #e2e8f0;flex-shrink:0;padding:20px 24px}.employee-info h3{color:#2d3748;font-size:18px;font-weight:600;margin:0 0 6px}.employee-details{color:#718096;font-size:14px;margin:0}.employee-details span{margin-right:12px}.contract-table-container{overflow-x:auto;padding:24px}.contract-table{border-collapse:collapse;font-size:14px;width:100%}.contract-table thead{background-color:#f7fafc;border-bottom:2px solid #e2e8f0}.contract-table th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.contract-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .15s}.contract-table tbody tr:hover{background-color:#f7fafc}.contract-table tbody tr.current-row{background-color:#ebf8ff}.contract-table tbody tr.current-row:hover{background-color:#bee3f8}.contract-table td{color:#2d3748;padding:14px 16px}.contract-table .empty-state{color:#718096;font-style:italic;padding:40px 20px;text-align:center}.badge{letter-spacing:.05em}.badge-cdi{background-color:#c6f6d5;color:#22543d}.badge-auto{background-color:#feebc8;color:#7c2d12}.status-current{color:#38a169;font-weight:600}.status-ended{color:#718096}.add-contract-section{padding:0 24px 24px;text-align:center}.add-contract-form{background-color:#f7fafc;border-top:2px solid #e2e8f0;flex:1 1;min-height:0;overflow-y:auto;padding:24px}.add-contract-form h3{color:#2d3748;font-size:16px;font-weight:600;margin:0 0 20px}.form-section{margin-bottom:24px}.section-label{color:#2d3748;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.radio-group{grid-gap:12px;display:grid;grid-template-columns:1fr 1fr}.radio-card{border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:block;padding:16px;position:relative;transition:all .2s}.radio-card:hover{background-color:#fff;border-color:#cbd5e0}.radio-card.selected{background-color:#fff;border-color:#3182ce}.radio-card input[type=radio]{cursor:pointer;opacity:0;position:absolute}.radio-content{gap:4px}.radio-title{color:#2d3748;font-size:15px;font-weight:600}.radio-desc{color:#718096;font-size:13px}.form-row{margin-bottom:16px}.form-group input,.form-group select,.form-group textarea,.form-select{background-color:#fff;border:1px solid #cbd5e0;border-radius:6px;font-family:inherit;font-size:14px;padding:10px 12px;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.form-select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.form-group textarea{min-height:100px}.help-text{color:#718096;font-size:12px;font-style:italic;margin-top:4px}.error-banner{margin:20px 24px}.loading-history{color:#718096;font-style:italic;padding:40px;text-align:center}.contract-modal-actions,.form-actions{background:#fff;border-top:1px solid #e2e8f0;display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;margin-top:24px;padding:20px 24px}.btn{padding:10px 24px}.btn:disabled{opacity:.6}.btn-primary:hover:not(:disabled){background-color:#2c5282}.btn-secondary:hover:not(:disabled){background-color:#cbd5e0}.btn-danger{background-color:#e53e3e}.btn-danger:hover:not(:disabled){background-color:#c53030}.editing-row{background-color:#fffaf0!important}.editing-row:hover{background-color:#fef5e7!important}.inline-input,.inline-select{background-color:#fff;border:1px solid #cbd5e0;border-radius:4px;font-family:inherit;font-size:13px;padding:6px 8px;width:100%}.inline-input:focus,.inline-select:focus{border-color:#3182ce;box-shadow:0 0 0 2px #3182ce1a;outline:none}.inline-input-small{font-size:12px;padding:4px 6px}.action-buttons{gap:6px;justify-content:center}.btn-action{background:none;display:flex;justify-content:center;padding:6px 10px}.btn-action:disabled{cursor:not-allowed;opacity:.4}.btn-edit{color:#3182ce}.btn-edit:hover:not(:disabled){background-color:#ebf8ff}.btn-delete{color:#e53e3e}.btn-delete:hover:not(:disabled){background-color:#fff5f5}.btn-save{color:#38a169;font-size:18px;font-weight:700}.btn-save:hover:not(:disabled){background-color:#f0fff4}.btn-cancel{color:#718096;font-size:18px;font-weight:700}.btn-cancel:hover:not(:disabled){background-color:#f7fafc}.confirm-dialog-overlay{align-items:center;background-color:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.confirm-dialog{background:#fff;border-radius:12px;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #00000014;max-width:500px;padding:24px;width:100%}.confirm-dialog h3{color:#1a202c;font-size:18px;font-weight:600;margin:0 0 12px}.confirm-dialog p{color:#4a5568;font-size:14px;margin:0 0 16px}.contract-info-box{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:14px;margin-bottom:20px;padding:16px}.contract-info-box div{margin-bottom:8px}.contract-info-box div:last-child{margin-bottom:0}.contract-info-box strong{color:#2d3748;margin-right:8px}.warning-box{background-color:#fffaf0;border:1px solid #f6ad55;border-radius:6px;margin-top:12px;padding:12px}.warning-box strong{color:#c05621;display:block;margin-bottom:8px}.warning-box p{color:#744210;font-size:13px;margin:0}.dialog-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.cdi-section{margin-bottom:24px}.cdi-section h4{border-bottom:2px solid #e2e8f0;color:#2d3748;font-size:15px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.salary-mode-row{display:flex;gap:20px;margin-bottom:15px}.toggle-group{flex:1 1}.toggle-group label{color:#4a5568;display:block;font-size:13px;font-weight:500;margin-bottom:6px}.toggle-buttons{gap:5px}.toggle-buttons button{border:1px solid #cbd5e0;border-radius:6px;color:#2d3748;flex:1 1;font-size:13px;font-weight:500;padding:8px 12px}.toggle-buttons button:hover:not(:disabled){background-color:#f7fafc;border-color:#a0aec0}.toggle-buttons button.active{background:#3182ce;border-color:#3182ce}.toggle-buttons button:disabled{background-color:#e2e8f0;cursor:not-allowed;opacity:.5}.calculated-values{background:#f8f9fa;border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;padding:16px}.calculated-values h5{color:#2d3748;font-size:14px;font-weight:600;margin:0 0 12px}.calc-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.calc-item{background:#fff;border:1px solid #e2e8f0;border-radius:6px;display:flex;font-size:13px;justify-content:space-between;padding:10px 12px}.calc-item.highlight{background:#ebf8ff;border:1px solid #90cdf4;font-weight:600}.calc-label{color:#4a5568;font-size:12px}.calc-value{color:#2d3748;font-weight:600}.advanced-config{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:16px}.advanced-config summary{align-items:center;color:#3182ce;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;list-style:none;padding:6px 0;-webkit-user-select:none;user-select:none}.advanced-config summary::-webkit-details-marker{display:none}.advanced-config summary:before{content:"▶";font-size:10px;transition:transform .2s}.advanced-config[open] summary:before{transform:rotate(90deg)}.advanced-config summary:hover{color:#2c5282}.advanced-config .form-row{margin-top:16px}@media (max-width:768px){.contract-modal-content{border-radius:0;max-height:100vh;max-width:100%}.form-row,.radio-group{grid-template-columns:1fr}.salary-mode-row{flex-direction:column;gap:12px}.calc-grid{grid-template-columns:1fr}.contract-table-container{padding:12px}.contract-table{font-size:12px}.contract-table td,.contract-table th{padding:8px}}.document-viewer{display:flex;flex-direction:column;height:100%;max-height:80vh}.document-viewer-header{align-items:center;background-color:var(--gray-50);border-bottom:1px solid var(--gray-300);display:flex;justify-content:space-between;padding:1rem}.document-info h3{color:#111827;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.document-date{color:var(--gray-600);font-size:.875rem}.btn-close{color:var(--gray-600);font-size:1.5rem;padding:.25rem .5rem}.btn-close:hover{color:#111827}.document-viewer-content{background-color:var(--gray-50);flex:1 1;overflow:auto;padding:1rem}.document-viewer-empty,.document-viewer-error{align-items:center;color:var(--gray-500);display:flex;height:400px;justify-content:center}.document-viewer-error{color:#ef4444}.image-viewer{display:flex;flex-direction:column;gap:1rem;height:100%}.image-controls{align-items:center;background-color:var(--gray-100);border-radius:4px;display:flex;gap:.5rem;justify-content:center;padding:.75rem}.image-controls button{background-color:#fff;border:1px solid var(--gray-300);border-radius:4px;color:#111827;cursor:pointer;font-size:.875rem;padding:.25rem .75rem;transition:background-color .2s}.image-controls button:hover:not(:disabled){background-color:var(--gray-100)}.image-controls button:disabled{background-color:var(--gray-300);color:var(--gray-500);cursor:not-allowed}.image-controls span{font-size:.875rem;font-weight:500;min-width:60px;text-align:center}.image-container{align-items:center;background-color:#fff;border:1px solid var(--gray-300);border-radius:4px;display:flex;flex:1 1;justify-content:center;max-height:600px;overflow:auto;padding:1rem}.image-container img{max-height:100%;max-width:100%;object-fit:contain;transition:transform .2s ease}.document-viewer-unsupported{align-items:center;display:flex;justify-content:center;min-height:400px}.unsupported-content{padding:2rem;text-align:center}.file-icon{display:block;font-size:4rem;margin-bottom:1rem}.unsupported-content h4{color:#111827;font-size:1.25rem;margin:0 0 .5rem}.unsupported-content p{color:var(--gray-600);font-size:.875rem;margin:.25rem 0}.file-info{background-color:var(--gray-100);border-radius:4px;font-family:monospace;margin-top:1rem!important;padding:.5rem 1rem}.btn-download-alt{background-color:#111827;border-radius:4px;color:#fff;display:inline-block;font-size:.875rem;font-weight:500;margin-top:1.5rem;padding:.5rem 1.5rem;text-decoration:none;transition:background-color .2s}.btn-download-alt:hover{background-color:#1f2937}.documents-modal{display:flex;flex-direction:column;max-height:85vh;max-width:900px;width:90vw}.employee-info{color:var(--gray-600);font-size:.875rem;margin:.25rem 0 0}.documents-empty,.documents-error,.documents-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:3rem 1rem}.documents-error p,.documents-loading p{color:var(--gray-600);font-size:.875rem;margin-top:1rem}.documents-error{color:#ef4444}.btn-retry{background-color:#111827;border:none;color:#fff;font-size:.875rem;margin-top:1rem;padding:.5rem 1.5rem;transition:background-color .2s}.btn-retry:hover{background-color:#1f2937}.documents-empty{text-align:center}.empty-icon{display:block;font-size:4rem;margin-bottom:1rem}.documents-empty p{color:var(--gray-600);font-size:.875rem}.documents-filters{align-items:center;background-color:var(--gray-50);border-radius:4px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem}.filter-group{gap:.5rem}.filter-group label{color:var(--gray-700);font-size:.875rem}.filter-select{border:1px solid var(--gray-300);border-radius:4px;font-size:.875rem;padding:.375rem .75rem}.filter-select:focus{border-color:#111827}.documents-list{flex:1 1;overflow:auto}.documents-empty-filter{color:var(--gray-600);font-size:.875rem;padding:2rem;text-align:center}.documents-table{border-collapse:collapse;font-size:.875rem;width:100%}.documents-table thead{background-color:var(--gray-100);position:-webkit-sticky;position:sticky;top:0;z-index:1}.documents-table th{border-bottom:2px solid var(--gray-300);color:var(--gray-700);font-weight:600;padding:.75rem .5rem;text-align:left}.documents-table tbody tr{border-bottom:1px solid var(--gray-200);transition:background-color .2s}.documents-table tbody tr:hover{background-color:var(--gray-50)}.documents-table td{padding:.75rem .5rem;vertical-align:middle}.doc-icon{font-size:1.5rem;text-align:center}.doc-name{color:#111827;font-weight:500}.doc-type-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.doc-type-badge.pdf{background-color:#fee2e2;color:#991b1b}.doc-type-badge.image{background-color:#dbeafe;color:#1e40af}.doc-type-badge.other{background-color:var(--gray-200);color:var(--gray-700)}.doc-actions{display:flex;gap:.5rem;justify-content:flex-start}.btn-action{background-color:#fff;border:1px solid var(--gray-300);border-radius:4px;color:#111827;font-size:.8125rem;padding:.375rem .75rem}.btn-action:hover{background-color:#111827;border-color:#111827;color:#fff}.btn-download,.btn-view{background-color:#fff}.documents-footer{align-items:center;background-color:var(--gray-50);border-top:1px solid var(--gray-300);color:var(--gray-600);display:flex;font-size:.875rem;justify-content:space-between;padding:.75rem 1rem}.sync-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin:24px 0;padding:24px}.sync-header h3{color:#2d3748;font-size:18px;font-weight:600;margin:0 0 6px}.sync-header p{color:#718096;font-size:14px;margin:0 0 20px}.sync-actions{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.btn-sync-all{background-color:#3182ce;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:12px 24px;transition:all .2s}.btn-sync-all:hover:not(:disabled){background-color:#2c5282;box-shadow:0 4px 6px #3182ce4d;transform:translateY(-1px)}.btn-sync-all:disabled{cursor:not-allowed;opacity:.6}.sync-entities{display:flex;flex-wrap:wrap;gap:8px}.btn-sync-entity{background-color:#e2e8f0;border:1px solid #cbd5e0;border-radius:6px;color:#2d3748;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.btn-sync-entity:hover:not(:disabled){background-color:#cbd5e0;border-color:#a0aec0}.btn-sync-entity:disabled{cursor:not-allowed;opacity:.5}.filters-container{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.filter-group{flex:1 1;min-width:200px}.filter-search{border:1px solid #cbd5e0;border-radius:8px;font-size:14px;padding:10px 16px;transition:all .2s;width:100%}.filter-search:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.filter-select{background-color:#fff;border:1px solid #cbd5e0;border-radius:8px;cursor:pointer;font-size:14px;padding:10px 16px;transition:all .2s;width:100%}.filter-select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.filter-checkbox{align-items:center;cursor:pointer;display:flex;gap:8px;padding:10px 0;-webkit-user-select:none;user-select:none}.filter-checkbox input[type=checkbox]{cursor:pointer;height:18px;width:18px}.filter-checkbox span{color:#2d3748;font-size:14px}.error-banner{margin:20px 0}.loading-container{padding:60px 20px;text-align:center}.loader{border:4px solid #e2e8f0;border-top-color:#3182ce;height:50px;width:50px}.empty-state{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin:24px 0;padding:60px 40px}.empty-state h3{font-size:20px;font-weight:600}.empty-state p{font-size:14px}.employees-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin:24px 0;overflow:hidden}.employees-table{border-collapse:collapse;width:100%}.employees-table thead{background-color:#f7fafc;border-bottom:2px solid #e2e8f0}.employees-table th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.05em;padding:14px 16px;text-align:left;text-transform:uppercase;white-space:nowrap}.employees-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s}.employees-table tbody tr:hover{background-color:#f7fafc}.employees-table tbody tr:last-child{border-bottom:none}.employees-table td{color:#2d3748;font-size:14px;padding:16px}.employee-name{display:flex;flex-direction:column;gap:4px}.employee-name strong{color:#1a202c;font-weight:600}.employee-name small{color:#718096;font-size:12px}.entity-badge{background-color:#ebf8ff;color:#2c5282;font-weight:500}.contract-badge,.entity-badge{border-radius:12px;padding:4px 10px}.contract-badge{display:inline-block;font-size:12px;font-weight:600;text-transform:uppercase}.contract-badge.cdi{background-color:#d1fae5;color:#065f46}.contract-badge.auto_entrepreneur{background-color:#fef3c7;color:#92400e}.contract-badge.undefined{background-color:#f3f4f6;color:#6b7280}.status-badge.active{background-color:#d1fae5;color:#065f46}.status-badge.archived{background-color:#fee2e2;color:#991b1b}.remuneration{display:flex;flex-direction:column;gap:2px}.remuneration small{color:#4a5568;font-size:12px}.btn-action{background-color:#f7fafc;border:1px solid #e2e8f0;font-size:16px;padding:8px 12px}.btn-action:hover{background-color:#e2e8f0;border-color:#cbd5e0;transform:scale(1.05)}@media (max-width:1200px){.employees-table{font-size:13px}.employees-table td,.employees-table th{padding:12px}}@media (max-width:768px){.sync-actions{align-items:stretch;flex-direction:column}.btn-sync-all{width:100%}.sync-entities{justify-content:center;width:100%}.filters-container{flex-direction:column}.filter-group{width:100%}.employees-table-container{overflow-x:auto}.employees-table{min-width:1000px}}.stat-card{transition:transform .2s}.stat-card:hover{box-shadow:0 4px 6px #0000001a}.stat-label{font-weight:500}.badge{border-radius:12px;font-weight:600;padding:4px 10px}.badge-rib{background-color:#d1fae5;color:#065f46}.badge-urssaf{background-color:#dbeafe;color:#1e40af}.badge-facture{background-color:#fed7aa;color:#92400e}.badge-unknown{background-color:#f3f4f6;color:#6b7280}.badge-other{background-color:#e0e7ff;color:#4338ca}.status-badge.status-pending{background-color:#fef3c7;color:#92400e}.status-badge.status-classified{background-color:#dbeafe;color:#1e40af}.status-badge.status-validated{background-color:#d1fae5;color:#065f46}.status-badge.status-processed{background-color:#e0e7ff;color:#4338ca}.btn-icon{background-color:#f7fafc}.btn-icon:hover{background-color:#e2e8f0;transform:scale(1.1)}.error-message{margin:16px 0}.employees-table-container{overflow-x:auto}.employees-table{min-width:1200px;table-layout:fixed}.employees-table td:first-child,.employees-table th:first-child{width:140px}.employees-table td:nth-child(2),.employees-table th:nth-child(2){max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:200px}.employees-table td:nth-child(3),.employees-table th:nth-child(3){max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:150px}.employees-table td:nth-child(4),.employees-table th:nth-child(4){max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:180px}.employees-table td:nth-child(5),.employees-table th:nth-child(5){width:110px}.employees-table td:nth-child(6),.employees-table th:nth-child(6){width:140px}.employees-table td:nth-child(7),.employees-table th:nth-child(7){text-align:center;width:90px}.employees-table td:nth-child(8),.employees-table th:nth-child(8){width:100px}.employees-table td:nth-child(9),.employees-table th:nth-child(9){text-align:center;width:120px}.variance-badge{align-items:center;border-radius:8px;cursor:help;display:inline-flex;font-size:13px;gap:6px;padding:6px 10px}.variance-badge.variance-ok{background:#d1fae5;color:#065f46}.variance-badge.variance-warning{background:#fef3c7;color:#92400e}.variance-badge.variance-alert{background:#fee2e2;color:#991b1b;font-weight:600}.variance-amount{font-weight:600}.variance-percent{font-size:11px;opacity:.85}.btn-reminder-small{align-items:center;background:#667eea;border:none;border-radius:50%;color:#fff;cursor:pointer;display:inline-flex;height:24px;justify-content:center;margin-left:6px;padding:0;transition:all .2s;width:24px}.btn-reminder-small:hover{background:#5a67d8;box-shadow:0 2px 8px #667eea66;transform:scale(1.1)}.doc-missing-cell{display:inline-flex}.doc-missing-icon{font-size:20px}.labor-page .employees-table-container{margin-top:16px;overflow-x:auto}.labor-page .employees-table{border-collapse:collapse;min-width:900px;table-layout:auto;width:100%}.labor-page .employees-table td,.labor-page .employees-table th{font-size:13px;padding:10px 8px;vertical-align:middle;white-space:nowrap}.labor-page .employees-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#374151;font-weight:600}.labor-page .employees-table tbody tr{border-bottom:1px solid #e5e7eb}.labor-page .employees-table tbody tr:hover{background:#f8fafc}.doc-present-cell{align-items:center;display:flex;flex-direction:column;gap:2px}.doc-missing-cell{align-items:center;display:flex;gap:4px;justify-content:center}.doc-missing-icon{font-size:16px}.doc-upload-date{color:#64748b;font-size:10px;white-space:nowrap}.doc-dropdown{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:linear-gradient(135deg,#d1fae5,#a7f3d0);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%23065f46' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 4px center;background-repeat:no-repeat;border:1px solid #10b981;border-radius:4px;color:#065f46;cursor:pointer;font-size:10px;font-weight:600;max-width:75px;padding:3px 18px 3px 6px;transition:all .2s ease}.doc-dropdown:hover{background:linear-gradient(135deg,#a7f3d0,#6ee7b7);box-shadow:0 2px 4px #10b98133}.doc-dropdown:focus{box-shadow:0 0 0 2px #10b9814d;outline:none}.doc-dropdown option{background:#fff;color:#1f2937;padding:8px}.clickable-cell{border-radius:6px;padding:4px 8px;transition:all .2s ease}.clickable-cell:hover{background:#667eea1a;color:#667eea}.btn-refresh{background-color:#f7fafc;border:1px solid #cbd5e0;font-size:16px;padding:10px 16px}.btn-refresh svg{transition:transform .3s}.btn-refresh:hover{background-color:#e2e8f0}.btn-refresh:hover svg{transform:rotate(180deg)}.last-update-info{align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border:1px solid #bae6fd;border-radius:10px;color:#0369a1;display:flex;font-size:13px;gap:8px;margin-bottom:20px;padding:12px 16px}.last-update-info .update-icon{font-size:16px}.last-update-info .data-sources{color:#0284c7;font-size:12px;margin-left:auto;opacity:.8}.tracking-cell{gap:6px}.tracking-badges,.tracking-cell{align-items:center;display:flex;flex-direction:column}.tracking-badges{gap:2px}.tracking-badge{align-items:center;border-radius:10px;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:3px 8px}.tracking-badge.reminders{background:#dbeafe;color:#1e40af}.tracking-last-date{color:#64748b;font-size:10px}.tracking-none{color:#94a3b8;font-size:12px}.btn-multi-issues{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;cursor:pointer;display:inline-flex;font-size:11px;font-weight:600;gap:4px;padding:4px 8px;transition:all .2s}.btn-multi-issues:hover{background:#fde68a;transform:translateY(-1px)}.row-expanded{background-color:#f8fafc!important}.expanded-row{background:linear-gradient(180deg,#f1f5f9,#f8fafc)}.expanded-row td{border-bottom:2px solid #e2e8f0;padding:0!important}.expanded-content{display:flex;flex-wrap:wrap;gap:32px;padding:16px 24px}.expanded-section{flex:1 1;min-width:200px}.expanded-section h4{align-items:center;border-bottom:1px solid #e2e8f0;color:#475569;display:flex;font-size:13px;font-weight:600;gap:8px;margin:0 0 12px;padding-bottom:8px}.expanded-section h4 svg{color:#64748b}.action-timeline{display:flex;flex-direction:column;gap:10px}.timeline-item{align-items:flex-start;display:flex;gap:10px}.timeline-icon{align-items:center;background:#dbeafe;border-radius:50%;color:#2563eb;display:flex;flex-shrink:0;height:28px;justify-content:center;width:28px}.timeline-content{display:flex;flex-direction:column;gap:2px}.timeline-date{color:#374151;font-size:12px;font-weight:600}.timeline-text{color:#64748b;font-size:11px}.timeline-attachments{background:#d1fae5;border-radius:4px;color:#059669;font-size:10px;margin-top:2px;padding:2px 6px;width:-webkit-fit-content;width:fit-content}.timeline-summary{border-top:1px dashed #e2e8f0;color:#64748b;font-size:11px;font-style:italic;padding-top:8px}.no-actions{align-items:center;color:#94a3b8;display:flex;font-size:12px;font-style:italic;gap:8px}.doc-checklist{display:flex;flex-wrap:wrap;gap:12px}.doc-check-item{align-items:center;border-radius:8px;display:flex;font-size:12px;font-weight:500;gap:6px;padding:6px 10px}.doc-check-item.valid{background:#d1fae5;color:#059669}.doc-check-item.alert{background:#fef3c7;color:#d97706}.doc-check-item.missing{background:#fee2e2;color:#dc2626}.issues-list-mini{display:flex;flex-wrap:wrap;gap:8px}.issue-mini-badge{border-radius:6px;font-size:11px;font-weight:500;padding:4px 10px}.issue-mini-badge.doc_missing{background:#fee2e2;color:#991b1b}.issue-mini-badge.doc_invalid{background:#fef3c7;color:#92400e}.issue-mini-badge.amount_variance{background:#dbeafe;color:#1e40af}.sync-status-banner{align-items:center;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;padding:8px 16px}.sync-status-info{align-items:center;display:flex;flex:1 1;gap:8px;min-width:200px}.sync-status-info .status-icon{font-size:18px}.sync-status-info .status-icon.success{color:#22c55e}.sync-status-info .status-icon.warning{color:#f59e0b}.sync-status-info .time-icon{color:#64748b;font-size:16px}.sync-label{color:#64748b;font-size:13px;font-weight:500}.sync-date{color:#1e293b;font-size:13px;font-weight:600}.sync-freshness{color:#94a3b8;font-size:12px;font-style:italic}.sync-button{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:all .2s ease}.sync-button:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.sync-button:disabled{background:#94a3b8;cursor:not-allowed}.sync-button.syncing{background:#64748b}.sync-button svg{font-size:16px}.sync-button .spinning{animation:spin 1s linear infinite}.sync-error{color:#ef4444;font-size:12px;font-weight:500}@media (prefers-color-scheme:dark){.sync-status-banner{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#334155}.sync-label{color:#94a3b8}.sync-date{color:#f1f5f9}.sync-freshness{color:#64748b}}@media (max-width:640px){.sync-status-banner{align-items:flex-start;flex-direction:column;gap:12px}.sync-button{justify-content:center;width:100%}}.labor-city-rates-page{margin:0 auto;max-width:1200px;padding:24px}.page-header h1{color:#1a202c}.page-header .subtitle{color:#718096;font-size:14px}.actions-bar{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.btn-primary{background-color:#3182ce}.btn-primary:hover{background-color:#2c5282}.btn-secondary{background-color:#e2e8f0}.btn-secondary:hover{background-color:#cbd5e0}.btn-danger{background-color:#fc8181}.btn-danger:hover{background-color:#f56565}.btn-small{font-size:13px}.create-form-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:20px}.create-form-card h3{color:#2d3748;font-size:18px;font-weight:600;margin-bottom:16px}.create-form .form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:2fr 1fr 1fr;margin-bottom:16px}.form-group input{border:1px solid #cbd5e0;border-radius:6px;font-size:14px;padding:8px 12px;transition:border-color .2s}.form-group input:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.city-rates-table-container{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.city-rates-table{border-collapse:collapse;width:100%}.city-rates-table thead{background-color:#f7fafc;border-bottom:2px solid #e2e8f0}.city-rates-table th{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.city-rates-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background-color .2s}.city-rates-table tbody tr:hover{background-color:#f7fafc}.city-rates-table tbody tr:last-child{border-bottom:none}.city-rates-table td{color:#2d3748;font-size:14px;padding:14px 16px}.inline-edit-input{border:1px solid #cbd5e0;border-radius:4px;font-size:14px;padding:6px 10px;width:100%}.inline-edit-input:focus{border-color:#3182ce;outline:none}.action-buttons{gap:8px}.empty-state{color:#a0aec0;font-style:italic;padding:40px 20px!important}.error-message{background-color:#fed7d7;border:1px solid #fc8181;border-radius:6px;margin-bottom:20px}.loading{font-size:16px;padding:40px}@media (max-width:768px){.create-form .form-row{grid-template-columns:1fr}.city-rates-table{font-size:13px}.city-rates-table td,.city-rates-table th{padding:10px 12px}.action-buttons{flex-direction:column}}.issues-selector{background:#fffbeb;border:1px solid #fbbf24;border-radius:10px;margin-bottom:20px;padding:16px}.issues-selector-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.issues-selector-title{align-items:center;color:#92400e;display:flex;font-size:14px;font-weight:600;gap:8px}.toggle-all-btn{border:none;color:#d97706;font-weight:500;padding:0;text-decoration:underline}.toggle-all-btn:hover{color:#b45309}.issues-selector-hint{color:#92400e;font-size:12px;line-height:1.4;margin:0 0 12px}.issues-list{gap:8px}.issue-item{border-radius:8px;gap:10px;padding:10px 12px;transition:all .2s}.issue-item:hover{box-shadow:0 2px 4px #0000000d}.issue-item.selected{background:#f0fdf4;border-color:#22c55e}.issue-item.selected .issue-checkbox{color:#22c55e}.issue-checkbox{color:#9ca3af}.issue-checkbox,.issue-icon{align-items:center;display:flex;flex-shrink:0}.issue-icon{border-radius:8px;height:32px;justify-content:center;width:32px}.issue-icon.doc_missing{background:#fee2e2;color:#dc2626}.issue-icon.doc_invalid{background:#fef3c7;color:#d97706}.issue-icon.amount_variance{background:#dbeafe;color:#2563eb}.issue-info{flex:1 1;min-width:0}.issue-label{color:#374151;display:block;font-size:13px;font-weight:500}.issue-document{color:#64748b;display:block;font-size:11px;margin-top:2px}.issue-type-badge{border-radius:10px;flex-shrink:0;font-size:10px;font-weight:600;padding:3px 8px}.issue-type-badge.doc_missing{background:#fee2e2;color:#991b1b}.issue-type-badge.doc_invalid{background:#fef3c7;color:#92400e}.issue-type-badge.amount_variance{background:#dbeafe;color:#1e40af}.issues-warning{background:#fee2e2;border-radius:6px;color:#991b1b;font-size:12px;margin-top:12px;padding:10px 12px;text-align:center}@media (max-width:500px){.issue-item{flex-wrap:wrap}.issue-type-badge{margin-left:auto}}.payroll-reminder-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.payroll-reminder-modal{animation:modalSlideIn .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;display:flex;flex-direction:column;max-height:92vh;max-width:1400px;width:100%}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.payroll-reminder-header{align-items:center;background:#fff;border-bottom:2px solid #1a1a1a;border-radius:16px 16px 0 0;color:#1a1a1a;display:flex;flex-shrink:0;justify-content:space-between;padding:16px 24px}.payroll-reminder-title{align-items:center;display:flex;gap:12px}.payroll-reminder-title h2{color:#1a1a1a;font-size:18px;font-weight:700;margin:0}.reminder-subtitle{color:#6b7280;font-size:13px}.payroll-reminder-header .close-btn{align-items:center;background:#f3f4f6;border:1px solid #d1d5db;border-radius:50%;color:#374151;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.payroll-reminder-header .close-btn:hover{background:#e5e7eb;border-color:#9ca3af}.payroll-reminder-content{display:flex;flex:1 1;min-height:0;overflow:hidden}.reminder-left-panel{border-right:1px solid #e2e8f0;width:40%}.reminder-left-panel,.reminder-right-panel{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:20px}.reminder-right-panel{width:60%}.panel-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.panel-section-header{align-items:center;color:#374151;display:flex;font-size:13px;font-weight:600;gap:8px;margin-bottom:10px}.panel-section-header svg{color:#6b7280}.email-routing-grid{grid-gap:6px;display:grid;gap:6px}.routing-row{align-items:center;display:flex;gap:10px}.routing-label{color:#374151;font-size:12px;font-weight:600;min-width:70px}.routing-value{border-radius:4px;font-size:12px;padding:3px 10px}.routing-value-sender{background:#e5e7eb;color:#1a1a1a}.routing-value-recipient{background:#dbeafe;color:#1a1a1a;font-weight:500}.routing-value-recipient.no-email{background:#fee2e2;color:#dc2626}.routing-value-cc{background:#e5e7eb;color:#1a1a1a}.routing-value-reply{background:#d1fae5;color:#059669}.bcc-chips-container{align-items:center;display:flex;flex:1 1;flex-wrap:wrap;gap:4px}.bcc-chip{align-items:center;background:#f3e8ff;border-radius:10px;color:#7c3aed;display:inline-flex;font-size:11px;font-weight:500;gap:3px;padding:2px 8px}.bcc-chip button{background:none;border:none;color:#7c3aed;cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.bcc-input-row{align-items:center;display:flex;gap:4px;margin-top:4px}.bcc-input-row input{border:1px solid #d1d5db;border-radius:4px;font-size:11px;padding:3px 8px;width:160px}.bcc-add-me-btn{align-items:center;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:4px;color:#166534;cursor:pointer;display:flex;font-size:10px;gap:3px;padding:3px 8px;white-space:nowrap}.bcc-add-me-btn:hover{background:#dcfce7}.issues-list{display:flex;flex-direction:column;gap:6px}.issue-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;display:flex;font-size:12px;gap:8px;padding:8px 10px;transition:all .15s}.issue-item:hover{border-color:#94a3b8}.issue-item.selected{background:#fef2f2;border-color:#ef4444}.issue-item .issue-checkbox{color:#9ca3af;flex-shrink:0}.issue-item.selected .issue-checkbox{color:#ef4444}.template-buttons{display:flex;flex-wrap:wrap;gap:6px}.template-btn{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;font-size:11px;padding:5px 10px;transition:all .2s}.template-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.template-btn:disabled{cursor:not-allowed;opacity:.5}.shifts-detail-option{background:#f0f9ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px}.shifts-detail-option label{align-items:center;color:#1e40af;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:8px}.shifts-detail-option input[type=checkbox]{cursor:pointer;height:16px;width:16px}.history-list{display:flex;flex-direction:column;gap:6px;max-height:300px}.history-item{background:#fff;overflow:hidden;transition:all .2s}.history-item-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;transition:background .15s}.history-item-header:hover{background:#f8fafc}.history-type{border-radius:10px;font-size:10px;font-weight:500;padding:2px 8px}.history-type.document_missing{background:#fee2e2;color:#991b1b}.history-type.document_invalid{background:#fef3c7;color:#92400e}.history-type.amount_variance{background:#dbeafe;color:#1e40af}.history-type.multi_issues{background:#f3e8ff;color:#7c3aed}.history-date{font-size:11px}.history-item-subject{color:#374151;font-size:12px;font-weight:500;padding:0 12px}.history-item-meta{color:#94a3b8;font-size:10px;padding:2px 12px 8px}.history-item-expanded{background:#fafbfc;border-top:1px solid #e2e8f0;padding:10px 12px}.history-item-body{color:#4b5563;font-size:12px;line-height:1.5;margin-bottom:6px;max-height:150px;overflow-y:auto;white-space:pre-wrap}.history-item-attachments{align-items:center;color:#6b7280;display:flex;font-size:10px;gap:6px;margin-top:6px}.reminder-form .form-group{margin-bottom:12px}.reminder-form label{color:#374151;display:block;font-size:12px;font-weight:600;margin-bottom:4px}.reminder-form input[type=text]{border:1px solid #d1d5db;border-radius:8px;font-size:14px;padding:10px 14px;transition:border-color .2s,box-shadow .2s;width:100%}.reminder-form input[type=text]:focus{border-color:#1a1a1a;box-shadow:0 0 0 3px #00000014;outline:none}.reminder-form textarea{border:1px solid #d1d5db;border-radius:8px;font-family:inherit;font-size:13px;line-height:1.5;padding:12px 14px;resize:vertical;transition:border-color .2s,box-shadow .2s;width:100%}.reminder-form textarea:focus{border-color:#1a1a1a;box-shadow:0 0 0 3px #00000014;outline:none}.attachments-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:14px}.attachments-section>label{align-items:center;color:#374151;display:flex;font-size:13px;font-weight:600;margin-bottom:10px}.attachments-loading,.no-attachments{color:#64748b;font-size:12px;padding:8px;text-align:center}.attachments-error{align-items:center;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;color:#92400e;display:flex;font-size:12px;gap:8px;margin-bottom:8px;padding:8px 12px}.attachments-error svg{color:#f59e0b;flex-shrink:0}.attachments-list{display:flex;flex-direction:column;gap:6px}.attachment-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;gap:10px;padding:10px;transition:all .2s}.attachment-item:hover{border-color:#94a3b8;box-shadow:0 1px 3px #0000000d}.attachment-item.selected{background:#f0fdf4;border-color:#22c55e}.attachment-item.selected .attachment-checkbox{color:#22c55e}.attachment-item.relevant:not(.selected){background:#fffbeb;border-color:#fbbf24}.attachment-checkbox{align-items:center;color:#9ca3af;display:flex;flex-shrink:0}.attachment-info{flex:1 1;min-width:0}.attachment-label{color:#374151;display:block;font-size:12px;font-weight:600;margin-bottom:1px}.attachment-description{color:#64748b;display:block;font-size:10px}.attachment-hint{background:#fef3c7;border-radius:10px;color:#d97706;flex-shrink:0;font-size:9px;font-weight:600;padding:2px 6px}.email-preview{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.email-preview .preview-header{font-size:12px}.email-preview .preview-header,.email-preview .preview-routing{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:8px 14px}.email-preview .preview-routing{color:#6b7280;font-size:11px}.email-preview .preview-subject{background:#fafafa;border-bottom:1px solid #e2e8f0;font-size:12px;padding:8px 14px}.email-preview .preview-subject span{color:#64748b}.email-preview .preview-body{color:#374151;font-size:13px;line-height:1.6;max-height:250px;overflow-y:auto;padding:14px}.email-preview .preview-body p{margin:0 0 6px}.reminder-info-banner{align-items:center;background:#f8fafc;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px}.reminder-type-badge{border-radius:20px;font-size:11px;font-weight:600;padding:3px 10px}.reminder-type-badge.document_missing{background:#fee2e2;color:#991b1b}.reminder-type-badge.document_invalid{background:#fef3c7;color:#92400e}.reminder-type-badge.amount_variance{background:#dbeafe;color:#1e40af}.reminder-type-badge.multi_issues{background:#f3e8ff;color:#7c3aed}.document-type-badge{background:#e2e8f0;border-radius:20px;color:#475569;font-size:11px;font-weight:500;padding:3px 10px}.warning-banner{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;color:#92400e;font-size:12px}.reminder-error,.warning-banner{align-items:center;display:flex;gap:8px;padding:10px 14px}.reminder-error{background:#fee2e2;border:1px solid #fca5a5;border-radius:8px;color:#991b1b;font-size:13px}.reminder-success{background:#d1fae5;border:1px solid #6ee7b7;border-radius:8px;color:#065f46;font-size:13px;font-weight:500;padding:12px 16px;text-align:center}.payroll-reminder-footer{background:#f8fafc;border-radius:0 0 16px 16px;border-top:1px solid #e2e8f0;display:flex;flex-shrink:0;gap:12px;justify-content:flex-end;padding:14px 24px}.btn-cancel{border:1px solid #d1d5db;border-radius:8px;color:#374151;font-size:14px}.btn-cancel:disabled{cursor:not-allowed;opacity:.5}.btn-send{background:#1a1a1a;font-size:14px;font-weight:600;gap:8px;padding:10px 24px}.btn-send:hover:not(:disabled){background:#374151;box-shadow:0 4px 12px #00000040;transform:translateY(-1px)}.btn-send:disabled{background:#9ca3af;box-shadow:none;opacity:.5;transform:none}@media (max-width:900px){.payroll-reminder-modal{border-radius:0;max-height:100vh;max-width:100%}.payroll-reminder-content{flex-direction:column}.reminder-left-panel{border-bottom:1px solid #e2e8f0;border-right:none;max-height:40vh;width:100%}.reminder-right-panel{width:100%}.payroll-reminder-footer,.payroll-reminder-header{border-radius:0}}.staffing-forecast-page{margin:0 auto;max-width:1600px;padding:1.5rem}.staffing-forecast-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1.5rem}.header-title-section h1{color:#111827;color:var(--black,#111827);font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.header-title-section .subtitle{color:#6b7280;font-size:.875rem;margin:0}.header-controls{align-items:flex-end;gap:1rem}.control-group{gap:.25rem}.control-group label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.control-group select{background-color:#fff;border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;min-width:120px;padding:.5rem 2rem .5rem .75rem}.control-group select:hover{border-color:#9ca3af}.control-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.refresh-button{background-color:#111827;border:none;border-radius:6px;color:#fff;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.refresh-button:hover:not(:disabled){background-color:#374151}.refresh-button:disabled{background-color:#9ca3af;cursor:not-allowed}.period-info{align-items:center;background-color:#f9fafb;border-radius:6px;color:#4b5563;display:flex;font-size:.875rem;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.cached-info{color:#9ca3af;font-size:.75rem}.error-banner{background-color:#fef2f2;border-radius:6px;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.error-icon{align-items:center;background-color:#ef4444;border-radius:50%;color:#fff;display:flex;font-size:.75rem;font-weight:700;height:20px;justify-content:center;width:20px}.error-close{background:none;border:none;color:#991b1b;cursor:pointer;font-size:1rem;margin-left:auto;padding:.25rem}.summary-section{margin-bottom:1.5rem}.summary-cards{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.summary-card{background-color:#fff;border:1px solid #e5e7eb}.summary-card.highlight{background-color:#fef3c7;border-color:#f59e0b}.summary-value{color:#111827;font-size:1.5rem}.summary-label{color:#6b7280;font-size:.75rem;letter-spacing:.05em;margin-top:.25rem}.summary-detail{color:#92400e;font-size:.7rem;margin-top:.25rem}.chart-container{background-color:#fff;border:1px solid #e5e7eb;padding:1.5rem}.help-section{background-color:#f9fafb;border-radius:8px;padding:1.25rem}.help-section h3{color:#374151;font-size:.9rem;font-weight:600;margin:0 0 1rem}.help-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.help-item{align-items:center;color:#4b5563;display:flex;font-size:.8rem;gap:.75rem}.help-icon{border-radius:3px;flex-shrink:0;height:16px;width:16px}.help-icon.line{border-radius:2px;height:3px;width:24px}.help-icon.dashed{background:repeating-linear-gradient(90deg,#059669,#059669 4px,#0000 0,#0000 8px)}@media (max-width:768px){.staffing-forecast-header{flex-direction:column}.control-group select,.header-controls{width:100%}.summary-cards{grid-template-columns:repeat(2,1fr)}.help-grid{grid-template-columns:1fr}}.mo-data-page{margin:0 auto;max-width:1600px;padding:24px}.mo-data-page .page-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.mo-data-page .header-title{align-items:center;display:flex;gap:12px}.mo-data-page .header-title h1{color:#1e293b;font-size:24px;font-weight:600;margin:0}.mo-data-page .header-title svg{color:#3b82f6}.mo-data-page .header-actions{display:flex;gap:12px}.mo-data-page .btn-refresh{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s}.mo-data-page .btn-refresh:hover{background:#e2e8f0;color:#1e293b}.mo-data-page .error-banner{align-items:center;background:#fee2e2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;display:flex;gap:12px;margin-bottom:24px;padding:12px 16px}.mo-data-page .error-banner button{background:#0000;border:1px solid #fca5a5;border-radius:4px;color:#991b1b;cursor:pointer;margin-left:auto;padding:4px 12px}.mo-data-page .sync-config-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:20px}.mo-data-page .sync-config-section h2{color:#1e293b;font-size:16px;font-weight:600;margin:0 0 16px}.mo-data-page .sync-controls{align-items:center;display:flex;flex-wrap:wrap;gap:24px}.mo-data-page .date-range{align-items:center;display:flex;gap:16px}.mo-data-page .date-range label{align-items:center;color:#475569;display:flex;font-size:14px;gap:8px}.mo-data-page .date-range input[type=date]{border:1px solid #e2e8f0;border-radius:6px;font-size:14px;padding:8px 12px}.mo-data-page .btn-sync-all{align-items:center;background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:background .2s}.mo-data-page .btn-sync-all:hover{background:#2563eb}.mo-data-page .entities-section{margin-bottom:32px}.mo-data-page .entities-section h2{color:#1e293b;font-size:18px;font-weight:600;margin:0 0 16px}.mo-data-page .entities-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.mo-data-page .entity-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;padding:16px;transition:all .2s}.mo-data-page .entity-card:hover{border-color:#3b82f6;box-shadow:0 2px 8px #3b82f61a}.mo-data-page .entity-card.selected{background:#eff6ff;border-color:#3b82f6}.mo-data-page .entity-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.mo-data-page .entity-header h3{color:#1e293b;font-size:15px;font-weight:600;margin:0}.mo-data-page .status-icon{font-size:20px}.mo-data-page .status-icon.success{color:#22c55e}.mo-data-page .status-icon.error{color:#ef4444}.mo-data-page .status-icon.pending{color:#f59e0b}.mo-data-page .entity-details{margin-bottom:12px}.mo-data-page .sync-info{display:flex;flex-direction:column;font-size:12px;gap:2px;margin-bottom:8px}.mo-data-page .sync-info strong{color:#64748b}.mo-data-page .sync-info span{color:#1e293b}.mo-data-page .sync-info small{color:#94a3b8}.mo-data-page .entity-actions{display:flex;justify-content:flex-end}.mo-data-page .btn-sync{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;padding:6px 12px;transition:all .2s}.mo-data-page .btn-sync:hover:not(:disabled){background:#3b82f6;border-color:#3b82f6;color:#fff}.mo-data-page .btn-sync:disabled{cursor:not-allowed;opacity:.6}.mo-data-page .btn-sync .spinning{animation:spin 1s linear infinite}.mo-data-page .hours-grid-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.mo-data-page .section-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.mo-data-page .section-header h2{align-items:center;color:#1e293b;display:flex;font-size:18px;font-weight:600;gap:8px;margin:0}.mo-data-page .grid-filters{align-items:center;display:flex;gap:12px}.mo-data-page .grid-filters select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;padding:8px 12px}.mo-data-page .btn-small{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.mo-data-page .btn-small:hover{background:#e2e8f0}.mo-data-page .hours-table-container{margin:0 -20px;overflow-x:auto;padding:0 20px}.mo-data-page .hours-table{border-collapse:initial;border-spacing:0;display:table;font-size:13px;width:100%}.mo-data-page .hours-table thead{display:table-header-group}.mo-data-page .hours-table tbody{display:table-row-group}.mo-data-page .hours-table tfoot{display:table-footer-group}.mo-data-page .hours-table tr{display:table-row;height:50px!important;max-height:50px!important}.mo-data-page .hours-table td,.mo-data-page .hours-table th{border-bottom:1px solid #e2e8f0;display:table-cell;height:50px!important;max-height:50px!important;overflow:hidden;padding:6px 4px;text-align:center;vertical-align:middle;white-space:nowrap}.mo-data-page .hours-table .hours-cell{height:50px!important;max-height:50px!important;max-width:60px;min-width:60px;overflow:hidden;width:60px}.mo-data-page .hours-table th{background:#f8fafc;color:#475569;font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:1}.mo-data-page .hours-table .sticky-col{background:#fff;left:0;max-width:200px;min-width:180px;position:-webkit-sticky;position:sticky;text-align:left;z-index:2}.mo-data-page .hours-table .contract-type{max-width:60px;min-width:60px;padding:8px 4px;width:60px}.mo-data-page .hours-table th.sticky-col{background:#f8fafc;z-index:3}.mo-data-page .hours-table .total-col{background:#f8fafc;font-weight:600;min-width:65px;width:65px}.mo-data-page .employee-row td{background:#fff}.mo-data-page .employee-row:hover td{background:#f8fafc}.mo-data-page .employee-name{color:#1e293b;font-weight:500}.mo-data-page .contract-type .badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px}.mo-data-page .badge.cdi{background:#dbeafe;color:#1e40af}.mo-data-page .badge.auto{background:#fef3c7;color:#92400e}.mo-data-page .hours-cell{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mo-data-page .total-hours{color:#1e293b;font-weight:500}.mo-data-page .no-data{color:#cbd5e1}.mo-data-page .hours-content{align-items:center;display:flex;flex-direction:column;gap:2px}.mo-data-page .day-night-split{color:#64748b;font-size:10px}.mo-data-page .day-hours{color:#f59e0b}.mo-data-page .night-hours{color:#6366f1}.mo-data-page .separator{color:#cbd5e1;margin:0 2px}.mo-data-page .totals-row td{background:#f1f5f9;color:#1e293b;font-weight:600}.mo-data-page .no-data-message{align-items:center;color:#94a3b8;display:flex;flex-direction:column;justify-content:center;padding:48px 24px;text-align:center}.mo-data-page .no-data-message svg{margin-bottom:16px;opacity:.5}.mo-data-page .no-data-message p{margin:4px 0}.mo-data-page .loading-container{align-items:center;color:#64748b;display:flex;flex-direction:column;justify-content:center;min-height:400px}.mo-data-page .loading-spinner{animation:spin 1s linear infinite;color:#3b82f6;margin-bottom:16px}.mo-data-page .data-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.mo-data-page .tabs-container{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;gap:0;padding:0}.mo-data-page .tab-btn{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:#64748b;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:14px 24px;transition:all .2s}.mo-data-page .tab-btn:hover{background:#f1f5f9;color:#475569}.mo-data-page .tab-btn.active{background:#fff;border-bottom-color:#3b82f6;color:#3b82f6}.mo-data-page .tab-content{padding:20px}.mo-data-page .raw-data-section{min-height:400px}.mo-data-page .raw-filters{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.mo-data-page .raw-filters label{align-items:center;color:#475569;display:flex;font-size:14px;gap:6px}.mo-data-page .raw-filters input[type=date]{border:1px solid #e2e8f0;border-radius:6px;font-size:13px;padding:6px 10px}.mo-data-page .checkbox-label{align-items:center;background:#f8fafc;border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:6px;padding:6px 12px}.mo-data-page .checkbox-label input[type=checkbox]{cursor:pointer;height:16px;width:16px}.mo-data-page .btn-export{align-items:center;background:#22c55e;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:6px 14px;transition:background .2s}.mo-data-page .btn-export:hover{background:#16a34a}.mo-data-page .btn-export-excel{align-items:center;background:#059669;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:13px;font-weight:500;gap:6px;padding:6px 14px;transition:all .2s}.mo-data-page .btn-export-excel:hover:not(:disabled){background:#047857}.mo-data-page .btn-export-excel:disabled{cursor:not-allowed;opacity:.6}.mo-data-page .btn-export-excel.all{background:#7c3aed}.mo-data-page .btn-export-excel.all:hover:not(:disabled){background:#6d28d9}.mo-data-page .btn-export-excel.synthesis{background:#0891b2}.mo-data-page .btn-export-excel.synthesis:hover:not(:disabled){background:#0e7490}.mo-data-page .raw-table-container{border:1px solid #e2e8f0;border-radius:8px;margin-top:16px;overflow-x:auto}.mo-data-page .raw-table{border-collapse:collapse;font-size:13px;width:100%}.mo-data-page .raw-table thead{background:#f8fafc;position:-webkit-sticky;position:sticky;top:0}.mo-data-page .raw-table th{border-bottom:1px solid #e2e8f0;color:#475569;font-weight:600;padding:12px 10px;text-align:left;white-space:nowrap}.mo-data-page .raw-table td{border-bottom:1px solid #f1f5f9;color:#334155;padding:10px}.mo-data-page .raw-table tbody tr:hover{background:#f8fafc}.mo-data-page .raw-table tbody tr.not-approved{background:#fef3c7}.mo-data-page .raw-table tbody tr.not-approved:hover{background:#fde68a}.mo-data-page .raw-table .employee-cell{color:#1e293b;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mo-data-page .raw-table .numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.mo-data-page .raw-table .numeric.day{color:#f59e0b}.mo-data-page .raw-table .numeric.night{color:#6366f1}.mo-data-page .raw-table .center{text-align:center}.mo-data-page .raw-table .notes-cell{color:#64748b;font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mo-data-page .badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:600;padding:3px 8px}.mo-data-page .badge.success{background:#dcfce7;color:#166534}.mo-data-page .badge.warning{background:#fef3c7;color:#92400e}.mo-data-page .badge.info{background:#dbeafe;color:#1e40af}.mo-data-page .badge.default{background:#f1f5f9;color:#475569}.mo-data-page .pagination{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-top:16px;padding-top:16px}.mo-data-page .pagination-info{color:#64748b;font-size:13px}.mo-data-page .pagination-buttons{display:flex;gap:8px}.mo-data-page .pagination-buttons button{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;display:flex;font-size:13px;gap:4px;padding:8px 16px;transition:all .2s}.mo-data-page .pagination-buttons button:hover:not(:disabled){background:#e2e8f0}.mo-data-page .pagination-buttons button:disabled{cursor:not-allowed;opacity:.5}.mo-data-page .sync-progress{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin-top:12px;padding:12px}.mo-data-page .progress-bar{background:#e2e8f0;border-radius:4px;height:8px;margin-bottom:8px;overflow:hidden;width:100%}.mo-data-page .progress-fill{background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;height:100%;transition:width .3s ease}.mo-data-page .progress-text{align-items:center;display:flex;font-size:12px;gap:8px}.mo-data-page .status-badge{border-radius:12px;font-size:11px;font-weight:500;padding:2px 8px;text-transform:uppercase}.mo-data-page .status-badge.pending,.mo-data-page .status-badge.starting{background:#fef3c7;color:#92400e}.mo-data-page .status-badge.running{background:#dbeafe;color:#1e40af}.mo-data-page .status-badge.completed{background:#d1fae5;color:#065f46}.mo-data-page .status-badge.failed{background:#fee2e2;color:#991b1b}.mo-data-page .progress-message{color:#64748b;flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:768px){.mo-data-page{padding:16px}.mo-data-page .page-header{gap:16px}.mo-data-page .page-header,.mo-data-page .sync-controls{align-items:flex-start;flex-direction:column}.mo-data-page .date-range{flex-direction:column;width:100%}.mo-data-page .date-range input[type=date],.mo-data-page .date-range label{width:100%}.mo-data-page .btn-sync-all{justify-content:center;width:100%}.mo-data-page .section-header{align-items:flex-start;flex-direction:column}.mo-data-page .grid-filters{flex-wrap:wrap;width:100%}.mo-data-page .grid-filters select{flex:1 1;min-width:100px}}.customer-quality-module-page{margin:0 auto;max-width:1400px;padding:32px}.module-title{color:#1e293b;font-size:32px;font-weight:700;margin:0 0 12px}.module-description{color:#64748b;font-size:16px;margin:0}.module-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-bottom:48px}.module-info{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:32px}.module-info h3{color:#1e293b;font-size:24px;font-weight:600;margin:0 0 24px}.info-content{grid-gap:32px;display:grid;gap:32px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-section h4{border-bottom:2px solid #e2e8f0;color:#475569;font-size:16px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.info-section ul{list-style:none;margin:0;padding:0}.info-section li{border-bottom:1px solid #f1f5f9;color:#64748b;font-size:14px;line-height:1.6;padding:8px 0}.info-section li:last-child{border-bottom:none}.info-section li strong{color:#1e293b;font-weight:600}@media (max-width:768px){.customer-quality-module-page{padding:16px}.module-title{font-size:24px}.module-description{font-size:14px}.info-content,.module-grid{grid-template-columns:1fr}.info-content{gap:24px}.module-info{padding:20px}}.quality-filters{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.filters-row{gap:20px}.filter-label{color:#64748b;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.filter-input,.filter-select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#1e293b;font-size:14px;padding:10px 14px;transition:all .2s}.filter-input:hover,.filter-select:hover{border-color:#cbd5e1}.filter-input:focus,.filter-select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.view-toggle{background:#f1f5f9;padding:4px}.toggle-btn{background:#0000;border:none;color:#64748b;font-size:14px;font-weight:500;padding:8px 16px;white-space:nowrap}.toggle-btn:hover{background:#e2e8f0;color:#1e293b}.toggle-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#3b82f6}.refresh-btn{background:#3b82f6;border:none;color:#fff;font-weight:500;padding:10px 20px;transition:all .2s;white-space:nowrap}.refresh-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.refresh-btn:active:not(:disabled){transform:translateY(0)}.refresh-btn:disabled{opacity:.6}@media (max-width:1024px){.filters-row{align-items:stretch;flex-direction:column}.filter-group{min-width:0;min-width:auto;width:100%}}.quality-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.table-wrapper{margin-bottom:24px;overflow-x:auto}.quality-data-table{border:2px solid #cbd5e1;border-collapse:initial;border-radius:8px;border-spacing:0;font-size:14px;overflow:hidden;width:100%}.quality-data-table thead{background:#1e293b}.quality-data-table th{border-right:1px solid #475569;color:#fff;font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.quality-data-table th:last-child{border-right:none}.quality-data-table td{border-bottom:1px solid #cbd5e1;border-right:1px solid #e2e8f0;padding:12px;transition:background-color .2s}.quality-data-table td:last-child{border-right:none}.quality-data-table tbody tr:last-child td{border-bottom:1px solid #cbd5e1}.quality-data-table tbody tr:hover{background-color:#f8fafc}.col-ville{color:#1e293b;font-weight:600;text-align:left!important}.col-reservations{color:#475569;font-weight:500;text-align:right}.col-indicator,.col-score-global{border-radius:6px;text-align:center}.col-score-global{min-width:180px}.score-global-cell,.vol-retour-cell{align-items:center;display:flex;flex-direction:column;gap:6px;padding:4px 0}.indicator-value,.score-value{font-size:15px;font-weight:700}.suspicious-badge{background:#fb923c33;color:#ea580c;font-size:10px;font-weight:600;white-space:nowrap}.suspicious-badge,.trend-badge{align-items:center;border-radius:12px;display:inline-flex;gap:4px;padding:3px 8px}.trend-badge.positive{background:#10b98133;color:#065f46}.trend-badge.negative{background:#ef444433;color:#991b1b}.totals-row{background:#f8fafc;font-weight:700}.totals-row td{border-bottom:none;font-size:15px;padding:16px 12px}.table-empty{align-items:center;color:#94a3b8;display:flex;font-size:14px;height:200px;justify-content:center}.clickable-indicator{cursor:pointer;position:relative;transition:transform .2s,box-shadow .2s,outline .2s}.clickable-indicator:hover{box-shadow:0 2px 8px #00000026;outline:2px solid #3b82f6;outline-offset:-2px;transform:scale(1.05);z-index:5}.table-legend{background:#f8fafc;border-left:4px solid #3b82f6;border-radius:8px;padding:20px}.table-legend h4{color:#1e293b;font-size:15px;font-weight:600;margin:0 0 16px}.legend-items{display:flex;flex-wrap:wrap;gap:24px;margin-bottom:16px}.legend-item{color:#475569}.legend-color{border:1px solid #e2e8f0;height:24px;width:24px}.legend-note{border-top:1px solid #e2e8f0;color:#64748b;font-size:13px;line-height:1.6;margin:0;padding-top:12px}@media (max-width:768px){.quality-table-container{padding:16px}.quality-data-table{font-size:12px}.quality-data-table td,.quality-data-table th{padding:10px 8px}.col-score-global{min-width:140px}.score-value{font-size:13px}.trend-badge{font-size:10px;padding:2px 6px}.legend-items{flex-direction:column;gap:12px}}.modal-content{box-shadow:0 8px 24px #0000004d;max-width:1400px}.modal-header{border-bottom:2px solid #e2e8f0}.modal-header h3{color:#1e293b;font-size:20px}.close-btn{color:#64748b;font-size:24px;padding:4px 8px;transition:color .2s}.close-btn:hover{color:#1e293b}.modal-info{background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:16px;padding:16px 24px}.info-badge{background:#fff;border:1px solid #cbd5e1;border-radius:6px;color:#475569;font-size:13px;padding:6px 12px}.info-badge strong{color:#1e293b;margin-right:6px}.modal-body{overflow:auto}.modal-empty,.modal-error,.modal-loading{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center;min-height:200px}.modal-error{color:#dc2626}.error-icon{font-size:32px}.modal-empty{color:#94a3b8;font-size:14px}.bookings-table-wrapper{overflow-x:auto}.bookings-table{border:2px solid #cbd5e1;border-collapse:initial;border-radius:8px;border-spacing:0;font-size:13px;overflow:hidden;width:100%}.bookings-table thead{background:#1e293b}.bookings-table th{border-right:1px solid #475569;color:#fff;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 10px;text-align:left;text-transform:uppercase;white-space:nowrap}.bookings-table th:last-child{border-right:none}.bookings-table td{border-bottom:1px solid #e2e8f0;border-right:1px solid #f1f5f9;padding:10px;transition:background-color .2s}.bookings-table td:last-child{border-right:none}.bookings-table tbody tr:last-child td{border-bottom:1px solid #cbd5e1}.bookings-table tbody tr:hover{background-color:#f8fafc}.col-plateforme{color:#3b82f6;font-weight:600}.indicator-ok{background:#d1fae5;color:#065f46;font-weight:500}.indicator-missing{background:#fee2e2;color:#991b1b;font-weight:500;text-align:center}.suspicious-flight-cell{background:#fb923c26!important;cursor:help;transition:background-color .2s}.suspicious-flight-cell:hover{background:#fb923c40!important}.modal-footer{align-items:center;background:#f8fafc;border-top:2px solid #e2e8f0;justify-content:space-between}.modal-legend{align-items:center;display:flex;gap:20px}.legend-box{border:1px solid #cbd5e1;border-radius:4px;height:20px;width:20px}.btn-close{background:#3b82f6;border-radius:6px;font-size:14px;font-weight:600;padding:10px 24px;transition:background .2s}.btn-close:hover{background:#2563eb}@media (max-width:768px){.modal-content{max-height:95vh;max-width:100%}.modal-body,.modal-footer,.modal-header{padding:16px}.modal-info{flex-direction:column;gap:8px}.bookings-table{font-size:11px}.bookings-table td,.bookings-table th{padding:8px 6px}.modal-legend{align-items:flex-start;flex-direction:column;gap:8px}.modal-footer{flex-direction:column;gap:12px}.btn-close{width:100%}}.heatmap-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px;padding:24px}.heatmap-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:32px}.heatmap-title{color:#1e293b;font-size:18px;font-weight:600;margin:0}.heatmap-legend{display:flex;flex-wrap:wrap;gap:20px}.legend-item{color:#64748b;font-size:13px}.legend-color{border-radius:4px;height:16px;width:16px}.heatmap-empty{align-items:center;color:#94a3b8;display:flex;font-size:14px;height:300px;justify-content:center}.heatmap-city-section{border-bottom:2px solid #e2e8f0;margin-bottom:48px;padding-bottom:32px}.heatmap-city-section:last-child{border-bottom:none}.city-section-title{background:linear-gradient(90deg,#f8fafc,#0000);border-left:4px solid #3b82f6;color:#1e293b;font-size:20px;font-weight:600;margin:0 0 20px;padding:12px 16px}.heatmap-grid-wrapper{margin-bottom:24px;overflow-x:auto}.heatmap-table{border-collapse:initial;border-spacing:4px;table-layout:fixed;width:100%}.heatmap-table td,.heatmap-table th{background:#f8fafc;color:#475569;font-size:13px;font-weight:600;padding:12px;vertical-align:middle;white-space:nowrap}.row-header{background:#f1f5f9!important;color:#64748b!important;font-weight:600!important;min-width:80px;text-align:left}.col-header,.quality-heatmap-cell{min-width:100px;text-align:center}.quality-heatmap-cell{border-radius:6px;height:80px;padding:0;transition:all .2s}.quality-heatmap-cell.clickable{cursor:pointer}.quality-heatmap-cell:hover{box-shadow:0 4px 12px #0003;transform:scale(1.05);z-index:10}.cell-content{height:100%;justify-content:center;padding:8px}.cell-score{color:#fff;font-size:16px;font-weight:700;text-shadow:0 1px 2px #0000004d}.cell-count{color:#fff;font-size:11px;font-weight:500;margin-top:4px;opacity:.9}.cell-suspicious-badge{align-items:center;background:#fb923cf2;border:1.5px solid #f97316;border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;display:flex;font-size:9px;font-weight:600;gap:4px;margin-top:6px;padding:3px 6px;white-space:nowrap}.suspicious-icon{font-size:10px;line-height:1}.suspicious-text{line-height:1;text-shadow:0 1px 2px #0000004d}.city-details{background:#f8fafc;border-radius:8px;margin-top:24px;padding:20px}.city-details h5{color:#475569;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.critical-periods{list-style:none;margin:0;padding:0}.critical-periods li{border-bottom:1px solid #e2e8f0;color:#1e293b;font-size:14px;padding:8px 0}.critical-periods li:last-child{border-bottom:none}.critical-slot{background:#fee2e2;border-radius:4px;color:#991b1b;display:inline-block;font-size:12px;font-weight:500;margin-left:12px;padding:4px 10px}.no-critical{background:#d1fae5;border-radius:6px;color:#065f46;font-size:14px;font-weight:500;margin:0;padding:12px;text-align:center}@media (max-width:1024px){.heatmap-header{align-items:flex-start;flex-direction:column}.heatmap-legend{flex-direction:column;gap:8px}.heatmap-table{font-size:11px}.col-header{min-width:70px}.quality-heatmap-cell{height:60px;min-width:70px}.cell-score{font-size:13px}.cell-count{font-size:10px}.cell-suspicious-badge{font-size:8px;margin-top:4px;padding:2px 4px}.suspicious-icon{font-size:8px}}.data-quality-dashboard{background:#f8fafc;margin:2rem auto 0;max-width:1600px;min-height:calc(100vh - 80px);padding:32px}.dashboard-content-header{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:32px}.dashboard-title{color:#1e293b;font-size:32px;font-weight:700;margin:0 0 8px}.dashboard-subtitle{color:#64748b;font-size:16px;margin:0}.export-btn{background:#10b981;font-weight:600;padding:12px 24px;transition:all .2s;white-space:nowrap}.export-btn:hover{background:#059669;box-shadow:0 4px 12px #10b9814d;transform:translateY(-2px)}.error-banner{background:#fee2e2;border:1px solid #fecaca;color:#991b1b;font-weight:500;gap:12px;margin-bottom:24px;padding:16px 20px}.error-icon{font-size:20px}.metrics-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-bottom:24px}.loading-container{border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:80px 20px}.loading-spinner{border:4px solid #e2e8f0;border-top-color:#3b82f6;margin-bottom:16px}.loading-container p{color:#64748b;font-size:14px;margin:0}.trends-info{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-top:24px;padding:32px}.trends-info h3{color:#1e293b;font-size:20px;font-weight:600;margin:0 0 24px}.trends-summary{background:#f8fafc;border-radius:8px;display:flex;flex-wrap:wrap;gap:32px;margin-bottom:32px;padding:20px}.trend-item{display:flex;flex-direction:column;gap:8px}.trend-label{color:#64748b;font-size:13px;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.trend-value{color:#1e293b;font-size:24px;font-weight:700}.trend-value.positive{color:#10b981}.trend-value.negative{color:#ef4444}.trends-by-city h4{color:#475569;font-size:16px;font-weight:600;margin:0 0 20px}.city-trends-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.city-trend-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px;transition:all .2s}.city-trend-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.city-trend-card h5{color:#1e293b;font-size:14px;font-weight:600;margin:0 0 12px;text-align:center}.city-trend-values{align-items:center;display:flex;font-size:16px;font-weight:600;justify-content:space-between;margin-bottom:8px}.city-trend-values .prev{color:#94a3b8}.city-trend-values .arrow{color:#cbd5e1;font-size:14px}.city-trend-values .current{color:#1e293b}.city-trend-change{border-radius:6px;font-size:13px;font-weight:600;padding:6px 12px;text-align:center}.city-trend-change.positive{background:#d1fae5;color:#065f46}.city-trend-change.negative{background:#fee2e2;color:#991b1b}@media (max-width:1024px){.data-quality-dashboard{padding:16px}.dashboard-content-header{align-items:flex-start;flex-direction:column}.dashboard-title{font-size:24px}.dashboard-subtitle{font-size:14px}.metrics-grid{grid-template-columns:1fr}.trends-summary{flex-direction:column;gap:16px}.city-trends-grid{grid-template-columns:1fr}}.client-fidele-page{margin:0 auto;max-width:1400px;padding:20px}.page-header{margin-bottom:30px}.page-header h1{color:#333;margin-bottom:8px}.page-description{color:#666;font-size:14px;margin:0}.filters-section{padding:20px}.filter-row{align-items:end;gap:15px;margin-bottom:15px}.filter-row:last-child{margin-bottom:0}.filter-group{gap:5px;min-width:180px}.filter-group label{color:#555;font-size:13px}.mode-selector{display:flex;gap:10px}.mode-selector .btn{flex:1 1}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:30px}.stat-card{border:1px solid #e0e0e0;padding:20px}.stat-value{color:#2196f3;margin-bottom:8px}.data-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px}.section-header h2,.section-header h3{color:#333;font-size:18px;font-weight:600;margin:0}.platform-stats{border-bottom:1px solid #e0e0e0;margin-bottom:30px;padding-bottom:30px}.platform-stats h3{color:#333;font-size:16px;font-weight:600;margin-bottom:15px}.clients-list{margin-top:20px}.table-responsive{overflow-x:auto}.data-table{border-collapse:collapse;font-size:13px;width:100%}.data-table thead{background:#f5f5f5}.data-table th{border-bottom:2px solid #e0e0e0;color:#555;font-weight:600;padding:12px;text-align:left;white-space:nowrap}.data-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:12px}.data-table tbody tr:hover{background:#fafafa}.badge{font-size:12px}.badge-platform{background:#e3f2fd;color:#1976d2}.badge-city{background:#f3e5f5;color:#7b1fa2}.badge-count{background:#fff3e0;color:#f57c00;font-weight:600}.no-data{border:1px solid #e0e0e0;border-radius:8px;padding:60px 20px}.no-data p{font-size:14px;margin:0}.loading-spinner{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-top-color:#2196f3;height:40px;margin-bottom:15px;width:40px}.loading-spinner p{color:#666;font-size:14px;margin:0}.alert{border-radius:6px;font-size:14px;margin-bottom:20px;padding:15px}.alert-error{background:#ffebee;border:1px solid #ef9a9a;color:#c62828}.btn{border:none;border-radius:6px;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-primary{background:#2196f3}.btn-primary:hover{background:#1976d2}.btn-secondary{background:#f5f5f5;border:1px solid #ddd}.btn-secondary:hover{background:#e0e0e0}.form-control{border:1px solid #ddd;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;width:100%}.form-control:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a;outline:none}.card{background:#fff;border:1px solid #e0e0e0;border-radius:8px}.modal-overlay{animation:fadeIn .2s ease-in-out;background:#000000b3;z-index:9999}.analysis-modal{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-width:600px;min-width:500px;padding:40px}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.analysis-modal h3{color:#333;font-size:24px;font-weight:600;margin:0 0 30px;text-align:center}.progress-container{margin-bottom:20px}.progress-bar{background:#f5f5f5;border:2px solid #ddd;border-radius:8px;height:50px;margin-bottom:15px;width:100%}.progress-bar::-webkit-progress-bar{background:#f5f5f5;border-radius:8px}.progress-bar::-webkit-progress-value{background:linear-gradient(90deg,#2196f3,#1976d2);border-radius:8px;-webkit-transition:width .3s ease;transition:width .3s ease}.progress-bar::-moz-progress-bar{background:linear-gradient(90deg,#2196f3,#1976d2);border-radius:8px}.progress-text{color:#2196f3;font-size:20px;font-weight:600;margin:0 0 10px;text-align:center}.progress-percentage{color:#2196f3;font-size:36px;font-weight:700;margin:0 0 20px;text-align:center}.progress-info{background:#f9f9f9;border-radius:6px;color:#666;font-size:16px;font-weight:500;margin:10px 0 0;padding:15px;text-align:center}.progress-info .found-count{color:#4caf50;font-size:18px;font-weight:700}.cache-info{background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;color:#2e7d32;font-size:14px;font-weight:500;margin-top:15px;padding:12px 15px}.expandable-row{cursor:pointer;transition:background .2s}.expandable-row:hover{background:#f9f9f9}.expand-button{align-items:center;background:none;border:none;color:#2196f3;cursor:pointer;display:flex;font-size:16px;height:25px;justify-content:center;padding:0;transition:transform .2s;width:25px}.expand-button:hover{transform:scale(1.2)}.expanded-details{background:#fafafa}.expanded-details td{padding:0!important}.details-container{border-top:2px solid #2196f3;padding:20px}.details-container h4{color:#333;font-size:16px;font-weight:600;margin:0 0 15px}.details-table{background:#fff;border-collapse:collapse;border-radius:6px;box-shadow:0 1px 3px #0000001a;font-size:12px;overflow:hidden;width:100%}.details-table thead{background:#f5f5f5}.details-table th{border-bottom:2px solid #e0e0e0;color:#555;font-size:11px;font-weight:600;letter-spacing:.5px;padding:10px;text-align:left;text-transform:uppercase}.details-table td{border-bottom:1px solid #f0f0f0;color:#333;padding:10px}.details-table tbody tr:hover{background:#f9f9f9}.loading-small{color:#666;font-style:italic}.no-previous{color:#999;font-style:italic;margin:0;padding:20px;text-align:center}@media (max-width:768px){.filter-row{align-items:stretch;flex-direction:column}.stats-grid{grid-template-columns:1fr}.section-header{align-items:flex-start;gap:15px}.mode-selector,.section-header{flex-direction:column}}.conversation-container{background:#f9fafb;background:var(--hover-bg,#f9fafb);display:flex;flex-direction:column;height:100%;overflow:hidden}.conversation-header{align-items:center;background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;gap:10px;padding:12px 16px}.conversation-header h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex:1 1;font-size:1rem;font-weight:600;margin:0}.credits-badge{background:#667eea26;border-radius:12px;color:#667eea;font-size:.75rem;font-weight:600;padding:4px 10px}.btn-refresh-conversation{align-items:center;background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;transition:all .2s;width:28px}.btn-refresh-conversation:hover:not(:disabled){background:#f3f4f6;background:var(--hover-bg,#f3f4f6);border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.btn-refresh-conversation:disabled{cursor:not-allowed;opacity:.5}.btn-refresh-conversation .spinning{animation:spin 1s linear infinite}.conversation-messages{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:12px}.conversation-empty,.conversation-loading,.conversation-not-configured{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;flex-direction:column;height:100%;justify-content:center;padding:20px;text-align:center}.conversation-empty p,.conversation-not-configured p{font-size:.9rem;margin:0 0 4px}.conversation-empty small,.conversation-not-configured small{font-size:.75rem;opacity:.7}.conversation-message{display:flex;flex-direction:column;max-width:85%}.conversation-message.outbound{align-items:flex-end;align-self:flex-end}.conversation-message.inbound{align-items:flex-start;align-self:flex-start}.message-bubble{word-wrap:break-word;border-radius:12px;max-width:100%;padding:10px 14px}.conversation-message.outbound .message-bubble{background:linear-gradient(135deg,#667eea,#5a67d8);border-bottom-right-radius:4px;color:#fff}.conversation-message.inbound .message-bubble{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-bottom-left-radius:4px;color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.message-content{font-size:.85rem;line-height:1.4;white-space:pre-wrap}.message-meta{align-items:center;display:flex;font-size:.7rem;gap:6px;margin-top:4px;opacity:.8}.conversation-message.inbound .message-meta{color:#6b7280;color:var(--text-secondary,#6b7280)}.message-time{font-size:.65rem}.message-channel{font-size:.75rem}.message-status{font-weight:600}.message-sender{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.65rem;font-style:italic;margin-top:2px}.conversation-input-area{align-items:flex-end;background:#fff;background:var(--card-bg,#fff);border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);display:flex;gap:8px;padding:12px}.channel-selector{display:flex;flex-direction:column;gap:4px}.channel-btn{align-items:center;background:#fff;border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.channel-btn:hover:not(:disabled){border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.channel-btn.active{background:#667eea;border-color:#667eea;color:#fff}.channel-btn.whatsapp.active{background:#25d366;border-color:#25d366}.channel-btn:disabled{cursor:not-allowed;opacity:.4}.message-input{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:8px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex:1 1;font-family:inherit;font-size:.85rem;max-height:100px;min-height:40px;padding:10px 12px;resize:none}.message-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea26;outline:none}.message-input:disabled{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);cursor:not-allowed}.message-input::placeholder{color:#9ca3af;color:var(--text-secondary,#9ca3af)}.btn-send{align-items:center;background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;padding:0;transition:all .2s;width:40px}.btn-send:hover:not(:disabled){background:#5a67d8;transform:scale(1.05)}.btn-send:disabled{background:#e5e7eb;background:var(--border-color,#e5e7eb);cursor:not-allowed}.sending-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.character-count{background:#fff;background:var(--card-bg,#fff);color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.7rem;padding:0 12px 8px;text-align:right}.character-count .warning{color:#f39c12;font-weight:600}@media (prefers-color-scheme:dark){.conversation-container{--card-bg:#1e1e2d;--hover-bg:#2a2a3a;--text-primary:#fff;--text-secondary:#a0a0a0;--border-color:#3a3a4a}.conversation-message.inbound .message-bubble,.message-input{color:#fff;color:var(--text-primary,#fff)}.channel-btn,.conversation-message.inbound .message-bubble,.message-input{background:#2a2a3a;background:var(--hover-bg,#2a2a3a);border-color:#3a3a4a;border-color:var(--border-color,#3a3a4a)}}@media (max-width:600px){.conversation-input-area{padding:8px}.channel-selector{flex-direction:row}.channel-btn{height:28px;width:28px}.message-input{font-size:.9rem}}.modal-overlay-3col{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content-3col{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 20px 60px #0006;display:grid;grid-template-columns:320px 1fr 300px;height:85vh;max-height:850px;max-width:1400px;overflow:hidden;position:relative;width:100%}.btn-close-3col{background:#0000001a;border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:1rem;height:32px;position:absolute;right:12px;top:12px;transition:all .2s;width:32px;z-index:10}.btn-close-3col:hover{background:#0003;color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.col-left-simple{background:#fff;border-right:1px solid #e5e7eb;display:flex;flex-direction:column;overflow:hidden}.client-header-simple{background:#1f2937;color:#fff;padding:16px;text-align:center}.parking-name-simple{font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;opacity:.9;text-transform:uppercase}.client-name-simple{font-size:1.2rem;font-weight:700;margin-bottom:4px}.booking-ref-simple{font-family:monospace;font-size:.85rem;opacity:.8}.client-details-simple{flex:1 1;overflow-y:auto;padding:16px}.info-table-simple{border-collapse:collapse;font-size:.9rem;width:100%}.info-table-simple td{border-bottom:1px solid #f1f5f9;padding:10px 8px;vertical-align:top}.info-table-simple tr:last-child td{border-bottom:none}.label-cell{color:#64748b;font-size:.8rem;font-weight:500;white-space:nowrap;width:100px}.value-cell{color:#1f2937;word-break:break-word}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f8fafc}.urgent-row td{background:#fef2f2}.emplacement-badge{background:#1f2937;border-radius:4px;color:#fff;display:inline-block;font-size:.85rem;font-weight:600;padding:2px 8px}.countdown-badge{color:#dc2626;font-size:.85rem;font-weight:600}.refresh-section-simple{border-top:1px solid #e5e7eb;color:#6366f1;cursor:pointer;font-size:.85rem;margin-top:16px;padding:10px;text-align:center}.refresh-section-simple:hover{background:#f8fafc}.info-row .info-text{color:#1f2937;flex:1 1;font-size:.9rem;line-height:1.5}.info-row .info-text strong{color:#1f2937;color:var(--text-primary,#1f2937);font-weight:600}.info-row .model-text{color:#6b7280;color:var(--text-secondary,#6b7280);font-weight:400}.info-row .emplacement{background:#1a1a2e;border-radius:4px;color:#fff;display:inline-block;font-size:.75rem;font-weight:600;margin-left:4px;padding:2px 8px}.info-row .staff-name{color:#6b7280;color:var(--text-secondary,#6b7280);font-style:italic}.info-row .email-text{font-size:.8rem}.info-row .address-text{font-size:.8rem;line-height:1.5}.info-row .countdown{color:#e74c3c;font-size:.75rem;font-weight:700;margin-left:6px}.info-row.clickable{cursor:pointer}.info-row.clickable:hover{background:#f3f4f6;border-radius:6px}.info-row.urgent{background:#e74c3c1a;border-radius:6px}.info-row.urgent .info-text{color:#dc2626;font-weight:600}.section-header{margin-bottom:2px}.section-header .section-title{margin-bottom:0}.refresh-link{color:#667eea;cursor:pointer;font-size:.7rem;text-decoration:underline}.refresh-link:hover{color:#5a67d8}.places-updated-at{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.6rem;font-style:italic;margin-top:2px}.data-refresh-section{align-items:center;border-bottom:1px dashed #e5e7eb;border-bottom:1px dashed var(--border-color,#e5e7eb);display:flex;gap:6px;margin-bottom:8px;padding:6px 0}.data-refresh-section .refresh-link{font-size:.75rem}.data-refresh-section .refresh-timestamp{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.65rem;font-style:italic}.col-left .col-header{background:#fff;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);padding:16px}.col-left .col-header h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;font-weight:600;margin:0}.col-left .booking-ref{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-family:monospace;font-size:.7rem;margin-top:4px;opacity:.7}.client-info{flex:1 1;overflow-y:auto;padding:12px}.info-item{background:#f1f3f5;border-radius:8px;margin-bottom:8px;padding:10px 12px}.info-item .info-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-item .info-value{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.85rem;overflow-wrap:break-word;word-break:normal}.info-item .countdown{color:#e74c3c;font-size:.75rem;font-weight:600;margin-left:6px}.info-item.clickable{cursor:pointer;transition:background .2s}.info-item.clickable:hover{background:#e9ecef}.info-item.address .address-lines{color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;flex-direction:column;font-size:.75rem}.info-item.urgent{background:#e74c3c26;border:1px solid #e74c3c4d}.info-item.urgent .info-value{color:#e74c3c;font-weight:600}.col-center{background:#fff;background:var(--card-bg,#fff);border-left:1px solid #e5e7eb;border-left:1px solid var(--border-color,#e5e7eb);border-right:1px solid #e5e7eb;border-right:1px solid var(--border-color,#e5e7eb);display:flex;flex-direction:column;overflow:hidden}.status-header{background:#f9fafb;background:var(--hover-bg,#f9fafb);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);justify-content:space-between;padding:12px 16px}.status-header,.status-selector{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.status-selector .label{font-size:.8rem;font-weight:600}.status-btn,.status-selector .label{color:#6b7280;color:var(--text-secondary,#6b7280)}.status-btn{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:16px;cursor:pointer;font-size:.75rem;font-weight:500;padding:6px 12px;transition:all .2s}.status-btn:hover:not(:disabled){border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.status-btn.active{border-color:#0000;color:#fff}.status-btn:disabled{cursor:not-allowed;opacity:.6}.status-timestamp{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;font-size:.75rem;gap:6px}.btn-edit-ts{background:none;border:none;cursor:pointer;font-size:.8rem;opacity:.6;padding:2px}.btn-edit-ts:hover{opacity:1}.opportunity-tabs{background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px}.opp-tab{align-items:center;background:#f9fafb;background:var(--hover-bg,#f9fafb);border:2px solid #0000;border-radius:8px;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 14px;position:relative;transition:all .2s}.opp-tab .tab-label{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:500}.opp-tab:hover{background:#e5e7eb;background:var(--border-color,#e5e7eb)}.opp-tab.active{background:#fff;border-color:#667eea;border-color:var(--primary-color,#667eea);box-shadow:0 2px 8px #667eea33}.opp-tab:after{border-radius:50%;content:"";height:8px;position:absolute;right:4px;top:4px;width:8px}.opp-tab.badge-pending:after{background:#e74c3c}.opp-tab.badge-sent:after{background:#27ae60}.opp-tab.badge-skipped:after{background:#95a5a6}.tab-content-area{flex:1 1;overflow-y:auto;padding:16px}.tab-content{background:#f9fafb;background:var(--hover-bg,#f9fafb);border-radius:10px;padding:16px}.tab-content h4{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;font-weight:600;margin:0 0 16px}.tab-content h4 .releve-info{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.75rem;font-weight:400;margin-top:4px}.tab-content h4 .releve-info .releve-detail{color:#e67e22;font-weight:600}.tab-content hr{border:none;border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);margin:16px 0}.impact-location{background:#e74c3c1a;border:1px solid #e74c3c4d;border-radius:6px;margin-bottom:16px;padding:10px 12px}.impact-location .label{color:#e74c3c;display:block;font-size:.8rem;font-weight:600;margin-bottom:4px}.impact-location .value{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.9rem;white-space:pre-wrap}.tab-content{position:relative}.badges-container{display:flex;flex-direction:column;gap:6px;min-width:-webkit-fit-content;min-width:fit-content;position:absolute;right:8px;top:8px;z-index:5}.etat-des-lieux-badge{background:#f39c1226;border:1px solid #f39c1266;border-radius:12px;color:#e67e22}.etat-des-lieux-badge,.windshield-history-badge{font-size:.75rem;font-weight:600;padding:5px 10px;white-space:nowrap}.windshield-history-badge{border-radius:12px}.windshield-history-badge.loading{background:#95a5a626;color:#7f8c8d}.windshield-history-badge.no-history{background:#27ae6026;border:1px solid #27ae604d;color:#27ae60}.windshield-history-badge.has-history{background:#e74c3c26;border:1px solid #e74c3c66;color:#e74c3c;cursor:pointer;transition:all .2s}.windshield-history-badge.has-history:hover{background:#e74c3c40;transform:scale(1.02)}.windshield-history-detail{background:#fff;border:2px solid #e74c3c66;border-radius:10px;box-shadow:0 8px 24px #00000040;left:50%;max-height:80vh;max-width:90vw;overflow:hidden;position:fixed;top:50%;transform:translate(-50%,-50%);width:400px;z-index:1001}.windshield-history-detail .detail-header{align-items:center;background:#e74c3c1a;border-bottom:1px solid #e74c3c33;display:flex;justify-content:space-between;padding:10px 12px}.windshield-history-detail .detail-header span{color:#c0392b;font-size:.8rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.windshield-history-detail .detail-header button{background:#0000;border:1px solid #e74c3c4d;border-radius:4px;color:#c0392b;cursor:pointer;font-size:.75rem;height:22px;padding:0;transition:all .2s;width:22px}.windshield-history-detail .detail-header button:hover{background:#e74c3c33}.windshield-history-detail .detail-content{max-height:250px;overflow-y:auto;padding:12px}.windshield-history-detail .history-section{margin-bottom:8px}.windshield-history-detail .history-section:last-child{margin-bottom:0}.windshield-history-detail .history-item{border-bottom:1px dashed #e74c3c26;padding:8px 0}.windshield-history-detail .history-item:last-child{border-bottom:none;padding-bottom:0}.windshield-history-detail .history-item p{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.8rem;line-height:1.4;margin:0}.windshield-history-detail .history-item strong{color:#c0392b}.windshield-history-detail .history-dates{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem}.windshield-history-detail .history-comment{background:#0000000a;border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem!important;margin-top:4px!important;overflow-wrap:break-word;padding:6px 8px;word-break:normal}.windshield-history-detail .detail-footer{align-items:center;background:#00000008;border-top:1px solid #e74c3c26;display:flex;justify-content:space-between;padding:8px 12px}.windshield-history-detail .detail-footer .btn-refresh{background:#0000;border:1px solid #e74c3c4d;border-radius:4px;color:#c0392b;cursor:pointer;font-size:.75rem;padding:4px 10px;transition:all .2s}.windshield-history-detail .detail-footer .btn-refresh:hover{background:#e74c3c1a}.windshield-history-detail .detail-footer small{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-style:italic}.vehicle-history-banner{align-items:center;border-radius:8px;display:flex;font-size:.85rem;font-weight:600;justify-content:center;margin-bottom:12px;padding:10px 16px;text-align:center}.vehicle-history-banner.loading{background:#95a5a626;color:#7f8c8d}.vehicle-history-banner.no-history{background:#27ae601f;border:1px solid #27ae6040;color:#27ae60}.vehicle-history-banner.has-history{animation:pulse-glow 2s ease-in-out infinite;background:linear-gradient(135deg,#e74c3c26,#f39c1226);border:1px solid #e74c3c59;color:#c0392b;cursor:pointer;transition:all .2s}.vehicle-history-banner.has-history:hover{background:linear-gradient(135deg,#e74c3c40,#f39c1240);box-shadow:0 2px 8px #e74c3c33;transform:scale(1.01)}@keyframes pulse-glow{0%,to{box-shadow:0 0 0 0 #e74c3c00}50%{box-shadow:0 0 12px 2px #e74c3c40}}.vehicle-history-detail{background:#fff;border:2px solid #3498db66;border-radius:12px;box-shadow:0 12px 36px #0000004d;left:50%;max-height:85vh;max-width:95vw;overflow:hidden;position:fixed;top:50%;transform:translate(-50%,-50%);width:500px;z-index:1001}.vehicle-history-detail .detail-header{align-items:center;background:#3498db1a;border-bottom:1px solid #3498db33;display:flex;justify-content:space-between;padding:12px 16px}.vehicle-history-detail .detail-header span{color:#2471a3;font-size:.85rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.vehicle-history-detail .detail-header button{background:#0000;border:1px solid #3498db4d;border-radius:4px;color:#2471a3;cursor:pointer;font-size:.85rem;height:26px;padding:0;transition:all .2s;width:26px}.vehicle-history-detail .detail-header button:hover{background:#3498db33}.vehicle-history-detail .detail-content{max-height:400px;overflow-y:auto;padding:12px 16px}.vehicle-history-detail .history-item{background:#00000005;border:1px solid #0000000f;border-left:3px solid #3498db;border-radius:8px;margin-bottom:10px;padding:12px}.vehicle-history-detail .history-item.mysql{border-left-color:#9b59b6}.vehicle-history-detail .history-item:last-child{margin-bottom:0}.vehicle-history-detail .history-item-header{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;margin-bottom:6px}.vehicle-history-detail .history-item-header strong{color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex-shrink:0;font-size:.85rem}.vehicle-history-detail .history-header-right{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.vehicle-history-detail .history-dates{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem}.vehicle-history-detail .btn-open-prospect{background:#3498db26;border:1px solid #3498db4d;border-radius:4px;color:#2980b9;cursor:pointer;font-size:.7rem;font-weight:600;padding:3px 8px;transition:all .2s;white-space:nowrap}.vehicle-history-detail .btn-open-prospect:hover{background:#3498db40;border-color:#3498db80}.vehicle-history-detail .history-opportunities{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.vehicle-history-detail .opp-tag{background:#3498db26;border-radius:10px;color:#2980b9;font-size:.7rem;font-weight:500;padding:2px 8px}.vehicle-history-detail .history-offers{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.vehicle-history-detail .offer-tag{background:#95a5a633;border-radius:10px;color:#7f8c8d;font-size:.7rem;font-weight:500;padding:2px 8px}.vehicle-history-detail .offer-tag.accord{background:#27ae6026;color:#27ae60}.vehicle-history-detail .offer-tag.refus{background:#e74c3c26;color:#e74c3c}.vehicle-history-detail .history-status{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;margin-bottom:4px}.vehicle-history-detail .status-cloture{color:#27ae60}.vehicle-history-detail .status-a_traiter{color:#e74c3c}.vehicle-history-detail .status-en_attente{color:#f39c12}.vehicle-history-detail .history-comment{background:#0000000a;border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;font-style:italic;margin-top:6px;padding:6px 8px;word-break:break-word}.vehicle-history-detail .detail-footer{align-items:center;background:#00000008;border-top:1px solid #3498db26;display:flex;justify-content:space-between;padding:10px 16px}.vehicle-history-detail .detail-footer .btn-refresh{background:#0000;border:1px solid #3498db4d;border-radius:4px;color:#2471a3;cursor:pointer;font-size:.75rem;padding:5px 12px;transition:all .2s}.vehicle-history-detail .detail-footer .btn-refresh:hover{background:#3498db1a}.vehicle-history-detail .detail-footer small{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-style:italic}.sms-controls{margin-bottom:12px}.sms-status-group{align-items:center;display:flex;gap:12px;margin-bottom:10px}.sms-skip-reason .label,.sms-status-group .label,.sms-timestamp .label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-weight:500}.sms-buttons{display:flex;gap:6px}.sms-btn{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 14px;transition:all .2s}.sms-btn:hover{border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.sms-btn.active.sent{background:#27ae60;border-color:#27ae60;color:#fff}.sms-btn.active.skipped{background:#95a5a6;border-color:#95a5a6;color:#fff}.sms-skip-reason,.sms-timestamp{align-items:center;display:flex;gap:10px;margin-top:8px}.sms-skip-reason input,.sms-timestamp input{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex:1 1;font-size:.8rem;max-width:250px;padding:6px 10px}.sms-skip-reason input:focus,.sms-timestamp input:focus{border-color:#667eea;border-color:var(--primary-color,#667eea);outline:none}.btn-cancel-skip{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.75rem;padding:4px 8px}.btn-cancel-skip:hover{background:#f3f4f6;background:var(--hover-bg,#f3f4f6)}.response-controls{margin-top:12px}.response-group{margin-bottom:12px}.response-group .label{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.8rem;font-weight:500;margin-bottom:8px}.response-buttons{display:flex;gap:6px}.response-btn{background:#fff;border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 14px;transition:all .2s}.response-btn:hover{border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.response-btn.active{border-color:#0000;color:#fff}.checkbox-row{align-items:center;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:pointer;display:flex;font-size:.85rem;gap:8px;margin-top:12px}.checkbox-row input[type=checkbox]{accent-color:#667eea;accent-color:var(--primary-color,#667eea);height:16px;width:16px}.checkbox-row.transmitted{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);padding-top:12px}.transmitted-datetime{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:4px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.75rem;margin-left:10px;padding:4px 8px}.agendrix-message-section{background:#f8fafc;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:8px;margin-top:12px;padding:10px}.agendrix-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.agendrix-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-weight:500}.btn-copy-agendrix{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.75rem;padding:4px 10px;transition:background .2s}.btn-copy-agendrix:hover{background:#5a67d8}.agendrix-textarea{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-family:inherit;font-size:.8rem;line-height:1.4;padding:10px;resize:none;width:100%}.agendrix-textarea:focus{border-color:#667eea;outline:none}.wash-types-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.wash-item{align-items:center;background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;display:flex;gap:6px;padding:6px 10px}.wash-item .wash-label{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.8rem}.wash-item .btn-remove{background:#0000;border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.7rem;height:18px;opacity:.5;padding:0;transition:all .2s;width:18px}.wash-item:hover .btn-remove{opacity:1}.wash-item .btn-remove:hover{background:#e74c3c1a;color:#e74c3c}.btn-add-wash{background:#fff;border:2px dashed #e5e7eb;border:2px dashed var(--border-color,#e5e7eb);border-radius:6px;color:#667eea;color:var(--primary-color,#667eea);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s}.btn-add-wash:hover{background:#f0f4ff;background:var(--primary-light,#f0f4ff);border-color:#667eea;border-color:var(--primary-color,#667eea)}.add-wash-inline{display:flex;gap:6px}.add-wash-inline select{background:#fff;flex:1 1;font-size:.85rem;padding:6px 10px}.add-wash-inline .btn-cancel,.add-wash-inline select{border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px}.add-wash-inline .btn-cancel{background:#0000;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.8rem;height:28px;padding:0;width:28px}.notes-section{background:#fff;background:var(--card-bg,#fff);border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);padding:16px}.notes-section h4{font-size:.9rem;font-weight:600;margin:0 0 10px}.notes-section h4,.notes-section textarea{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.notes-section textarea{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;font-family:inherit;font-size:.85rem;min-height:60px;padding:10px;resize:vertical;width:100%}.notes-section textarea:focus{border-color:#667eea;border-color:var(--primary-color,#667eea);box-shadow:0 0 0 2px #667eea26;outline:none}.notes-status{font-size:.75rem;margin-left:8px}.notes-status.saving{color:#6b7280;color:var(--text-secondary,#6b7280)}.notes-status.saved{color:#27ae60}.col-right{background:#f9fafb;background:var(--hover-bg,#f9fafb);display:flex;flex-direction:column;overflow:hidden}.right-panel-tabs{background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;gap:4px;padding:8px 8px 0}.right-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;flex:1 1;font-size:.8rem;font-weight:500;padding:8px 12px;transition:all .2s;white-space:nowrap}.right-tab:hover{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.right-tab.active,.right-tab:hover{background:#f9fafb;background:var(--hover-bg,#f9fafb)}.right-tab.active{border-bottom-color:#667eea;border-bottom-color:var(--primary-color,#667eea);color:#667eea;color:var(--primary-color,#667eea)}.template-section{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.template-header{align-items:center;background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);padding:12px 16px}.template-header h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.9rem;font-weight:600;margin:0}.btn-copy-template{background:#667eea;background:var(--primary-color,#667eea);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s}.btn-copy-template:hover:not(:disabled){background:#5a67d8;background:var(--primary-dark,#5a67d8);transform:scale(1.02)}.btn-copy-template:disabled{cursor:not-allowed;opacity:.5}.template-textarea{background:#f9fafb;background:var(--hover-bg,#f9fafb);border:none;color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex:1 1;font-family:inherit;font-size:.8rem;line-height:1.5;padding:12px;resize:none;width:100%}.template-textarea:focus{outline:none}.template-empty,.template-loading{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;flex:1 1;font-size:.85rem;font-style:italic;justify-content:center;padding:20px}.col-right .col-header{align-items:center;background:#fff;background:var(--card-bg,#fff);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;justify-content:space-between;padding:16px 50px 16px 16px}.col-right .col-header h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;font-weight:600;margin:0}.btn-copy-sm{background:#667eea;background:var(--primary-color,#667eea);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;padding:6px 10px;transition:all .2s}.btn-copy-sm:hover:not(:disabled){background:#5a67d8;background:var(--primary-dark,#5a67d8);transform:scale(1.05)}.btn-copy-sm:disabled{cursor:not-allowed;opacity:.5}.template-content{flex:1 1;overflow-y:auto;padding:12px}.template-content pre{font-size:.8rem}.template-content .loading,.template-content .template-placeholder{color:#6b7280;color:var(--text-secondary,#6b7280);font-style:italic;margin:0}.template-content .template-placeholder{background:#00000008;border-radius:8px;font-size:.85rem;line-height:1.5;padding:16px;text-align:center}@media (prefers-color-scheme:dark){.modal-content-3col{--card-bg:#1e1e2d;--text-primary:#fff;--text-secondary:#a0a0a0;--border-color:#3a3a4a;--hover-bg:#2a2a3a;--primary-light:#667eea26}.col-left{background:#1e1e2d;color:#fff}.col-left .col-header{background:#2a2a3a;border-color:#3a3a4a}.col-header-v2{background:linear-gradient(135deg,#5a67d8,#6b46c1)}.client-info-v2{background:#1e1e2d}.info-section{border-color:#3a3a4a}.info-row .info-text{color:#e5e7eb}.info-row .info-text strong{color:#fff}.info-row.clickable:hover{background:#2a2a3a}.btn-close-3col{background:#ffffff1a;color:var(--text-secondary)}.response-btn,.sms-btn,.status-btn,.wash-item{background:#2a2a3a;background:var(--hover-bg,#2a2a3a)}.add-wash-inline select,.notes-section textarea,.sms-skip-reason input,.sms-timestamp input,.transmitted-datetime{background:#2a2a3a;background:var(--hover-bg,#2a2a3a);color:#fff;color:var(--text-primary,#fff)}.tab-content{background:#2a2a3a;background:var(--hover-bg,#2a2a3a)}.info-item{background:#2a2a3a}.info-item.clickable:hover{background:#3a3a4a}}@media (max-width:1000px){.modal-content-3col{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;height:95vh;max-height:none}.col-left{max-height:140px}.client-info{display:flex;flex-wrap:wrap;gap:8px;padding:8px}.info-item{flex:0 0 auto;margin-bottom:0;padding:4px 8px}.col-right{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);max-height:200px}.btn-close-3col{background:#ffffff4d;color:#fff;right:8px;top:8px}}@media (max-width:600px){.modal-overlay-3col{padding:0}.modal-content-3col{border-radius:0;height:100vh;max-height:100vh}.opportunity-tabs{gap:4px;padding:8px}.opp-tab{font-size:.8rem;padding:6px 10px}.status-header{align-items:flex-start;flex-direction:column}}.celebration-overlay{align-items:center;animation:fadeIn .3s ease-out;background:#000000bf;border-radius:16px;bottom:0;cursor:pointer;display:flex;justify-content:center;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:100}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confetti-container{bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.confetti-particle{animation:confettiFall linear forwards;border-radius:2px;position:absolute;top:-20px;transform:rotate(0deg)}@keyframes confettiFall{0%{opacity:1;top:-20px;transform:rotate(0deg) translateX(0)}25%{transform:rotate(90deg) translateX(20px)}50%{transform:rotate(180deg) translateX(-20px)}75%{transform:rotate(270deg) translateX(15px)}to{opacity:.3;top:100%;transform:rotate(1turn) translateX(0)}}.celebration-image{animation:celebrationPop .5s cubic-bezier(.68,-.55,.265,1.55) forwards;border-radius:16px;box-shadow:0 20px 60px #00000080;max-height:70%;max-width:70%;z-index:10}@keyframes celebrationPop{0%{opacity:0;transform:scale(.3) rotate(-5deg)}50%{transform:scale(1.1) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.celebration-overlay:before{animation:sparkle 1s ease-in-out infinite;content:"🎉";font-size:3rem;left:15%;position:absolute;top:10%}.celebration-overlay:after{animation:sparkle 1s ease-in-out .3s infinite;content:"🎊";font-size:3rem;position:absolute;right:15%;top:15%}@keyframes sparkle{0%,to{opacity:1;transform:scale(1) rotate(0deg)}50%{opacity:.8;transform:scale(1.3) rotate(15deg)}}.sync-modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.sync-modal-content{animation:syncModalSlideIn .2s ease-out;background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:400px;padding:24px;position:relative;width:100%}@keyframes syncModalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.sync-modal-close{align-items:center;background:#00000014;border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .2s;width:32px}.sync-modal-close:hover{background:#00000026}.sync-modal-close:hover,.sync-modal-title{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.sync-modal-title{align-items:center;display:flex;font-size:1.2rem;font-weight:600;gap:10px;margin:0 0 20px}.sync-modal-title .icon{font-size:1.4rem}.sync-stats{display:flex;flex-direction:column;gap:12px}.sync-stat-item{align-items:center;background:#f9fafb;background:var(--hover-bg,#f9fafb);border-radius:10px;display:flex;gap:12px;padding:14px 16px}.sync-stat-item.new{background:#27ae601a;border:1px solid #27ae604d}.sync-stat-item.updated{background:#f39c121a;border:1px solid #f39c124d}.sync-stat-item.closed{background:#7f8c8d1a;border:1px solid #7f8c8d4d}.sync-stat-item.alert{background:#e74c3c1a;border:1px solid #e74c3c4d}.sync-stat-item.deleted{background:#95a5a61a;border:1px solid #95a5a64d}.sync-stat-icon{font-size:1.5rem}.sync-stat-number{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.8rem;font-weight:700;min-width:40px}.sync-stat-item.new .sync-stat-number{color:#27ae60}.sync-stat-item.updated .sync-stat-number{color:#f39c12}.sync-stat-item.closed .sync-stat-number{color:#7f8c8d}.sync-stat-item.alert .sync-stat-number{color:#e74c3c}.sync-stat-item.deleted .sync-stat-number{color:#95a5a6}.sync-stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.9rem}.sync-stat-summary{background:#667eea14;border:1px dashed #667eea4d;border-radius:10px;margin-top:8px;padding:12px 16px;text-align:center}.sync-stat-summary-text{color:#667eea;color:var(--primary-color,#667eea);font-size:.95rem;font-weight:600}.sync-no-changes{padding:30px 20px;text-align:center}.sync-no-changes .icon{color:#27ae60;display:block;font-size:3rem;margin-bottom:12px}.sync-no-changes p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:1rem;margin:0}.sync-modal-footer{margin-top:24px;text-align:center}.sync-modal-btn{background:#667eea;background:var(--primary-color,#667eea);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 30px;transition:all .2s}.sync-modal-btn:hover{background:#5a67d8;background:var(--primary-dark,#5a67d8);transform:translateY(-1px)}@media (prefers-color-scheme:dark){.sync-modal-content{--card-bg:#1e1e2d;--text-primary:#fff;--text-secondary:#a0a0a0;--hover-bg:#2a2a3a}}.sync-history-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.sync-history-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:85vh;max-width:1100px;width:95%}.sync-history-header{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:16px 20px}.sync-history-header h2{color:#1e293b;font-size:18px;margin:0}.btn-close,.btn-refresh{background:none;border:none;border-radius:6px;color:#64748b;cursor:pointer;padding:8px;transition:all .2s}.btn-close:hover,.btn-refresh:hover{background:#e2e8f0;color:#1e293b}.sync-stats-summary{background:#f1f5f9;border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:16px 20px}.stat-box{border:1px solid #e2e8f0;padding:12px 16px}.stat-box .stat-value{color:#1e293b;display:block;font-size:24px;font-weight:700}.stat-box .stat-label{color:#64748b;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.stat-box.success .stat-value{color:#22c55e}.stat-box.error .stat-value{color:#ef4444}.stat-box.created .stat-value{color:#3b82f6}.last-sync-info{background:#ecfdf5;border-bottom:1px solid #d1fae5;color:#065f46;font-size:13px;padding:12px 20px}.last-sync-info .label{font-weight:600;margin-right:8px}.last-sync-info .detail{color:#059669;margin-left:8px}.sync-history-content{flex:1 1;overflow:auto;padding:0}.empty-state,.error-state,.loading-state{color:#64748b;padding:60px 20px}.loading-state .spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-top-color:#3b82f6;margin-bottom:12px}.error-state button{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:12px;padding:8px 16px}.sync-history-table{border-collapse:collapse;font-size:13px;width:100%}.sync-history-table th{background:#f8fafc;border-bottom:2px solid #e2e8f0;color:#475569;font-weight:600;padding:10px 12px;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:1}.sync-history-table td{border-bottom:1px solid #f1f5f9;padding:10px 12px;vertical-align:middle}.sync-history-table tbody tr:hover{background:#f8fafc}.sync-row.error{background:#fef2f2}.sync-row.error:hover{background:#fee2e2}.sync-row.running{background:#fffbeb}.status-icon{font-size:16px}.status-icon.success{color:#22c55e}.status-icon.error{color:#ef4444}.status-icon.running,.status-icon.warning{color:#f59e0b}.count-cell{font-family:JetBrains Mono,monospace;text-align:center}.count-cell.created{color:#22c55e;font-weight:600}.count-cell.updated{color:#3b82f6}.count-cell.errors{color:#ef4444}.error-badge{background:#fecaca;border-radius:10px;color:#dc2626;cursor:help;font-size:12px;font-weight:600;padding:2px 8px}.date-cell{color:#64748b}.duration-cell{color:#64748b;font-family:JetBrains Mono,monospace}.sync-history-legend,.triggered-cell{color:#64748b;font-size:12px}.sync-history-legend{background:#f8fafc;border-radius:0 0 12px 12px;border-top:1px solid #e2e8f0;display:flex;gap:20px;padding:12px 20px}.sync-history-legend span{align-items:center;display:flex;gap:4px}.sync-history-legend .success{color:#22c55e}.sync-history-legend .error{color:#ef4444}.sync-history-legend .running{color:#f59e0b}@media (max-width:768px){.sync-stats-summary{flex-wrap:wrap}.stat-box{min-width:calc(50% - 8px)}.sync-history-table{font-size:12px}.sync-history-table td,.sync-history-table th{padding:8px 6px}}.service-prospects-page{margin:0 auto;max-width:1800px;padding:20px}.last-sync{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem}.btn-sync{align-items:center;background:linear-gradient(135deg,#2c3e50,#4a5568);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.95rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.btn-sync:hover:not(:disabled){box-shadow:0 4px 12px #2c3e5066;transform:translateY(-2px)}.btn-sync:disabled{cursor:not-allowed;opacity:.7}.btn-history{align-items:center;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:6px;padding:10px 16px;transition:all .2s ease}.btn-history:hover{background:#e2e8f0;border-color:#cbd5e1;color:#1e293b}.stats-row{gap:12px}.stat-card{background:var(--card-bg,#fff);border:2px solid #0000;border-radius:10px;box-shadow:0 2px 6px #0000000f;cursor:pointer;flex:1 1;min-width:110px;padding:12px 16px}.stat-card:hover{box-shadow:0 4px 10px #0000001a;transform:translateY(-2px)}.stat-card.active{background:#f0f4ff;background:var(--primary-light,#f0f4ff);border-color:#667eea;border-color:var(--primary-color,#667eea)}.stat-card .stat-value{color:#1a1a2e;color:var(--text-primary,#1a1a2e);display:block;font-size:1.6rem;font-weight:700}.stat-card .stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.75rem;margin-top:2px;text-transform:uppercase}.stat-card.status-a-traiter .stat-value{color:#e74c3c}.stat-card.status-en-attente .stat-value{color:#f39c12}.stat-card.status-cloture .stat-value{color:#27ae60}.stat-card.status-modified{background:linear-gradient(135deg,#9b59b6,#8e44ad)}.stat-card.status-modified .stat-value{color:#fff}.stat-card.status-modified .stat-label{color:#ffffffe6}.filters-section{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;margin-bottom:16px;padding:14px}.filters-row{align-items:flex-end}.filters-row-second{align-items:center;border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-top:12px;padding-top:12px}.filter-group{min-width:0}.filter-group.search-group{flex:1 1;max-width:280px;min-width:200px}.filter-group label{color:var(--text-secondary,#6b7280);font-size:.7rem}.filter-group input,.filter-group select{background:#fff;background:var(--input-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.85rem;max-width:180px;min-width:120px;padding:8px 10px}.filter-group.search-group input{max-width:100%}.filter-group input:focus,.filter-group select:focus{border-color:#667eea;border-color:var(--primary-color,#667eea);box-shadow:0 0 0 2px #667eea26}.btn-reset{padding:8px 14px;transition:all .2s ease;white-space:nowrap}.opportunity-filters{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.opportunity-filters .filter-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;font-weight:600;text-transform:uppercase}.opportunity-chips{display:flex;flex-wrap:wrap;gap:8px}.opportunity-chip{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);border-radius:20px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s ease}.opportunity-chip:hover{border-color:#6b7280;border-color:var(--text-secondary,#6b7280)}.opportunity-chip.active{border-color:#0000;color:#fff}.departed-checkbox{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;font-size:.85rem;gap:8px;white-space:nowrap}.departed-checkbox input[type=checkbox]{accent-color:#667eea;accent-color:var(--primary-color,#667eea);height:16px;width:16px}.departed-checkbox:hover{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.results-info{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;margin-bottom:12px}.prospects-table-container{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;max-height:calc(100vh - 200px);min-height:500px;overflow:auto}.prospects-table{border-collapse:collapse;font-size:.85rem;width:100%}.prospects-table thead{background:#fff;background:var(--card-bg,#fff);position:-webkit-sticky;position:sticky;top:0;z-index:10}.prospects-table thead tr{background:linear-gradient(135deg,#2c3e50,#4a5568)}.prospects-table th{border-bottom:2px solid #2c3e50;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:10px 12px;text-align:left;text-transform:uppercase;white-space:nowrap}.prospects-table th.th-opportunities{min-width:180px}.prospects-table th.th-booking{min-width:90px}.prospects-table th.th-customer{min-width:140px}.prospects-table th.th-vehicle{min-width:85px}.prospects-table th.th-parking{min-width:120px}.prospects-table th.th-releve{min-width:100px}.prospects-table th.th-arrival{min-width:70px}.prospects-table th.th-departure{min-width:90px}.prospects-table th.th-status{min-width:100px}.prospects-table th.th-notes{min-width:120px}.prospects-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);cursor:pointer;transition:background .15s ease}.prospects-table tbody tr:hover{background:#f0f4ff;background:var(--primary-light,#f0f4ff)}.prospects-table tbody tr.departed{background:#fafafa;opacity:.65}.prospects-table tbody tr.departed:hover{background:#f0f4ff;background:var(--primary-light,#f0f4ff);opacity:.85}.prospects-table td{padding:8px 12px;vertical-align:middle}.td-opportunities .opportunities-list{display:flex;flex-wrap:wrap;gap:4px}.opp-badge{align-items:center;border-radius:12px;color:#fff;display:inline-flex;font-size:.7rem;font-weight:500;gap:3px;padding:3px 8px;white-space:nowrap}.td-booking .booking-number{color:#667eea;color:var(--primary-color,#667eea);font-family:monospace;font-size:.8rem;font-weight:600}.td-customer .customer-name{align-items:center;color:#1a1a2e;color:var(--text-primary,#1a1a2e);display:flex;font-weight:600;gap:4px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-badge{animation:pulse-sync 1.5s ease-in-out infinite;display:inline-flex;flex-shrink:0;font-size:.75rem}@keyframes pulse-sync{0%,to{opacity:1}50%{opacity:.5}}.prospect-row.sync-modified{background:#9b59b614;border-left:3px solid #9b59b6}.prospect-row.sync-modified:hover{background:#9b59b626}.td-vehicle .vehicle-plate{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);border-radius:4px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-family:monospace;font-size:.8rem;font-weight:600;padding:2px 6px}.td-parking .parking-name{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.8rem;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-releve .releve-datetime{color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:help;font-size:.8rem}.td-departure .departure-badge{background:#667eea;background:var(--primary-color,#667eea);border-radius:10px;color:#fff;display:inline-block;font-size:.7rem;font-weight:600;padding:3px 8px;white-space:nowrap}.td-departure .departure-badge.departed{background:#95a5a6}.td-departure .departure-badge.unknown{background:#0000;color:#6b7280;color:var(--text-secondary,#6b7280)}.td-status .status-badge{border-radius:12px;color:#fff;display:inline-block;font-size:.65rem;font-weight:600;letter-spacing:.3px;padding:3px 8px;text-transform:uppercase;white-space:nowrap}.td-notes .notes-preview{color:#6b7280;color:var(--text-secondary,#6b7280);cursor:help;display:block;font-size:.75rem;font-style:italic;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pagination{padding:12px}.pagination button{background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#667eea;color:var(--primary-color,#667eea);font-size:.85rem;transition:all .2s ease}.pagination button:hover:not(:disabled){background:#f0f4ff;background:var(--primary-light,#f0f4ff);border-color:#667eea;border-color:var(--primary-color,#667eea)}.pagination span{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.rules-info-box{background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin-bottom:16px;overflow:hidden}.rules-info-box details summary{align-items:center;color:#92400e;cursor:pointer;display:flex;font-size:.85rem;font-weight:600;gap:6px;list-style:none;padding:10px 14px}.rules-info-box details summary::-webkit-details-marker{display:none}.rules-info-box details summary:before{content:"▶";font-size:.65rem;transition:transform .2s ease}.rules-info-box details[open] summary:before{transform:rotate(90deg)}.rules-info-box details ul{color:#78350f;font-size:.8rem;line-height:1.5;margin:0;padding:0 14px 12px 32px}.rules-info-box details li{margin-bottom:6px}.rules-info-box details li:last-child{margin-bottom:0}.rules-info-box details li strong{color:#92400e}@media (prefers-color-scheme:dark){.service-prospects-page{--card-bg:#1e1e2d;--text-primary:#fff;--text-secondary:#a0a0a0;--border-color:#3a3a4a;--input-bg:#2a2a3a;--hover-bg:#2a2a3a;--primary-light:#667eea26}.prospects-table thead{background:#1e1e2d}.prospects-table tbody tr.departed{background:#1a1a2a}}@media (max-width:1400px){.prospects-table td.td-notes,.prospects-table th.th-notes{display:none}}@media (max-width:1200px){.prospects-table td.td-parking,.prospects-table th.th-parking{display:none}}@media (max-width:1000px){.prospects-table td.td-vehicle,.prospects-table th.th-vehicle{display:none}}@media (max-width:768px){.page-header{flex-direction:column;gap:12px}.stats-row{flex-wrap:wrap}.stat-card{flex:none;min-width:calc(50% - 6px)}.filters-row{align-items:stretch;flex-direction:column}.filter-group input,.filter-group select{max-width:100%;min-width:100%}.filter-group.search-group{max-width:100%}.filters-row-second{align-items:flex-start;flex-direction:column;gap:12px}.prospects-table-container{max-height:calc(100vh - 500px)}.prospects-table td.td-releve,.prospects-table td.td-status,.prospects-table th.th-releve,.prospects-table th.th-status{display:none}}.sms-templates-page{margin:0 auto;max-width:1200px;padding:20px}.info-box{background:linear-gradient(135deg,#e8f4fd,#d6eaf8);border:1px solid #3498db;border-radius:10px;margin-bottom:20px;padding:16px}.info-box h4{color:#2980b9;font-size:.9rem;margin:0 0 10px}.variables-list{display:flex;flex-wrap:wrap;gap:10px}.variable{background:#fff;border:1px solid #bdc3c7;border-radius:4px;color:#2c3e50;font-family:monospace;font-size:.8rem;padding:4px 10px}.loading-state .spinner{border-top-color:#667eea;border-top-color:var(--primary-color,#667eea)}.templates-list{display:flex;flex-direction:column;gap:16px}.template-card{background:#fff;background:var(--card-bg,#fff);border:2px solid #0000;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:20px;transition:all .2s ease}.template-card:hover{box-shadow:0 4px 12px #0000001f}.template-card.inactive{background:#f5f5f5;opacity:.7}.template-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.template-info{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.template-info h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.1rem;margin:0}.template-key{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);color:#6b7280;color:var(--text-secondary,#6b7280);font-family:monospace;font-size:.75rem}.badge-inactive,.template-key{border-radius:4px;padding:2px 8px}.badge-inactive{background:#e74c3c1a;color:#e74c3c;font-size:.7rem;font-weight:600;text-transform:uppercase}.template-actions{display:flex;gap:8px}.btn-toggle{border:1px solid;border-radius:6px;cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s}.btn-toggle.active{background:#27ae601a;border-color:#27ae60;color:#27ae60}.btn-toggle:not(.active){background:#e74c3c1a;border-color:#e74c3c;color:#e74c3c}.btn-reset{background:#0000;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.8rem;font-weight:500;padding:6px 12px;transition:all .2s}.btn-reset:hover{background:#f3f4f6;background:var(--hover-bg,#f3f4f6);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.template-description{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;font-style:italic;margin:0 0 12px}.view-section{position:relative}.template-content{background:#f9fafb;background:var(--hover-bg,#f9fafb);border-radius:8px;margin-bottom:12px;padding:14px}.template-content pre{word-wrap:break-word;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-family:inherit;font-size:.9rem;line-height:1.5;margin:0;white-space:pre-wrap}.btn-edit{background:#f0f4ff;background:var(--primary-light,#f0f4ff);border:none;border-radius:6px;color:#667eea;color:var(--primary-color,#667eea);cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .2s}.btn-edit:hover{background:#667eea;background:var(--primary-color,#667eea);color:#fff}.edit-section{background:#f9fafb;background:var(--hover-bg,#f9fafb);border-radius:8px;padding:16px}.edit-section textarea{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-family:inherit;font-size:.9rem;line-height:1.5;min-height:100px;padding:12px;resize:vertical;width:100%}.edit-section textarea:focus{border-color:#667eea;border-color:var(--primary-color,#667eea);box-shadow:0 0 0 3px #667eea26;outline:none}.preview-section{border-top:1px dashed #e5e7eb;border-top:1px dashed var(--border-color,#e5e7eb);margin-top:12px;padding-top:12px}.preview-section h5{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;margin:0 0 8px;text-transform:uppercase}.preview-content{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.85rem;line-height:1.5;padding:12px;white-space:pre-wrap}.edit-actions{display:flex;gap:10px;margin-top:14px}.btn-save{background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s}.btn-save:hover:not(:disabled){box-shadow:0 4px 12px #27ae6066;transform:translateY(-1px)}.btn-save:disabled{cursor:not-allowed;opacity:.6}.btn-cancel{background:#fff;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 20px;transition:all .2s}.btn-cancel:hover:not(:disabled){background:#f3f4f6;background:var(--hover-bg,#f3f4f6);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.template-footer{border-top:1px solid #e5e7eb;border-top:1px solid var(--border-color,#e5e7eb);margin-top:12px;padding-top:12px}.updated-info{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem}@media (prefers-color-scheme:dark){.sms-templates-page{--card-bg:#1e1e2d;--text-primary:#fff;--text-secondary:#a0a0a0;--border-color:#3a3a4a;--hover-bg:#2a2a3a;--primary-light:#667eea26}.info-box{background:linear-gradient(135deg,#2c3e50,#34495e);border-color:#5dade2}.info-box h4{color:#85c1e9}.variable{background:#1e1e2d;border-color:#5dade2;color:#ecf0f1}.template-card.inactive{background:#2a2a3a}}@media (max-width:768px){.template-header{flex-direction:column;gap:12px}.template-actions{justify-content:flex-start;width:100%}.variables-list{flex-direction:column;gap:6px}}.releve-control-page{margin:0 auto;max-width:1400px;padding:20px}.page-header{margin-bottom:20px}.page-header h1{color:var(--text-primary,#1a1a2e);font-size:1.6rem;margin:0 0 4px}.page-header .subtitle{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.9rem;margin:0}.header-right{gap:12px}.period-selector{align-items:center;display:flex;gap:8px}.period-selector label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.period-selector select{background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:pointer;font-size:.85rem;padding:8px 12px}.period-mode-select{min-width:120px}.custom-date-range{align-items:center;display:flex;gap:8px}.custom-date-range .date-input{background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:pointer;font-size:.85rem;min-width:140px;padding:8px 12px}.custom-date-range .date-input:focus{border-color:#3182ce;border-color:var(--primary-color,#3182ce);box-shadow:0 0 0 3px #3182ce1a;outline:none}.custom-date-range .date-separator{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.9rem}.subscriber-filter{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:6px 12px;transition:all .15s ease}.subscriber-filter:hover{border-color:#3182ce;border-color:var(--primary-color,#3182ce);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.subscriber-filter input[type=checkbox]{accent-color:#3182ce;accent-color:var(--primary-color,#3182ce);cursor:pointer;height:16px;width:16px}.keep-keys-badge{align-items:center;background:#f59e0b;border-radius:10px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:600;justify-content:center;margin-left:6px;min-width:20px;padding:2px 8px}.keep-keys-filter{white-space:nowrap}.summary-cards{flex-wrap:wrap}.summary-card{background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;min-width:140px;padding:16px 20px}.summary-card .summary-value{color:#1a1a2e;color:var(--text-primary,#1a1a2e);display:block;font-size:2rem;font-weight:700}.summary-card .summary-label{color:#6b7280;color:var(--text-secondary,#6b7280);display:block;font-size:.8rem;letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.summary-card.highlight{border:2px solid #0000}.summary-card.highlight.good{background:#27ae6014;border-color:#27ae60}.summary-card.highlight.good .summary-value{color:#27ae60}.summary-card.highlight.warning{background:#f39c1214;border-color:#f39c12}.summary-card.highlight.warning .summary-value{color:#f39c12}.summary-card.highlight.bad{background:#e74c3c14;border-color:#e74c3c}.summary-card.highlight.bad .summary-value{color:#e74c3c}.text-warning{color:#f39c12!important}.table-container{background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;overflow:hidden}.releve-table{border-collapse:collapse;font-size:.9rem;width:100%}.releve-table thead tr{background:linear-gradient(135deg,#2c3e50,#4a5568)}.releve-table th{color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:12px 16px;text-align:left;text-transform:uppercase}.releve-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);cursor:pointer;transition:background .15s ease}.releve-table tbody tr:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.releve-table tbody tr.selected{background:#f0f4ff;background:var(--primary-light,#f0f4ff)}.releve-table td{padding:12px 16px;vertical-align:middle}.td-parking .parking-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600}.td-number{font-weight:500}.td-number,.td-percentage{text-align:center}.percentage-badge{border-radius:12px;color:#fff;font-size:.8rem;padding:4px 10px}.percentage-badge.good{background:#27ae60}.percentage-badge.warning{background:#f39c12}.percentage-badge.bad{background:#e74c3c}.percentage-badge.small{font-size:.75rem;padding:2px 8px}.td-progress{width:150px}.progress-bar{background:#e5e7eb;background:var(--border-color,#e5e7eb);border-radius:4px;height:8px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .3s ease}.progress-fill.good{background:#27ae60}.progress-fill.warning{background:#f39c12}.progress-fill.bad{background:#e74c3c}.empty-cell,.loading-cell{padding:40px!important;text-align:center}.loading-state .spinner{border:3px solid var(--border-color,#e5e7eb);border-top:3px solid #2c3e50;height:32px;width:32px}.loading-state .spinner.small{border-width:2px;height:20px;width:20px}.empty-state .empty-icon{font-size:2rem;margin-bottom:10px}.empty-state h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;margin:0 0 4px}.empty-state p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:0}.daily-detail-panel{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;margin-top:24px;overflow:hidden}.panel-header{background:linear-gradient(135deg,#2c3e50,#4a5568)}.btn-close,.panel-header h3{color:#fff;font-size:1rem}.btn-close{background:#0000;border:1px solid #ffffff4d;border-radius:4px;padding:4px 10px;transition:all .2s ease}.btn-close:hover{background:#ffffff1a}.daily-table-container{max-height:300px;overflow-y:auto}.daily-table{border-collapse:collapse;font-size:.85rem;width:100%}.daily-table th,.daily-table thead tr{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.daily-table th{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-weight:600;letter-spacing:.5px;padding:10px 16px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0}.daily-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0)}.daily-table td{padding:10px 16px}.td-date{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600}@media (max-width:768px){.page-header{flex-direction:column;gap:12px}.summary-cards{flex-wrap:wrap}.summary-card{flex:none;min-width:calc(50% - 8px)}.td-progress{display:none}}.tab-navigation{display:flex;gap:8px;margin-bottom:20px}.tab-btn{background:#fff;background:var(--card-bg,#fff);border:2px solid #e5e7eb;border:2px solid var(--border-color,#e5e7eb);color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.9rem;font-weight:600;padding:10px 20px}.tab-btn:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.tab-btn.active{background:linear-gradient(135deg,#2c3e50,#4a5568);border-color:#0000;color:#fff}.opportunities-info{background:linear-gradient(135deg,#2c3e5014,#4a556814);border-left:4px solid #2c3e50;border-radius:0 8px 8px 0;margin-bottom:20px;padding:12px 16px}.opportunities-info p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:0}.opportunities-info strong{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.opportunities-table th{font-size:.7rem;white-space:nowrap}.td-opportunity{text-align:center}.opp-value{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border-radius:4px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:help;display:inline-block;font-size:.8rem;font-weight:600;padding:3px 8px}.opportunities-legend{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 6px #0000000f;margin-top:16px;padding:12px 16px}.opportunities-legend p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;margin:0}.opportunities-info.warning{background:linear-gradient(135deg,#f59e0b1a,#fbbf241a);border-left-color:#f59e0b}.tab-badge{align-items:center;background:#f59e0b;border-radius:9px;color:#fff;display:inline-flex;font-size:.7rem;font-weight:700;height:18px;justify-content:center;margin-left:6px;min-width:18px;padding:0 5px}.summary-card.warning{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff}.summary-card.warning .summary-label,.summary-card.warning .summary-value{color:#fff}.unconfirmed-list{display:flex;flex-direction:column;gap:12px}.unconfirmed-parking-card{background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 6px #0000000f;overflow:hidden}.unconfirmed-parking-card .parking-header{align-items:center;cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:background .2s}.unconfirmed-parking-card .parking-header:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.unconfirmed-parking-card .parking-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);flex:1 1;font-weight:600}.unconfirmed-parking-card .parking-count{background:#f59e0b;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:4px 10px}.unconfirmed-parking-card .expand-icon{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem}.unconfirmed-parking-card .bookings-detail{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);padding:0 16px 16px}.unconfirmed-table{font-size:.85rem}.unconfirmed-table th{font-size:.75rem}.opportunity-tags{display:flex;flex-wrap:wrap;gap:4px}.opportunity-tag{background:linear-gradient(135deg,#f59e0b,#fbbf24);border-radius:10px;color:#fff;display:inline-block;font-size:.7rem;font-weight:600;padding:2px 8px}.staff-sub-tabs{display:flex;gap:8px;margin-bottom:16px}.sub-tab-btn{background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:all .2s ease}.sub-tab-btn:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.sub-tab-btn.active{background:#2c3e50;border-color:#2c3e50;color:#fff}.staff-info-banner{background:linear-gradient(135deg,#2c3e5014,#4a556814);border-left:4px solid #2c3e50;border-radius:0 8px 8px 0;margin-bottom:16px;padding:12px 16px}.staff-info-banner p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;margin:0}.staff-info-banner strong{color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.threshold-config{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.threshold-item{align-items:center;display:flex;gap:8px}.threshold-item label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.threshold-item select{background:#fff;background:var(--card-bg,#fff);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:pointer;font-size:.85rem;padding:6px 12px}.bursts-list{display:flex;flex-direction:column;gap:12px}.bursts-summary{align-items:center;background:#fff;background:var(--card-bg,#fff);border-radius:8px;box-shadow:0 2px 6px #0000000f;display:flex;gap:12px;padding:12px 16px}.summary-badge{border-radius:6px;font-size:.85rem;font-weight:600;padding:6px 12px}.summary-badge.warning{background:#f39c1226;color:#d68910}.summary-text{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.burst-card{background:#fff;background:var(--card-bg,#fff);border-left:4px solid #0000;border-radius:8px;box-shadow:0 2px 6px #0000000f;cursor:pointer;overflow:hidden;transition:all .2s ease}.burst-card:hover{box-shadow:0 4px 12px #0000001a}.burst-card.severity-high{background:#e74c3c08;border-left-color:#e74c3c}.burst-card.severity-medium{background:#f39c1208;border-left-color:#f39c12}.burst-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:14px 16px}.burst-info{display:flex;flex-direction:column;gap:2px}.burst-staff{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;font-weight:600}.burst-parking{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem}.burst-stats{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.severity-badge{border-radius:4px;font-size:.75rem;font-weight:600;padding:4px 10px}.severity-badge.high{background:#e74c3c26;color:#c0392b}.severity-badge.medium{background:#f39c1226;color:#d68910}.burst-anomalies,.burst-avg,.burst-count,.burst-duration{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;padding:4px 8px}.burst-anomalies.zero{background:#e74c3c26;color:#c0392b;font-weight:600}.burst-date{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;padding:8px 16px}.burst-date,.burst-details{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border-top:1px solid #f0f0f0;border-top:1px solid var(--border-color,#f0f0f0)}.burst-details{padding:12px}.burst-releves-table{border-collapse:collapse;font-size:.8rem;width:100%}.burst-releves-table th{background:#fff;background:var(--card-bg,#fff);color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-weight:600;padding:8px 10px;text-align:left;text-transform:uppercase}.burst-releves-table td{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);padding:8px 10px}.burst-releves-table tr.no-anomaly{background:#e74c3c0d}.td-anomalies{text-align:center}.anomaly-icons{display:flex;gap:4px;justify-content:center}.anomaly-icons span{font-size:1rem}.no-anomaly-badge{background:#e74c3c1f;border-radius:3px;color:#c0392b;font-size:.75rem;font-weight:600;padding:2px 6px}.flagged-summary{background:#e74c3c0d;border:1px solid #e74c3c33;border-radius:8px;margin-bottom:20px;padding:16px}.flagged-summary h4{color:#c0392b;font-size:.95rem;margin:0 0 12px}.flagged-list{display:flex;flex-direction:column;gap:8px}.flagged-item{align-items:center;background:#fff;background:var(--card-bg,#fff);border-radius:6px;display:flex;flex-wrap:wrap;gap:12px;padding:10px 14px}.flagged-item.suspect{border-left:3px solid #e74c3c}.flagged-item.attention{border-left:3px solid #f39c12}.flagged-name{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600;min-width:120px}.flagged-parking{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;min-width:100px}.flagged-rate{color:#e74c3c;font-weight:600}.flagged-avg{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem}.parking-comparison-section{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;margin-bottom:16px;overflow:hidden}.parking-comparison-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#4a5568);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:14px 16px}.parking-comparison-header h4{color:#fff;font-size:1rem;font-weight:600;margin:0}.parking-avg-badge{background:#ffffff1a;border-radius:4px;color:#ffffffd9;font-size:.8rem;padding:4px 10px}.staff-comparison-table{border-collapse:collapse;font-size:.85rem;width:100%}.staff-comparison-table thead tr{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.staff-comparison-table th{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:10px 12px;text-align:left;text-transform:uppercase}.staff-comparison-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0)}.staff-comparison-table tbody tr.flagged-row.suspect{background:#e74c3c0a}.staff-comparison-table tbody tr.flagged-row.attention{background:#f39c120a}.staff-comparison-table td{padding:10px 12px}.td-staff{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600}.td-rate,.td-rate-small{text-align:center}.td-rate-small{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem}.rate-value{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border-radius:4px;display:inline-block;font-weight:600;padding:4px 10px}.rate-value.suspect{background:#e74c3c1f;color:#c0392b}.rate-value.attention{background:#f39c121f;color:#d68910}.td-deviation{text-align:center}.deviation{font-size:.8rem;font-weight:600}.deviation.positive{color:#27ae60}.deviation.negative{color:#e74c3c}.td-flag{text-align:center}.staff-flag{align-items:center;border-radius:4px;display:inline-flex;font-size:.75rem;font-weight:600;gap:4px;padding:4px 10px}.staff-flag.suspect{background:#e74c3c1f;color:#c0392b}.staff-flag.attention{background:#f39c121f;color:#d68910}@media (max-width:768px){.threshold-config{flex-direction:column;gap:10px}.burst-header{align-items:flex-start;flex-direction:column}.burst-stats{width:100%}.staff-comparison-table{font-size:.75rem}.staff-comparison-table td,.staff-comparison-table th{padding:8px 6px}.td-rate-small{display:none}}.staff-count-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.staff-count-card{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;overflow:hidden}.staff-count-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#4a5568);display:flex;justify-content:space-between;padding:12px 16px}.staff-count-header h4{color:#fff;font-size:.95rem;font-weight:600;margin:0}.staff-count-header .total-badge{background:#ffffff26;border-radius:4px;color:#ffffffd9;font-size:.8rem;padding:4px 10px}.staff-count-table{border-collapse:collapse;font-size:.85rem;width:100%}.staff-count-table th{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:10px 12px;text-align:left;text-transform:uppercase}.staff-count-table th:last-child{text-align:center}.staff-count-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);transition:background .15s ease}.staff-count-table tbody tr:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.staff-count-table td{padding:10px 12px}.staff-count-table td:first-child{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:500}.staff-count-table td:last-child{font-weight:600;text-align:center}.count-badge{background:linear-gradient(135deg,#2c3e50,#4a5568);border-radius:4px;color:#fff;display:inline-block;font-size:.85rem;font-weight:600;padding:4px 10px}.staff-search-form{align-items:flex-end;background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px}.search-input-group{display:flex;flex-direction:column;gap:4px}.search-input-group label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.search-input-group input[type=text]{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:.9rem;min-width:200px;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease}.search-input-group input[type=text]:focus{border-color:#2c3e50;box-shadow:0 0 0 3px #2c3e501a;outline:none}.search-input-group select{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;color:#1a1a2e;color:var(--text-primary,#1a1a2e);cursor:pointer;font-size:.9rem;padding:10px 14px}.btn-search{align-items:center;background:linear-gradient(135deg,#2c3e50,#4a5568);display:flex;font-size:.9rem;font-weight:600;gap:8px;transition:all .2s ease}.btn-search:hover:not(:disabled){box-shadow:0 4px 12px #2c3e5040;transform:translateY(-1px)}.btn-search:disabled{cursor:not-allowed;opacity:.6}.search-summary{align-items:center;background:linear-gradient(135deg,#2c3e5014,#4a556814);border-left:4px solid #2c3e50;border-radius:0 8px 8px 0;display:flex;gap:16px;margin-bottom:16px;padding:12px 16px}.search-summary strong{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem}.search-summary span{background:#fff;background:var(--card-bg,#fff);border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;padding:4px 10px}.staff-detail-table{border-collapse:collapse;font-size:.85rem;width:100%}.staff-detail-table thead tr{background:linear-gradient(135deg,#2c3e50,#4a5568)}.staff-detail-table th{color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:12px 10px;text-align:left;text-transform:uppercase}.staff-detail-table th:nth-child(n+5){text-align:center}.staff-detail-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);transition:background .15s ease}.staff-detail-table tbody tr:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.staff-detail-table tbody tr.no-anomaly-row{background:#e74c3c0d}.staff-detail-table tbody tr.no-anomaly-row:hover{background:#e74c3c14}.staff-detail-table td{padding:10px;vertical-align:middle}.td-datetime{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:500;white-space:nowrap}.td-parking-small{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-check{font-size:1rem;text-align:center}.td-check.checked{color:#27ae60}.td-check.unchecked{color:#e5e7eb;color:var(--border-color,#e5e7eb)}.search-prompt{color:#6b7280;color:var(--text-secondary,#6b7280);padding:60px 20px;text-align:center}.search-prompt .search-icon{font-size:3rem;margin-bottom:16px;opacity:.5}.search-prompt h3{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1.1rem;margin:0 0 8px}.search-prompt p{font-size:.9rem;margin:0}@media (max-width:768px){.staff-count-grid{grid-template-columns:1fr}.staff-search-form{align-items:stretch;flex-direction:column}.search-input-group input[type=text]{min-width:auto;width:100%}.staff-detail-table{font-size:.75rem}.staff-detail-table td,.staff-detail-table th{padding:8px 6px}.td-parking-small{max-width:80px}}.comparison-header-banner{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.comparison-header-banner .banner-content{display:flex;flex:1 1;flex-direction:column;gap:6px}.comparison-header-banner .period-badge{background:#2c3e50;border-radius:4px;color:#fff;display:inline-block;font-size:.8rem;font-weight:600;padding:4px 10px;width:-webkit-fit-content;width:fit-content}.btn-export-pdf{background:linear-gradient(135deg,#27ae60,#2ecc71);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 18px;transition:all .2s ease;white-space:nowrap}.btn-export-pdf:hover:not(:disabled){box-shadow:0 4px 12px #27ae604d;transform:translateY(-1px)}.btn-export-pdf:disabled{cursor:not-allowed;opacity:.5}.comparison-summary-section{background:#fff;background:var(--card-bg,#fff);border-radius:10px;box-shadow:0 2px 6px #0000000f;margin-bottom:20px;padding:16px}.comparison-summary-section h4{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-size:1rem;margin:0 0 12px}.comparison-summary-table{border-collapse:collapse;font-size:.85rem;width:100%}.comparison-summary-table thead tr{background:linear-gradient(135deg,#2c3e50,#4a5568)}.comparison-summary-table th{color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.3px;padding:10px 12px;text-align:left;text-transform:uppercase}.comparison-summary-table th:not(:first-child){text-align:center}.comparison-summary-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0)}.comparison-summary-table td{padding:10px 12px}.comparison-summary-table td:not(:first-child){text-align:center}.parking-comparison-header.enhanced{align-items:stretch;background:linear-gradient(135deg,#2c3e50,#4a5568);flex-direction:column;gap:10px;padding:16px}.parking-comparison-header .period-info{color:#ffffffb3;font-size:.8rem;font-style:italic}.parking-comparison-header.enhanced .header-left{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.parking-comparison-header.enhanced h4{margin:0}.parking-comparison-header .header-stats{display:flex;flex-wrap:wrap;gap:16px}.parking-comparison-header .stat-item{align-items:center;display:flex;font-size:.85rem;gap:4px}.parking-comparison-header .stat-label{color:#ffffffb3}.parking-comparison-header .stat-value{color:#fff;font-weight:600}.parking-comparison-header .stat-item.highlight .stat-value{background:#ffffff26;border-radius:4px;padding:2px 8px}.parking-comparison-header .stat-value.good{color:#2ecc71}.parking-comparison-header .stat-value.warning{color:#f39c12}.parking-comparison-header .stat-value.bad{color:#e74c3c}.parking-stats-bar{align-items:center;background:#f1f5f9;border-left:1px solid #e5e7eb;border-right:1px solid #e5e7eb;color:#334155;display:flex;flex-wrap:wrap;font-size:.85rem;gap:16px;padding:10px 16px}.parking-stat{align-items:center;color:#475569;display:inline-flex;gap:4px}.parking-stat strong{color:#1e293b;font-weight:600}.parking-rates-summary{display:flex;flex-wrap:wrap;gap:8px}.rate-pill{align-items:center;background:#ffffff1a;border-radius:12px;color:#ffffffe6;display:inline-flex;font-size:.8rem;font-weight:500;gap:4px;padding:4px 10px}.staff-comparison-table tbody tr.clickable-row{cursor:pointer;transition:background .15s ease}.staff-comparison-table tbody tr.clickable-row:hover{background:#f0f4ff;background:var(--primary-light,#f0f4ff)}.staff-detail-modal{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:1000px;overflow:hidden;width:100%}.staff-detail-modal .modal-header{align-items:center;background:linear-gradient(135deg,#2c3e50,#4a5568);color:#fff;display:flex;justify-content:space-between;padding:16px 20px}.staff-detail-modal .modal-header h3{font-size:1.1rem;font-weight:600;margin:0}.staff-detail-modal .modal-subheader{align-items:center;background:#f8f9fa;background:var(--hover-bg,#f8f9fa);border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;flex-wrap:wrap;gap:16px;padding:12px 20px}.staff-detail-modal .modal-parking{color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600}.staff-detail-modal .modal-period{background:#fff;background:var(--card-bg,#fff);border-radius:4px;color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem;padding:4px 10px}.staff-detail-modal .modal-count{background:#2c3e501a;border-radius:4px;color:#2c3e50;font-size:.85rem;font-weight:600;padding:4px 10px}.staff-detail-modal .modal-body{flex:1 1;overflow-y:auto;padding:16px}.staff-bookings-table{border-collapse:collapse;font-size:.85rem;width:100%}.staff-bookings-table thead tr{background:#f8f9fa;background:var(--hover-bg,#f8f9fa);position:-webkit-sticky;position:sticky;top:0}.staff-bookings-table th{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;font-weight:600;letter-spacing:.3px;padding:10px 8px;text-align:left;text-transform:uppercase}.staff-bookings-table th:nth-child(n+5){text-align:center;width:40px}.staff-bookings-table tbody tr{border-bottom:1px solid #f0f0f0;border-bottom:1px solid var(--border-color,#f0f0f0);transition:background .15s ease}.staff-bookings-table tbody tr:hover{background:#f8f9fa;background:var(--hover-bg,#f8f9fa)}.staff-bookings-table td{padding:10px 8px;vertical-align:middle}.td-booking-number{color:#6b7280;color:var(--text-secondary,#6b7280);font-family:monospace;font-size:.8rem}.td-customer{max-width:150px}.td-customer,.td-vehicle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-vehicle{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem;max-width:180px}@media (max-width:768px){.comparison-header-banner{align-items:stretch;flex-direction:column}.btn-export-pdf{text-align:center;width:100%}.parking-comparison-header.enhanced .header-left{align-items:flex-start;flex-direction:column}.parking-comparison-header .header-stats{gap:10px}.parking-rates-summary{justify-content:flex-start}.staff-detail-modal{max-height:90vh}.staff-bookings-table{font-size:.75rem}.staff-bookings-table td,.staff-bookings-table th{padding:8px 4px}.td-customer,.td-vehicle{max-width:100px}}@media (prefers-color-scheme:dark){.releve-control-page{--card-bg:#1e1e2d;--text-primary:#fff;--text-secondary:#a0a0a0;--border-color:#3a3a4a;--hover-bg:#2a2a3a;--primary-light:#2c3e504d}}.accord-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.accord-modal-content{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;max-height:80vh;max-width:1100px;overflow:hidden;position:relative;width:100%}.accord-modal-close{background:#0000001a;border:none;border-radius:50%;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:1rem;height:32px;position:absolute;right:12px;top:12px;transition:all .2s;width:32px;z-index:10}.accord-modal-close:hover{background:#0003;color:#1a1a2e;color:var(--text-primary,#1a1a2e)}.accord-modal-header{background:linear-gradient(135deg,#276749,#38a169);color:#fff;padding:20px 24px}.accord-modal-header h2{font-size:1.3rem;font-weight:600;margin:0 0 8px}.accord-modal-subtitle{align-items:center;display:flex;gap:12px}.city-badge{background:#fff3;display:inline-block;font-size:.85rem;font-weight:600}.date-text{font-size:.9rem;opacity:.9}.accord-modal-body{flex:1 1;overflow:auto;padding:20px 24px}.accord-loading{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;gap:12px;justify-content:center;padding:40px}.accord-loading .spinner{animation:spin 1s linear infinite;border:3px solid #0000001a;border-radius:50%;border-top-color:#276749;height:24px;width:24px}.accord-error{align-items:center;color:#dc2626;display:flex;font-weight:500;gap:8px;justify-content:center;padding:40px}.accord-empty{font-style:italic;padding:40px;text-align:center}.accord-count,.accord-empty{color:#6b7280;color:var(--text-secondary,#6b7280)}.accord-count{font-size:.9rem;margin-bottom:16px}.accord-table{border-collapse:collapse;font-size:.85rem;width:100%}.accord-table th{background:#f9fafb;background:var(--background-secondary,#f9fafb);border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border-color,#e5e7eb);color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap}.accord-table td{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);color:#374151;color:var(--text-primary,#374151);padding:10px 12px}.accord-table tbody tr:hover{background:#f9fafb;background:var(--background-secondary,#f9fafb)}.accord-table .booking-number{color:#6b7280;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem}.accord-table .customer-name{font-weight:500}.accord-table .phone a{color:#3182ce;text-decoration:none}.accord-table .phone a:hover{text-decoration:underline}.accord-table .plate{font-family:SF Mono,Monaco,Consolas,monospace;font-weight:600;text-transform:uppercase}.accord-table .localisation{max-width:150px}.accord-table .localisation,.accord-table .parking-offer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accord-table .parking-offer{max-width:120px}@media (max-width:900px){.accord-modal-content{max-height:90vh;max-width:95%}.accord-modal-body{padding:16px}.accord-table{font-size:.8rem}.accord-table td,.accord-table th{padding:8px}}@media (prefers-color-scheme:dark){.accord-modal-content{background:#1e293b;background:var(--card-bg,#1e293b)}.accord-table th{background:#0f172a;background:var(--background-secondary,#0f172a);color:#f1f5f9;color:var(--text-primary,#f1f5f9)}.accord-table td{border-bottom-color:#334155;border-bottom-color:var(--border-color,#334155);color:#e2e8f0;color:var(--text-primary,#e2e8f0)}.accord-table tbody tr:hover{background:#0f172a;background:var(--background-secondary,#0f172a)}}.arrivals-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.arrivals-modal-content{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 20px 60px #0006;display:flex;flex-direction:column;max-height:80vh;max-width:700px;overflow:hidden;position:relative;width:100%}.arrivals-modal-close{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .2s;width:32px;z-index:10}.arrivals-modal-close:hover{background:#ffffff4d}.arrivals-modal-header{background:linear-gradient(135deg,#2563eb,#3b82f6);color:#fff;padding:20px 24px}.arrivals-modal-header h2{font-size:1.3rem;font-weight:600;margin:0 0 8px}.arrivals-modal-subtitle{align-items:center;display:flex;gap:12px}.arrivals-modal-subtitle .city-badge{background:#fff3;border-radius:20px;display:inline-block;font-size:.85rem;font-weight:600;padding:4px 12px}.arrivals-modal-subtitle .date-text{font-size:.9rem;opacity:.9}.arrivals-modal-body{flex:1 1;overflow:auto;padding:20px 24px}.arrivals-stats-bar{background:#f9fafb;background:var(--background-secondary,#f9fafb);border-radius:8px;display:flex;gap:16px;margin-bottom:20px;padding:12px 16px}.arrivals-stats-bar .stat-item{align-items:baseline;display:flex;gap:6px}.arrivals-stats-bar .stat-value{color:#3182ce;font-size:1.3rem;font-weight:700}.arrivals-stats-bar .stat-item.impacts .stat-value{color:#e53e3e}.arrivals-stats-bar .stat-item.accords .stat-value{color:#276749}.arrivals-stats-bar .stat-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.8rem}.arrivals-loading{align-items:center;color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;gap:12px;justify-content:center;padding:40px}.arrivals-loading .spinner{animation:arrivals-spin 1s linear infinite;border:3px solid #0000001a;border-radius:50%;border-top-color:#3182ce;height:24px;width:24px}@keyframes arrivals-spin{to{transform:rotate(1turn)}}.arrivals-error{align-items:center;color:#dc2626;display:flex;font-weight:500;gap:8px;justify-content:center;padding:40px}.arrivals-empty{color:#6b7280;color:var(--text-secondary,#6b7280);font-style:italic;padding:40px;text-align:center}.arrivals-table{border-collapse:collapse;font-size:.85rem;width:100%}.arrivals-table th{background:#f9fafb;background:var(--background-secondary,#f9fafb);border-bottom:2px solid #e5e7eb;border-bottom:2px solid var(--border-color,#e5e7eb);color:#1a1a2e;color:var(--text-primary,#1a1a2e);font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap}.arrivals-table th.center{text-align:center}.arrivals-table td{border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);color:#374151;color:var(--text-primary,#374151);padding:10px 12px}.arrivals-table td.center{text-align:center}.arrivals-table tbody tr:hover{background:#f9fafb;background:var(--background-secondary,#f9fafb)}.arrivals-table .booking-number{color:#6b7280;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8rem}.arrivals-table .customer-name{font-weight:500}.arrivals-table .status-cell{padding:6px 12px}.arrivals-table .status-icon{align-items:center;border-radius:50%;display:inline-flex;height:26px;justify-content:center;width:26px}.arrivals-table .status-icon.success{background:#d1fae5;color:#059669}.arrivals-table .status-icon.empty{background:#fee2e2;color:#dc2626}@media (max-width:600px){.arrivals-modal-content{max-height:90vh;max-width:95%}.arrivals-modal-body{padding:16px}.arrivals-table{font-size:.8rem}.arrivals-table td,.arrivals-table th{padding:8px}.arrivals-stats-bar{flex-wrap:wrap;gap:12px}}@media (prefers-color-scheme:dark){.arrivals-modal-content{background:#1e293b;background:var(--card-bg,#1e293b)}.arrivals-stats-bar,.arrivals-table th{background:#0f172a;background:var(--background-secondary,#0f172a)}.arrivals-table th{color:#f1f5f9;color:var(--text-primary,#f1f5f9)}.arrivals-table td{border-bottom-color:#334155;border-bottom-color:var(--border-color,#334155);color:#e2e8f0;color:var(--text-primary,#e2e8f0)}.arrivals-table tbody tr:hover{background:#0f172a;background:var(--background-secondary,#0f172a)}}.windshield-stats-page{max-width:1400px}.windshield-stats-page .page-header{margin-bottom:1.5rem}.windshield-stats-page .page-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.windshield-stats-page .page-header p{color:var(--text-secondary);font-size:.95rem}.windshield-stats-page .filters-section{background:var(--background-secondary);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.windshield-stats-page .filters-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem}.windshield-stats-page .filter-group{display:flex;flex-direction:column;gap:.5rem}.windshield-stats-page .filter-group label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.windshield-stats-page .filter-group input[type=date]{background:var(--background-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.9rem;padding:.5rem .75rem}.windshield-stats-page .cities-filter{flex:1 1;min-width:300px}.windshield-stats-page .cities-actions{display:flex;gap:1rem;margin-bottom:.5rem}.windshield-stats-page .btn-link{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:.8rem;padding:0;text-decoration:underline}.windshield-stats-page .btn-link:hover{color:var(--primary-hover)}.windshield-stats-page .cities-chips{display:flex;flex-wrap:wrap;gap:.5rem}.windshield-stats-page .city-chip{background:var(--background-primary);border:2px solid var(--border-color);border-radius:20px;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.4rem .75rem;transition:all .2s ease}.windshield-stats-page .city-chip:hover{border-color:var(--city-color,var(--primary-color));color:var(--primary-color);color:var(--city-color,var(--primary-color))}.windshield-stats-page .city-chip.selected{background:var(--primary-color);background:var(--city-color,var(--primary-color));border-color:var(--city-color,var(--primary-color));color:#fff}.windshield-stats-page .subscriber-filter-group{align-items:flex-end;justify-content:flex-end;padding-bottom:.25rem}.windshield-stats-page .subscriber-filter{align-items:center;background:var(--background-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:.5rem .75rem;transition:all .15s ease}.windshield-stats-page .subscriber-filter:hover{border-color:var(--primary-color);color:var(--text-primary)}.windshield-stats-page .subscriber-filter input[type=checkbox]{accent-color:var(--primary-color);cursor:pointer;height:16px;width:16px}.windshield-stats-page .filter-actions{align-items:flex-end;display:flex;gap:.75rem;padding-bottom:.25rem}.windshield-stats-page .btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.windshield-stats-page .btn-primary{background:var(--primary-color);color:#fff}.windshield-stats-page .btn-primary:hover:not(:disabled){background:var(--primary-hover)}.windshield-stats-page .btn-primary:disabled{cursor:not-allowed;opacity:.6}.windshield-stats-page .btn-secondary{background:var(--background-primary);border:1px solid var(--border-color);color:var(--text-primary)}.windshield-stats-page .btn-secondary:hover:not(:disabled){background:var(--background-tertiary)}.windshield-stats-page .btn-secondary:disabled{cursor:not-allowed;opacity:.5}.windshield-stats-page .cache-banner{align-items:center;background:#3182ce1a;border:1px solid #3182ce4d;border-radius:6px;color:var(--text-secondary);display:flex;font-size:.85rem;gap:.75rem;margin-top:1rem;padding:.75rem 1rem}.windshield-stats-page .cache-icon{font-size:1.1rem}.windshield-stats-page .btn-sm{font-size:.8rem;padding:.35rem .75rem}.windshield-stats-page .btn-outline{background:#0000;border:1px solid var(--primary-color);color:var(--primary-color)}.windshield-stats-page .btn-outline:hover{background:var(--primary-color);color:#fff}.windshield-stats-page .summary-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.windshield-stats-page .summary-card{background:var(--background-secondary);border-left:4px solid #3182ce;border-radius:8px;padding:1.25rem;text-align:center}.windshield-stats-page .summary-card.impacts{border-left-color:#e53e3e}.windshield-stats-page .summary-card.accords{border-left-color:#38a169}.windshield-stats-page .card-value{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin-bottom:.25rem}.windshield-stats-page .card-label{color:var(--text-secondary);font-size:.85rem}.windshield-stats-page .card-rate{color:var(--text-tertiary);font-size:.8rem;margin-top:.25rem}.windshield-stats-page .view-toggle{display:flex;gap:.5rem;margin-bottom:1.5rem}.windshield-stats-page .toggle-btn{background:var(--background-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:.85rem;padding:.5rem 1rem;transition:all .2s ease}.windshield-stats-page .toggle-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.windshield-stats-page .toggle-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff}.windshield-stats-page .chart-section{background:var(--background-secondary);border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.windshield-stats-page .chart-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.windshield-stats-page .chart-header h3{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0}.windshield-stats-page .metric-selector{align-items:center;display:flex;gap:.5rem}.windshield-stats-page .metric-selector label{color:var(--text-secondary);font-size:.85rem}.windshield-stats-page .metric-selector select{background:var(--background-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.85rem;padding:.4rem .75rem}.windshield-stats-page .detail-charts{grid-gap:1.5rem;display:grid;gap:1.5rem}.windshield-stats-page .city-chart-card{background:var(--background-secondary);border-radius:8px;padding:1.25rem}.windshield-stats-page .city-chart-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-bottom:1rem}.windshield-stats-page .city-chart-header h4{font-size:1.1rem;font-weight:600;margin:0}.windshield-stats-page .city-totals{align-items:center;color:var(--text-secondary);display:flex;font-size:.85rem;gap:.5rem}.windshield-stats-page .city-totals .separator{color:var(--border-color)}.windshield-stats-page .no-data{background:var(--background-secondary);border-radius:8px;color:var(--text-secondary);padding:3rem;text-align:center}@media (max-width:768px){.windshield-stats-page .filters-row{flex-direction:column}.windshield-stats-page .cities-filter{min-width:0;min-width:auto;width:100%}.windshield-stats-page .summary-cards{grid-template-columns:1fr}.windshield-stats-page .chart-header{gap:.75rem}.windshield-stats-page .chart-header,.windshield-stats-page .city-chart-header{align-items:flex-start;flex-direction:column}}.charging-tracking-page{max-width:1400px;padding:1.5rem}.charging-tracking-page .page-header{margin-bottom:1.5rem}.charging-tracking-page .page-header h2{color:#1a202c;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.charging-tracking-page .page-header p{color:#718096;font-size:.95rem}.charging-tracking-page .filters-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;padding:1.25rem}.charging-tracking-page .filters-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1.5rem}.charging-tracking-page .filter-group{display:flex;flex-direction:column;gap:.5rem}.charging-tracking-page .filter-group label{color:#4a5568;font-size:.8rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.charging-tracking-page .filter-group select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#2d3748;cursor:pointer;font-size:.9rem;min-width:150px;padding:.5rem .75rem}.charging-tracking-page .filter-group select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.charging-tracking-page .filter-actions{display:flex;gap:.75rem}.charging-tracking-page .last-update{align-self:center;color:#a0aec0;font-size:.8rem;margin-left:auto}.charging-tracking-page .btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.charging-tracking-page .btn-primary{background:#3182ce;color:#fff}.charging-tracking-page .btn-primary:hover:not(:disabled){background:#2c5282}.charging-tracking-page .btn-primary:disabled{cursor:not-allowed;opacity:.6}.charging-tracking-page .btn-sm{font-size:.8rem;padding:.35rem .75rem}.charging-tracking-page .btn-outline{background:#0000;border:1px solid #3182ce;color:#3182ce}.charging-tracking-page .btn-outline:hover{background:#3182ce;color:#fff}.charging-tracking-page .spinning{animation:spin 1s linear infinite}.charging-tracking-page .summary-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1.5rem}.charging-tracking-page .summary-card{background:#fff;border-left:4px solid #e2e8f0;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.25rem;text-align:center}.charging-tracking-page .summary-card.total{border-left-color:#718096}.charging-tracking-page .summary-card.waiting{border-left-color:#d69e2e}.charging-tracking-page .summary-card.charging{border-left-color:#3182ce}.charging-tracking-page .summary-card.completed{border-left-color:#38a169}.charging-tracking-page .card-icon{color:#718096;margin-bottom:.5rem}.charging-tracking-page .summary-card.waiting .card-icon{color:#d69e2e}.charging-tracking-page .summary-card.charging .card-icon{color:#3182ce}.charging-tracking-page .summary-card.completed .card-icon{color:#38a169}.charging-tracking-page .card-value{color:#1a202c;font-size:2rem;font-weight:700;margin-bottom:.25rem}.charging-tracking-page .card-label{color:#718096;font-size:.85rem}.charging-tracking-page .section-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;padding:1.25rem}.charging-tracking-page .section-card.warning-section{border-left:4px solid #d69e2e}.charging-tracking-page .section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.charging-tracking-page .section-header h3{align-items:center;color:#1a202c;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem;margin:0}.charging-tracking-page .section-description{color:#718096;font-size:.9rem;margin-bottom:1rem}.charging-tracking-page .table-container{overflow-x:auto}.charging-tracking-page .data-table{border-collapse:collapse;width:100%}.charging-tracking-page .data-table td,.charging-tracking-page .data-table th{border-bottom:1px solid #e2e8f0;padding:.75rem 1rem;text-align:left}.charging-tracking-page .data-table th{background:#f7fafc;color:#718096;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.charging-tracking-page .data-table td{color:#2d3748;font-size:.9rem}.charging-tracking-page .data-table tbody tr:hover{background:#f7fafc}.charging-tracking-page .data-table tbody tr.row-completed{background:#38a1690d}.charging-tracking-page .data-table.compact td,.charging-tracking-page .data-table.compact th{font-size:.85rem;padding:.5rem .75rem}.charging-tracking-page .status-badge{align-items:center;border-radius:4px;display:inline-flex;font-size:.85rem;font-weight:500;gap:.4rem;padding:.25rem .5rem}.charging-tracking-page .status-badge.status-waiting{background:#fefcbf;color:#744210}.charging-tracking-page .status-badge.status-charging{background:#bee3f8;color:#2b6cb0}.charging-tracking-page .status-badge.status-completed{background:#c6f6d5;color:#276749}.charging-tracking-page .charge-status{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:.2rem .5rem}.charging-tracking-page .charge-status.avant_charge{background:#fefcbf;color:#744210}.charging-tracking-page .charge-status.en_charge{background:#bee3f8;color:#2b6cb0}.charging-tracking-page .charge-status.apres_charge{background:#c6f6d5;color:#276749}.charging-tracking-page .plate-cell{color:#1a202c;font-family:SF Mono,Menlo,monospace;font-weight:600;letter-spacing:.5px}.charging-tracking-page .option-cell{font-size:.8rem;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charging-tracking-page .kwh-cell .kwh-value{color:#38a169;font-weight:600}.charging-tracking-page .site-tag{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .5rem;text-transform:capitalize}.charging-tracking-page .site-tag.bordeaux{background:#e53e3e1a;color:#c53030}.charging-tracking-page .site-tag.nantes{background:#3182ce1a;color:#2b6cb0}.charging-tracking-page .no-data{color:#a0aec0;padding:2rem;text-align:center}.charging-tracking-page .loading-state{color:#718096;padding:3rem;text-align:center}.charging-tracking-page .loading-state .loader{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#3182ce;height:40px;margin:0 auto 1rem;width:40px}.charging-tracking-page .empty-state{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;color:#718096;padding:3rem;text-align:center}.charging-tracking-page .empty-state svg{margin-bottom:1rem;opacity:.5}.charging-tracking-page .empty-state h3{color:#4a5568;margin-bottom:.5rem}.charging-tracking-page .empty-state p{font-size:.95rem}.charging-tracking-page .search-section{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1.5rem}.charging-tracking-page .search-section h4{color:#4a5568;font-size:.95rem;font-weight:600;margin-bottom:.75rem}.charging-tracking-page .search-row{display:flex;gap:.75rem;margin-bottom:1rem}.charging-tracking-page .search-row input{border:1px solid #e2e8f0;border-radius:6px;flex:1 1;font-family:SF Mono,Menlo,monospace;font-size:.9rem;max-width:250px;padding:.5rem .75rem;text-transform:uppercase}.charging-tracking-page .search-row input:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.charging-tracking-page .search-results{margin-top:1rem}@media (max-width:1024px){.charging-tracking-page .summary-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.charging-tracking-page{padding:1rem}.charging-tracking-page .filters-row{align-items:stretch;flex-direction:column}.charging-tracking-page .summary-cards{grid-template-columns:1fr 1fr}.charging-tracking-page .last-update{margin-left:0}.charging-tracking-page .search-row{flex-direction:column}.charging-tracking-page .search-row input{max-width:none}}@media (max-width:480px){.charging-tracking-page .summary-cards{grid-template-columns:1fr}}.feedback-management{padding:24px}.feedback-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:24px}.feedback-stat-card{background:#fff;border-left:4px solid #667eea;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:20px;text-align:center}.feedback-stat-card.pending{border-left-color:#95a5a6}.feedback-stat-card.in-progress{border-left-color:#3498db}.feedback-stat-card.resolved{border-left-color:#27ae60}.feedback-stat-card .stat-value{color:#1a1a2e;display:block;font-size:2rem;font-weight:700}.feedback-stat-card .stat-label{color:#666;display:block;font-size:.85rem;margin-top:4px}.feedback-filters{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding:16px}.filter-group{align-items:center;gap:8px}.filter-group svg{color:#666}.filter-group select{border:1px solid #ddd;border-radius:8px}.filter-group select:focus{border-color:#667eea}.feedback-loading{color:#666;padding:60px;text-align:center}.feedback-loading .spin{animation:spin 1s linear infinite;margin-right:8px}.feedback-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:20px;padding:16px}.feedback-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.feedback-table{border-collapse:collapse;width:100%}.feedback-table th{background:#f8f9fa;border-bottom:1px solid #eee;color:#666;font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 16px;text-align:left;text-transform:uppercase}.feedback-table td{border-bottom:1px solid #f0f0f0;font-size:14px;padding:14px 16px}.feedback-table tr:hover{background:#fafafa}.feedback-table .no-data{color:#999;padding:40px;text-align:center}.date-cell{color:#666}.user-cell{max-width:150px}.title-cell,.user-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.title-cell{max-width:250px}.priority-badge,.type-badge{align-items:center;border-radius:20px;color:#fff;display:inline-flex;font-size:12px;font-weight:500;gap:4px;padding:4px 10px}.type-badge svg{font-size:11px}.status-select{background:#fff;border:2px solid #ddd;border-radius:6px;cursor:pointer;font-size:13px;padding:6px 10px}.status-select:focus{outline:none}.action-btn{border:none;border-radius:6px;cursor:pointer;padding:8px;transition:all .2s}.action-btn.view{background:#e8f4fc;color:#3498db}.action-btn.view:hover{background:#3498db;color:#fff}.feedback-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.feedback-detail-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.modal-header{border-bottom:1px solid #eee}.close-btn{background:none;border:none;border-radius:4px;color:#666;cursor:pointer;font-size:18px;padding:4px}.close-btn:hover{background:#f5f5f5}.detail-row{align-items:center;gap:16px;margin-bottom:12px}.detail-label{color:#666;font-size:13px;font-weight:500;min-width:100px}.detail-value{color:#1a1a2e}.page-url{background:#f5f5f5;border-radius:4px;font-size:13px;padding:4px 8px}.detail-section{border-top:1px solid #eee;margin-top:24px;padding-top:20px}.detail-section h3{align-items:center;color:#333;display:flex;font-size:14px;font-weight:600;gap:8px;margin:0 0 12px}.feedback-title{color:#1a1a2e;font-size:16px;font-weight:500;margin:0}.feedback-description{color:#333;font-size:14px;line-height:1.6;margin:0;white-space:pre-wrap}.response-section textarea{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;margin-top:12px;padding:12px;resize:vertical;width:100%}.response-section textarea:focus{border-color:#667eea;outline:none}.existing-response{background:#f0f9ff;border-left:3px solid #3498db;border-radius:0 8px 8px 0;margin-bottom:12px;padding:12px 16px}.existing-response p{color:#333;font-size:14px;margin:0 0 8px}.response-info{color:#666;font-size:12px}.no-response{color:#999;font-style:italic;margin:0}.respond-btn{background:#667eea;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:12px;padding:10px 20px;transition:all .2s}.respond-btn:hover:not(:disabled){background:#5a6fd6}.respond-btn:disabled{background:#ccc;cursor:not-allowed}@media (max-width:768px){.feedback-management{padding:16px}.feedback-stats{grid-template-columns:repeat(2,1fr)}.feedback-table-container{overflow-x:auto}.feedback-table{min-width:700px}.feedback-detail-modal{margin:16px}}.mfp-page{margin:0 auto;max-width:800px;min-height:calc(100vh - 120px);padding:24px}@keyframes mfp-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.mfp-spin{animation:mfp-spin 1s linear infinite}.mfp-loading{align-items:center;color:#737373;display:flex;flex-direction:column;gap:12px;justify-content:center;padding:80px 20px}.mfp-loading svg{font-size:24px}.mfp-error{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:14px;margin-bottom:20px;padding:12px 16px}.mfp-empty{background:#fff;border:1px solid #e5e5e5;border-radius:8px;padding:80px 24px;text-align:center}.mfp-empty-icon{font-size:48px;margin-bottom:16px}.mfp-empty h3{color:#171717;font-size:18px;font-weight:600;margin:0 0 8px}.mfp-empty p{color:#737373;font-size:14px;margin:0}.mfp-hint{background:#f5f5f5;border-radius:6px;color:#525252!important;font-size:13px!important;margin-top:16px!important;padding:12px 16px}.mfp-list{display:flex;flex-direction:column;gap:12px}.mfp-card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;cursor:pointer;padding:16px 20px;transition:all .15s ease}.mfp-card:hover{border-color:#d4d4d4;box-shadow:0 2px 8px #0000000f}.mfp-card-header{align-items:center;display:flex;gap:8px;margin-bottom:10px}.mfp-type-tag{align-items:center;background:#f5f5f5;border:1px solid #e5e5e5;border-radius:4px;color:#525252;display:inline-flex;font-size:11px;font-weight:500;gap:4px;letter-spacing:.3px;padding:3px 8px;text-transform:uppercase}.mfp-type-tag svg{font-size:10px}.mfp-status-tag{align-items:center;border-radius:4px;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 8px}.mfp-status-tag svg{font-size:10px}.mfp-status-pending{background:#f5f5f5;color:#737373}.mfp-status-in_progress{background:#171717;color:#fff}.mfp-status-resolved{background:#262626;color:#fff}.mfp-status-closed{background:#d4d4d4;color:#525252}.mfp-card-title{color:#171717;font-size:15px;font-weight:600;line-height:1.4;margin:0 0 12px}.mfp-card-footer{align-items:center;display:flex;justify-content:space-between}.mfp-card-date{color:#a3a3a3;font-size:12px}.mfp-card-messages{align-items:center;color:#525252;display:inline-flex;font-size:12px;gap:4px}.mfp-card-messages svg{font-size:11px}.mfp-card-preview{border-top:1px solid #f5f5f5;color:#737373;display:flex;font-size:13px;gap:6px;margin-top:12px;padding-top:12px}.mfp-preview-author{color:#525252;font-weight:500}.mfp-preview-text{color:#737373;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfp-detail{background:#fff;border:1px solid #e5e5e5;border-radius:8px;overflow:hidden}.mfp-detail-header{align-items:center;background:#fafafa;border-bottom:1px solid #e5e5e5;display:flex;justify-content:space-between;padding:16px 20px}.mfp-back-btn{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:6px;color:#525252;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:6px 12px;transition:all .15s ease}.mfp-back-btn:hover{background:#f5f5f5;border-color:#d4d4d4;color:#171717}.mfp-back-btn svg{font-size:12px}.mfp-detail-meta{align-items:center;display:flex;gap:8px}.mfp-detail-title-section{border-bottom:1px solid #e5e5e5;padding:24px 20px}.mfp-detail-title-section h2{color:#171717;font-size:20px;font-weight:600;line-height:1.3;margin:0 0 12px}.mfp-detail-desc{color:#525252;font-size:14px;line-height:1.6;margin:0 0 12px;white-space:pre-wrap}.mfp-page-url{background:#f5f5f5;border-radius:4px;color:#737373;display:inline-block;font-family:monospace;font-size:12px;margin-bottom:12px;padding:4px 8px}.mfp-detail-date{color:#a3a3a3;display:block;font-size:12px}.mfp-conversation{display:flex;flex-direction:column}.mfp-conversation-header{align-items:center;background:#fafafa;border-bottom:1px solid #e5e5e5;color:#525252;display:flex;font-size:13px;font-weight:600;gap:8px;letter-spacing:.5px;padding:16px 20px;text-transform:uppercase}.mfp-conversation-header svg{font-size:14px}.mfp-msg-count{background:#171717;border-radius:10px;color:#fff;font-size:11px;font-weight:600;padding:2px 8px}.mfp-loading-messages{color:#737373;display:flex;justify-content:center;padding:40px}.mfp-loading-messages svg{font-size:20px}.mfp-no-messages{color:#737373;padding:40px 20px;text-align:center}.mfp-no-messages p{font-size:14px;margin:0}.mfp-no-messages .mfp-hint{background:#0000;color:#a3a3a3!important;font-size:12px!important;margin-top:8px!important;padding:0}.mfp-messages-timeline{display:flex;flex-direction:column;gap:16px;max-height:400px;overflow-y:auto;padding:20px}.mfp-message{display:flex;flex-direction:column;max-width:80%}.mfp-message-user{align-items:flex-end;align-self:flex-end}.mfp-message-admin{align-items:flex-start;align-self:flex-start}.mfp-message-bubble{border-radius:12px;max-width:100%;padding:12px 16px}.mfp-message-user .mfp-message-bubble{background:#f5f5f5;border:1px solid #e5e5e5;border-bottom-right-radius:4px}.mfp-message-admin .mfp-message-bubble{background:#fff;border:1px solid #171717;border-bottom-left-radius:4px}.mfp-message-bubble p{color:#171717;font-size:14px;line-height:1.5;margin:0;white-space:pre-wrap;word-break:break-word}.mfp-message-meta{align-items:center;display:flex;gap:8px;margin-top:4px;padding:0 4px}.mfp-message-author{color:#525252;font-size:11px;font-weight:600}.mfp-message-time{color:#a3a3a3;font-size:11px}.mfp-message-form{background:#fafafa;border-top:1px solid #e5e5e5;display:flex;gap:12px;padding:16px 20px}.mfp-message-form textarea{background:#fff;border:1px solid #e5e5e5;border-radius:8px;color:#171717;flex:1 1;font-family:inherit;font-size:14px;padding:10px 14px;resize:none;transition:border-color .15s ease}.mfp-message-form textarea:focus{border-color:#171717;outline:none}.mfp-message-form textarea::placeholder{color:#a3a3a3}.mfp-message-form textarea:disabled{background:#f5f5f5;color:#737373}.mfp-send-btn{align-items:center;background:#171717;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .15s ease;width:44px}.mfp-send-btn:hover:not(:disabled){background:#262626}.mfp-send-btn:disabled{background:#d4d4d4;cursor:not-allowed}.mfp-send-btn svg{font-size:16px}@media (max-width:640px){.mfp-page{padding:16px}.mfp-card{padding:14px 16px}.mfp-detail-header{align-items:flex-start;flex-direction:column;gap:12px}.mfp-detail-title-section{padding:20px 16px}.mfp-detail-title-section h2{font-size:18px}.mfp-conversation-header{padding:14px 16px}.mfp-messages-timeline{padding:16px}.mfp-message{max-width:90%}.mfp-message-form{padding:12px 16px}.mfp-message-form textarea{padding:8px 12px}.mfp-send-btn{height:40px;width:40px}}.data-exploration-container{margin:0 auto;max-width:1400px;padding:24px}.exploration-header{margin-bottom:24px}.exploration-header h1{color:#1a202c;font-size:1.75rem;font-weight:600;margin:0 0 8px}.exploration-header p{color:#718096;margin:0}.exploration-controls{align-items:flex-end;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px}.control-group{gap:6px}.control-group label{font-size:.85rem}.control-group select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;font-size:.95rem;min-width:180px;padding:10px 14px}.toggle-buttons{display:flex}.toggle-buttons button{background:#fff;border:1px solid #e2e8f0;cursor:pointer;font-size:.9rem;padding:10px 16px;transition:all .2s}.toggle-buttons button:first-child{border-radius:8px 0 0 8px}.toggle-buttons button:last-child{border-left:none;border-radius:0 8px 8px 0}.toggle-buttons button.active{background:#1a202c;border-color:#1a202c;color:#fff}.load-button{background:#1a202c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 24px}.load-button:disabled{cursor:not-allowed;opacity:.6}.refresh-button{background:#fff;border:2px solid #1a202c;border-radius:8px;color:#1a202c;cursor:pointer;font-size:.95rem;font-weight:500;padding:10px 20px}.error-message{padding:16px}.exploration-results{display:flex;flex-direction:column;gap:24px}.results-header{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px}.results-title-row{align-items:center;display:flex;gap:12px;margin-bottom:8px}.results-header h2{color:#1a202c;font-size:1.4rem}.city-badge{background:#edf2f7;border-radius:20px;color:#4a5568;font-size:.8rem;padding:4px 12px}.cache-badge{background:#c6f6d5;border-radius:20px;color:#276749;cursor:help;font-size:.75rem;padding:4px 10px}.sample-info{color:#718096;display:flex;font-size:.9rem;gap:24px}.section{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.section-header{align-items:flex-start;flex-wrap:wrap;gap:12px}.section h3{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0}.header-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.section-desc{font-size:.85rem;margin:4px 0 0}.section-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.year-slider-container{align-items:center;display:flex;gap:10px;min-width:220px}.year-slider{-webkit-appearance:none;appearance:none;background:#e2e8f0;border-radius:3px;cursor:pointer;flex:1 1;height:6px;outline:none}.year-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#1a202c;border-radius:50%;cursor:grab;height:18px;-webkit-transition:transform .15s;transition:transform .15s;width:18px}.year-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.year-slider::-webkit-slider-thumb:active{cursor:grabbing}.year-slider::-moz-range-thumb{background:#1a202c;border:none;border-radius:50%;cursor:grab;height:18px;width:18px}.month-slider-container{align-items:center;display:flex;gap:10px;min-width:280px}.month-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#e2e8f0 0,#1a202c);border-radius:3px;cursor:pointer;flex:1 1;height:6px;outline:none}.month-slider::-webkit-slider-thumb{-webkit-appearance:none;background:#1a202c;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:grab;height:18px;-webkit-transition:transform .15s;transition:transform .15s;width:18px}.month-slider::-webkit-slider-thumb:hover{transform:scale(1.15)}.month-slider::-moz-range-thumb{background:#1a202c;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px #0003;cursor:grab;height:18px;width:18px}.slider-label{color:#718096;font-size:.75rem;min-width:32px}.slider-value{background:#edf2f7;border-radius:4px;color:#1a202c;font-size:.85rem;font-weight:600;min-width:50px;padding:4px 10px;text-align:center}.play-btn{align-items:center;background:#fff;border:2px solid #1a202c;border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:.85rem;height:32px;justify-content:center;transition:all .2s;width:32px}.play-btn:hover{background:#f7fafc}.play-btn.playing{background:#1a202c;color:#fff}.year-selector{display:flex;gap:4px}.year-selector button{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.85rem;padding:6px 14px;transition:all .2s}.year-selector button.active{background:#1a202c;border-color:#1a202c;color:#fff}.month-selector{border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem;padding:6px 12px}.play-button{align-items:center;background:#fff;border:2px solid #1a202c;border-radius:50%;cursor:pointer;display:flex;font-size:1rem;height:36px;justify-content:center;transition:all .2s;width:36px}.play-button.playing{background:#1a202c;color:#fff}.metrics-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.metric-card{background:#f7fafc;border-radius:8px;min-width:140px;padding:16px 24px;text-align:center}.metric-value{color:#2d3748}.metric-label{color:#718096;font-size:.8rem;margin-top:4px}.charts-row{grid-gap:24px;gap:24px;grid-template-columns:1fr 1fr}.chart-box{background:#f7fafc;border-radius:8px;padding:16px}.chart-box.full-width{grid-column:1/-1}.chart-box h4{color:#4a5568;font-size:.9rem;font-weight:500;margin:0 0 12px}.no-data{color:#a0aec0;padding:20px}.dow-bar-chart,.monthly-bar-chart{align-items:stretch;display:flex;gap:4px;height:120px}.bar-col{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.bar-container{align-items:flex-end;display:flex;flex:1 1;justify-content:center;width:100%}.bar{background:#2d3748;border-radius:3px 3px 0 0;min-height:2px;transition:height .3s;width:70%}.bar-label{color:#718096;font-size:.7rem;margin-top:6px}.heatmap-container{overflow-x:auto}.heatmap-grid{grid-gap:2px;display:grid;gap:2px;min-width:500px}.heatmap-corner{background:#edf2f7}.heatmap-col-header{font-size:.8rem;padding:8px 4px;text-align:center}.heatmap-col-header,.heatmap-row-label{background:#edf2f7;color:#4a5568;font-weight:500}.heatmap-row-label{font-size:.75rem;padding:8px}.heatmap-cell{align-items:center;border-radius:3px;color:#fff;display:flex;font-size:.7rem;font-weight:500;justify-content:center;min-height:36px;padding:10px 4px;transition:all .2s}.heatmap-cell:hover{transform:scale(1.05);z-index:1}.mirror-chart{margin-top:16px}.mirror-header{border-bottom:2px solid #edf2f7;display:grid;font-size:.85rem;font-weight:500;grid-template-columns:1fr 50px 1fr;margin-bottom:4px;padding:8px 0}.arrival-label{color:#38a169;text-align:right}.departure-label{color:#e53e3e;text-align:left}.mirror-header>span:nth-child(2){color:#4a5568;text-align:center}.mirror-body{display:flex;flex-direction:column;gap:1px}.mirror-row{align-items:center;display:grid;grid-template-columns:1fr 50px 1fr;padding:1px 0}.mirror-row.night{background:#e53e3e0d}.mirror-bar-left{justify-content:flex-end}.mirror-bar-left,.mirror-bar-right{align-items:center;display:flex;gap:4px}.mirror-bar-right{justify-content:flex-start}.mirror-bar{border-radius:2px;height:14px;transition:width .3s}.mirror-bar.arr{background:#38a169}.mirror-bar.dep{background:#e53e3e}.mirror-val{color:#718096;font-size:.65rem;min-width:28px}.mirror-bar-left .mirror-val{text-align:right}.mirror-bar-right .mirror-val{text-align:left}.mirror-hour{color:#4a5568;font-size:.7rem;font-weight:500;text-align:center}.segment-chart{display:flex;flex-direction:column;gap:8px}.segment-row{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:130px 1fr 50px}.segment-label{color:#4a5568;font-size:.8rem;text-align:right}.segment-bar-container{background:#edf2f7;border-radius:4px;height:24px;overflow:hidden}.segment-bar{border-radius:4px;height:100%;transition:width .3s}.segment-pct{color:#2d3748;font-size:.8rem;font-weight:500}.trend-chart-container{position:relative}.trend-legend{color:#4a5568;display:flex;font-size:.8rem;gap:20px;justify-content:center;margin-bottom:8px}.trend-legend .dot{border-radius:50%;display:inline-block;height:10px;margin-right:6px;width:10px}.dot.green{background:#38a169}.dot.blue{background:#3182ce}.dot.orange{background:#d69e2e}.trend-values{display:flex;font-size:.7rem;gap:20px;justify-content:center;margin-bottom:8px}.trend-values .green{color:#38a169}.trend-values .blue{color:#3182ce}.trend-values .orange{color:#d69e2e}.trend-svg{background:#fff;border:1px solid #e2e8f0;border-radius:4px;height:180px;width:100%}.trend-line{fill:none;stroke-width:.5;stroke-linecap:round;stroke-linejoin:round}.trend-line.green{stroke:#38a169}.trend-line.blue{stroke:#3182ce}.trend-line.orange{stroke:#d69e2e}.trend-x-axis{color:#718096;display:flex;font-size:.7rem;justify-content:space-between;padding:6px 5%}.pricing-chart{display:flex;flex-direction:column;gap:10px}.pricing-row{grid-gap:12px;align-items:center;display:grid;gap:12px;grid-template-columns:130px 1fr 50px}.pricing-label{color:#4a5568;font-size:.8rem;text-align:right}.pricing-bar-container{background:#edf2f7;border-radius:4px;height:28px;overflow:hidden}.pricing-bar{align-items:center;background:linear-gradient(90deg,#38a169,#2d3748);border-radius:4px;display:flex;height:100%;justify-content:flex-end;min-width:80px;padding-right:8px}.pricing-bar span{color:#fff;font-size:.75rem;font-weight:600}.pricing-pct{color:#718096;font-size:.8rem}.price-monthly-chart{align-items:flex-end;display:flex;gap:4px;height:140px}.price-month-col{align-items:center;display:flex;flex:1 1;flex-direction:column;height:100%}.price-month-col .price-bar-container{align-items:flex-end;background:#0000;display:flex;flex:1 1;justify-content:center;width:100%}.price-month-col .price-bar{align-items:flex-start;background:#2d3748;border-radius:3px 3px 0 0;display:flex;justify-content:center;min-height:20px;padding-top:4px;width:70%}.price-val{color:#fff;font-size:.65rem;font-weight:500}.price-month-label{color:#718096;font-size:.7rem;margin-top:6px}.recharts-custom-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:12px 16px}.recharts-custom-tooltip p{color:#4a5568;font-size:.85rem;margin:4px 0}.recharts-custom-tooltip .tooltip-title{color:#1a202c;font-size:.9rem;margin-bottom:8px}.recharts-custom-tooltip .tooltip-duration{color:#38a169}.recharts-custom-tooltip .tooltip-anticipation{color:#3182ce}.recharts-custom-tooltip .tooltip-rate{color:#d69e2e}.recharts-custom-tooltip .tooltip-count{border-top:1px solid #e2e8f0;color:#718096;margin-top:8px;padding-top:8px}.source-toggle button{min-width:100px}.source-toggle button:nth-child(2){border-left:none;border-radius:0;border-right:none}.source-toggle button:first-child{border-radius:8px 0 0 8px}.source-toggle button:last-child{border-radius:0 8px 8px 0}.metric-card.source-direct{background:linear-gradient(135deg,#c6f6d5,#9ae6b4)}.metric-card.source-direct .metric-value{color:#276749}.metric-card.source-external{background:linear-gradient(135deg,#fed7d7,#feb2b2)}.metric-card.source-external .metric-value{color:#c53030}.comparison-table{background:#f7fafc;border-radius:8px;overflow:hidden}.comparison-header{background:#edf2f7;color:#4a5568;font-size:.85rem;font-weight:600}.comparison-header,.comparison-row{display:grid;grid-template-columns:140px 1fr 1fr 100px}.comparison-row{border-bottom:1px solid #e2e8f0}.comparison-row:last-child{border-bottom:none}.comparison-cell{font-size:.9rem;padding:12px 16px}.comparison-cell.label{color:#4a5568;font-weight:500}.comparison-cell.direct{color:#276749;font-weight:500}.comparison-cell.external{color:#c53030;font-weight:500}.comparison-cell.diff{font-weight:600;text-align:center}.comparison-cell.diff.positive{color:#276749}.comparison-cell.diff.negative{color:#c53030}.trend-arrow{display:block;font-size:.85rem;font-weight:600;margin-top:6px}.trend-arrow.up{color:#276749}.trend-arrow.down{color:#c53030}.trend-na{color:#a0aec0;font-size:.85rem}.metric-card.cancellation-rate{background:linear-gradient(135deg,#fed7d7,#feb2b2)}.metric-card.cancellation-rate .metric-value{color:#c53030}.metric-card.cancellation-lost{background:#feebc8}.metric-card.cancellation-lost .metric-value{color:#c05621}.duration-anticipation-heatmap{overflow-x:auto}.da-heatmap-grid{grid-gap:2px;display:grid;gap:2px;min-width:600px}.da-heatmap-corner{background:#edf2f7;color:#4a5568;font-size:.75rem;font-weight:600;padding:10px 8px;text-align:center}.da-heatmap-col-header{font-size:.7rem;overflow:hidden;padding:8px 4px;text-align:center;text-overflow:ellipsis}.da-heatmap-col-header,.da-heatmap-row-label{background:#e2e8f0;color:#4a5568;font-weight:500;white-space:nowrap}.da-heatmap-row-label{font-size:.75rem;padding:10px 8px}.da-heatmap-cell{align-items:center;border-radius:3px;color:#fff;display:flex;font-size:.7rem;font-weight:500;justify-content:center;min-height:40px;padding:10px 4px;transition:all .2s}.da-heatmap-cell:hover{box-shadow:0 2px 8px #0003;transform:scale(1.05);z-index:1}.da-heatmap-cell span{text-shadow:0 1px 2px #0000004d}.geography-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 350px;margin-top:16px}.map-container{background:#f7fafc;border-radius:8px;min-height:400px;padding:16px;position:relative}.map-container svg{max-height:500px}.map-tooltip{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000026;font-size:.9rem;padding:12px 16px;z-index:1000}.map-tooltip strong{color:#1a365d;display:block;margin-bottom:6px}.map-tooltip div{color:#4a5568;font-size:.85rem}.geography-sidebar{display:flex;flex-direction:column;gap:24px}.top-cities,.top-departments{background:#f7fafc;border-radius:8px;padding:16px}.top-cities h4,.top-departments h4{color:#2d3748;font-size:.95rem;margin:0 0 12px}.city-row,.dept-row{align-items:center;border-radius:6px;display:flex;font-size:.85rem;gap:8px;padding:8px 12px;transition:background .2s}.dept-row.hovered,.dept-row:hover{background:#edf2f7}.city-rank,.dept-rank{color:#718096;font-weight:600;min-width:20px}.city-name,.dept-name{color:#2d3748;flex:1 1}.city-cp{color:#a0aec0;font-size:.8rem}.city-count,.dept-count{color:#2d3748;font-weight:500;min-width:50px;text-align:right}.dept-pct{color:#718096;min-width:45px;text-align:right}.map-legend{align-items:center;color:#718096;display:flex;font-size:.8rem;gap:12px;justify-content:center;margin-top:16px}.legend-gradient{background:linear-gradient(90deg,#f0f0f0,#3c64c8);border-radius:6px;height:12px;width:150px}.loading-indicator{font-size:.95rem;padding:40px;text-align:center}.france-map-svg path{cursor:pointer;transition:fill .2s,stroke-width .2s}.france-map-svg path:hover{filter:brightness(.9)}@media (max-width:1024px){.geography-content{grid-template-columns:1fr}.map-container{max-height:400px}}@media (max-width:768px){.exploration-controls{align-items:stretch;flex-direction:column}.control-group select{min-width:auto;width:100%}.charts-row{grid-template-columns:1fr}.section-header{flex-direction:column}.pricing-row,.segment-row{grid-template-columns:100px 1fr 45px}}.tv-display{align-items:center;background:#000;color:#fff;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;justify-content:center;left:0;min-height:100vh;overflow:hidden;position:fixed;top:0;width:100vw}.tv-loading{gap:24px}.loading-spinner{border:3px solid #fff3;border-top-color:#fff;height:48px;width:48px}.tv-loading p{font-size:1.25rem;opacity:.7}.tv-denied{gap:16px}.denied-icon{font-size:4rem}.tv-denied h1{font-size:2rem;font-weight:600;margin:0}.tv-denied p{font-size:1.125rem;margin:0;opacity:.7}.tv-denied code{background:#ffffff1a;border-radius:8px;font-family:Monaco,Consolas,monospace;font-size:.875rem;padding:8px 16px}.tv-pin-screen{background:linear-gradient(135deg,#0f0f1a,#1a1a2e)}.pin-container{max-width:400px;padding:40px;text-align:center}.pin-logo{margin-bottom:24px}.pin-container h1{font-size:2rem;font-weight:700;letter-spacing:-.5px;margin:0 0 8px}.pin-container p{font-size:1rem;margin:0 0 32px;opacity:.6}.pin-form{display:flex;flex-direction:column;gap:16px}.pin-form input{background:#ffffff1a;border:2px solid #fff3;border-radius:12px;color:#fff;font-size:1.5rem;letter-spacing:8px;padding:16px 20px;text-align:center;transition:border-color .2s,background .2s}.pin-form input::placeholder{color:#ffffff4d;letter-spacing:normal}.pin-form input:focus{background:#6366f11a;border-color:#6366f1;outline:none}.pin-form input.error{background:#ef44441a;border-color:#ef4444}.pin-error{color:#ef4444;font-size:.875rem}.pin-form button{background:linear-gradient(135deg,#6366f1,#4f46e5);border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:16px 32px;transition:transform .2s,box-shadow .2s}.pin-form button:hover{box-shadow:0 8px 24px #6366f166;transform:translateY(-2px)}.tv-main{justify-content:center;position:relative}.tv-clock{position:fixed;right:40px;text-align:right;top:40px;z-index:10}.tv-time{font-size:3rem;font-weight:300;letter-spacing:2px;line-height:1}.tv-date{font-size:1rem;margin-top:8px;opacity:.5;text-transform:capitalize}.tv-logo-container{align-items:center;animation:breathe 4s ease-in-out infinite;display:flex;flex-direction:column;justify-content:center}@keyframes breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.tv-logo-wrapper{filter:drop-shadow(0 0 40px rgba(255,255,255,.15))}.tv-title{color:#fff;font-size:2.5rem;font-weight:700;letter-spacing:-1px;margin:24px 0 0;opacity:.9}.tv-popups-container{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:10}.tv-popup{animation:popupIn .5s cubic-bezier(.34,1.56,.64,1) forwards;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000eb;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0006;color:#fff;max-width:420px;padding:24px 32px;position:absolute}.tv-popup.has-image{max-width:600px;padding:20px}.popup-image{border-radius:12px;margin-bottom:16px;overflow:hidden}.popup-image img{display:block;max-height:300px;object-fit:contain;width:100%}.popup-title{color:#fff;font-size:1.6rem;font-weight:700;letter-spacing:-.3px;margin-bottom:12px}.popup-content{color:#fff;font-size:1.3rem;font-weight:400;line-height:1.6;opacity:.9}.tv-popup.info{border-color:#ffffff4d}.tv-popup.urgent{background:#ef444426;border-color:#ef444480;box-shadow:0 8px 32px #ef444433}.tv-popup.warning{background:#fbbf241a;border-color:#fbbf2480}@keyframes popupIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes popupOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.5)}}@media (max-width:1024px){.tv-clock{right:24px;top:24px}.tv-time,.tv-title{font-size:2rem}.tv-popup{max-width:350px;padding:20px 24px}.popup-title{font-size:1.4rem}.popup-content{font-size:1.1rem}}@media (max-width:768px){.tv-clock{right:16px;top:16px}.tv-time{font-size:1.5rem}.tv-date{font-size:.875rem}.tv-title{font-size:1.5rem}.pin-container{padding:24px}.pin-container h1{font-size:1.5rem}.tv-popup{max-width:280px;padding:16px 20px}.popup-title{font-size:1.2rem;margin-bottom:8px}.popup-content{font-size:1rem}}.tv-admin-page{margin:0 auto;max-width:1400px;padding:24px}.tv-admin-header{margin-bottom:24px}.tv-admin-header h1{color:#1a1a2e;font-size:1.75rem;font-weight:600;margin:0 0 8px}.tv-admin-header p{color:#6b7280;margin:0}.tv-admin-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));margin-bottom:24px}.tv-admin-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.tv-admin-card h2{border-bottom:1px solid #e5e7eb;color:#1a1a2e;font-size:1.125rem;font-weight:600;margin:0 0 20px;padding-bottom:12px}.form-group input,.form-group select,.form-group textarea{border:1px solid #d1d5db;border-radius:8px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.form-group textarea{min-height:80px;resize:vertical}.form-group small{color:#9ca3af;display:block;font-size:.75rem;margin-top:4px}.form-group .input-disabled{background:#f3f4f6;color:#6b7280}.url-display{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;gap:12px;padding:10px 12px}.url-display code{color:#4f46e5;flex:1 1;font-family:Monaco,Consolas,monospace;font-size:.875rem;word-break:break-all}.btn-primary{background:linear-gradient(135deg,#6366f1,#4f46e5);font-size:.875rem;padding:12px 20px;transition:transform .2s,box-shadow .2s;width:100%}.btn-primary:hover:not(:disabled){box-shadow:0 4px 12px #6366f14d;transform:translateY(-1px)}.btn-copy{background:#4f46e5;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.75rem;padding:6px 12px;transition:background .2s}.btn-copy:hover{background:#4338ca}.btn-icon{background:#0000;border:none;font-size:1rem;transition:background .2s}.btn-icon:hover{background:#f3f4f6}.btn-icon.btn-danger:hover{background:#fef2f2}.quick-buttons{display:flex;gap:8px;margin-top:8px}.btn-quick{background:#e5e7eb;border:none;border-radius:6px;cursor:pointer;font-size:.75rem;padding:4px 12px;transition:background .2s}.btn-quick:hover{background:#d1d5db}.messages-card{grid-column:1/-1}.messages-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.messages-header h2{border:none;margin:0;padding:0}.checkbox-label{color:#6b7280;font-size:.875rem}.checkbox-label input{cursor:pointer;height:16px;width:16px}.messages-table-container{overflow-x:auto}.messages-table{border-collapse:collapse;width:100%}.messages-table td,.messages-table th{border-bottom:1px solid #e5e7eb;padding:12px;text-align:left}.messages-table th{background:#f9fafb;color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.messages-table tr.inactive{opacity:.5}.messages-table tr.expired{background:#fef2f2}.message-cell{max-width:300px}.message-cell strong{color:#1a1a2e;display:block;font-size:.875rem;margin-bottom:4px}.message-cell span{color:#6b7280;font-size:.875rem}.expired-date{color:#ef4444}.status-dot{border-radius:50%;display:inline-block;height:10px;width:10px}.status-dot.active{background:#10b981;box-shadow:0 0 0 3px #10b98133}.status-dot.inactive{background:#9ca3af}.badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:500;padding:4px 8px;text-transform:uppercase}.badge-info{background:#e0f2fe;color:#0369a1}.badge-warning{color:#b45309}.badge-urgent{background:#fef2f2;color:#dc2626}.empty-state,.loading{color:#9ca3af;font-size:.875rem;padding:40px;text-align:center}.preview-card{grid-column:1/-1}.tv-preview{aspect-ratio:16/9;background:#1a1a2e;border-radius:12px;max-height:300px;overflow:hidden;padding:20px}.tv-preview,.tv-preview-screen{align-items:center;display:flex;justify-content:center;position:relative}.tv-preview-screen{flex-direction:column;height:100%;width:100%}.tv-preview-logo{animation:pulse-preview 3s ease-in-out infinite;color:#fff;font-size:3rem;font-weight:700;opacity:.9}@keyframes pulse-preview{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.02)}}.tv-preview-ticker{background:#ffffff1a;bottom:0;left:0;overflow:hidden;padding:12px 0;position:absolute;right:0}.ticker-content{animation:ticker 20s linear infinite;color:#fff;font-size:.875rem;white-space:nowrap}@keyframes ticker{0%{transform:translateX(100%)}to{transform:translateX(-100%)}}.image-upload-area{margin-top:8px}.btn-upload{align-items:center;background:#f3f4f6;border:2px dashed #d1d5db;border-radius:8px;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;gap:8px;justify-content:center;padding:16px;transition:all .2s;width:100%}.btn-upload:hover{background:#e5e7eb;border-color:#9ca3af;color:#4b5563}.btn-upload svg{color:#9ca3af}.image-preview{display:inline-block;max-width:100%;position:relative}.image-preview img{border:1px solid #e5e7eb;border-radius:8px;max-height:200px;max-width:100%;object-fit:contain}.btn-remove-image{align-items:center;background:#ef4444;border:2px solid #fff;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;padding:0;position:absolute;right:-8px;top:-8px;transition:background .2s;width:24px}.btn-remove-image:hover{background:#dc2626}.message-content-wrapper{align-items:flex-start;display:flex;gap:8px}.image-indicator{align-items:center;background:#e0f2fe;border-radius:4px;color:#0369a1;display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}@media (max-width:768px){.form-row,.tv-admin-grid{grid-template-columns:1fr}.messages-header{align-items:flex-start;flex-direction:column;gap:12px}}.treasury-module-page{margin:0 auto;max-width:1200px;padding:24px}.import-releves-page{margin:0 auto;max-width:1600px;padding:24px}.import-steps{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;justify-content:center;margin-bottom:32px;padding:20px}.import-steps,.step{align-items:center;display:flex}.step{gap:8px;opacity:.4}.step.active{opacity:1}.step.completed .step-number{background:#2d3748}.step-number{align-items:center;background:#4a5568;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:32px;justify-content:center;width:32px}.step-label{color:#2d3748;font-size:14px;font-weight:500}.step-line{background:#e2e8f0;height:2px;margin:0 16px;width:60px}.selection-form{margin:0 auto;max-width:500px}.form-group select{background:#fff;border:1px solid #cbd5e0;border-radius:8px;font-size:14px;padding:12px;transition:all .2s;width:100%}.form-group select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.no-accounts-msg{color:#718096;font-size:13px;margin-top:8px}.no-accounts-msg a{color:#3182ce;margin-left:8px;text-decoration:none}.no-accounts-msg a:hover{text-decoration:underline}.upload-section{margin:0 auto;max-width:600px}.dropzone{background:#f7fafc;border:2px dashed #cbd5e0;padding:48px}.dropzone:hover{background:#edf2f7;border-color:#a0aec0}.dropzone.has-file{background:#f0fff4;border-color:#48bb78}.dropzone p{color:#718096}.file-input-label{border-radius:6px;margin-top:8px;padding:10px 24px}.file-name{font-weight:600}.upload-actions{display:flex;gap:12px;justify-content:center}.preview-step{padding:0}.preview-container{grid-gap:0;display:grid;gap:0;grid-template-columns:1fr 1fr;height:calc(100vh - 280px);min-height:600px}.data-panel,.pdf-panel{display:flex;flex-direction:column;overflow:hidden}.pdf-panel{border-right:1px solid #e2e8f0}.panel-header{align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:16px 20px}.panel-header h3{color:#2d3748;font-size:15px;font-weight:600;margin:0}.bank-format{color:#718096}.pdf-viewer{background:#edf2f7;flex:1 1;overflow:hidden}.pdf-viewer iframe{border:none}.data-panel{background:#fff;padding:0}.balance-summary{border-bottom:1px solid #e2e8f0;padding:16px 20px}.balance-row{color:#4a5568;padding:6px 0}.balance-row .amount{color:#2d3748;font-family:SF Mono,Monaco,monospace;font-weight:600}.balance-status{border-radius:6px;font-size:13px;font-weight:500;margin-top:12px;padding:10px 12px}.balance-status.valid{background:#c6f6d5;color:#22543d}.balance-status.invalid,.duplicates-warning{background:#fefcbf;color:#744210}.duplicates-warning{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;font-size:13px;gap:8px;padding:12px 20px}.transactions-preview{display:flex;flex:1 1;flex-direction:column;overflow:hidden}.transactions-header{background:#f7fafc;border-bottom:1px solid #e2e8f0;color:#718096;display:flex;font-size:13px;font-weight:500;justify-content:space-between;padding:12px 20px}.transactions-table-wrapper{flex:1 1;overflow-y:auto}.transactions-table td,.transactions-table th{padding:10px 12px}.transactions-table tr.credit .amount-col{color:#22543d}.transactions-table tr.debit .amount-col{color:#c53030}.libelle-cell{max-width:300px}.more-transactions{background:#f7fafc;color:#718096;font-size:13px;padding:12px;text-align:center}.preview-actions{background:#fff;gap:12px;justify-content:flex-end;padding:16px 20px}.success-card{margin:0 auto;max-width:400px}.success-icon{font-size:64px;margin-bottom:16px}.success-card h2{color:#22543d;font-size:24px;margin:0 0 24px}.import-stats{display:flex;gap:32px;justify-content:center;margin-bottom:32px}.stat-value{font-size:32px}.complete-actions{gap:12px}.btn-link,.btn-primary,.btn-secondary,.btn-warning{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.btn-warning{background:#ed8936;color:#fff}.btn-warning:hover:not(:disabled){background:#dd6b20}.btn-link{background:none;color:#3182ce;padding:8px}.btn-link:hover{text-decoration:underline}@media (max-width:1024px){.preview-container{grid-template-columns:1fr;height:auto}.pdf-panel{border-bottom:1px solid #e2e8f0;border-right:none;height:400px}.data-panel{height:auto}}.smart-import-page{margin:0 auto;max-width:1600px;padding:24px}.error-banner .material-icons-round{font-size:20px}.btn-close-error{background:none;border:none;color:#c53030;cursor:pointer;display:flex;margin-left:auto;padding:4px}.step-content{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.upload-section-multi{margin:0 auto;max-width:700px}.dropzone-multi{background:#f7fafc;border:2px dashed #cbd5e0;border-radius:12px;cursor:pointer;padding:48px;text-align:center;transition:all .2s ease}.dropzone-multi:hover{background:#edf2f7;border-color:#a0aec0}.dropzone-multi.has-files{background:#f0fff4;border-color:#48bb78}.dropzone-icon .material-icons-round{color:#a0aec0;font-size:64px}.dropzone-title{color:#4a5568;font-size:16px;font-weight:500;margin:0 0 8px}.dropzone-or{color:#a0aec0;font-size:13px;margin:8px 0}.file-input-label{background:#2d3748;border-radius:8px;color:#fff;cursor:pointer;display:inline-block;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s}.file-input-label:hover{background:#1a202c}.files-queue{background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:24px;padding:20px}.queue-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.queue-header h3{color:#2d3748;font-size:15px;font-weight:600;margin:0}.btn-clear{background:none;border:none;color:#e53e3e;cursor:pointer;font-size:13px;font-weight:500}.btn-clear:hover{text-decoration:underline}.file-list{list-style:none;margin:0;max-height:300px;overflow-y:auto;padding:0}.file-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:12px;margin-bottom:8px;padding:12px}.file-item:last-child{margin-bottom:0}.file-icon{color:#e53e3e;font-size:24px}.file-name{color:#2d3748;flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{color:#718096;font-family:SF Mono,Monaco,monospace;font-size:13px}.btn-remove{background:none;border:none;border-radius:4px;color:#a0aec0;cursor:pointer;display:flex;padding:4px;transition:all .2s}.btn-remove:hover{background:#fed7d7;color:#c53030}.upload-actions{margin-top:24px;text-align:center}.btn-primary,.btn-secondary{align-items:center;display:inline-flex;gap:8px}.btn-large{font-size:15px;padding:14px 32px}.btn-primary:hover:not(:disabled){background:#1a202c}.btn-primary:disabled{opacity:.5}.btn-secondary{background:#edf2f7;color:#2d3748}.btn-small{border-radius:6px;font-size:12px;padding:6px 12px}.btn-action{background:#3182ce}.btn-action:hover{background:#2b6cb0}.btn-full{justify-content:center}.spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.review-step{padding:0}.summary-cards{border-bottom:1px solid #e2e8f0;display:flex;padding:24px}.summary-card{align-items:center;display:flex;flex:1 1;gap:16px}.summary-card.ready{background:#f0fff4;border-color:#9ae6b4}.summary-card.ready .card-icon{color:#38a169}.summary-card.attention{background:#fefcbf;border-color:#f6e05e}.summary-card.attention .card-icon{color:#d69e2e}.summary-card.blocked{background:#fed7d7;border-color:#fc8181}.summary-card.blocked .card-icon{color:#e53e3e}.card-icon{font-size:40px}.card-content{display:flex;flex-direction:column}.card-value{color:#2d3748;font-size:28px}.card-label{font-size:13px}.results-table-wrapper{max-height:500px;overflow-x:auto;overflow-y:auto}.results-table{border-collapse:collapse;font-size:13px;width:100%}.results-table td,.results-table th{border-bottom:1px solid #edf2f7;padding:12px 16px;text-align:left}.results-table th{color:#4a5568;font-size:11px;font-weight:600;letter-spacing:.05em;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:10}.results-table th,.results-table tr:hover{background:#f7fafc}.results-table tr.row-ready{background:#f0fff4}.results-table tr.row-unknown_iban{background:#fefcbf}.results-table tr.row-balance_error,.results-table tr.row-duplicate,.results-table tr.row-parse_error{background:#fff5f5}.col-select{width:40px}.col-center,.col-select{text-align:center}.col-filename{align-items:center;display:flex;font-weight:500;gap:8px}.file-icon-small{color:#e53e3e;font-size:18px}.col-iban code{background:#edf2f7;border-radius:4px;color:#4a5568;font-size:11px;padding:4px 8px}.account-match{font-size:12px}.no-match{color:#e53e3e;font-style:italic}.col-transactions{color:#4a5568;font-weight:600}.balance-ok .material-icons-round{font-size:20px}.balance-error-value{font-size:11px}.status-badge .material-icons-round{font-size:14px}.badge-success{background:#c6f6d5;color:#22543d}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fed7d7;color:#c53030}.badge-secondary{background:#e2e8f0;color:#4a5568}.error-hint{color:#a0aec0;cursor:help}.error-hint .material-icons-round{font-size:18px}.review-actions{background:#f7fafc;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.complete-step{padding:48px;text-align:center}.success-card-large{margin:0 auto;max-width:600px}.success-icon .material-icons-round{font-size:72px}.icon-success{color:#38a169}.icon-warning{color:#d69e2e}.success-card-large h2{color:#2d3748;font-size:24px;margin:16px 0 32px}.execute-stats{display:flex;gap:48px;justify-content:center;margin-bottom:32px}.stat{text-align:center}.stat-value{font-size:36px}.stat-error .stat-value{color:#e53e3e}.execute-details{background:#f7fafc;border-radius:12px;margin-bottom:32px;padding:16px;text-align:left}.result-item{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:8px;padding:12px 16px}.result-item:last-child{margin-bottom:0}.result-item.success{border-color:#9ae6b4}.result-item.error{background:#fff5f5;border-color:#fc8181}.result-filename{color:#2d3748;font-weight:500}.result-info{align-items:center;color:#38a169;display:flex;font-size:13px;gap:6px}.result-info .material-icons-round{font-size:16px}.result-error{align-items:center;color:#e53e3e;display:flex;font-size:13px;gap:6px}.result-error .material-icons-round{font-size:16px}.complete-actions{display:flex;gap:16px;justify-content:center}.modal-content{box-shadow:0 20px 60px #0000004d;max-width:500px;overflow-y:auto}.modal-header h3{color:#2d3748;font-size:18px;font-weight:600;margin:0}.btn-close-modal{background:none;border:none;border-radius:4px;color:#a0aec0;cursor:pointer;display:flex;padding:4px;transition:all .2s}.btn-close-modal:hover{background:#edf2f7;color:#4a5568}.iban-info{background:#f7fafc;border-radius:8px;margin-bottom:20px;padding:16px}.info-row{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.info-label{color:#718096;font-size:13px}.info-value{color:#2d3748;font-weight:500}.iban-code{color:#4a5568}.bank-format,.iban-code{background:#edf2f7;border-radius:4px;font-size:12px;padding:4px 8px}.bank-format{font-weight:500}.resolution-tabs{display:flex;gap:8px;margin-bottom:20px}.resolution-tabs .tab{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:500;gap:6px;justify-content:center;padding:12px;transition:all .2s}.resolution-tabs .tab:hover{background:#f7fafc}.resolution-tabs .tab.active{background:#2d3748;border-color:#2d3748;color:#fff}.resolution-tabs .tab .material-icons-round{font-size:18px}.form-group label{color:#4a5568;font-size:13px}.iban-notice{align-items:flex-start;background:#ebf8ff;border-radius:8px;color:#2b6cb0;display:flex;font-size:13px;gap:8px;margin:16px 0;padding:12px}.iban-notice .material-icons-round{flex-shrink:0;font-size:18px}.iban-notice code{background:#bee3f8;border-radius:4px;padding:2px 6px}.btn-preview{background:#0000;border:1px solid #4299e1;border-radius:6px;color:#4299e1;cursor:pointer;font-size:12px;font-weight:500;padding:4px 10px;transition:all .2s}.btn-preview:hover{background:#ebf8ff;border-color:#3182ce;color:#3182ce}.preview-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:800px;overflow:hidden;width:100%}.preview-header{align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.preview-header h3{color:#2d3748;font-size:16px;font-weight:600;margin:0}.preview-body{flex:1 1;overflow-y:auto;padding:24px}.preview-loading{align-items:center;color:#718096;display:flex;flex-direction:column;justify-content:center;padding:48px}.preview-loading .spinner{animation:spin .8s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#3182ce;height:32px;margin-bottom:16px;width:32px}.preview-info-row{border-bottom:1px solid #f0f0f0;display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.preview-info-row span:first-child{color:#718096}.preview-info-row .bank-format{background:#edf2f7;border-radius:4px;color:#2d3748;font-size:12px;font-weight:600;padding:2px 8px}.balance-summary{background:#f7fafc;border-radius:12px;margin:16px 0;padding:16px}.balance-summary h4{color:#2d3748;font-size:14px;font-weight:600;margin:0 0 12px}.balance-row{border-bottom:1px solid #e2e8f0;display:flex;font-size:14px;justify-content:space-between;padding:8px 0}.balance-row span:first-child{color:#718096}.balance-row span:last-child{color:#2d3748;font-family:SF Mono,Monaco,Consolas,monospace;font-weight:500}.balance-row.calculated{background:#ebf8ff;border-radius:6px;margin:0 -16px;padding:8px 16px}.balance-row.expected{background:#fef3c7;border-radius:6px;margin:4px -16px 0;padding:8px 16px}.balance-row.difference{border-bottom:none;border-top:2px solid #e2e8f0;font-weight:600;margin-top:8px;padding-top:12px}.balance-row.difference.valid{color:#38a169}.balance-row.difference.invalid{color:#e53e3e}.balance-ok{color:#38a169;font-weight:600}.balance-error-value{color:#e53e3e;font-weight:600}.transactions-preview{margin-top:20px}.transactions-preview h4{color:#2d3748;font-size:14px;font-weight:600;margin:0 0 12px}.transactions-table{font-size:13px}.transactions-table th{border-bottom:2px solid #e2e8f0;padding:10px 8px;text-align:left}.transactions-table td{border-bottom:1px solid #f0f0f0;padding:10px 8px}.transactions-table .col-date{color:#718096;white-space:nowrap;width:100px}.transactions-table .col-label{max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transactions-table .col-amount{font-family:SF Mono,Monaco,Consolas,monospace;font-weight:500;text-align:right;white-space:nowrap}.transactions-table .credit{color:#38a169}.transactions-table .debit{color:#e53e3e}.more-hint{color:#718096;font-size:13px;padding:12px}.more-hint,.no-transactions{font-style:italic;text-align:center}.no-transactions{color:#a0aec0;padding:24px}.preview-actions{border-top:1px solid #e2e8f0;display:flex;justify-content:center;margin-top:20px;padding-top:16px}.preview-error{color:#e53e3e;padding:48px;text-align:center}@media (max-width:768px){.review-actions,.summary-cards{flex-direction:column}.review-actions{gap:12px}.review-actions button{justify-content:center;width:100%}.complete-actions,.execute-stats{flex-direction:column}.execute-stats{gap:24px}.preview-modal{border-radius:0;max-height:100%;max-width:100%}.transactions-table .col-label{max-width:150px}}.import-control-page{max-width:100%;padding:20px}.import-control-page .page-header{margin-bottom:20px}.import-control-page .page-header h1{color:#1a1a1a;font-size:24px;font-weight:600;margin:0 0 8px}.import-control-page .page-header p{color:#666;font-size:14px;margin:0}.import-control-page .legend{background:#f8f9fa;border-radius:8px;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:12px 16px}.import-control-page .legend-item{align-items:center;color:#555;display:flex;font-size:13px;gap:8px}.import-control-page .legend-color{border:1px solid #0000001a;border-radius:4px;height:20px;width:20px}.import-control-page .error-container,.import-control-page .loading-container{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.import-control-page .spinner{animation:spin 1s linear infinite;border:3px solid #e0e0e0;border-radius:50%;border-top-color:#1a1a1a;height:40px;margin-bottom:16px;width:40px}.import-control-page .error-container button{background:#1a1a1a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;margin-top:16px;padding:10px 20px}.import-control-page .error-container button:hover{background:#333}.import-control-page .empty-state{color:#888;padding:60px 20px;text-align:center}.import-control-page .entities-container{display:flex;flex-direction:column;gap:16px}.import-control-page .entity-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.import-control-page .entity-header{align-items:center;background:#f5f5f5;cursor:pointer;display:flex;gap:12px;padding:14px 16px;transition:background .2s;-webkit-user-select:none;user-select:none}.import-control-page .entity-header:hover{background:#eee}.import-control-page .expand-icon{color:#666;font-size:12px;width:16px}.import-control-page .entity-code{color:#1a1a1a;font-size:15px;font-weight:600}.import-control-page .entity-name{color:#666;flex:1 1;font-size:14px}.import-control-page .accounts-count{background:#e0e0e0;border-radius:12px;color:#888;font-size:12px;padding:4px 10px}.import-control-page .entity-content{padding:0}.import-control-page .table-wrapper{max-width:100%;overflow-x:auto}.import-control-page .import-control-table{border-collapse:collapse;font-size:13px;min-width:800px;width:100%}.import-control-page .import-control-table td,.import-control-page .import-control-table th{border-bottom:1px solid #eee;padding:10px 8px;text-align:center}.import-control-page .import-control-table th{background:#fafafa;color:#555;font-size:11px;font-weight:500;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0}.import-control-page .import-control-table .account-col{background:#fff;left:0;max-width:220px;min-width:180px;position:-webkit-sticky;position:sticky;text-align:left;z-index:1}.import-control-page .import-control-table th.account-col{background:#fafafa;z-index:2}.import-control-page .import-control-table .month-col{max-width:60px;min-width:55px}.import-control-page .account-info{display:flex;flex-direction:column;gap:2px}.import-control-page .bank-name{color:#1a1a1a;font-weight:500}.import-control-page .account-label{color:#888;font-size:11px}.import-control-page .account-iban{color:#999;font-family:Monaco,Consolas,monospace;font-size:10px;letter-spacing:.5px}.import-control-page .month-cell{font-weight:500;transition:transform .1s}.import-control-page .month-cell:hover{transform:scale(1.1)}.import-control-page .cell-ok{background-color:#d4edda;color:#155724}.import-control-page .cell-warning{background-color:#fff3cd;color:#856404}.import-control-page .cell-error{background-color:#f8d7da;color:#721c24}.import-control-page .cell-na{background-color:#e9ecef;color:#6c757d}.import-control-page .legend-color.cell-ok{background-color:#d4edda}.import-control-page .legend-color.cell-warning{background-color:#fff3cd}.import-control-page .legend-color.cell-error{background-color:#f8d7da}.import-control-page .legend-color.cell-na{background-color:#e9ecef}.import-control-page .continuity-col{border-bottom:1px solid #eee;max-width:24px;min-width:24px;padding:0!important;width:24px}.import-control-page th.continuity-col{background:#fafafa}.import-control-page .continuity-spacer{display:block;width:24px}.import-control-page .continuity-indicator{align-items:center;cursor:help;display:flex;height:24px;justify-content:center;-webkit-user-select:none;user-select:none;width:24px}.import-control-page .continuity-indicator:before{border-radius:3px;content:"";display:block;height:6px;width:14px}.import-control-page .continuity-ok:before{background-color:#28a745}.import-control-page .continuity-error:before{background-color:#dc3545}.import-control-page .continuity-ok{color:#28a745}.import-control-page .continuity-error{color:#dc3545}.import-control-page .legend-separator{background:#ddd;height:20px;margin:0 8px;width:1px}.import-control-page .legend-continuity,.import-control-page .legend-continuity:before{border-radius:4px;height:8px;width:20px}.import-control-page .month-cell.clickable{cursor:pointer}.import-control-page .month-cell.clickable:hover{box-shadow:0 2px 8px #00000026;position:relative;transform:scale(1.15);z-index:1}.import-control-page .modal-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.import-control-page .statement-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;height:90vh;max-height:900px;max-width:1400px;width:95%}.import-control-page .modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e0e0e0;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;padding:16px 24px}.import-control-page .modal-header h2{color:#1a1a1a;font-size:18px;font-weight:600;margin:0}.import-control-page .close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:28px;height:36px;justify-content:center;line-height:1;padding:0;transition:background .2s;width:36px}.import-control-page .close-btn:hover{background:#e0e0e0;color:#333}.import-control-page .modal-content{display:flex;flex:1 1;max-width:none;overflow:hidden;width:100%}.import-control-page .modal-error,.import-control-page .modal-loading{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;width:100%}.import-control-page .modal-error{color:#dc3545}.import-control-page .modal-split{display:flex;height:100%;width:100%}.import-control-page .modal-pdf{background:#f5f5f5;border-right:1px solid #e0e0e0;display:flex;flex:7 1;flex-direction:column}.import-control-page .modal-pdf h3{background:#fff;border-bottom:1px solid #e0e0e0;color:#666;font-size:14px;font-weight:500;margin:0;padding:12px 16px}.import-control-page .pdf-iframe{border:none;flex:1 1;width:100%}.import-control-page .modal-extraction{display:flex;flex:3 1;flex-direction:column;overflow:hidden}.import-control-page .modal-extraction h3{border-bottom:1px solid #e0e0e0;color:#666;font-size:14px;font-weight:500;margin:0;padding:12px 16px}.import-control-page .extraction-section{border-bottom:1px solid #eee;padding:16px}.import-control-page .extraction-section h4{color:#1a1a1a;font-size:13px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.import-control-page .balance-row{display:flex;font-size:13px;justify-content:space-between;padding:6px 0}.import-control-page .balance-label{color:#666}.import-control-page .balance-value{color:#1a1a1a;font-weight:500}.import-control-page .balance-row.final{border-top:1px solid #e0e0e0;font-weight:600;margin-top:8px;padding-top:12px}.import-control-page .balance-status{align-items:center;border-radius:6px;display:flex;font-size:13px;font-weight:500;gap:8px;margin-top:12px;padding:10px 12px}.import-control-page .balance-status.valid{background:#d4edda;color:#155724}.import-control-page .balance-status.invalid{background:#f8d7da;color:#721c24}.import-control-page .balance-status .status-icon{font-size:16px}.import-control-page .period-info{color:#1a1a1a;font-size:14px;margin-bottom:8px}.import-control-page .file-info{color:#666;display:flex;flex-direction:column;font-size:12px;gap:4px}.import-control-page .transactions-section{border-bottom:none;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.import-control-page .transactions-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.import-control-page .transactions-header h4{margin:0}.import-control-page .export-excel-btn{align-items:center;background:#28a745;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:6px;padding:6px 12px;transition:background .2s}.import-control-page .export-excel-btn:hover{background:#218838}.import-control-page .export-excel-btn svg{flex-shrink:0}.import-control-page .transactions-table-wrapper{flex:1 1;overflow-y:auto}.import-control-page .transactions-table{border-collapse:collapse;font-size:12px;width:100%}.import-control-page .transactions-table td,.import-control-page .transactions-table th{border-bottom:1px solid #eee;padding:8px 10px;text-align:left}.import-control-page .transactions-table th{background:#f8f9fa;color:#666;font-weight:500;position:-webkit-sticky;position:sticky;top:0}.import-control-page .tx-date{color:#666;white-space:nowrap;width:80px}.import-control-page .tx-libelle{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.import-control-page .tx-montant{font-weight:500;text-align:right;white-space:nowrap;width:100px}.import-control-page .tx-montant.credit{color:#28a745}.import-control-page .tx-montant.debit{color:#dc3545}.import-control-page .transactions-more{background:#f8f9fa;color:#666;font-size:12px;font-style:italic;padding:12px;text-align:center}.import-control-page .cell-partial{background-color:#ff9800;color:#fff}.import-control-page .legend-color.cell-partial{background-color:#ff9800}.import-control-page .month-cell-container{padding:4px!important;vertical-align:middle}.import-control-page .month-cell-container.future{background:#f8f9fa}.import-control-page .sessions-container{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;gap:2px;justify-content:center}.import-control-page .session-cell{align-items:center;border-radius:4px;cursor:pointer;display:flex;flex-direction:column;min-width:50px;padding:4px 6px;transition:transform .1s,box-shadow .1s}.import-control-page .session-cell:hover{box-shadow:0 2px 8px #0003;position:relative;transform:scale(1.08);z-index:1}.import-control-page .session-period{font-size:9px;font-weight:500;white-space:nowrap}.import-control-page .session-count{font-size:11px;font-weight:600}.import-control-page .session-continuity{align-items:center;display:flex;margin:0 1px}.import-control-page .session-continuity .continuity-indicator{height:16px;width:16px}.import-control-page .session-continuity .continuity-indicator:before{border-radius:2px;height:4px;width:10px}.import-control-page .month-cell-container .month-cell{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:6px 10px}@media (max-width:768px){.import-control-page{padding:16px}.import-control-page .legend{gap:16px}.import-control-page .import-control-table .account-col{min-width:140px}.import-control-page .import-control-table .month-col{min-width:45px}.import-control-page .modal-split{flex-direction:column}.import-control-page .modal-pdf{border-bottom:1px solid #e0e0e0;border-right:none;flex:0 0 50%}.import-control-page .modal-extraction{flex:0 0 50%}}.explorateur-page{background:#f8f9fa;display:flex;flex-direction:column;height:calc(100vh - 120px)}.explorer-summary{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;gap:32px;padding:16px 24px}.summary-value{font-size:24px;line-height:1}.summary-label{font-size:11px;margin-top:4px}.btn-refresh{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;color:#4a5568;height:36px;justify-content:center;margin-left:auto;width:36px}.btn-refresh:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e0}.btn-refresh:disabled{opacity:.5}.error-banner{background:#fff5f5;border-bottom:1px solid #feb2b2;gap:8px;padding:12px 24px}.explorer-content{display:flex;flex:1 1;overflow:hidden}.sidebar-tree{background:#fff;border-right:1px solid #e0e0e0;overflow-y:auto;width:380px}.empty-tree,.loading-tree{align-items:center;color:#718096;display:flex;flex-direction:column;font-size:14px;gap:12px;height:200px;justify-content:center}.btn-import-link{background:#2d3748;border-radius:8px;color:#fff;font-size:13px;font-weight:500;margin-top:8px;padding:10px 20px;text-decoration:none;transition:all .2s}.btn-import-link:hover{background:#1a202c}.spinner-dark{animation:spin .8s linear infinite;border:2px solid #e2e8f0;border-radius:50%;border-top-color:#2d3748;height:20px;width:20px}.tree-container{padding:8px 0}.tree-bank,.tree-entity{border-bottom:1px solid #f0f0f0}.tree-entity:last-child{border-bottom:none}.tree-item{align-items:center;cursor:pointer;display:flex;gap:8px;padding:12px 16px;transition:background .15s;-webkit-user-select:none;user-select:none}.tree-item:hover{background:#f7fafc}.tree-item.selected{background:#edf2f7;border-left:3px solid #2d3748}.tree-item.selected .tree-sublabel{color:#4a5568}.entity-item{background:#fafafa}.entity-item:hover{background:#f0f0f0}.bank-item{padding-left:32px}.file-item{padding-left:56px}.tree-icon{align-items:center;display:flex;font-size:18px}.tree-label{display:flex;flex:1 1;flex-direction:column;min-width:0;overflow:hidden}.tree-label strong{color:#2d3748;font-size:14px;font-weight:600}.tree-sublabel{color:#718096;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-label{font-size:13px}.tree-count{background:#edf2f7;border-radius:10px;color:#4a5568;font-size:11px;font-weight:600;padding:2px 8px}.entity-item .tree-count{background:#2d3748;color:#fff}.file-transactions{color:#718096;font-size:11px;white-space:nowrap}.tree-chevron{align-items:center;color:#a0aec0;display:flex;font-size:12px}.tree-children{animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.preview-panel{background:#fff;overflow:hidden}.no-selection,.preview-panel{display:flex;flex:1 1;flex-direction:column}.no-selection{align-items:center;color:#a0aec0;font-size:32px;gap:12px;justify-content:center}.no-selection p{font-size:14px}.file-info-header{align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.file-info-main{align-items:center;display:flex;gap:16px}.file-icon-large{font-size:40px}.file-info-text h3{color:#2d3748;font-size:16px;font-weight:600;margin:0}.file-info-text p{color:#718096;font-size:13px;margin:4px 0 0}.file-actions{display:flex;gap:8px}.btn-action{align-items:center;background:#2d3748;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;text-decoration:none;transition:all .2s}.btn-action:hover{background:#1a202c}.file-details{grid-gap:1px;background:#e2e8f0;border-bottom:1px solid #e2e8f0;display:grid;gap:1px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.detail-row{background:#fff;display:flex;flex-direction:column;padding:12px 16px}.detail-label{color:#718096;font-size:11px;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.detail-value{color:#2d3748;font-size:14px;font-weight:500}.format-badge{background:#edf2f7;color:#4a5568;font-weight:600;padding:2px 8px}.format-badge,.validation-badge{border-radius:4px;display:inline-block;font-size:12px}.validation-badge{font-weight:500;padding:2px 10px}.validation-badge.valid{background:#c6f6d5;color:#276749}.validation-badge.invalid{background:#fed7d7;color:#c53030}.pdf-preview-container{background:#f7fafc;flex:1 1;min-height:400px;position:relative}.pdf-loading{background:#fff;bottom:0;color:#718096;flex-direction:column;font-size:14px;gap:12px;left:0;position:absolute;right:0;top:0;z-index:10}.pdf-iframe{border:none;height:100%;width:100%}@media (max-width:1024px){.explorer-content{flex-direction:column}.sidebar-tree{border-bottom:1px solid #e2e8f0;border-right:none;max-height:300px;width:100%}.preview-panel{flex:1 1;min-height:500px}}@media (max-width:768px){.explorer-summary{flex-wrap:wrap;gap:16px}.summary-item{flex:1 1;min-width:80px}.btn-refresh{margin-left:0}.file-info-header{align-items:flex-start;flex-direction:column;gap:16px}.file-actions{width:100%}.file-actions .btn-action{flex:1 1;justify-content:center}}.lecture-releves-page{margin:0 auto;max-width:1600px;padding:24px}.header-actions{gap:8px}.btn-export{background:#2d3748;border:none;border-radius:8px;font-size:14px;padding:10px 20px}.btn-export:hover{background:#1a202c}.filters-bar{box-shadow:0 1px 3px #0000001a;flex-wrap:wrap;padding:20px}.filter-group label{color:#4a5568;font-size:11px;letter-spacing:.05em}.filter-group input[type=date],.filter-group select{border:1px solid #cbd5e0;min-width:160px;padding:10px 12px;transition:all .2s}.filter-group input:focus,.filter-group select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.search-group{flex:1 1;min-width:250px}.search-input-wrapper{display:flex;gap:8px}.search-input-wrapper input{border:1px solid #cbd5e0;border-radius:6px;flex:1 1;font-size:14px;padding:10px 12px}.btn-search{background:#4a5568;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-search:hover{background:#2d3748}.summary-cards{grid-template-columns:repeat(4,1fr)}.summary-card{box-shadow:0 1px 3px #0000001a}.card-label{color:#718096;display:block;font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.card-value{font-family:SF Mono,Monaco,monospace;font-size:24px}.summary-card.credits .card-value{color:#22543d}.summary-card.debits .card-value{color:#c53030}.summary-card.count .card-value,.summary-card.net .card-value{color:#2d3748}.transactions-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.transactions-table td,.transactions-table th{border-bottom:1px solid #edf2f7;padding:14px 16px}.transactions-table th{font-size:11px;letter-spacing:.05em}.transactions-table tbody tr{transition:background-color .2s}.transactions-table tbody tr:hover{background-color:#f7fafc}.transactions-table .amount-col{font-family:SF Mono,Monaco,monospace;text-align:right;white-space:nowrap}.transactions-table tr.credit .amount-col:not(.solde){color:#22543d}.transactions-table tr.debit .amount-col:not(.solde){color:#c53030}.transactions-table .solde{color:#718096}.bank-name{color:#2d3748;display:block;font-size:13px;font-weight:500}.account-label{color:#718096;display:block;font-size:12px}.libelle-cell{color:#4a5568;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-data{padding:48px}.pagination{background:#f7fafc;border-top:1px solid #edf2f7;gap:16px;justify-content:center;padding:16px}.pagination button{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 16px;transition:all .2s}.pagination button:hover:not(:disabled){background:#edf2f7;border-color:#cbd5e0}.pagination button:disabled{cursor:not-allowed;opacity:.5}.page-info{color:#4a5568;font-size:14px}.total-info{color:#a0aec0;margin-left:8px}@media (max-width:1024px){.summary-cards{grid-template-columns:repeat(2,1fr)}.filters-bar{flex-direction:column}.filter-group,.filter-group input[type=date],.filter-group select{width:100%}}@media (max-width:768px){.summary-cards{grid-template-columns:1fr}.page-header{flex-direction:column;gap:16px}.transactions-table{font-size:13px}.transactions-table td,.transactions-table th{padding:10px 12px}}.bank-accounts-page{margin:0 auto;max-width:1200px;padding:24px}.success-banner{background:#c6f6d5;border:1px solid #9ae6b4;border-radius:8px;color:#22543d;font-size:14px;margin-bottom:20px;padding:12px 16px}.error-banner{background-color:#fed7d7;border:1px solid #fc8181;color:#c53030;font-size:14px}.accounts-container{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.loading{padding:48px}.empty-state{padding:64px}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{color:#2d3748;font-size:18px;margin:0 0 8px}.empty-state p{color:#718096;margin:0 0 24px}.accounts-table{border-collapse:collapse;width:100%}.accounts-table td,.accounts-table th{border-bottom:1px solid #edf2f7;padding:14px 16px;text-align:left}.accounts-table th{background:#f7fafc;color:#4a5568;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.accounts-table tbody tr{transition:background-color .2s}.accounts-table tbody tr:hover{background-color:#f7fafc}.accounts-table tr.inactive{opacity:.5}.entity-badge{background:#edf2f7;border-radius:4px;color:#4a5568;display:inline-block;font-size:12px;font-weight:600;margin-right:8px;padding:4px 8px}.entity-name{color:#718096;font-size:13px}.account-number{color:#4a5568;font-family:SF Mono,Monaco,monospace;font-size:13px}.status-badge.active{background:#c6f6d5;color:#22543d}.status-badge.inactive{background:#edf2f7;color:#718096}.actions{white-space:nowrap}.btn-icon{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:16px;margin-right:4px;padding:6px 10px;transition:all .2s}.btn-icon:hover{background:#edf2f7;border-color:#cbd5e0}.modal{box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;width:100%}.modal-header{border-bottom:1px solid #e2e8f0}.modal-header h2{color:#2d3748;font-size:18px;font-weight:600}.btn-close{background:none;color:#a0aec0;font-size:24px;line-height:1;padding:0;transition:color .2s}.btn-close:hover{color:#4a5568}.form-group{margin-bottom:20px}.form-group label{color:#2d3748;margin-bottom:8px}.form-group input,.form-group select{border:1px solid #cbd5e0;padding:12px;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a}.modal-footer{background:#f7fafc;border-top:1px solid #e2e8f0}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;padding:12px 24px;transition:all .2s ease}.btn-primary{background:#2d3748}.btn-primary:hover{background:#1a202c}.btn-secondary{color:#4a5568}.btn-secondary:hover{background:#f7fafc}.treasury-analysis-page{margin:0 auto;max-width:1400px;padding:24px}.analysis-filters{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px;padding:20px}.filter-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:16px}.filter-group input[type=date],.filter-group select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;min-width:180px;padding:8px 12px}.filter-group input[type=date]:focus,.filter-group select:focus{border-color:#374151;box-shadow:0 0 0 2px #3741511a;outline:none}.date-range{align-items:center;display:flex;gap:8px}.date-range span{color:#9ca3af}.checkbox-label{color:#374151;font-weight:400;gap:8px;text-transform:none}.checkbox-label input[type=checkbox]{accent-color:#374151;height:16px;width:16px}.accounts-filter{border-top:1px solid #e5e7eb;padding-top:16px}.accounts-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.accounts-header label{color:#6b7280;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.toggle-all-btn{background:none;border:1px solid #e2e8f0;border-radius:4px;color:#374151;cursor:pointer;font-size:12px;padding:4px 12px;transition:all .15s ease}.toggle-all-btn:hover{background:#f9fafb;border-color:#d1d5db}.accounts-grid{display:flex;flex-wrap:wrap;gap:8px}.account-checkbox{align-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:20px;cursor:pointer;display:flex;font-size:13px;gap:8px;padding:6px 12px;transition:all .15s ease}.account-checkbox:hover{background:#f9fafb;border-color:#d1d5db}.account-checkbox.selected{background:#f3f4f6;border-color:#374151}.account-checkbox input[type=checkbox]{display:none}.account-color{border-radius:50%;flex-shrink:0;height:10px;width:10px}.account-name{color:#374151;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.charts-container{display:flex;flex-direction:column;gap:24px}.chart-section{box-shadow:0 1px 3px #0000001a;padding:20px 24px 24px}.chart-section-header{align-items:baseline;border-bottom:1px solid #f3f4f6;display:flex;gap:12px;margin-bottom:16px;padding-bottom:12px}.chart-section-header h3{color:#111827;font-size:16px;font-weight:600;margin:0}.chart-section-subtitle{color:#9ca3af;font-size:13px}.chart-wrapper{position:relative}.clickable-statement-dot{cursor:pointer}.clickable-statement-dot:hover circle:last-child{r:9}.empty-state,.error-state,.loading-state{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;color:#6b7280;height:400px}.empty-state .material-icons{color:#d1d5db;font-size:64px;margin-bottom:16px}.error-state{color:#ef4444}.analysis-tooltip{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 4px 12px #00000026;min-width:200px;padding:12px}.tooltip-date{border-bottom:1px solid #e5e7eb;color:#111827;font-size:12px;font-weight:600;margin-bottom:8px;padding-bottom:8px}.tooltip-row{align-items:center;display:flex;gap:8px;padding:4px 0}.tooltip-color{border-radius:50%;flex-shrink:0;height:8px;width:8px}.tooltip-label{color:#6b7280;flex:1 1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tooltip-value{color:#111827;font-size:13px;font-weight:600}.chart-legend-info{background:#f9fafb;border-radius:8px;display:flex;gap:24px;margin-top:16px;padding:12px 16px}.legend-item{align-items:center;color:#6b7280;display:flex;font-size:12px;gap:8px}.legend-dot{border-radius:50%;height:12px;width:12px}.legend-dot.statement-dot{background:linear-gradient(135deg,#2563eb,#dc2626,#16a34a);border:2px solid #fff;box-shadow:0 1px 2px #0003}.pdf-drawer-overlay{background:#00000080;bottom:0;display:flex;justify-content:flex-end;left:0;position:fixed;right:0;top:0;z-index:1000}.pdf-drawer{animation:slideIn .2s ease-out;background:#fff;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;height:100%;max-width:900px;min-width:500px;width:60%}@keyframes slideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.drawer-header{align-items:flex-start;background:#f9fafb;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.drawer-title h3{color:#111827;font-size:16px;font-weight:600;margin:0 0 4px}.drawer-title p{color:#6b7280;font-size:13px;margin:0}.drawer-close{background:none;border:none;border-radius:4px;color:#6b7280;cursor:pointer;padding:4px;transition:all .15s ease}.drawer-close:hover{background:#e5e7eb;color:#111827}.drawer-info{background:#fff;border-bottom:1px solid #e5e7eb;display:flex;gap:32px;padding:16px 24px}.info-item{display:flex;flex-direction:column;gap:2px}.info-label{color:#9ca3af;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-value{color:#111827;font-size:16px;font-weight:600}.drawer-pdf{background:#f3f4f6;flex:1 1;overflow:hidden}.drawer-pdf iframe{border:none}.pdf-loading{align-items:center;color:#6b7280;display:flex;height:100%;justify-content:center}@media (max-width:1024px){.filter-row{align-items:stretch;flex-direction:column}.filter-group,.filter-group input[type=date],.filter-group select{width:100%}.pdf-drawer{min-width:auto;width:100%}}.recharts-legend-item-text{color:#374151!important;font-size:12px!important}.recharts-cartesian-axis-tick-value{font-size:11px}.weekly-report-page{margin:0 auto;max-width:1400px;padding:0}.report-header{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.report-header-left{align-items:center;display:flex;gap:1.5rem}.report-title{color:#000;font-size:1.5rem;font-weight:700;margin:0}.week-selector{align-items:center;display:flex;gap:.75rem}.week-selector label{color:#333;font-weight:500}.week-selector select{background:#fff;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.5rem 1rem}.report-header-right{display:flex;gap:.75rem}.btn-export{align-items:center;background:#000;border:1px solid #000;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.6rem 1.2rem;transition:all .2s}.btn-export:hover{background:#333}.btn-refresh{align-items:center;background:#fff;border:1px solid #ccc;border-radius:4px;color:#333;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.6rem 1.2rem;transition:all .2s}.btn-refresh:hover{background:#f5f5f5}.group-summary{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-bottom:2rem}.summary-card{border:1px solid #e0e0e0;padding:1.5rem}.summary-card-title{border-bottom:1px solid #eee;color:#666;font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:1rem;padding-bottom:.5rem;text-transform:uppercase}.summary-metrics{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}.metric{text-align:center}.metric-value{color:#000;font-size:1.5rem;font-weight:700}.metric-value.positive{color:#16a34a}.metric-value.negative{color:#dc2626}.metric-label{color:#666;font-size:.75rem;margin-top:.25rem}.city-section{border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem}.city-header{background:#f9f9f9;border-bottom:1px solid #e0e0e0;padding:1rem 1.5rem;transition:background .2s}.city-header:hover{background:#f0f0f0}.city-name{align-items:center;color:#000;display:flex;font-size:1.1rem;font-weight:600;gap:.5rem}.city-toggle{color:#666;font-size:1.2rem;transition:transform .2s}.city-toggle.expanded{transform:rotate(180deg)}.city-content{padding:1.5rem}.chapter{margin-bottom:1.5rem}.chapter:last-child{margin-bottom:0}.chapter-title{border-bottom:1px solid #eee;color:#333;font-size:.9rem;font-weight:600;margin-bottom:.75rem;padding-bottom:.5rem}.chapter-table{border-collapse:collapse;font-size:.85rem;width:100%}.chapter-table th{background:#f5f5f5;border-bottom:1px solid #ddd;color:#333;font-weight:600;padding:.6rem .75rem;text-align:left}.chapter-table th.numeric{text-align:right}.chapter-table td{border-bottom:1px solid #eee;color:#333;padding:.6rem .75rem}.chapter-table td.numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.chapter-table tr:last-child td{border-bottom:none}.chapter-table tr:hover{background:#fafafa}.loading-container{background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#666;margin:2rem 0;padding:4rem}.progress-wrapper{align-items:center;display:flex;gap:1rem;margin-bottom:1.5rem;max-width:400px;width:100%}.progress-bar-container{background:#e0e0e0;border-radius:6px;flex:1 1;height:12px;overflow:hidden;position:relative}.progress-bar-fill{background:linear-gradient(90deg,#000,#333);border-radius:6px;height:100%;position:relative;transition:width .3s ease}.progress-bar-fill:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#fff3 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.progress-percent{color:#000;font-size:1.25rem;font-weight:700;min-width:50px;text-align:right}.progress-message{color:#333;font-size:1rem;font-weight:500;margin:0 0 .5rem}.progress-detail{color:#666;font-size:.85rem;margin:0}.progress-city{color:#000;font-weight:600}.loading-spinner{animation:spin .8s linear infinite;border:3px solid #eee;border-top-color:#000}.error-container{color:#dc2626;padding:3rem;text-align:center}.error-message{font-size:1rem}.btn-retry{background:#fff;border:1px solid #dc2626;border-radius:4px;color:#dc2626;cursor:pointer;padding:.5rem 1rem}.no-data{padding:1rem}.chapter-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.chapter-section-title{border-bottom:2px solid #1f2937;color:#000;font-size:1.25rem;font-weight:700;margin:0 0 1.5rem;padding-bottom:.75rem}.chart-container{background:#fafafa;border-radius:8px;margin-bottom:1.5rem;padding:1rem}.comparison-table{font-size:.875rem}.comparison-table th{background:#f5f5f5;border-bottom:2px solid #ddd;color:#333;padding:.75rem 1rem}.comparison-table th.numeric{min-width:100px;text-align:right}.comparison-table td{border-bottom:1px solid #eee;color:#333;padding:.75rem 1rem}.comparison-table td.numeric{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.comparison-table tbody tr:hover{background:#f9f9f9}.comparison-table tbody tr:last-child td{border-bottom:none}.recharts-legend-wrapper{padding-top:.5rem!important}.recharts-legend-item-text{color:#666!important;font-size:.85rem!important}@media (max-width:768px){.report-header{flex-direction:column;gap:1rem}.report-header-left{align-items:flex-start;flex-direction:column}.group-summary{grid-template-columns:1fr}.summary-metrics{grid-template-columns:repeat(2,1fr)}}@media print{.weekly-report-page{max-width:100%;padding:0}.report-header-right{display:none}.chapter,.city-section{break-inside:avoid;page-break-inside:avoid}}.monthly-report-page{margin:0 auto;max-width:100%;overflow-x:auto;padding:1.5rem}.report-header{margin-bottom:1.5rem}.report-header h1{color:var(--black);font-size:1.5rem;font-weight:700;margin-bottom:1rem}.report-filters{align-items:flex-end;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.filter-group{gap:.25rem}.filter-group label{align-items:center;display:flex;font-weight:600;gap:.25rem}.filter-group select{font-size:.875rem;padding:.5rem .75rem}.filter-group select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a}.filter-actions{display:flex;gap:.5rem;margin-left:auto}.btn-export,.btn-refresh{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.btn-refresh{background:var(--primary);border:none;color:#fff}.btn-refresh:hover:not(:disabled){background:var(--primary-dark)}.btn-refresh:disabled{cursor:not-allowed;opacity:.6}.btn-refresh .spinning{animation:spin 1s linear infinite}.btn-export{background:#fff;border:1px solid #e2e8f0;color:#64748b}.btn-export:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.btn-export:disabled{cursor:not-allowed;opacity:.5}.error-message{background:#ef44441a;border:1px solid #ef444433}.loading-overlay{color:#64748b;flex-direction:column;padding:4rem}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top:3px solid var(--primary);height:40px;margin-bottom:1rem;width:40px}.report-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.report-metadata{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.period{color:var(--black);font-size:1.1rem;font-weight:600}.comparison{background:#e2e8f0;border-radius:4px;color:#64748b;font-size:.8rem;padding:.25rem .75rem}.pl-table-container{overflow-x:auto}.pl-table{border-collapse:collapse;font-size:.8125rem;min-width:1200px;width:100%}.pl-table thead{position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-row-main{background:#1e293b}.header-row-main th{border-right:1px solid #334155;color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:.75rem .5rem;text-align:center;text-transform:uppercase}.header-row-main th.col-label{background:#0f172a;left:0;min-width:200px;padding-left:1rem;position:-webkit-sticky;position:sticky;text-align:left;z-index:20}.parking-header{background:#334155}.total-header{background:#7c3aed}.header-row-sub{background:#f1f5f9}.header-row-sub th{border-right:1px solid #e2e8f0;color:#64748b;font-size:.7rem;font-weight:500;padding:.5rem;text-align:right}.header-row-sub th.col-n1{border-right:2px solid #cbd5e1;color:#94a3b8}.header-row-sub th.col-total,.header-row-sub th.col-variation{background:#f5f3ff;color:#7c3aed;font-weight:600}.pl-table tbody td{border-bottom:1px solid #f1f5f9;padding:.5rem}.section-header-row{cursor:pointer;-webkit-user-select:none;user-select:none}.section-header-row td{font-size:.8rem;font-weight:600;letter-spacing:.025em;padding:.75rem 1rem!important}.section-produits td{background:#1e40af;color:#fff}.section-charges td{background:#dc2626;color:#fff}.section-kpis td{background:#0f766e;color:#fff}.section-title{align-items:center;display:flex;gap:.5rem}.section-title svg{font-size:1.25rem}.pl-row td{text-align:right}.pl-label{background:#fff;color:var(--black);left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left!important;z-index:5}.pl-value{color:var(--black);font-family:SF Mono,Consolas,monospace;font-size:.75rem;min-width:70px}.pl-value-n1{border-right:2px solid #e2e8f0;color:#94a3b8}.pl-value-total{background:#faf5ff;color:#7c3aed;font-weight:600}.pl-variation{border-radius:2px;font-size:.7rem;font-weight:500;min-width:60px;padding:.25rem .5rem!important;text-align:center!important}.pl-row-group{background:#f8fafc}.pl-row-group td{border-bottom:1px solid #e2e8f0}.pl-row-group .pl-label{background:#f8fafc}.pl-row-total{background:#f1f5f9;border-top:2px solid #e2e8f0}.pl-row-total td{font-weight:600;padding-bottom:.75rem!important;padding-top:.75rem!important}.pl-row-total .pl-label{background:#f1f5f9}.kpi-row td{text-align:right}.kpi-label{background:#fff;color:var(--black);left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left!important;z-index:5}.kpi-value{color:var(--black);font-family:SF Mono,Consolas,monospace;font-size:.75rem;min-width:70px}.kpi-value-n1{border-right:2px solid #e2e8f0;color:#94a3b8}.kpi-value-total{background:#faf5ff;color:#7c3aed;font-weight:600}.kpi-variation{border-radius:2px;font-size:.7rem;font-weight:500;min-width:60px;padding:.25rem .5rem!important;text-align:center!important}.spacer-row td{border-bottom:none!important;height:8px;padding:0!important}.separator-row td{background:#e2e8f0;height:12px;padding:0!important}.result-row{background:#fef3c7}.result-row td{border-bottom:1px solid #fcd34d;border-top:2px solid #fbbf24;padding:.75rem .5rem!important}.result-label{background:#fef3c7;color:#92400e;font-weight:700;left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left!important;z-index:5}.result-value{font-family:SF Mono,Consolas,monospace;font-size:.8rem;font-weight:600;text-align:right}.result-value.positive{color:#16a34a}.result-value.negative{color:#dc2626}.result-value-n1{border-right:2px solid #fcd34d;color:#94a3b8}.result-value-total{background:#fde68a}.result-variation{border-radius:2px;font-size:.75rem;font-weight:600;padding:.25rem .5rem!important;text-align:center!important}.margin-row{background:#f8fafc}.margin-row td{border-bottom:2px solid #e2e8f0;padding:.5rem!important}.margin-label{background:#f8fafc;color:#64748b;font-style:italic;left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left!important;z-index:5}.margin-value{color:#64748b;font-family:SF Mono,Consolas,monospace;font-size:.75rem;text-align:right}.margin-value-n1{border-right:2px solid #e2e8f0;color:#94a3b8}.margin-value-total{background:#faf5ff;color:#7c3aed;font-weight:500}.margin-empty,.summary-section{background:#f8fafc}.summary-section{border-top:1px solid #e2e8f0;padding:1.5rem}.summary-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr)}.summary-card{border-radius:8px;padding:1rem}.card-header{margin-bottom:.5rem}.card-title{color:#64748b;font-size:.75rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.trend-up{color:#16a34a;font-size:1.25rem}.trend-down{color:#dc2626;font-size:1.25rem}.card-value{color:var(--black);font-family:SF Mono,Consolas,monospace;font-size:1.5rem;font-weight:700;margin-bottom:.5rem}.card-value.expense{color:#dc2626}.card-value.positive{color:#16a34a}.card-value.negative{color:#dc2626}.card-comparison{align-items:center;display:flex;font-size:.75rem;justify-content:space-between}.n1-value{color:#94a3b8}.variation{border-radius:4px;font-weight:600;padding:.125rem .5rem}@media (max-width:1400px){.summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1024px){.report-filters{align-items:stretch;flex-direction:column}.filter-group select{min-width:100%}.filter-actions{margin-left:0;margin-top:.5rem}.pl-table{font-size:.7rem}.kpi-value,.pl-value{font-size:.65rem;min-width:55px}.kpi-label,.margin-label,.pl-label,.result-label{min-width:150px}}@media (max-width:768px){.monthly-report-page{padding:1rem}.summary-grid{grid-template-columns:1fr}.card-value{font-size:1.25rem}}.annual-report-page{margin:0 auto;max-width:100%;padding:1.5rem}.annual-report-page .report-header{margin-bottom:1.5rem}.annual-report-page .report-header h1{color:var(--black);font-size:1.5rem;font-weight:700;margin-bottom:1rem}.annual-report-page .report-filters{align-items:flex-end;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.annual-report-page .filter-group{display:flex;flex-direction:column;gap:.25rem}.annual-report-page .filter-group label{align-items:center;color:#64748b;display:flex;font-size:.75rem;font-weight:600;gap:.25rem}.annual-report-page .filter-group select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.875rem;min-width:150px;padding:.5rem .75rem}.annual-report-page .filter-group select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #3b82f61a;outline:none}.toggle-group{align-items:center!important}.toggle-btn{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:all .2s}.toggle-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.toggle-btn:hover:not(.active){background:#f8fafc}.annual-report-page .filter-actions{display:flex;gap:.5rem;margin-left:auto}.annual-report-page .btn-export,.annual-report-page .btn-refresh{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.annual-report-page .btn-refresh{background:var(--primary);border:none;color:#fff}.annual-report-page .btn-refresh:hover:not(:disabled){background:var(--primary-dark)}.annual-report-page .btn-refresh:disabled{cursor:not-allowed;opacity:.6}.annual-report-page .btn-refresh .spinning{animation:spin 1s linear infinite}.annual-report-page .btn-export{background:#fff;border:1px solid #e2e8f0;color:#64748b}.annual-report-page .btn-export:hover:not(:disabled){background:#f8fafc;border-color:#cbd5e1}.annual-report-page .btn-export:disabled{cursor:not-allowed;opacity:.5}.annual-report-page .error-message{background:#ef44441a;border:1px solid #ef444433;border-radius:8px;color:#dc2626;margin-bottom:1rem;padding:1rem}.annual-report-page .loading-overlay{align-items:center;color:#64748b;display:flex;flex-direction:column;justify-content:center;padding:4rem}.annual-report-page .loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top:3px solid var(--primary);height:40px;margin-bottom:1rem;width:40px}.annual-report-page .report-content{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.annual-report-page .report-metadata{align-items:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:1rem 1.5rem}.annual-report-page .entity-name{color:var(--black);font-weight:600}.annual-report-page .period{color:#64748b;font-weight:500}.annual-table-container{overflow-x:auto;position:relative}.annual-table{border-collapse:collapse;font-size:.8125rem;min-width:1200px;width:100%}.annual-table thead{background:#1e293b;color:#fff;position:-webkit-sticky;position:sticky;top:0;z-index:10}.annual-table th{font-size:.75rem;font-weight:600;letter-spacing:.025em;padding:.75rem .5rem;text-align:center;text-transform:uppercase;white-space:nowrap}.annual-table th.col-label{background:#1e293b;left:0;min-width:200px;position:-webkit-sticky;position:sticky;text-align:left;z-index:11}.annual-table th.col-month{min-width:75px}.annual-table th.col-total{background:#0f172a;min-width:90px}.sticky-col{background:#fff;left:0;position:-webkit-sticky;position:sticky;z-index:5}.annual-table td{border-bottom:1px solid #f1f5f9;padding:.5rem;text-align:center}.annual-table td.col-label{padding-left:12px;text-align:left}.annual-table td.col-total{background:#f8fafc;font-weight:600}.cell-content{align-items:center;display:flex;flex-direction:column;gap:2px}.value-n{font-size:.75rem}.value-n,.value-n1{font-family:SF Mono,Consolas,monospace}.value-n1{color:#94a3b8;font-size:.625rem}.row-header{background:#1e293b!important;color:#fff}.row-header td{border-bottom:none;font-weight:600;padding:.75rem .5rem}.row-header .sticky-col{background:#1e293b}.header-toggle{align-items:center;cursor:pointer;display:flex;gap:.5rem;-webkit-user-select:none;user-select:none}.header-toggle svg{font-size:1.25rem}.row-group{background:#f3f4f6}.row-group td{border-bottom:1px solid #e2e8f0;font-weight:500}.row-group .sticky-col{background:#f3f4f6}.row-total{background:#f8fafc;border-top:2px solid #e2e8f0}.row-total td{font-weight:600;padding-bottom:.75rem;padding-top:.75rem}.row-total .sticky-col{background:#f8fafc}.row-result{background:#7c3aed;color:#fff}.row-result td{font-size:.875rem;font-weight:700;padding:.875rem .5rem}.row-result .sticky-col{background:#7c3aed}.row-indent td.col-label{color:#64748b}.separator-row td{background:#f1f5f9;height:8px;padding:0}.annual-summary{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;flex-wrap:wrap;gap:1.5rem;padding:1.5rem}.summary-item{display:flex;flex-direction:column;gap:.25rem}.summary-item span{color:#64748b;font-size:.75rem;text-transform:uppercase}.summary-item strong{color:var(--black);font-family:SF Mono,Consolas,monospace;font-size:1.125rem}.summary-item strong.expense{color:#dc2626}.summary-item strong.positive{color:#16a34a}.summary-item strong.negative{color:#dc2626}.summary-item.margin,.summary-item.result{border-left:2px solid #e2e8f0;padding-left:1.5rem}@media (max-width:1024px){.annual-report-page .report-filters{align-items:stretch;flex-direction:column}.annual-report-page .filter-group select{min-width:100%}.annual-report-page .filter-actions{margin-left:0;margin-top:.5rem}.annual-table{font-size:.75rem}.annual-table td,.annual-table th{padding:.375rem .25rem}.annual-table td.col-label,.annual-table th.col-label{min-width:150px}.annual-table td.col-month,.annual-table th.col-month{min-width:60px}}@media (max-width:768px){.annual-report-page{padding:1rem}.annual-summary{flex-direction:column;gap:1rem}.summary-item.margin,.summary-item.result{border-left:none;border-top:1px solid #e2e8f0;padding-left:0;padding-top:1rem}}.divers-module-page{margin:0 auto;max-width:1200px;padding:24px}.module-header h1{color:#2d3748;font-size:28px;font-weight:600;margin:0 0 8px}.module-header p{color:#718096;font-size:16px;margin:0}.app-card{align-items:center;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.app-card:hover{border-color:#cbd5e0;box-shadow:0 4px 6px #0000001a;transform:translateY(-2px)}.app-icon{align-items:center;background:#f7fafc;border:1px solid #e2e8f0;border-radius:12px;display:flex;font-size:36px;height:56px;justify-content:center;margin-right:20px;width:56px}.app-content{flex:1 1}.app-content h3{color:#2d3748;font-size:17px;font-weight:600;margin:0 0 6px}.app-content p{color:#718096;font-size:14px;line-height:1.4;margin:0}.app-arrow{color:#a0aec0;font-size:20px;transition:all .2s ease}.app-card:hover .app-arrow{color:#4a5568;transform:translateX(4px)}.labels-page{margin:0 auto;max-width:1000px;padding:24px}.loading-indicator{color:#718096;font-size:14px;padding:10px 14px}.radio-group{display:flex;gap:12px}.radio-label{align-items:center;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;padding:12px 16px;transition:all .2s ease}.radio-label:hover{border-color:#cbd5e0}.radio-label.selected{background:#ebf8ff;border-color:#4299e1}.radio-label input[type=radio]{display:none}.radio-content{display:flex;flex-direction:column;gap:2px}.radio-content strong{color:#2d3748;font-size:14px}.radio-content small{color:#718096;font-size:12px}.date-label{background:#f7fafc;border-radius:6px;color:#718096;font-size:14px;padding:6px 12px}.arrivals-preview{margin-bottom:24px}.arrivals-preview table{border-collapse:collapse;width:100%}.arrivals-preview td,.arrivals-preview th{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left}.arrivals-preview th{background:#f7fafc;color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.arrivals-preview td{color:#2d3748;font-size:14px}.arrivals-preview .nom-client{font-weight:600}.arrivals-preview .immat{background:#f7fafc;border-radius:4px;font-family:monospace;font-size:13px;padding:4px 8px}.more-results{color:#718096;font-size:14px;font-style:italic;padding:12px;text-align:center}.generate-section{align-items:center;border-top:1px solid #e2e8f0;display:flex;gap:16px;padding-top:16px}.generate-btn{background:#2d3748;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:14px 28px;transition:all .2s ease}.generate-btn:hover:not(:disabled){background:#1a202c;transform:translateY(-1px)}.generate-btn:disabled{background:#a0aec0;cursor:not-allowed}.format-info{color:#718096;font-size:13px}@media (max-width:768px){.controls-section,.radio-group{flex-direction:column}.results-header{gap:12px}.generate-section,.results-header{align-items:flex-start;flex-direction:column}}.electric-transactions-page{margin:0 auto;max-width:1400px;padding:24px}.control-group input[type=date],.control-group select{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#2d3748;font-size:15px;min-width:200px;padding:10px 14px}.control-group input[type=date]:focus,.control-group select:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e126;outline:none}.fetch-btn{background:#38a169}.fetch-btn:hover:not(:disabled){background:#2f855a}.success-message{background:#c6f6d5;border-radius:8px;color:#276749;font-size:14px;margin-bottom:24px;padding:12px 16px}.stats-section{flex-wrap:wrap;gap:16px;margin-bottom:24px}.stat-card{border:1px solid #e2e8f0;border-radius:12px;min-width:150px;padding:20px 24px;text-align:center}.stat-card-wide{flex:1 1;min-width:300px;text-align:left}.stat-value{color:#2d3748;margin-bottom:4px}.stat-label{color:#718096}.site-breakdown{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.site-stat{background:#f7fafc;border-radius:6px;color:#4a5568;font-size:14px;padding:6px 12px}.results-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:24px}.results-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.results-header h2{color:#2d3748;font-size:18px;font-weight:600;margin:0}.results-count{background:#f7fafc;border-radius:6px;color:#718096;padding:6px 12px}.transactions-table{border-collapse:collapse;width:100%}.transactions-table td,.transactions-table th{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left}.transactions-table th{background:#f7fafc;color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0}.transactions-table td{color:#2d3748;font-size:14px}.transactions-table tbody tr:hover{background:#f7fafc}.date-cell{font-size:13px;white-space:nowrap}.station-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.number-cell{font-size:13px}.no-results{font-size:15px;padding:48px 24px}.no-results,.pagination-info{color:#718096;text-align:center}.pagination-info{border-top:1px solid #e2e8f0;font-size:13px;margin-top:16px;padding:16px}.tabs-container{background:#f7fafc;border-radius:12px;display:flex;gap:8px;margin-bottom:24px;padding:4px;width:-webkit-fit-content;width:fit-content}.tab-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#718096;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:12px 20px;transition:all .2s ease}.tab-btn:hover{background:#edf2f7;color:#4a5568}.tab-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#2d3748}.analysis-controls{background:#fff;border-radius:12px;display:flex;gap:16px;padding:16px 24px}.analysis-controls,.comparison-section{border:1px solid #e2e8f0;margin-bottom:24px}.comparison-section h2{color:#2d3748;font-size:18px;font-weight:600;margin:0 0 20px}.comparison-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.comparison-card{background:#f7fafc;border-radius:10px;padding:16px;position:relative}.comparison-card.highlight{background:linear-gradient(135deg,#ebf8ff,#e6fffa);border:2px solid #38b2ac}.comparison-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.metric-name{color:#4a5568;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.metric-badge{background:#38b2ac;border-radius:10px;color:#fff;font-size:10px;font-weight:600;padding:2px 8px}.comparison-values{display:flex;flex-direction:column;gap:8px}.site-value{align-items:center;display:flex;justify-content:space-between}.site-label{border-radius:4px;font-size:12px;font-weight:500;padding:2px 8px}.site-label.bordeaux{background:#fed7d7;color:#c53030}.site-label.nantes{background:#bee3f8;color:#2b6cb0}.site-value .value{color:#2d3748;font-size:18px;font-weight:700}.delta{display:block;font-size:12px;font-weight:600;margin-top:8px;padding:4px 8px;text-align:center}.delta.positive{background:#c6f6d5;color:#276749}.delta.negative{background:#fed7d7;color:#c53030}.chart-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:24px}.chart-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.chart-header h2{color:#2d3748;font-size:18px;font-weight:600;margin:0}.chart-toggle{background:#f7fafc;border-radius:8px;display:flex;gap:4px;padding:4px}.chart-toggle button{background:#0000;border:none;border-radius:6px;color:#718096;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease}.chart-toggle button:hover{color:#4a5568}.chart-toggle button.active{background:#fff;box-shadow:0 1px 2px #0000001a;color:#2d3748}.chart-container{width:100%}.analysis-table-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:24px}.analysis-table-section h2{color:#2d3748;font-size:18px;font-weight:600;margin:0 0 8px}.section-desc{color:#718096;font-size:13px;margin:0 0 16px}.analysis-table{border-collapse:collapse;width:100%}.analysis-table td,.analysis-table th{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left}.analysis-table th{background:#f7fafc;color:#4a5568;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.analysis-table td{color:#2d3748;font-size:14px}.analysis-table tbody tr:hover{background:#f7fafc}.analysis-table tbody tr.high-kwh{background:#fffaf0}.analysis-table tbody tr.high-kwh:hover{background:#feebc8}.site-badge{border-radius:4px;font-size:11px;font-weight:600;padding:3px 8px}.site-badge.bordeaux{background:#fed7d7;color:#c53030}.site-badge.nantes{background:#bee3f8;color:#2b6cb0}@media (max-width:768px){.controls-section{flex-direction:column}.fetch-group{margin-left:0;width:100%}.fetch-btn{width:100%}.stat-card{flex-basis:calc(50% - 8px);flex-grow:1;flex-shrink:1;min-width:120px}.results-header{align-items:flex-start;flex-direction:column;gap:12px}.transactions-table td,.transactions-table th{font-size:12px;padding:8px}}.electric-qr-page{margin:0 auto;max-width:1400px;padding:20px}.page-header h1{color:#1e293b}.error-message,.success-message{align-items:center;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.error-message{border:1px solid #fecaca}.success-message{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.error-message button{background:none;border:none;color:inherit;cursor:pointer;font-size:18px}.tabs{border-bottom:1px solid #e2e8f0;gap:8px;padding-bottom:8px}.tab{background:none;border:none;border-radius:6px 6px 0 0;color:#64748b;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.tab:hover{background:#f1f5f9;color:#1e293b}.tab.active{background:#eff6ff;border-bottom:2px solid #2563eb;color:#2563eb}.tab-content{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.section-header h2{color:#1e293b;font-size:18px;font-weight:600}.btn-primary{background:#2563eb;padding:10px 16px}.btn-primary:hover{background:#1d4ed8}.btn-primary:disabled{background:#94a3b8}.btn-secondary{border:1px solid #e2e8f0;padding:8px 12px}.btn-danger{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;font-weight:500;padding:8px 12px}.btn-danger:hover{background:#fee2e2}.btn-success{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#16a34a;cursor:pointer;font-weight:500;padding:8px 12px}.btn-success:hover{background:#dcfce7}.btn-pdf{background:#32678a;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:8px 12px;transition:background .2s}.btn-pdf:hover{background:#2a576f}.create-form{background:#f8fafc;border-radius:8px;margin-bottom:24px;padding:20px}.form-row{align-items:flex-end;display:flex}.form-group{flex:1 1}.form-group label{color:#475569}.form-group input,.form-group select{border-radius:6px;padding:10px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.qr-cards{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.qr-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;transition:box-shadow .2s}.qr-card:hover{box-shadow:0 4px 12px #0000001a}.qr-card.inactive{background:#f8fafc;opacity:.6}.qr-header{display:flex;justify-content:space-between;margin-bottom:12px}.qr-card h3{color:#1e293b;font-size:18px;margin:0 0 12px}.qr-info{margin-bottom:16px}.qr-info p{color:#64748b;font-size:13px;margin:6px 0}.qr-info strong{color:#475569}.qr-actions{display:flex;gap:8px}.site-badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px;text-transform:capitalize}.site-badge.bordeaux{background:#fef3c7;color:#92400e}.site-badge.nantes{background:#dbeafe;color:#1e40af}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.inactive{background:#f1f5f9;color:#64748b}.filters-section{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:20px}.filter-group label{color:#475569;font-size:14px}.filter-group input,.filter-group select{border:1px solid #e2e8f0;border-radius:6px;font-size:14px;min-width:150px;padding:8px 12px}.results-count{color:#64748b;font-size:14px;margin-bottom:12px}.scans-table{border-collapse:collapse;width:100%}.scans-table td,.scans-table th{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left}.scans-table th{background:#f8fafc;color:#475569;font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.scans-table td{color:#1e293b;font-size:14px}.scans-table tr:hover{background:#f8fafc}.plate-cell{font-family:Courier New,monospace;font-weight:600;letter-spacing:1px}.comment-cell{color:#64748b;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-tag{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.status-tag.avant_charge{background:#fef3c7;color:#92400e}.status-tag.en_charge{background:#dcfce7;color:#166534}.status-tag.apres_charge{background:#dbeafe;color:#1e40af}.doc-content h2{color:#1e293b;margin-top:0}.doc-content h2,.doc-section{margin-bottom:24px}.doc-section h3{color:#475569;font-size:16px;margin-bottom:12px}.doc-section p{color:#64748b;line-height:1.6}.doc-section ul{color:#64748b;padding-left:20px}.doc-section li{margin-bottom:8px}code.endpoint{border-radius:6px;color:#10b981;display:block;font-size:14px;padding:12px 16px}.code-block,code.endpoint{background:#1e293b;overflow-x:auto}.code-block{border-radius:8px;color:#e2e8f0;font-size:13px;line-height:1.6;padding:16px}.note{color:#94a3b8;font-size:13px;font-style:italic;margin-top:8px}.loading,.no-data{color:#64748b;padding:40px;text-align:center}@media (max-width:768px){.filters-section,.form-row{flex-direction:column}.qr-cards{grid-template-columns:1fr}.tabs{flex-wrap:wrap}}.survey-list-page{margin:0 auto;max-width:1400px;padding:24px}.header-left h1{color:#1a1a2e;font-size:1.6rem;margin:0 0 4px}.header-left .subtitle{color:#6b7280;font-size:.9rem;margin:0}.btn-primary:hover{background:#2d2d44;transform:translateY(-1px)}.filters-bar{background:#f8fafc;border-radius:10px}.filter-group{gap:4px}.filter-group label{color:#6b7280;font-size:.75rem;letter-spacing:.5px}.empty-state,.loading-state{align-items:center;color:#6b7280;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.empty-state svg{color:#cbd5e1;margin-bottom:16px}.empty-state p{font-size:1rem;margin:0 0 16px}.surveys-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.survey-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;padding:20px;transition:all .2s}.survey-card:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.card-header{align-items:flex-start;margin-bottom:12px}.card-header h3{color:#1a1a2e;font-size:1.1rem;font-weight:600;margin:0}.card-description{color:#6b7280;font-size:.85rem;line-height:1.4;margin:0 0 16px}.card-stats{border-bottom:1px solid #f1f5f9;display:flex;gap:20px;margin-bottom:16px;padding-bottom:16px}.card-stats .stat{align-items:center;color:#64748b;display:flex;font-size:.85rem;gap:6px}.card-stats .stat svg{color:#94a3b8}.card-footer .date{color:#94a3b8;font-size:.8rem}.btn-delete{align-items:center;background:#fef2f2;border-radius:6px;color:#ef4444;display:flex;height:32px;justify-content:center;width:32px}.btn-delete:hover{background:#fee2e2}.modal-content{border-radius:12px;max-width:400px;padding:24px;width:90%}.modal-content h3{color:#1a1a2e;font-size:1.1rem;margin:0 0 12px}.modal-content p{color:#6b7280;margin:0 0 20px}.btn-danger{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.btn-danger:hover{background:#dc2626}@media (max-width:768px){.page-header{flex-direction:column;gap:16px}.surveys-grid{grid-template-columns:1fr}}.survey-create-page{margin:0 auto;max-width:900px;padding:24px}.btn-back{border-radius:6px;font-size:.9rem;gap:6px;padding:8px 12px}.page-header h1{font-size:1.4rem}.form-sections{display:flex;flex-direction:column;gap:24px}.form-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px}.form-section h2{border-bottom:1px solid #f1f5f9;color:#1a1a2e;font-size:1.1rem;margin:0 0 20px;padding-bottom:12px}.section-header{margin-bottom:20px;padding-bottom:12px}.section-header h2{border:none;margin:0;padding:0}.form-group label{font-size:.85rem;margin-bottom:6px}.form-group input[type=date],.form-group input[type=number],.form-group input[type=text],.form-group textarea{border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:10px 12px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group textarea:focus{border-color:#1a1a2e;outline:none}.form-row{grid-template-columns:repeat(2,1fr)}.method-toggle{background:#f1f5f9;border-radius:8px;display:flex;gap:4px;padding:4px;width:-webkit-fit-content;width:fit-content}.method-toggle button{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;font-size:.9rem;padding:8px 16px;transition:all .2s}.method-toggle button:hover{color:#1a1a2e}.method-toggle button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1a1a2e;font-weight:500}.checkbox-label{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;gap:10px;padding:12px 16px;transition:all .2s}.checkbox-label:hover{background:#f1f5f9}.checkbox-label input[type=checkbox]{accent-color:#1a1a2e;cursor:pointer;height:18px;width:18px}.checkbox-label span{color:#1a1a2e;font-size:.9rem;font-weight:500}.checkbox-label small{color:#6b7280;font-size:.8rem;font-weight:400}.last-days-input{align-items:center;display:flex;gap:10px}.last-days-input input{border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:10px 12px;text-align:center;width:80px}.last-days-input span{color:#6b7280;font-size:.9rem}.parking-selector select{background:#fff;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;font-size:.9rem;padding:10px 12px;width:100%}.parking-selector select:focus{border-color:#1a1a2e;outline:none}.parking-quotas-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.parking-quota-row{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px 16px}.parking-quota-row .parking-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.parking-quota-row .parking-name{color:#1a1a2e;font-size:.9rem;font-weight:500}.parking-quota-row .parking-city{color:#6b7280;font-size:.75rem}.parking-quota-row .quota-input{align-items:center;display:flex;gap:8px}.parking-quota-row .quota-input input{border:1px solid #e5e7eb;border-radius:6px;font-size:.9rem;padding:6px 8px;text-align:center;width:60px}.parking-quota-row .quota-input span{color:#6b7280;font-size:.8rem}.parking-quota-row .btn-remove{align-items:center;background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.parking-quota-row .btn-remove:hover{background:#fef2f2;color:#ef4444}.total-quota{background:#1a1a2e;border-radius:8px;color:#fff;font-size:.9rem;padding:12px 16px;text-align:right}.total-quota strong{font-size:1.1rem}.parkings-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.parking-checkbox{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;cursor:pointer;display:flex;gap:8px;padding:10px 12px;transition:all .2s}.parking-checkbox:hover{background:#f1f5f9}.parking-checkbox.selected{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.parking-checkbox input{display:none}.btn-add{align-items:center;background:#f1f5f9;border:none;border-radius:6px;color:#475569;cursor:pointer;display:flex;font-size:.85rem;gap:6px;padding:8px 14px;transition:all .2s}.btn-add:hover{background:#e2e8f0}.empty-questions{color:#6b7280;padding:40px 20px;text-align:center}.questions-list{display:flex;flex-direction:column;gap:16px}.question-card{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;overflow:hidden}.question-header{align-items:center;background:#f1f5f9;border-bottom:1px solid #e5e7eb;display:flex;gap:12px;padding:12px 16px}.drag-handle{color:#94a3b8;cursor:grab}.question-number{color:#1a1a2e;font-size:.9rem;font-weight:600}.question-type-toggle{display:flex;gap:4px;margin-left:auto}.question-type-toggle button{align-items:center;background:#fff;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.question-type-toggle button:hover{color:#475569}.question-type-toggle button.active{background:#1a1a2e;color:#fff}.btn-delete-question{align-items:center;background:#0000;border:none;border-radius:6px;color:#ef4444;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-delete-question:hover{background:#fef2f2}.question-body{padding:16px}.question-input{background:#fff;border:1px solid #e5e7eb;border-radius:8px;font-size:.95rem;padding:12px;width:100%}.question-input:focus{border-color:#1a1a2e;outline:none}.options-list{margin-top:16px}.options-label{color:#6b7280;display:block;font-size:.8rem;letter-spacing:.5px;margin-bottom:10px;text-transform:uppercase}.option-row{display:flex;gap:8px;margin-bottom:8px}.option-row input{background:#fff;border:1px solid #e5e7eb;border-radius:6px;flex:1 1;font-size:.9rem;padding:8px 12px}.option-row input:focus{border-color:#1a1a2e;outline:none}.btn-remove-option{align-items:center;background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.btn-remove-option:hover{background:#fef2f2;color:#ef4444}.btn-add-option{align-items:center;background:#0000;border:1px dashed #cbd5e1;border-radius:6px;color:#64748b;cursor:pointer;display:flex;font-size:.85rem;gap:6px;margin-top:8px;padding:8px 12px;transition:all .2s}.btn-add-option:hover{border-color:#94a3b8;color:#475569}.question-footer{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:16px;padding-top:12px}.required-toggle{align-items:center;color:#6b7280;cursor:pointer;display:flex;font-size:.85rem;gap:8px}.required-toggle input{height:16px;width:16px}.btn-save-question{align-items:center;background:#1a1a2e;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.8rem;gap:6px;padding:6px 12px;transition:all .2s}.btn-save-question:hover{background:#2d2d44}.page-actions{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px}.btn-extract{align-items:center;background:#10b981;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;gap:8px;padding:10px 20px;transition:all .2s}.btn-extract:hover:not(:disabled){background:#059669}.btn-extract:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.form-row{grid-template-columns:1fr}.parkings-grid{grid-template-columns:1fr 1fr}.page-actions{flex-direction:column}.page-actions button{justify-content:center;width:100%}}.survey-detail-page{margin:0 auto;max-width:1200px;padding:24px}.btn-back{align-items:center;background:#f1f5f9;border:none;border-radius:8px;color:#475569;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.btn-back:hover{background:#e2e8f0}.header-info{align-items:center;display:flex;gap:12px}.header-info h1{color:#1a1a2e;font-size:1.4rem;margin:0}.status-badge{font-size:.75rem;padding:4px 12px}.header-actions{gap:10px}.btn-secondary{align-items:center;background:#f1f5f9;border:none;border-radius:8px;color:#475569;display:flex;font-size:.9rem;gap:6px;padding:8px 16px}.btn-secondary:hover{background:#e2e8f0}.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.loading-state .spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#1a1a2e;height:40px;width:40px}.stats-bar{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}.stat-item{background:#f8fafc;flex:1 1;padding:12px}.stat-item.highlight{background:#1a1a2e}.stat-item.highlight .stat-label,.stat-item.highlight .stat-value{color:#fff}.stat-value{font-size:1.8rem}.stat-label{color:#6b7280;font-size:.8rem;letter-spacing:.5px;text-transform:uppercase}.tabs{background:#f1f5f9;border-radius:10px;display:flex;gap:4px;margin-bottom:24px;padding:4px;width:-webkit-fit-content;width:fit-content}.tabs button{background:#0000;border:none;border-radius:8px;color:#64748b;cursor:pointer;font-size:.9rem;padding:10px 20px;transition:all .2s}.tabs button:hover{color:#1a1a2e}.tabs button.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#1a1a2e;font-weight:500}.clients-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden}.section-header{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;justify-content:space-between;padding:16px 20px}.filter-group select{background:#fff;border:1px solid #e5e7eb;font-size:.9rem}.empty-state{color:#6b7280;padding:60px 20px}.clients-table{overflow-x:auto}.clients-table table{border-collapse:collapse;width:100%}.clients-table td,.clients-table th{border-bottom:1px solid #f1f5f9;padding:12px 16px;text-align:left}.clients-table th{background:#f8fafc;color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.clients-table td{color:#374151;font-size:.9rem}.client-name{color:#1a1a2e;font-weight:500}.client-phone a{color:#3b82f6;text-decoration:none}.client-phone a:hover{text-decoration:underline}.btn-call,.status-cell{align-items:center;display:flex;gap:6px}.btn-call{background:#1a1a2e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;padding:6px 12px;transition:all .2s}.btn-call:hover{background:#2d2d44}.stats-section{display:flex;flex-direction:column;gap:20px}.question-stat{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px}.question-stat h3{color:#1a1a2e;font-size:1rem;margin:0 0 8px}.responses-count{color:#6b7280;font-size:.85rem;margin:0 0 16px}.responses-chart{gap:12px}.response-bar,.responses-chart{display:flex;flex-direction:column}.response-bar{gap:4px}.bar-label{color:#374151;display:flex;font-size:.85rem;justify-content:space-between}.bar-bg{background:#f1f5f9;border-radius:6px;height:24px;overflow:hidden}.bar-fill{background:#1a1a2e;border-radius:6px;height:100%;transition:width .3s}.modal-overlay{padding:20px}.modal-content{background:#fff;border-radius:16px;display:flex;flex-direction:column;max-height:90vh;max-width:600px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#1a1a2e;font-size:1.2rem;margin:0}.btn-close{align-items:center;background:#f1f5f9;border:none;border-radius:8px;color:#64748b;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.btn-close:hover{background:#e2e8f0}.client-info{background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:16px 24px}.client-info p{color:#374151;font-size:.9rem;margin:4px 0}.client-info a{color:#3b82f6;text-decoration:none}.modal-body{flex:1 1;overflow-y:auto;padding:24px}.call-question{margin-bottom:20px}.call-question label{color:#374151;display:block;font-size:.9rem;font-weight:500;margin-bottom:8px}.call-question textarea{border:1px solid #e5e7eb;border-radius:8px;font-size:.9rem;padding:10px 12px;resize:vertical;width:100%}.call-question textarea:focus{border-color:#1a1a2e;outline:none}.options-grid{display:flex;flex-wrap:wrap;gap:8px}.option-radio{align-items:center;background:#f8fafc;border:1px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;padding:8px 14px;transition:all .2s}.option-radio:hover{background:#f1f5f9}.option-radio.selected{background:#1a1a2e;border-color:#1a1a2e;color:#fff}.option-radio input{display:none}.status-options{display:flex;flex-wrap:wrap;gap:8px}.status-radio{align-items:center;background:#f8fafc;border:2px solid #e5e7eb;border-radius:6px;cursor:pointer;display:flex;padding:8px 14px;transition:all .2s}.status-radio:hover{background:#f1f5f9}.status-radio.selected{background:color-mix(in srgb,var(--status-color) 10%,#fff);border-color:var(--status-color)}.status-radio input{display:none}.modal-footer{border-top:1px solid #e5e7eb;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.btn-primary{background:#1a1a2e;border-radius:8px;font-size:.9rem;transition:all .2s}.btn-primary:hover:not(:disabled){background:#2d2d44}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column;gap:16px}.header-actions{width:100%}.header-actions button{flex:1 1;justify-content:center}.stats-bar{flex-wrap:wrap}.stat-item{min-width:calc(50% - 8px)}.clients-table{font-size:.85rem}}.customer-loyalty-page{margin:0 auto;max-width:1600px;padding:24px}.page-header h1{color:#2d3748;font-size:28px}.page-header p{color:#718096;font-size:16px}.controls-section{align-items:flex-end;background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;flex-wrap:wrap;gap:24px;margin-bottom:24px;padding:24px}.control-group{display:flex;flex-direction:column;gap:8px}.control-group label{color:#4a5568;font-size:14px;font-weight:500}.control-group input[type=month]{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#2d3748;font-size:15px;min-width:180px;padding:10px 14px}.control-group input[type=month]:focus{border-color:#4299e1;box-shadow:0 0 0 3px #4299e126;outline:none}.city-chips{display:flex;flex-wrap:wrap;gap:8px}.city-chip{background:#fff;border:2px solid #e2e8f0;border-radius:20px;color:#4a5568;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease}.city-chip:hover{border-color:#4299e1;color:#4299e1}.city-chip.selected{background:#4299e1;border-color:#4299e1;color:#fff}.fetch-group{display:flex;gap:12px;margin-left:auto}.fetch-btn{background:#4299e1;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.fetch-btn:hover:not(:disabled){background:#3182ce;transform:translateY(-1px)}.fetch-btn:disabled{background:#a0aec0;cursor:not-allowed}.refresh-btn{background:#f7fafc;border:1px solid #e2e8f0;border-radius:8px;color:#4a5568;cursor:pointer;font-size:14px;padding:12px 16px;transition:all .2s ease}.refresh-btn:hover:not(:disabled){background:#edf2f7}.refresh-btn:disabled{color:#a0aec0;cursor:not-allowed}.error-message{background:#fed7d7;border-radius:8px;color:#c53030;font-size:14px;margin-bottom:24px;padding:12px 16px}.summary-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.summary-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;text-align:center}.summary-card.new-clients{border-left:4px solid #48bb78}.summary-card.recurring-clients{border-left:4px solid #9f7aea}.summary-card.total-clients{border-left:4px solid #4299e1}.summary-value{color:#2d3748;font-size:32px;font-weight:700;margin-bottom:4px}.summary-value.new{color:#48bb78}.summary-value.recurring{color:#9f7aea}.summary-value.total{color:#4299e1}.summary-label{color:#718096;font-size:13px;letter-spacing:.5px;text-transform:uppercase}.summary-percentage{color:#a0aec0;font-size:14px;margin-top:4px}.city-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;overflow:hidden}.city-header{align-items:center;background:#f7fafc;border-bottom:1px solid #e2e8f0;cursor:pointer;display:flex;justify-content:space-between;padding:16px 24px}.city-header:hover{background:#edf2f7}.city-title{align-items:center;display:flex;gap:12px}.city-title h2{color:#2d3748;font-size:18px;font-weight:600;margin:0}.city-stats{display:flex;font-size:14px;gap:16px}.city-stat{align-items:center;display:flex;gap:4px}.city-stat .value{font-weight:600}.city-stat.new .value{color:#48bb78}.city-stat.recurring .value{color:#9f7aea}.expand-icon{color:#718096;font-size:20px;transition:transform .2s ease}.expand-icon.expanded{transform:rotate(180deg)}.city-content{padding:24px}.chart-container{margin-bottom:24px;min-height:300px}.parking-table-container{overflow-x:auto}.parking-table{border-collapse:collapse;width:100%}.parking-table td,.parking-table th{border-bottom:1px solid #e2e8f0;padding:12px;text-align:left}.parking-table th{background:#f7fafc;color:#4a5568;font-size:12px;font-weight:600;letter-spacing:.5px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0}.parking-table td{color:#2d3748;font-size:14px}.parking-table tbody tr:hover{background:#f7fafc}.number-cell{font-family:monospace}.number-cell,.percentage-cell{text-align:right}.percentage-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;padding:4px 8px}.percentage-badge.new{background:#c6f6d5;color:#276749}.percentage-badge.recurring{background:#e9d8fd;color:#553c9a}.month-cell{white-space:nowrap}.loading,.no-data{color:#718096;font-size:15px;padding:48px 24px;text-align:center}.no-data{background:#fff;border:1px solid #e2e8f0;border-radius:12px}.export-btn{align-items:center;background:#48bb78;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.export-btn:hover{background:#38a169}@media (max-width:768px){.controls-section,.fetch-group{flex-direction:column}.fetch-group{margin-left:0;width:100%}.fetch-btn,.refresh-btn{width:100%}.summary-cards{grid-template-columns:1fr}.city-header{align-items:flex-start;flex-direction:column;gap:12px}.city-stats{flex-wrap:wrap}.parking-table td,.parking-table th{font-size:12px;padding:8px}}.quality-module-page{margin:0 auto;max-width:1200px;padding:24px}.module-header{align-items:center;background:linear-gradient(135deg,#f6d365,#fda085);border-radius:16px;color:#fff;display:flex;gap:20px;margin-bottom:32px;padding:24px}.module-icon{background:#fff3;border-radius:12px;font-size:48px;padding:16px}.module-info h1{font-size:28px;font-weight:700;margin:0 0 8px}.module-info p{font-size:16px;margin:0;opacity:.9}.apps-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.app-card{align-items:flex-start;background:#fff;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;gap:16px;padding:24px;position:relative;transition:all .2s ease}.app-card:hover{border-color:#3498db;border-color:var(--card-color,#3498db);box-shadow:0 8px 24px #0000001f;transform:translateY(-4px)}.app-card .app-icon{align-items:center;background:#0000000a;border-radius:10px;display:flex;font-size:36px;height:48px;justify-content:center;min-width:48px}.app-card .app-content h3{color:#1a1a2e;font-size:18px;font-weight:600;margin:0 0 8px}.app-card .app-content p{color:#666;font-size:14px;line-height:1.5;margin:0}.admin-badge{background:#9b59b6;border-radius:4px;color:#fff;font-size:11px;font-weight:600;padding:4px 8px;position:absolute;right:12px;top:12px}.digitaleo-import-page{margin:0 auto;max-width:1400px;padding:24px}.page-header.success h1{color:#389e0d}.error-banner button{background:none;color:#cf1322;flex-shrink:0;font-size:18px;margin-left:16px}.error-banner.warning-box{align-items:flex-start;background:linear-gradient(135deg,#fffbe6,#fff7cc);border:1px solid #faad14;color:#614700;flex-direction:column;padding:20px;position:relative}.error-banner.warning-box .warning-title{align-items:center;display:flex;font-size:16px;font-weight:600;gap:8px;margin-bottom:12px}.error-banner.warning-box .warning-content{line-height:1.6;white-space:pre-line}.upload-section{margin-bottom:32px}.dropzone{background:#fafafa;border:2px dashed #d9d9d9;border-radius:12px;cursor:pointer;padding:60px 24px;text-align:center;transition:all .2s ease}.dropzone:hover{background:#f0f7ff;border-color:#3498db}.dropzone.active{background:#e6f4ff;border-color:#3498db}.dropzone.uploading{cursor:wait;opacity:.7}.dropzone p{color:#333;font-size:16px;margin:8px 0}.dropzone .hint{color:#999;font-size:14px}.loader{margin:0 auto 16px}.history-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:20px}.history-section h2{color:#1a1a2e;font-size:18px;margin:0 0 16px}.empty-text,.loading-small{color:#999;padding:20px;text-align:center}.history-table{border-collapse:collapse;width:100%}.history-table th{background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;padding:10px 12px;text-align:left;text-transform:uppercase}.history-table td{border-bottom:1px solid #f0f0f0;font-size:14px;padding:10px 12px}.result-text{color:#666;font-size:12px}.preview-stats{display:flex;gap:16px;margin-bottom:20px}.stat-box{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:1 1;padding:16px 24px;text-align:center}.stat-box.new{background:#f6ffed;border-color:#52c41a}.stat-box.duplicate{background:#fffbe6;border-color:#faad14}.bulk-actions{align-items:center;background:#fffbe6;border:1px solid #ffe58f;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:12px 16px}.bulk-actions span{color:#666;font-size:14px}.btn-bulk{background:#fff;border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s}.btn-bulk:hover{border-color:#3498db;color:#3498db}.preview-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-bottom:20px;max-height:500px;overflow:hidden;overflow-y:auto}.preview-table{border-collapse:collapse;width:100%}.preview-table th{background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;padding:12px 14px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:1}.preview-table td{border-bottom:1px solid #f0f0f0;padding:10px 14px;vertical-align:middle}.preview-table tr.duplicate-row{background:#fffbe6}.pdv-cell{display:flex;flex-direction:column;gap:2px}.affiliate{color:#999;font-size:12px}.compare-cell{display:flex;flex-direction:column;gap:2px}.new-value{color:#1a1a2e;font-weight:500}.old-value{color:#999;font-size:11px}.status-badge{border-radius:10px;font-size:11px}.status-badge.new{background:#f6ffed;color:#389e0d}.status-badge.duplicate{background:#fffbe6;color:#d46b08}.status-badge.committed{background:#f6ffed;color:#389e0d}.action-select{border:1px solid #d9d9d9;border-radius:4px;cursor:pointer;font-size:13px;padding:6px 10px}.action-fixed{color:#389e0d;font-size:13px;font-weight:500}.action-summary{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;justify-content:space-between;padding:16px 20px}.summary-stats{color:#666;display:flex;font-size:14px;gap:24px}.action-buttons{display:flex;gap:12px}.btn-primary{align-items:center;background:#3498db;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:background .2s}.btn-primary:hover:not(:disabled){background:#2980b9}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background:#fff;border:1px solid #d9d9d9;border-radius:6px;color:#333;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.btn-secondary:hover:not(:disabled){border-color:#3498db;color:#3498db}.loader-small{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.result-summary{display:flex;gap:20px;margin-bottom:32px}.result-box{background:#fff;border:2px solid #e0e0e0;border-radius:12px;flex:1 1;padding:24px;text-align:center}.result-box.inserted{background:#f6ffed;border-color:#52c41a}.result-box.updated{background:#e6f7ff;border-color:#1890ff}.result-box.skipped{background:#fffbe6;border-color:#faad14}.result-value{color:#1a1a2e;display:block;font-size:48px;font-weight:700;margin-bottom:8px}.result-label{color:#666;font-size:16px}.completion-actions{display:flex;gap:16px;justify-content:center}.import-mode-tabs{border-bottom:2px solid #e0e0e0;display:flex;gap:8px;margin-bottom:24px;padding-bottom:0}.mode-tab{background:#0000;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .2s}.mode-tab:hover{color:#3498db}.mode-tab.active{border-bottom-color:#3498db;color:#3498db}.cumulative-info{background:#e6f7ff;border:1px solid #91d5ff;border-radius:8px;margin-bottom:20px;padding:16px 20px}.cumulative-info h3{color:#1890ff;font-size:16px;margin:0 0 8px}.cumulative-info p{color:#666;font-size:14px;margin:0}.preview-table tr.skip-row{background:#fafafa;opacity:.7}.status-badge.skip{background:#f5f5f5;color:#999}.dropzone-icon{color:#999;display:block;font-family:Material Icons;font-size:48px;margin-bottom:16px}.digitaleo-mapping-page{margin:0 auto;max-width:1400px;padding:24px}.page-header h1{color:#1a1a2e;margin:0 0 8px}.page-header p{color:#666;margin:0}.loading-container{padding:60px}.loader{height:40px;width:40px}.error-banner{background:#fff3f3}.stats-bar{display:flex;gap:16px;margin-bottom:24px}.stat-item{background:#fff;border:1px solid #e0e0e0;border-radius:8px;min-width:120px;padding:16px 24px;text-align:center}.stat-item.success{background:#f6ffed;border-color:#52c41a}.stat-item.warning{background:#fffbe6;border-color:#faad14}.stat-value{color:#1a1a2e;display:block;font-size:28px}.stat-label{color:#666;font-size:13px}.mappings-table-container{background:#fff;border:1px solid #e0e0e0;border-radius:12px;overflow:hidden}.mappings-table{border-collapse:collapse;width:100%}.mappings-table th{background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#666;font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 16px;text-align:left;text-transform:uppercase}.mappings-table td{border-bottom:1px solid #f0f0f0;padding:14px 16px;vertical-align:middle}.mappings-table tr:last-child td{border-bottom:none}.mappings-table tr.unmapped{background:#fffbe6}.mappings-table tr:hover{background:#f5f5f5}.mappings-table tr.unmapped:hover{background:#fff7cc}.pdv-name{color:#1a1a2e;font-weight:500}.mappings-table select{background:#fff;border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 12px;width:100%}.mappings-table select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.mappings-table select.saving{cursor:wait;opacity:.6}.status-badge{align-items:center;border-radius:12px;display:inline-flex;gap:4px}.status-badge.mapped{background:#f6ffed;border:1px solid #b7eb8f;color:#389e0d}.status-badge.unmapped{background:#fffbe6;border:1px solid #ffe58f;color:#d46b08}.btn-delete{background:#0000;border:none;border-radius:4px;cursor:pointer;font-size:16px;opacity:.6;padding:6px;transition:all .2s}.btn-delete:hover{background:#fff1f0;opacity:1}.empty-state{color:#666;padding:60px 24px;text-align:center}.empty-state p{margin:8px 0}.empty-state .hint{color:#999;font-size:13px}.google-reviews-page{margin:0 auto;max-width:1600px;padding:24px}.header-filters{display:flex;flex-wrap:wrap;gap:12px}.header-filters select{background:#fff;border:1px solid #d9d9d9;border-radius:8px;cursor:pointer;font-size:14px;min-width:160px;padding:10px 14px}.header-filters select:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.error-banner{align-items:center;background:#fff2f0;border:1px solid #ffccc7;border-radius:8px;color:#cf1322;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 16px}.error-banner button{background:#cf1322;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:6px 12px}.kpis-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.kpi-card{align-items:flex-start;background:#fff;border:1px solid #e0e0e0;border-radius:12px;display:flex;gap:16px;padding:20px;transition:all .2s}.kpi-card:hover{box-shadow:0 4px 12px #00000014}.kpi-icon{background:#f5f5f5;border-radius:10px;font-size:28px;padding:12px}.kpi-content{flex:1 1}.kpi-title{color:#666;display:block;font-size:13px;margin-bottom:6px}.kpi-value-row{align-items:baseline;display:flex;gap:10px}.kpi-value{color:#1a1a2e;font-size:28px;font-weight:700}.kpi-unit{color:#999;font-size:16px;font-weight:400}.delta{border-radius:4px;font-size:13px;font-weight:500;padding:2px 6px}.delta.positive{background:#f6ffed;color:#389e0d}.delta.negative{background:#fff2f0;color:#cf1322}.charts-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));margin-bottom:20px}.chart-card{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:20px}.chart-card h3{color:#1a1a2e;font-size:16px;font-weight:600;margin:0 0 16px}.comparison-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-top:20px;padding:24px}.comparison-section h2{color:#1a1a2e;font-size:20px;margin:0 0 8px}.section-subtitle{color:#666;font-size:14px;margin:0 0 20px}.comparison-content{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 400px}@media (max-width:1200px){.comparison-content{grid-template-columns:1fr}}.comparison-table-container{overflow-x:auto}.comparison-table{border-collapse:collapse;width:100%}.comparison-table th{background:#f8f9fa;border-bottom:1px solid #e0e0e0;color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px 14px;text-align:left;text-transform:uppercase}.comparison-table td{border-bottom:1px solid #f0f0f0;padding:12px 14px;vertical-align:middle}.comparison-table tr:hover{background:#fafafa}.comparison-table tr.top-3{background:#fffbe6}.comparison-table tr.top-3:hover{background:#fff7cc}.rank-cell{font-size:18px;text-align:center;width:40px}.parking-name{color:#1a1a2e}.metric-value,.parking-name{font-weight:500}.metric-prev{color:#999;font-size:11px;margin-left:4px}.score-badge{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;color:#fff;display:inline-block;font-size:14px;font-weight:600;padding:4px 10px}.delta-badge{border-radius:10px;display:inline-block;font-size:12px;font-weight:500;padding:3px 8px}.delta-badge.positive{background:#f6ffed;color:#389e0d}.delta-badge.negative{background:#fff2f0;color:#cf1322}.radar-chart-container{background:#fafafa;border-radius:12px;padding:16px}.radar-chart-container h4{color:#1a1a2e;font-size:15px;margin:0 0 12px;text-align:center}.animation-section{background:#fff;border:1px solid #e0e0e0;border-radius:12px;margin-bottom:24px;padding:24px}.animation-header-capture{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.animation-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.animation-subtitle{color:#888;font-size:12px;font-style:italic;margin:0 0 16px}.month-selector,.week-selector{background:#fff;border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;font-size:13px;min-width:180px;padding:8px 12px}.month-selector:focus,.week-selector:focus{border-color:#3498db;outline:none}.custom-tooltip{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 2px 8px #00000026;padding:10px 14px}.custom-tooltip .tooltip-label{color:#1a1a2e;font-weight:600;margin:0 0 6px}.custom-tooltip p{font-size:13px;margin:2px 0}.view-toggle{border:1px solid #d9d9d9;border-radius:8px;display:flex;gap:0;overflow:hidden}.view-toggle button{background:#fff;border:none;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.view-toggle button:hover{background:#f5f5f5}.view-toggle button.active{background:#3498db;color:#fff}.period-label{background:#f5f5f5;border-radius:6px;color:#666;font-size:14px;font-weight:500;margin-left:auto;padding:6px 12px}.animation-table-container{overflow-x:auto}.animation-table th{padding:10px 12px}.animation-table td{padding:12px}.animation-table .entity-name{min-width:150px}.animation-table .entity-name .city-tag{color:#999;display:block;font-size:10px;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.animation-table .entity-name .name{color:#1a1a2e;font-weight:500}.animation-table .rating-cell{color:#f39c12;font-size:16px;font-weight:600}.animation-table .sparkline-cell{min-width:140px;padding:4px 8px}.animation-table .sparkline-header{min-width:150px}.animation-table .departures-cell,.animation-table .reviews-cell{font-weight:500;text-align:center}.animation-table .review-rate-cell{white-space:nowrap}.animation-table .review-rate-value{color:#2ecc71;font-weight:600;margin-right:6px}.no-data{color:#999;font-style:italic}.reviews-value{color:#3498db;font-weight:600;min-width:30px}.subscriber-info{align-items:center;background:#f5f5f5;border:1px solid #d9d9d9;border-radius:50%;color:#999;cursor:help;display:inline-flex;font-size:10px;font-weight:700;height:16px;justify-content:center;margin-left:4px;width:16px}.subscriber-info:hover{background:#e0e0e0;border-color:#999;color:#666}@media (max-width:768px){.google-reviews-page{padding:16px}.charts-row{grid-template-columns:1fr}.kpis-grid{grid-template-columns:repeat(2,1fr)}.kpi-card{padding:16px}.kpi-value{font-size:24px}.header-filters{width:100%}.header-filters select{flex:1 1;min-width:120px}.animation-header{align-items:flex-start;flex-direction:column}.period-label{margin-left:0}.animation-table{font-size:12px}.animation-table td,.animation-table th{padding:8px}}.animation-managers-page{margin:0 auto;max-width:1600px;padding:24px;position:relative}.loading-container{gap:16px;padding:80px}.loader{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-top-color:#3498db;height:48px;width:48px}.loading-overlay{align-items:center;background:#ffffffd9;border-radius:8px;bottom:0;display:flex;justify-content:center;left:0;position:absolute;right:0;top:100px;z-index:100}.loading-overlay .loading-content{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;flex-direction:column;gap:16px;padding:40px}.loading-overlay .loading-content p{color:#666;font-size:16px;margin:0}.table-wrapper.loading-blur{filter:blur(2px);opacity:.4;pointer-events:none;transition:all .2s ease}.page-header{align-items:flex-start;flex-wrap:wrap}.header-content h1{color:#1a1a2e;font-size:24px;margin:0 0 8px}.header-content p{color:#666;margin:0}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.mode-toggle{background:#f0f0f0;border-radius:8px;display:flex;padding:3px}.mode-btn{background:#0000;border:none;border-radius:6px;color:#666;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s}.mode-btn:hover{color:#333}.mode-btn.active{background:#fff;box-shadow:0 1px 3px #0000001a;color:#3498db}.range-controls{display:flex;flex-direction:column;gap:10px}.preset-buttons{display:flex;flex-wrap:wrap;gap:6px}.preset-btn{background:#fff;border:1px solid #d9d9d9;border-radius:6px;color:#666;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.preset-btn.active,.preset-btn:hover{border-color:#3498db;color:#3498db}.preset-btn.active{background:#e8f4fc}.range-selectors{align-items:center;display:flex;gap:8px}.range-selectors label{color:#666;font-size:13px;font-weight:500}.month-selector.small{font-size:13px;min-width:140px;padding:8px 12px}.month-selector{background:#fff;border:1px solid #d9d9d9;border-radius:8px;cursor:pointer;font-size:14px;min-width:180px;padding:10px 14px}.month-selector:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.copy-button{background:#3498db;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 18px;transition:all .2s}.copy-button:hover{background:#2980b9}.copy-button.success{background:#27ae60}.table-wrapper{background:#fff;border:1px solid #e0e0e0;border-radius:12px;padding:24px}.capture-header{align-items:flex-start;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.capture-title h2{color:#1a1a2e;font-size:18px;margin:0 0 4px}.capture-date{color:#888;font-size:12px}.capture-period{background:#f5f5f5;border-radius:8px;color:#333;font-size:16px;font-weight:600;padding:8px 14px}.partial-badge{background:#fff7e6;border-radius:4px;color:#d46b08;display:inline-block;font-size:10px;font-weight:500;margin-left:8px;padding:2px 6px;text-transform:uppercase}.table-subtitle{color:#888;font-size:12px;font-style:italic;margin:0 0 16px}.animation-table{border-collapse:collapse;width:100%}.animation-table th{background:#f8f9fa;border-bottom:2px solid #e0e0e0;color:#666;font-size:11px;font-weight:600;letter-spacing:.5px;padding:12px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.animation-table td{border-bottom:1px solid #f0f0f0;padding:12px 14px;vertical-align:middle}.animation-table tr:hover{background:#fafafa}.parking-name{min-width:150px}.parking-name .city-tag{color:#999;display:block;font-size:10px;letter-spacing:.5px;margin-bottom:2px;text-transform:uppercase}.parking-name .name{color:#1a1a2e;font-weight:500}.rating-badge{border-radius:12px;display:inline-block;font-size:14px;font-weight:600;padding:4px 10px}.rating-badge.rating-red{background:#fff2f0;color:#cf1322}.rating-badge.rating-orange{background:#fff7e6;color:#d46b08}.rating-badge.rating-green{background:#f6ffed;color:#389e0d}.sparkline-cell{min-width:130px}.trend-sparkline-container{align-items:center;display:flex;gap:6px}.trend-badge{border-radius:4px;font-size:11px;font-weight:600;padding:2px 6px;white-space:nowrap}.trend-badge.positive{background:#f6ffed;color:#389e0d}.trend-badge.negative{background:#fff2f0;color:#cf1322}.delta-cell{white-space:nowrap}.delta-percent,.delta-points{border-radius:4px;font-size:13px;font-weight:500;padding:2px 6px}.delta-percent.positive,.delta-points.positive{background:#f6ffed;color:#389e0d}.delta-percent.negative,.delta-points.negative{background:#fff2f0;color:#cf1322}.reviews-cell{font-weight:500;text-align:center}.departures-cell{white-space:nowrap}.exclusion-indicator{align-items:center;background:#f5f5f5;border:1px solid #d9d9d9;border-radius:50%;color:#999;cursor:help;display:inline-flex;font-size:10px;font-weight:700;height:16px;justify-content:center;margin-left:4px;width:16px}.exclusion-indicator:hover{background:#e0e0e0;border-color:#999;color:#666}.review-rate-container{align-items:center;display:flex;gap:8px}.review-rate-bar{background:#e0e0e0;border-radius:4px;height:8px;overflow:hidden;width:60px}.review-rate-fill{background:linear-gradient(90deg,#2ecc71,#27ae60);border-radius:4px;height:100%;transition:width .3s}.review-rate-text{color:#666;font-size:12px;font-weight:500;min-width:50px}.review-rate-small{color:#666;font-size:13px;font-weight:500}.rate-na{color:#bbb;font-size:13px}.no-data-message{color:#999;font-size:16px;padding:60px;text-align:center}@media (max-width:768px){.animation-managers-page{padding:16px}.page-header{flex-direction:column}.header-actions{flex-wrap:wrap;width:100%}.month-selector{flex:1 1;min-width:140px}.mode-toggle{justify-content:center;width:100%}.range-controls{width:100%}.preset-buttons{justify-content:flex-start;width:100%}.preset-btn{flex:1 1;min-width:80px;text-align:center}.range-selectors{flex-wrap:wrap;width:100%}.month-selector.small{flex:1 1;min-width:120px}.animation-table{font-size:12px}.animation-table td,.animation-table th{padding:8px}.capture-header{flex-direction:column;gap:12px}}.budget-list-page{margin:0 auto;max-width:1400px;padding:24px}.page-header{justify-content:space-between;margin-bottom:24px}.header-left h1{color:#1a1a1a;font-size:24px;font-weight:600;margin:0}.header-left p{color:#64748b;font-size:14px;margin:4px 0 0}.primary-btn:hover{background:#1976d2}.filters-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;display:flex;gap:16px;margin-bottom:24px;padding:16px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{color:#64748b;font-size:12px;font-weight:500;text-transform:uppercase}.filter-group select{border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:14px;min-width:150px;padding:8px 12px}.filter-group select:focus{border-color:#2196f3;outline:none}.empty-state,.error-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:80px 20px;text-align:center}.empty-state .material-icons,.error-state .material-icons,.loading-state .material-icons{color:#94a3b8;font-size:48px;margin-bottom:16px}.empty-state p,.error-state p,.loading-state p{color:#64748b;font-size:16px;margin-bottom:16px}.error-state .material-icons{color:#ef4444}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.budgets-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.budget-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;overflow:hidden;transition:all .2s}.budget-card:hover{border-color:#2196f3;box-shadow:0 4px 12px #00000014}.card-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;padding:16px}.card-header,.entity-info{align-items:center;display:flex}.entity-info{gap:8px}.entity-code{background:#fff;border:1px solid #e2e8f0;border-radius:6px;color:#1a1a1a;font-size:14px;font-weight:600;padding:4px 10px}.site-name{color:#64748b;font-size:13px}.status-badge{border-radius:20px;color:#fff;padding:4px 10px}.card-body{padding:16px}.card-body h3{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 12px}.budget-meta{display:flex;gap:16px;margin-bottom:12px}.meta-item{align-items:center;color:#64748b;display:flex;font-size:13px;gap:6px}.meta-item .material-icons{font-size:18px}.current-version{align-items:center;background:#f0fdf4;border-radius:6px;color:#22c55e;display:flex;font-size:13px;gap:6px;padding:8px 12px}.current-version .material-icons{font-size:18px}.card-footer{align-items:center;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:12px 16px}.updated-at{color:#94a3b8;font-size:12px}.card-footer .material-icons{color:#94a3b8;transition:transform .2s}.budget-card:hover .card-footer .material-icons{color:#2196f3;transform:translateX(4px)}@media (max-width:768px){.page-header{align-items:flex-start;gap:16px}.filters-bar,.page-header{flex-direction:column}.budgets-grid{grid-template-columns:1fr}}.budget-create-page{margin:0 auto;max-width:700px;padding:24px}.page-header{align-items:center;display:flex;gap:16px;margin-bottom:32px}.back-btn:hover{background:#f8fafc;border-color:#cbd5e1}.page-header h1{color:#1a1a1a;font-size:24px;font-weight:600;margin:0}.page-header p{color:#64748b;font-size:14px;margin:4px 0 0}.create-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.error-message{align-items:center;background:#fef2f2;border-bottom:1px solid #fecaca;color:#dc2626;display:flex;gap:8px;padding:16px 20px}.error-message .material-icons{font-size:20px}.form-section{border-bottom:1px solid #e2e8f0;padding:24px}.form-section:last-child{border-bottom:none}.form-section h3{color:#1a1a1a;font-size:16px;font-weight:600;margin:0 0 20px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{color:#374151;font-size:14px}.form-group input,.form-group select{border:1px solid #e2e8f0;border-radius:8px;font-size:14px;padding:12px 16px;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#2196f3;outline:none}.form-hint{color:#64748b;font-size:12px}.info-section{background:#f8fafc;display:flex;gap:16px}.info-icon{flex-shrink:0}.info-icon .material-icons{color:#2196f3;font-size:24px}.info-content h4{color:#1a1a1a;font-size:14px;font-weight:600;margin:0 0 12px}.info-content ul{color:#475569;font-size:13px;line-height:1.8;margin:0;padding-left:20px}.form-actions{background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding:20px 24px}.secondary-btn{background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.secondary-btn:hover{background:#f8fafc;border-color:#cbd5e1}.primary-btn{align-items:center;background:#2196f3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:background .2s}.primary-btn:hover:not(:disabled){background:#1976d2}.primary-btn:disabled{cursor:not-allowed;opacity:.6}.primary-btn .material-icons{font-size:20px}@media (max-width:600px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions button{justify-content:center;width:100%}}.budget-edit-page{background:#f8fafc;max-width:100%;min-height:100vh;padding:20px}.budget-edit-page.error,.budget-edit-page.loading{align-items:center;color:#64748b;display:flex;font-size:16px;justify-content:center;min-height:400px}.budget-header{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;justify-content:space-between;margin-bottom:20px;padding:16px 20px}.budget-header,.header-left{align-items:center;display:flex}.header-left{gap:16px}.back-btn{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;display:flex;height:40px;justify-content:center;transition:all .2s;width:40px}.back-btn:hover{background:#f1f5f9}.header-title h1{color:#1e293b;font-size:20px;font-weight:600;margin:0}.site-badge,.version-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;margin-left:12px;padding:4px 10px}.site-badge{background:#dbeafe;color:#1d4ed8}.version-badge{background:#f0fdf4;color:#15803d}.header-right{gap:16px}.header-right,.save-indicator{align-items:center;display:flex}.save-indicator{font-size:13px;gap:6px}.save-indicator.saved{color:#16a34a}.save-indicator.saving{color:#ca8a04}.save-indicator.unsaved{color:#ea580c}.save-indicator.error{color:#dc2626}.save-btn{align-items:center;background:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:8px;padding:10px 16px;transition:background .2s}.save-btn:hover:not(:disabled){background:#1d4ed8}.save-btn:disabled{background:#94a3b8;cursor:not-allowed}.budget-grid{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.budget-grid table{border-collapse:collapse;font-size:13px;width:100%}.budget-grid thead tr{background:#f1f5f9;position:-webkit-sticky;position:sticky;top:0;z-index:10}.budget-grid thead th{border-bottom:2px solid #e2e8f0;color:#475569;font-weight:600;padding:12px 8px;text-align:right;white-space:nowrap}.budget-grid thead th.col-label{min-width:250px;padding-left:16px;text-align:left}.budget-grid thead th.col-month{min-width:70px}.budget-grid thead th.col-total{background:#e2e8f0;min-width:80px}.budget-grid thead th.col-var{min-width:70px}.section-header{background:#e2e8f0;cursor:pointer;transition:background .2s}.section-header:hover{background:#cbd5e1}.section-header.subtotal{background:#dbeafe}.section-header.total{background:#1e40af;color:#fff}.section-header td{border-bottom:1px solid #cbd5e1;font-weight:600;padding:10px 8px}.section-header .section-label{align-items:center;display:flex;gap:8px;padding-left:12px}.section-header .expand-icon{align-items:center;color:#64748b;display:flex}.section-header.total .expand-icon{color:#fff}.section-header .bold{font-weight:700}.section-header .section-total,.section-header .section-value{text-align:right}.section-header .section-total{font-weight:700}.section-header .section-var{color:#64748b;text-align:center}.data-row{border-bottom:1px solid #f1f5f9}.data-row:hover{background:#f8fafc}.data-row td{padding:8px}.data-row .label{color:#334155;font-weight:500;padding-left:32px}.data-row .value{padding:4px;text-align:right}.data-row .value input{background:#fff;border:1px solid #e2e8f0;border-radius:4px;font-family:inherit;font-size:13px;max-width:80px;padding:6px 8px;text-align:right;transition:border-color .2s,box-shadow .2s;width:100%}.data-row .value input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.data-row .value input:hover{border-color:#94a3b8}.data-row .total{background:#f8fafc;color:#1e293b;font-weight:600;text-align:right}.data-row .var{font-weight:500;text-align:center}.data-row .var.positive{color:#16a34a}.data-row .var.negative{color:#dc2626}.n1-row{background:#fafafa;border-bottom:1px solid #e2e8f0}.n1-row td{color:#64748b;font-size:11px;padding:4px 8px}.n1-row .n1-label{font-style:italic;padding-left:48px}.n1-row .n1-total,.n1-row .n1-value{text-align:right}.n1-row .n1-total{background:#f1f5f9;font-weight:500}.n1-row .n1-var{text-align:center}@media (max-width:1200px){.budget-grid{font-size:12px}.budget-grid thead th.col-label{min-width:200px}.budget-grid thead th.col-month{min-width:60px}.data-row .value input{font-size:12px;max-width:65px;padding:4px 6px}}.analytics-controls{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;padding:1rem}.analytics-controls .control-group{display:flex;flex-direction:column;gap:.25rem}.analytics-controls .control-label{color:#6b7280;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.analytics-controls select{background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.875rem;min-width:180px;padding:.5rem .75rem}.analytics-controls select:focus{border-color:#111827;box-shadow:0 0 0 2px #1118271a;outline:none}.analytics-btn-group{border:1px solid #d1d5db;border-radius:6px;display:flex;overflow:hidden}.analytics-btn-group button{background:#fff;border:none;border-right:1px solid #d1d5db;color:#374151;cursor:pointer;font-size:.875rem;padding:.5rem .75rem;transition:all .15s ease}.analytics-btn-group button:last-child{border-right:none}.analytics-btn-group button:hover{background:#f3f4f6}.analytics-btn-group button.active{background:#111827;color:#fff}.analytics-reload-btn{align-items:center;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;margin-left:auto;padding:.5rem 1rem;transition:all .15s ease}.analytics-reload-btn:hover{background:#f3f4f6;border-color:#9ca3af}.analytics-reload-btn:disabled{cursor:not-allowed;opacity:.5}.analytics-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:1.5rem}.analytics-summary-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:1rem}.analytics-summary-card .label{color:#6b7280;font-size:.75rem;letter-spacing:.5px;margin-bottom:.25rem;text-transform:uppercase}.analytics-summary-card .value{color:#111827;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:1.5rem;font-weight:700}.analytics-summary-card .evolution{font-size:.875rem;margin-top:.25rem}.analytics-summary-card .evolution.positive{color:#10b981}.analytics-summary-card .evolution.negative{color:#ef4444}.analytics-summary-card .evolution.neutral{color:#6b7280}.analytics-chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.analytics-chart-container h3{color:#111827;font-size:1rem;font-weight:600;margin-bottom:1rem}.analytics-chart-wrapper{height:400px;width:100%}.analytics-loading{align-items:center;display:flex;justify-content:center;min-height:300px}.analytics-loading:after{animation:analytics-spin 1s linear infinite;border:3px solid #e5e7eb;border-radius:50%;border-top-color:#111827;content:"";height:40px;width:40px}@keyframes analytics-spin{to{transform:rotate(1turn)}}.analytics-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;padding:1rem;text-align:center}.analytics-empty{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;color:#6b7280;padding:2rem;text-align:center}.analytics-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.analytics-header h1{color:#111827;font-size:1.5rem;font-weight:700}.analytics-header .filter-label{color:#6b7280;font-size:.875rem}.analytics-cache-info{color:#9ca3af;font-size:.75rem;text-align:right}.analytics-module-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.analytics-app-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;cursor:pointer;display:block;padding:1.5rem;text-decoration:none;transition:all .2s ease}.analytics-app-card:hover{border-color:#111827;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.analytics-app-card .icon{font-size:2rem;margin-bottom:.75rem}.analytics-app-card h3{color:#111827;font-size:1.125rem;font-weight:600;margin-bottom:.5rem}.analytics-app-card p{color:#6b7280;font-size:.875rem;line-height:1.5}.traffic-source-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.traffic-source-legend .legend-item{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.traffic-source-legend .legend-color{border-radius:2px;height:12px;width:12px}.carts-kpi-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.carts-kpi-card{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:8px;color:#fff;padding:1.25rem}.carts-kpi-card .label{font-size:.75rem;letter-spacing:.5px;margin-bottom:.5rem;opacity:.8;text-transform:uppercase}.carts-kpi-card .value{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:1.75rem;font-weight:700}.carts-kpi-card .subtext{font-size:.75rem;margin-top:.25rem;opacity:.7}.analytics-mapping-table{border:1px solid #e5e7eb;border-collapse:initial;border-radius:8px;border-spacing:0;overflow:hidden;width:100%}.analytics-mapping-table thead{background:#111827;color:#fff}.analytics-mapping-table th{font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.analytics-mapping-table td{border-bottom:1px solid #e5e7eb;font-size:.875rem;padding:.75rem 1rem}.analytics-mapping-table tbody tr:last-child td{border-bottom:none}.analytics-mapping-table tbody tr:hover{background:#f9fafb}.analytics-mapping-form{grid-gap:1rem;background:#f9fafb;border-radius:8px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem;padding:1.5rem}.analytics-mapping-form .form-group{display:flex;flex-direction:column;gap:.25rem}.analytics-mapping-form label{color:#6b7280;font-size:.75rem;font-weight:600;text-transform:uppercase}.analytics-mapping-form input,.analytics-mapping-form select{border:1px solid #d1d5db;border-radius:6px;font-size:.875rem;padding:.5rem .75rem}.analytics-mapping-form button{align-self:end;background:#111827;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:600;padding:.5rem 1.5rem;transition:background .15s ease}.analytics-mapping-form button:hover{background:#374151}.analytics-action-btn{background:#fff;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;font-size:.75rem;margin-right:.5rem;padding:.25rem .5rem;transition:all .15s ease}.analytics-action-btn:hover{background:#f3f4f6}.analytics-action-btn.delete{border-color:#fecaca;color:#dc2626}.analytics-action-btn.delete:hover{background:#fef2f2}.analytics-status-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem}.analytics-status-badge.active{background:#d1fae5;color:#065f46}.analytics-status-badge.inactive{background:#f3f4f6;color:#6b7280}.sp-module-container{padding:2rem}.sp-module-title{color:var(--black);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem}.sp-apps-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.sp-dashboard-container{margin:0 auto;max-width:1400px;padding:1.5rem}.sp-dashboard-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.sp-dashboard-header h1{align-items:center;color:var(--black);display:flex;font-size:1.5rem;font-weight:600;gap:.75rem;margin:0}.sp-refresh-btn{color:var(--gray-700);gap:.5rem;padding:.5rem 1rem;transition:all .2s}.sp-refresh-btn:hover{background:var(--gray-200)}.sp-error,.sp-loading{align-items:center;color:var(--gray-600);display:flex;gap:.75rem;justify-content:center;padding:3rem}.sp-error,.sp-retry-btn{color:var(--red-600)}.sp-retry-btn{align-items:center;background:var(--red-50);border:1px solid var(--red-200);border-radius:4px;cursor:pointer;display:flex;gap:.25rem;padding:.25rem .75rem}.sp-kpis-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.sp-kpi-card{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:12px;display:flex;gap:1rem;padding:1.25rem}.sp-kpi-card.sp-kpi-primary{background:linear-gradient(135deg,var(--primary) 0,var(--primary-dark) 100%);color:#fff;grid-column:span 2}.sp-kpi-card.sp-kpi-warning{border-left:4px solid var(--orange-500)}.sp-kpi-card.sp-kpi-success{border-left:4px solid var(--green-500)}.sp-kpi-icon{opacity:.8}.sp-kpi-content{display:flex;flex-direction:column;gap:.25rem}.sp-kpi-label{font-size:.875rem;opacity:.8}.sp-kpi-value{font-size:1.5rem;font-weight:700}.sp-kpi-primary .sp-kpi-value{font-size:2rem}.sp-charts-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.sp-chart-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:1.25rem}.sp-chart-card h3{border-bottom:1px solid var(--gray-100);color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem;padding-bottom:.75rem}.sp-gamme-list{display:flex;flex-direction:column;gap:.75rem}.sp-gamme-item{align-items:center;border-bottom:1px solid var(--gray-50);display:flex;justify-content:space-between;padding:.5rem 0}.sp-gamme-item:last-child{border-bottom:none}.sp-gamme-name{color:var(--gray-700);font-weight:500}.sp-gamme-count{background:var(--gray-100);border-radius:4px;color:var(--gray-500);font-size:.875rem;padding:.25rem .5rem}.sp-empty{color:var(--gray-400);font-style:italic;padding:1rem;text-align:center}.sp-quick-actions{display:flex;gap:1rem;justify-content:center}.sp-action-btn{background:var(--primary);border-radius:8px;color:#fff;display:flex;padding:.75rem 1.5rem}.sp-action-btn:hover{background:var(--primary-dark)}@media (max-width:768px){.sp-kpi-card.sp-kpi-primary{grid-column:span 1}.sp-kpis-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.sp-kpis-grid{grid-template-columns:1fr}.sp-dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}}.sp-clients-container{margin:0 auto;max-width:1400px;padding:1.5rem}.sp-clients-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.sp-clients-header h1{align-items:center;color:var(--black);display:flex;font-size:1.5rem;font-weight:600;gap:.75rem;margin:0}.sp-header-actions{gap:.75rem}.sp-filter-btn,.sp-refresh-btn{align-items:center;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:6px;color:var(--gray-700);cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.sp-filter-btn:hover,.sp-refresh-btn:hover{background:var(--gray-200)}.sp-add-btn{align-items:center;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.sp-add-btn:hover{background:var(--primary-dark)}.sp-search-bar{align-items:center;background:#fff;border:1px solid var(--gray-200);border-radius:8px;display:flex;gap:.5rem;margin-bottom:1rem;padding:.5rem 1rem}.sp-search-icon{color:var(--gray-400)}.sp-search-input{border:none;flex:1 1;font-size:.95rem;outline:none;padding:.25rem}.sp-search-btn{background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;padding:.5rem 1rem}.sp-filters-panel{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:1rem}.sp-filter-group{display:flex;flex-direction:column;gap:.25rem}.sp-filter-group label{color:var(--gray-600);font-size:.75rem;font-weight:500;text-transform:uppercase}.sp-filter-group select{background:#fff;min-width:150px;padding:.5rem}.sp-clear-filters,.sp-filter-group select{border:1px solid var(--gray-300);border-radius:6px}.sp-clear-filters{align-self:flex-end;background:#0000;color:var(--gray-600);cursor:pointer;padding:.5rem 1rem}.sp-clear-filters:hover{background:var(--gray-100)}.sp-results-count{color:var(--gray-500);font-size:.875rem;margin-bottom:1rem}.sp-error-banner{align-items:center;display:flex;justify-content:space-between}.sp-error-banner button{background:var(--red-100);border:1px solid var(--red-300);border-radius:4px;color:var(--red-700);cursor:pointer;padding:.25rem .75rem}.sp-loading{color:var(--gray-500);padding:3rem;text-align:center}.sp-clients-table-wrapper{background:#fff;border:1px solid var(--gray-200);border-radius:12px;overflow:hidden}.sp-clients-table{border-collapse:collapse;width:100%}.sp-clients-table th{background:var(--gray-50);border-bottom:1px solid var(--gray-200);color:var(--gray-600);font-size:.75rem;font-weight:600;padding:.75rem 1rem;text-align:left;text-transform:uppercase}.sp-clients-table td{border-bottom:1px solid var(--gray-100);padding:.75rem 1rem;vertical-align:middle}.sp-clients-table tbody tr{cursor:pointer;transition:background .2s}.sp-clients-table tbody tr:hover{background:var(--gray-50)}.sp-client-name{display:flex;flex-direction:column;gap:.25rem}.sp-client-name strong{color:var(--gray-900)}.sp-client-email{color:var(--gray-500);font-size:.8rem}.sp-client-ca{align-items:center;color:var(--green-600);display:flex;font-weight:500;gap:.25rem}.sp-badge{border-radius:4px;font-size:.75rem;padding:.25rem .5rem}.sp-badge-success{background:var(--green-100);color:var(--green-700)}.sp-badge-info{background:var(--blue-100);color:var(--blue-700)}.sp-badge-purple{background:var(--purple-100);color:var(--purple-700)}.sp-badge-warning{background:var(--orange-100);color:var(--orange-700)}.sp-badge-danger{background:var(--red-100);color:var(--red-700)}.sp-badge-default{background:var(--gray-100);color:var(--gray-700)}.sp-view-btn{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:4px;cursor:pointer;font-size:.8rem;padding:.35rem .75rem}.sp-view-btn:hover{background:var(--gray-200)}.sp-empty-row{padding:2rem!important}@media (max-width:768px){.sp-clients-header{align-items:flex-start;flex-direction:column;gap:1rem}.sp-clients-table-wrapper{overflow-x:auto}.sp-clients-table{min-width:700px}}.sp-detail-container{margin:0 auto;max-width:1200px;padding:1.5rem}.sp-detail-error,.sp-detail-loading{color:var(--gray-500);padding:3rem;text-align:center}.sp-detail-error button{background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:1rem;padding:.5rem 1rem}.sp-detail-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.sp-back-btn{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:6px;display:flex}.sp-header-info{align-items:center;display:flex;flex:1 1;gap:1rem}.sp-header-info h1{font-size:1.5rem;font-weight:600;margin:0}.sp-header-actions{display:flex;gap:.5rem}.sp-cancel-btn,.sp-delete-btn,.sp-edit-btn,.sp-save-btn{align-items:center;border-radius:6px;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.sp-edit-btn{background:var(--gray-100);border:1px solid var(--gray-300);color:var(--gray-700)}.sp-save-btn{background:var(--primary);border:none;color:#fff}.sp-cancel-btn{background:var(--gray-100);border:1px solid var(--gray-300);color:var(--gray-700)}.sp-delete-btn{padding:.5rem}.sp-delete-btn,.sp-error-banner{background:var(--red-50);border:1px solid var(--red-200);color:var(--red-600)}.sp-error-banner{border-radius:8px;margin-bottom:1rem;padding:1rem}.sp-badge{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.sp-badge-actif{background:var(--green-100);color:var(--green-700)}.sp-badge-nouveau_client{background:var(--blue-100);color:var(--blue-700)}.sp-badge-migre{background:var(--purple-100);color:var(--purple-700)}.sp-badge-a_contacter{background:var(--orange-100);color:var(--orange-700)}.sp-badge-parti{background:var(--red-100);color:var(--red-700)}.sp-tabs{border-bottom:1px solid var(--gray-200);margin-bottom:1.5rem}.sp-tab,.sp-tabs{display:flex;gap:.5rem}.sp-tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:var(--gray-600);cursor:pointer;font-weight:500;padding:.75rem 1.25rem;transition:all .2s}.sp-tab:hover{color:var(--gray-900)}.sp-tab.active{border-bottom-color:var(--primary);color:var(--primary)}.sp-tab-content{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem}.sp-form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.sp-form-group{display:flex;flex-direction:column;gap:.35rem}.sp-form-group.sp-full-width{grid-column:1/-1}.sp-form-group label{color:var(--gray-600);font-size:.8rem;font-weight:500;text-transform:uppercase}.sp-form-group input,.sp-form-group select,.sp-form-group textarea{border:1px solid var(--gray-300);border-radius:6px;font-size:.95rem;padding:.5rem}.sp-form-group textarea{min-height:80px;resize:vertical}.sp-form-group span{color:var(--gray-800);font-size:.95rem;padding:.5rem 0}.sp-checkbox-group label{align-items:center;color:var(--gray-800);cursor:pointer;flex-direction:row;font-size:.95rem;gap:.5rem;text-transform:none}.sp-checkbox-group input[type=checkbox]{width:auto}.sp-subscription-section{border-bottom:1px solid var(--gray-100);margin-bottom:2rem;padding-bottom:1.5rem}.sp-subscription-section:last-child{border-bottom:none}.sp-subscription-section h3{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-facture-preview{background:var(--gray-50);border-radius:8px;padding:1rem!important}.sp-facture-details{display:flex;flex-direction:column;gap:.5rem}.sp-facture-line{border-bottom:1px dashed var(--gray-200);padding:.5rem 0}.sp-facture-line.sp-remise{color:var(--green-600)}.sp-facture-line.sp-total{border-bottom:none;border-top:2px solid var(--gray-300);font-size:1.1rem;font-weight:700;margin-top:.5rem;padding-top:1rem}.sp-save-section{border-top:1px solid var(--gray-200);margin-top:1.5rem;padding-top:1.5rem}.sp-no-stats{color:var(--gray-500);padding:2rem;text-align:center}.sp-stats-header{display:flex;justify-content:flex-end;margin-bottom:1.5rem}.sp-year-selector{align-items:center;display:flex;gap:.5rem}.sp-refresh-btn,.sp-year-selector select{border:1px solid var(--gray-300);border-radius:6px;padding:.5rem}.sp-refresh-btn{align-items:center;background:var(--gray-100);cursor:pointer;display:flex}.sp-stats-summary{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.sp-stat-card{background:var(--gray-50);border-radius:8px;display:flex;flex-direction:column;gap:.25rem;padding:1rem}.sp-stat-label{color:var(--gray-600);font-size:.8rem}.sp-stat-value{color:var(--gray-900);font-size:1.5rem;font-weight:700}.sp-stats-table-wrapper{overflow-x:auto}.sp-stats-table{border-collapse:collapse;width:100%}.sp-stats-table td,.sp-stats-table th{border-bottom:1px solid var(--gray-100);padding:.75rem;text-align:left}.sp-stats-table th{background:var(--gray-50);color:var(--gray-600);font-size:.75rem;font-weight:600;text-transform:uppercase}.sp-empty-row{color:var(--gray-500);font-style:italic;text-align:center}.sp-upload-section{background:var(--gray-50);border-radius:8px;margin-bottom:1.5rem;padding:1rem}.sp-upload-section h3{font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-upload-form{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:auto 1fr auto}.sp-upload-btn{align-items:center;background:var(--primary);border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.sp-contracts-list h3{font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-no-contracts{color:var(--gray-500);font-style:italic;padding:2rem;text-align:center}.sp-contracts-table{border-collapse:collapse;width:100%}.sp-contracts-table td,.sp-contracts-table th{border-bottom:1px solid var(--gray-100);padding:.75rem;text-align:left}.sp-contracts-table th{background:var(--gray-50);color:var(--gray-600);font-size:.75rem;font-weight:600;text-transform:uppercase}.sp-icon-btn{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:4px;color:var(--gray-700);cursor:pointer;margin-right:.25rem;padding:.35rem}.sp-icon-btn:hover{background:var(--gray-200)}.sp-icon-btn.sp-delete{color:var(--red-600)}.sp-icon-btn.sp-delete:hover{background:var(--red-50)}.sp-booker-mapping{grid-column:1/-1}.sp-booker-value{align-items:center;display:flex;gap:.75rem}.sp-booker-id{background:#e0e7ff;background:var(--primary-light,#e0e7ff);border-radius:4px;color:var(--primary);font-weight:600;padding:.25rem .5rem}.sp-no-booker{color:var(--gray-500);font-style:italic}.sp-link-btn,.sp-unlink-btn{align-items:center;border-radius:4px;cursor:pointer;display:inline-flex;font-size:.85rem;gap:.25rem;padding:.35rem .75rem;transition:all .2s}.sp-link-btn{background:var(--primary);border:none;color:#fff}.sp-link-btn:hover{background:var(--primary-dark)}.sp-unlink-btn{background:var(--red-50);border:1px solid var(--red-200);color:var(--red-600);padding:.35rem}.sp-unlink-btn:hover{background:var(--red-100)}.sp-link-booker-btn{align-items:center;background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;transition:all .2s}.sp-link-booker-btn:hover{background:var(--primary-dark)}.sp-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.sp-modal{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:80vh;max-width:600px;overflow:hidden;width:90%}.sp-modal-header{align-items:center;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1rem 1.5rem}.sp-modal-header h2{font-size:1.25rem;margin:0}.sp-modal-close{background:none;border:none;color:var(--gray-500);cursor:pointer;display:flex;padding:.25rem}.sp-modal-close:hover{color:var(--gray-800)}.sp-modal-body{overflow-y:auto;padding:1.5rem}.sp-modal-info{color:var(--gray-600);margin:0 0 1rem}.sp-search-booker{align-items:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;display:flex;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.sp-search-booker .sp-search-icon{color:var(--gray-400);flex-shrink:0}.sp-search-booker input{background:none;border:none;flex:1 1;font-size:1rem;outline:none}.sp-searching{color:var(--gray-500);font-size:.85rem}.sp-booker-results{display:flex;flex-direction:column;gap:.5rem;max-height:300px;overflow-y:auto}.sp-no-results{color:var(--gray-500);padding:2rem;text-align:center}.sp-booker-item{align-items:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;display:flex;justify-content:space-between;padding:1rem;transition:all .2s}.sp-booker-item:hover{background:var(--gray-100);border-color:var(--gray-300)}.sp-booker-info{display:flex;flex-direction:column;gap:.25rem}.sp-booker-info strong{color:var(--gray-900)}.sp-booker-meta{color:var(--gray-500);font-size:.8rem}.sp-select-booker-btn{background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s}.sp-select-booker-btn:hover{background:var(--primary-dark)}.sp-select-booker-btn:disabled{cursor:not-allowed;opacity:.5}.sp-current-subscription{margin-bottom:2rem}.sp-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.sp-section-header h3{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0}.sp-edit-subscription-btn{align-items:center;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:.35rem;padding:.5rem 1rem}.sp-edit-subscription-btn:hover{opacity:.9}.sp-subscription-card{background:linear-gradient(135deg,var(--gray-50) 0,#fff 100%);border:1px solid var(--gray-200);border-radius:12px;padding:1.25rem}.sp-subscription-row{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem}.sp-subscription-item{display:flex;flex-direction:column;gap:.25rem}.sp-subscription-item .sp-label{color:var(--gray-500);font-size:.7rem;font-weight:500;text-transform:uppercase}.sp-subscription-item .sp-value{color:var(--gray-800);font-size:.95rem;font-weight:600}.sp-subscription-item.sp-total-ht{border-left:2px solid var(--gray-200);margin-left:auto;padding-left:1rem;text-align:right}.sp-subscription-item .sp-highlight{color:var(--primary);font-size:1.25rem}.sp-subscription-badges{border-top:1px dashed var(--gray-200);display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem}.sp-badge-option{background:var(--blue-100);color:var(--blue-700)}.sp-badge-option,.sp-badge-remise{border-radius:20px;display:inline-block;font-size:.8rem;font-weight:500;padding:.3rem .75rem}.sp-badge-remise{background:var(--green-100);color:var(--green-700)}.sp-history-section{margin-bottom:2rem}.sp-history-section h3{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-empty-history{background:var(--gray-50);border-radius:8px;color:var(--gray-500);font-style:italic;padding:1.5rem;text-align:center}.sp-history-table-wrapper{border:1px solid var(--gray-200);border-radius:8px;overflow-x:auto}.sp-history-table{border-collapse:collapse;font-size:.9rem;width:100%}.sp-history-table td,.sp-history-table th{border-bottom:1px solid var(--gray-100);padding:.75rem 1rem;text-align:left}.sp-history-table th{background:var(--gray-50);color:var(--gray-600);font-size:.75rem;font-weight:600;text-transform:uppercase}.sp-history-table tr.sp-active-row{background:var(--green-50)}.sp-history-table .sp-period{display:flex;flex-direction:column;gap:.15rem}.sp-history-table .sp-date-debut{font-weight:500}.sp-history-table .sp-date-sep{color:var(--gray-400);font-size:.8rem}.sp-history-table .sp-date-fin{color:var(--gray-600);font-size:.85rem}.sp-history-table .sp-montant{color:var(--primary);font-weight:600}.sp-history-table .sp-modified-by{max-width:150px}.sp-history-table .sp-modified-by,.sp-history-table .sp-reason{color:var(--gray-600);font-size:.85rem;overflow:hidden;text-overflow:ellipsis}.sp-history-table .sp-reason{max-width:200px}.sp-contracts-section{border-top:1px solid var(--gray-200);margin-top:2rem;padding-top:2rem}.sp-contracts-section h3{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-upload-inline{align-items:center;background:var(--gray-50);border-radius:8px;display:flex;gap:.75rem;margin-bottom:1rem;padding:.75rem}.sp-upload-inline .sp-form-group{gap:0;margin:0}.sp-upload-inline input,.sp-upload-inline select{border:1px solid var(--gray-300);border-radius:6px;font-size:.9rem;padding:.5rem}.sp-upload-inline .sp-desc-input{flex:1 1}.sp-contracts-list-compact{display:flex;flex-direction:column;gap:.5rem}.sp-contract-row{align-items:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;display:flex;justify-content:space-between;padding:.75rem 1rem;transition:all .2s}.sp-contract-row:hover{background:var(--gray-100)}.sp-contract-info{display:flex;flex-direction:column;gap:.15rem}.sp-contract-name{color:var(--gray-800);font-weight:500}.sp-contract-meta{color:var(--gray-500);font-size:.8rem}.sp-contract-actions{display:flex;gap:.25rem}.sp-modal.sp-modal-large{max-height:85vh;max-width:700px}.sp-edit-section{border-bottom:1px solid var(--gray-100);margin-bottom:1.5rem;padding-bottom:1.5rem}.sp-edit-section:last-child{border-bottom:none}.sp-edit-section h4{color:var(--gray-700);font-size:.85rem;font-weight:600;margin:0 0 .75rem;text-transform:uppercase}.sp-edit-section>select{border:1px solid var(--gray-300);border-radius:6px;font-size:.95rem;padding:.5rem;width:100%}.sp-edit-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.sp-edit-field{display:flex;flex-direction:column;gap:.35rem}.sp-edit-field label{color:var(--gray-600);font-size:.8rem}.sp-edit-field input,.sp-edit-field select{border:1px solid var(--gray-300);border-radius:6px;font-size:.95rem;padding:.5rem}.sp-edit-options{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.sp-edit-checkbox{align-items:center;color:var(--gray-800);cursor:pointer;display:flex;font-size:.9rem;gap:.5rem}.sp-edit-checkbox input[type=checkbox]{height:16px;width:16px}.sp-inline-field{align-items:center;display:flex;flex-direction:row;gap:.5rem}.sp-inline-field input{width:100px}.sp-change-reason{background:var(--yellow-50);border:1px solid var(--yellow-200);border-radius:8px;margin-bottom:0!important;padding:1rem!important}.sp-change-reason h4{color:var(--yellow-800)}.sp-change-reason select{background:#fff}.sp-change-reason select,.sp-reason-custom{border:1px solid var(--yellow-300);border-radius:6px;font-size:.95rem;padding:.5rem;width:100%}.sp-reason-custom{margin-top:.75rem}.sp-modal-actions{border-top:1px solid var(--gray-200);display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem;padding-top:1.5rem}.sp-btn-cancel{background:var(--gray-100);border:1px solid var(--gray-300);border-radius:6px}.sp-btn-cancel,.sp-btn-save{cursor:pointer;font-weight:500;padding:.6rem 1.25rem}.sp-btn-save{align-items:center;background:var(--primary);border:none;border-radius:6px;color:#fff;display:flex;gap:.5rem}.sp-btn-save:disabled{cursor:not-allowed;opacity:.5}.sp-back-btn{align-items:center;background:#0000;border:none;color:var(--gray-600);cursor:pointer;display:inline-flex;font-size:.9rem;gap:.5rem;margin-bottom:1rem;padding:.5rem 1rem;transition:all .2s}.sp-back-btn:hover{color:var(--primary)}.sp-crm-header{background:linear-gradient(135deg,#f8fafc,#fff);border:1px solid var(--gray-200);border-radius:12px;margin-bottom:1rem;padding:1.5rem}.sp-crm-header-main{align-items:flex-start;display:flex;gap:1.25rem}.sp-crm-icon{align-items:center;background:var(--primary);border-radius:12px;color:#fff;display:flex;flex-shrink:0;height:56px;justify-content:center;width:56px}.sp-crm-client-info{flex:1 1;min-width:0}.sp-crm-title-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:.5rem}.sp-crm-title-row h1{color:var(--gray-900);font-size:1.5rem;font-weight:700;margin:0}.sp-crm-contact-row{color:var(--gray-600);display:flex;flex-wrap:wrap;font-size:.9rem;gap:1.25rem}.sp-crm-contact-item{align-items:center;display:inline-flex;gap:.35rem}.sp-crm-contact-item svg{color:var(--gray-400)}.sp-crm-booker{font-weight:500}.sp-crm-booker,.sp-crm-booker svg{color:var(--primary)}.sp-action-bar{align-items:center;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin-bottom:1.5rem;padding:.75rem 1rem}.sp-action-bar-left,.sp-action-bar-right{display:flex;flex-wrap:wrap;gap:.5rem}.sp-action-btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.9rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s}.sp-action-primary{background:var(--primary);color:#fff}.sp-action-primary:hover{opacity:.9}.sp-action-secondary{background:#fff;border:1px solid var(--gray-300);color:var(--gray-700)}.sp-action-secondary:hover{background:var(--gray-100)}.sp-action-muted{background:#0000;border:1px solid var(--gray-300);color:var(--gray-500);font-size:.85rem;padding:.4rem .75rem}.sp-action-muted:hover{background:var(--gray-100)}.sp-action-danger{background:var(--red-50);border:1px solid var(--red-200);color:var(--red-600)}.sp-action-danger:hover{background:var(--red-100)}.sp-facturation-tab{display:flex;flex-direction:column;gap:2rem}.sp-no-facturation{color:var(--gray-500);padding:3rem;text-align:center}.sp-goto-subscription-btn{background:var(--primary);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;margin-top:1rem;padding:.75rem 1.5rem}.sp-facture-section h3{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0 0 1rem}.sp-facture-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;padding:1.5rem}.sp-facture-lines{border-bottom:1px dashed var(--gray-300);display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding-bottom:1rem}.sp-facture-line{align-items:center;display:flex;font-size:.95rem;justify-content:space-between}.sp-facture-line .sp-line-label{color:var(--gray-700)}.sp-facture-line .sp-line-amount{color:var(--gray-800);font-weight:500}.sp-facture-line.sp-offert .sp-line-amount{color:var(--green-600)}.sp-facture-line.sp-empty-line{color:var(--gray-500);font-style:italic}.sp-remise-line{padding-top:.5rem}.sp-remise-line,.sp-remise-line .sp-line-amount,.sp-remise-line .sp-line-label{color:var(--green-600)!important}.sp-facture-total{align-items:center;border-top:2px solid var(--gray-300);display:flex;justify-content:space-between;padding-top:1rem}.sp-total-label{color:var(--gray-800);font-size:1rem;font-weight:700}.sp-total-amount{color:var(--primary);font-size:1.35rem;font-weight:700}.sp-facture-variable{background:var(--yellow-50);border:1px solid var(--yellow-200);border-radius:8px;color:var(--yellow-800);font-size:.9rem;margin-top:1rem;padding:.75rem}.sp-facture-variable p{margin:0}.sp-ca-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.sp-ca-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;display:flex;flex-direction:column;gap:.5rem;padding:1.25rem}.sp-ca-card.sp-ca-annual{background:linear-gradient(135deg,var(--primary) 0,#4f46e5 100%);border:none}.sp-ca-label{color:var(--gray-600);font-size:.85rem}.sp-ca-annual .sp-ca-label{color:#fffc}.sp-ca-value{color:var(--gray-900);font-size:1.5rem;font-weight:700}.sp-ca-annual .sp-ca-value{color:#fff}.sp-ca-note{color:var(--gray-500);font-size:.85rem;font-style:italic;margin-top:1rem}.sp-modal.sp-modal-medium{max-width:550px}.sp-edit-client-form{display:flex;flex-direction:column;gap:1rem}.sp-edit-field.sp-full{grid-column:1/-1}.sp-edit-section-title{border-top:1px solid var(--gray-200);color:var(--gray-600);font-size:.85rem;font-weight:600;margin-top:1rem;padding-top:1rem;text-transform:uppercase}.sp-pdf-overlay{background:#000000bf}.sp-pdf-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;display:flex;flex-direction:column;height:90vh;max-width:1000px;overflow:hidden;width:95%}.sp-pdf-header{align-items:center;background:var(--gray-50);border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;padding:1rem 1.5rem}.sp-pdf-header h2{color:var(--gray-800);font-size:1rem;font-weight:600;margin:0;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-pdf-actions{display:flex;gap:.75rem}.sp-pdf-download{align-items:center;background:var(--primary);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.5rem 1rem}.sp-pdf-download:hover{opacity:.9}.sp-pdf-close{background:none;border:none;color:var(--gray-500);cursor:pointer;display:flex;padding:.35rem}.sp-pdf-close:hover{color:var(--gray-800)}.sp-pdf-content{flex:1 1;overflow:hidden}.sp-pdf-iframe{border:none;height:100%;width:100%}.sp-icon-btn.sp-preview{color:var(--primary)}.sp-icon-btn.sp-preview:hover{background:#e0e7ff;background:var(--primary-light,#e0e7ff)}@media (max-width:768px){.sp-crm-header-main{align-items:center;flex-direction:column;text-align:center}.sp-crm-contact-row,.sp-crm-title-row{justify-content:center}.sp-action-bar{flex-direction:column;gap:.75rem}.sp-action-bar-left,.sp-action-bar-right{justify-content:center;width:100%}.sp-tabs{overflow-x:auto}.sp-upload-form{grid-template-columns:1fr}.sp-modal{max-height:90vh;width:95%}.sp-subscription-row{flex-direction:column;gap:1rem}.sp-subscription-item.sp-total-ht{border-left:none;border-top:2px solid var(--gray-200);margin-left:0;padding-left:0;padding-top:1rem;text-align:left}.sp-upload-inline{align-items:stretch;flex-direction:column}.sp-edit-row{grid-template-columns:1fr}.sp-edit-options{align-items:flex-start;flex-direction:column}.sp-pdf-modal{border-radius:0;height:100vh;width:100%}.sp-pdf-header h2{font-size:.9rem;max-width:50%}}.pgs-container{background:#fff;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;min-height:100vh;padding:0}.pgs-header{align-items:center;border-bottom:1px solid #e5e5e5;display:flex;justify-content:center;padding:24px 20px}.pgs-logo{font-size:1.5rem;font-weight:300;letter-spacing:-.5px}.pgs-logo-text{color:#000}.pgs-logo-gs{color:#000;font-weight:700}.pgs-add-form{border-bottom:1px solid #e5e5e5;display:flex;gap:8px;padding:16px 20px}.pgs-add-input{background:#fafafa;border:1px solid #e5e5e5;border-radius:6px;color:#000;flex:1 1;font-size:.95rem;padding:12px 16px;transition:all .2s ease}.pgs-add-input:focus{background:#fff;border-color:#000;outline:none}.pgs-add-input::placeholder{color:#999}.pgs-add-btn{align-items:center;background:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .2s ease;width:44px}.pgs-add-btn:hover:not(:disabled){background:#333}.pgs-add-btn:disabled{background:#ccc;cursor:not-allowed}.pgs-empty,.pgs-error,.pgs-loading{color:#666;font-size:.9rem;padding:40px 20px;text-align:center}.pgs-error{color:#666}.pgs-tasks{padding:8px 0}.pgs-task{border-bottom:1px solid #f0f0f0;transition:all .15s ease}.pgs-task:last-child{border-bottom:none}.pgs-task.drag-over{background:#f5f5f5;border-top:2px solid #000}.pgs-task.completed{opacity:.6}.pgs-task-header{align-items:center;cursor:pointer;display:flex;gap:8px;padding:12px 16px 12px 8px;transition:background .15s ease}.pgs-task-header:hover{background:#fafafa}.pgs-drag-handle{align-items:center;color:#ccc;cursor:grab;display:flex;justify-content:center;padding:4px}.pgs-drag-handle:hover{color:#666}.pgs-drag-handle:active{cursor:grabbing}.pgs-task-status{align-items:center;display:flex;flex-shrink:0;justify-content:center}.pgs-status-icon{display:block}.pgs-task-content{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.pgs-task-title{color:#000;font-size:.95rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pgs-task.completed .pgs-task-title{color:#999;text-decoration:line-through}.pgs-task-meta{align-items:center;display:flex;gap:8px}.pgs-task-time-logged{background:#f0f0f0;border-radius:3px;color:#000;font-size:.7rem;font-weight:600;padding:2px 6px;white-space:nowrap}.pgs-task-duration{color:#999;font-size:.75rem;white-space:nowrap}.pgs-task-actions{align-items:center;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.pgs-task-header:hover .pgs-task-actions{opacity:1}.pgs-action-btn{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:4px;color:#666;cursor:pointer;display:flex;height:28px;justify-content:center;transition:all .15s ease;width:28px}.pgs-action-btn.delete:hover,.pgs-action-btn:hover{background:#f5f5f5;color:#000}.pgs-action-btn.delete:hover{border-color:#000}.pgs-action-btn.save{background:#000;border-color:#000;color:#fff}.pgs-action-btn.save:hover{background:#333}.pgs-action-btn.cancel:hover{background:#f5f5f5;border-color:#666;color:#666}.pgs-task-expanded{padding:0 16px 16px 52px}.pgs-task-description{color:#666;font-size:.875rem;line-height:1.5;margin:0 0 12px}.pgs-waiting-reason{background:#f5f5f5;border-left:3px solid #999;border-radius:4px;color:#666;font-size:.8rem;margin-bottom:12px;padding:8px 12px}.pgs-edit-title{border:1px solid #000;border-radius:4px;flex:1 1;font-size:.95rem;font-weight:500;padding:6px 10px}.pgs-edit-description{border:1px solid #e5e5e5;border-radius:4px;font-size:.875rem;margin-bottom:12px;min-height:60px;padding:10px;resize:vertical;width:100%}.pgs-edit-description:focus{border-color:#000;outline:none}.pgs-status-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.pgs-status-btn{align-items:center;background:#0000;border:1px solid #ccc;border-radius:4px;color:#333;cursor:pointer;display:flex;font-size:.8rem;font-weight:500;gap:6px;padding:6px 12px;transition:all .15s ease}.pgs-status-btn:hover{background:#f5f5f5;border-color:#000}.pgs-status-btn .pgs-status-icon{height:16px;width:16px}.pgs-waiting-group,.pgs-waiting-input-group{align-items:center;display:flex}.pgs-waiting-input-group{gap:4px}.pgs-waiting-input{border:1px solid #999;border-radius:4px;font-size:.8rem;padding:6px 10px;width:180px}.pgs-waiting-input:focus{border-color:#000;outline:none}.pgs-waiting-cancel,.pgs-waiting-confirm{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;height:26px;justify-content:center;width:26px}.pgs-waiting-confirm{background:#000;color:#fff}.pgs-waiting-confirm:hover{background:#333}.pgs-waiting-cancel{background:#e5e5e5;color:#666}.pgs-waiting-cancel:hover{background:#ccc}.pgs-subtasks{margin-top:8px}.pgs-subtask{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;gap:10px;padding:8px 0}.pgs-subtask:last-child{border-bottom:none}.pgs-subtask.completed .pgs-subtask-title{color:#999;text-decoration:line-through}.pgs-subtask.waiting{background:#fafafa;border-radius:4px;margin:4px 0;padding:8px}.pgs-subtask-content{display:flex;flex:1 1;flex-direction:column;gap:2px;min-width:0}.pgs-subtask-title{color:#333;font-size:.875rem}.pgs-subtask-waiting{color:#666;font-size:.7rem;font-style:italic}.pgs-subtask-completed-at{color:#999;font-size:.7rem}.pgs-subtask-checkbox{align-items:center;cursor:pointer;display:flex;flex-shrink:0;height:18px;justify-content:center;position:relative;width:18px}.pgs-subtask-checkbox input{cursor:pointer;opacity:0;position:absolute}.pgs-checkmark{background:#fff;border:2px solid #ccc;border-radius:3px;height:18px;position:absolute;transition:all .15s ease;width:18px}.pgs-subtask-checkbox:hover .pgs-checkmark{border-color:#000}.pgs-subtask-checkbox input:checked~.pgs-checkmark{background:#000;border-color:#000}.pgs-checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";display:none;height:9px;left:5px;position:absolute;top:1px;transform:rotate(45deg);width:4px}.pgs-subtask-checkbox input:checked~.pgs-checkmark:after{display:block}.pgs-subtask-actions{align-items:center;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.pgs-subtask:hover .pgs-subtask-actions{opacity:1}.pgs-subtask-action{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:3px;color:#999;cursor:pointer;display:flex;font-size:.7rem;font-weight:600;height:22px;justify-content:center;transition:all .15s ease;width:22px}.pgs-subtask-action:hover{background:#f5f5f5;border-color:#999;color:#333}.pgs-subtask-action.delete:hover{background:#f5f5f5;border-color:#000;color:#000}.pgs-subtask-waiting-input{align-items:center;display:flex;gap:4px;margin:4px 0 4px 28px}.pgs-subtask-waiting-input input{border:1px solid #ccc;border-radius:4px;flex:1 1;font-size:.8rem;padding:6px 10px}.pgs-subtask-waiting-input input:focus{border-color:#000;outline:none}.pgs-subtask-waiting-input button{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgs-subtask-waiting-input button:first-of-type{background:#000;color:#fff}.pgs-subtask-waiting-input button:last-of-type{background:#e5e5e5;color:#666}.pgs-subtask-add-child{align-items:center;display:flex;gap:4px;margin:4px 0 4px 28px}.pgs-subtask-add-child input{border:1px solid #e5e5e5;border-radius:4px;flex:1 1;font-size:.8rem;padding:6px 10px}.pgs-subtask-add-child input:focus{border-color:#000;outline:none}.pgs-subtask-add-child button{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgs-subtask-add-child button:hover{background:#333}.pgs-subtask-children{margin-top:4px}.pgs-add-subtask{align-items:center;display:flex;gap:6px;margin-top:8px}.pgs-subtask-input{background:#0000;border:none;border-bottom:1px solid #0000;color:#666;flex:1 1;font-size:.875rem;padding:8px 0;transition:all .15s ease}.pgs-subtask-input:focus{border-bottom-color:#000;color:#000;outline:none}.pgs-subtask-input::placeholder{color:#bbb}.pgs-subtask-add-btn{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgs-subtask-add-btn:hover{background:#333}.pgs-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pgs-modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;max-width:320px;overflow:hidden;width:90%}.pgs-modal-header{border-bottom:1px solid #e5e5e5;color:#000;font-size:1rem;font-weight:600;padding:16px 20px}.pgs-modal-body{color:#666;font-size:.9rem;padding:16px 20px}.pgs-modal-actions{background:#fafafa;border-top:1px solid #e5e5e5;display:flex;gap:8px;justify-content:flex-end;padding:12px 20px}.pgs-modal-btn{border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .15s ease}.pgs-modal-btn.cancel{background:#e5e5e5;color:#333}.pgs-modal-btn.cancel:hover{background:#ccc}.pgs-modal-btn.confirm{background:#000;color:#fff}.pgs-modal-btn.confirm:hover{background:#333}.pgs-focus-overlay{align-items:center;background:#fff;bottom:0;display:flex;justify-content:center;left:0;overflow:hidden;position:fixed;right:0;top:0;z-index:2000}.pgs-focus-gauge{background:#000;bottom:0;left:0;position:absolute;right:0;transition:height 1s linear;z-index:1}.pgs-focus-content{align-items:center;display:flex;flex-direction:column;justify-content:center;mix-blend-mode:difference;padding:40px;position:relative;text-align:center;z-index:2}.pgs-focus-task{color:#fff;font-size:2rem;font-weight:700;margin-bottom:8px}.pgs-focus-subtask,.pgs-focus-task{max-width:80%;word-break:break-word}.pgs-focus-subtask{color:#ccc;font-size:1.2rem;font-weight:400;margin-bottom:40px}.pgs-focus-timer{color:#fff;font-family:SF Mono,Monaco,Consolas,monospace;font-size:5rem;font-weight:300;letter-spacing:4px;margin-bottom:40px}.pgs-focus-actions{display:flex;gap:16px}.pgs-focus-btn{background:#0000;border:2px solid #fff;border-radius:6px;color:#fff;cursor:pointer;font-size:1rem;font-weight:500;padding:12px 32px;transition:all .2s ease}.pgs-focus-btn:hover{background:#fff;color:#000}.pgs-focus-btn.secondary{border-color:#666;color:#666}.pgs-focus-btn.secondary:hover{background:#666;color:#fff}.pgs-action-btn.focus:hover,.pgs-subtask-action.focus:hover{background:#000;border-color:#000;color:#fff}.pgs-focus-overlay.setup{background:#fff}.pgs-focus-overlay.setup .pgs-focus-content{mix-blend-mode:normal}.pgs-focus-overlay.setup .pgs-focus-task{color:#000;margin-bottom:4px}.pgs-focus-overlay.setup .pgs-focus-subtask{color:#666;margin-bottom:40px}.pgs-focus-setup{align-items:center;display:flex;flex-direction:column;gap:24px;margin-bottom:40px}.pgs-focus-time-inputs{align-items:center;display:flex;gap:8px}.pgs-focus-time-group{align-items:center;display:flex;flex-direction:column;gap:4px}.pgs-focus-time-input{-moz-appearance:textfield;background:#fafafa;border:2px solid #e5e5e5;border-radius:8px;color:#000;font-size:2.5rem;font-weight:300;height:80px;text-align:center;width:80px}.pgs-focus-time-input::-webkit-inner-spin-button,.pgs-focus-time-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.pgs-focus-time-input:focus{background:#fff;border-color:#000;outline:none}.pgs-focus-time-label{color:#999;font-size:.75rem;text-transform:uppercase}.pgs-focus-time-separator{color:#ccc;font-size:2.5rem;font-weight:300;margin-bottom:20px}.pgs-focus-presets{display:flex;gap:8px}.pgs-focus-presets button{background:#fff;border:1px solid #e5e5e5;border-radius:4px;color:#333;cursor:pointer;font-size:.85rem;padding:8px 16px;transition:all .15s ease}.pgs-focus-presets button:hover{background:#f5f5f5;border-color:#000}.pgs-focus-btn.primary{background:#000;border-color:#000;color:#fff}.pgs-focus-btn.primary:hover{background:#333}.pgs-focus-btn.primary:disabled{background:#ccc;border-color:#ccc;cursor:not-allowed}.pgs-focus-confirm-title{color:#fff;font-size:1.5rem;font-weight:600;margin-bottom:16px}.pgs-focus-confirm-text{color:#fff;font-size:1rem;margin-bottom:8px}.pgs-focus-confirm-text.secondary{color:#999;font-size:.85rem;margin-bottom:32px}.ftp-panel{background:#fafafa;border-right:1px solid #e5e5e5;display:flex;flex-direction:column;flex-shrink:0;max-height:calc(100vh - 70px);overflow:hidden;width:280px}.ftp-panel.collapsed{width:50px}.ftp-header{align-items:center;border-bottom:1px solid #e5e5e5;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background .15s ease}.ftp-header:hover{background:#f0f0f0}.ftp-panel.collapsed .ftp-header{justify-content:center;padding:16px 8px;text-orientation:mixed;writing-mode:vertical-rl}.ftp-title{color:#333;font-size:.9rem;font-weight:600;margin:0}.ftp-panel.collapsed .ftp-title{display:none}.ftp-count{background:#000;border-radius:10px;color:#fff;font-size:.75rem;font-weight:600;padding:2px 8px}.ftp-panel.collapsed .ftp-count{transform:rotate(90deg)}.ftp-content{flex:1 1;overflow-y:auto;padding:12px}.ftp-panel.collapsed .ftp-content{display:none}.ftp-add-task{align-items:center;display:flex;gap:4px;margin-bottom:12px}.ftp-add-task input{background:#fff;border:1px solid #e5e5e5;border-radius:4px;flex:1 1;font-size:.8rem;padding:8px 10px;transition:border-color .15s ease}.ftp-add-task input:focus{border-color:#000;outline:none}.ftp-add-task input::placeholder{color:#999}.ftp-add-task button{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:28px;justify-content:center;width:28px}.ftp-add-task button:hover{background:#333}.ftp-section{margin-bottom:8px}.ftp-section.completed{border-top:1px solid #e5e5e5;margin-top:16px;padding-top:12px}.ftp-section-header{color:#999;font-size:.7rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.ftp-task{margin-bottom:4px}.ftp-task-main{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:4px;display:flex;gap:8px;padding:6px 8px;position:relative;transition:all .15s ease}.ftp-task-main:hover{border-color:#ccc}.ftp-task.completed .ftp-task-main{background:#f5f5f5;opacity:.7}.ftp-task-status-icon{align-items:center;cursor:pointer;display:flex;flex-shrink:0;justify-content:center;transition:transform .15s ease}.ftp-task-status-icon:hover{transform:scale(1.1)}.ftp-status-icon{display:block}.ftp-task-title{border-radius:2px;color:#333;cursor:pointer;flex:1 1;font-size:.8rem;overflow:hidden;padding:2px;text-overflow:ellipsis;transition:background .15s ease;white-space:nowrap}.ftp-task-title:hover{background:#f0f0f0}.ftp-task-title.completed{color:#999;text-decoration:line-through}.ftp-task-title-edit{flex:1 1}.ftp-task-title-edit input{border:1px solid #000;border-radius:2px;font-size:.8rem;padding:2px 4px;width:100%}.ftp-task-title-edit input:focus{outline:none}.ftp-task-time{color:#999;flex-shrink:0;font-size:.65rem}.ftp-menu-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.ftp-status-menu{background:#fff;border:1px solid #e5e5e5;border-radius:6px;box-shadow:0 4px 12px #0000001a;left:0;margin-top:4px;min-width:140px;overflow:hidden;position:absolute;top:100%;z-index:100}.ftp-status-menu-item{align-items:center;background:#0000;border:none;color:#333;cursor:pointer;display:flex;font-size:.8rem;gap:8px;padding:8px 12px;transition:background .15s ease;width:100%}.ftp-status-menu-item:hover{background:#f5f5f5}.ftp-status-menu-item.delete{color:#dc2626}.ftp-status-menu-item.delete:hover{background:#fef2f2}.ftp-status-menu-item.active{background:#f0f0f0;font-weight:600}.ftp-menu-divider{background:#e5e5e5;height:1px;margin:4px 0}.ftp-waiting-reason{margin:4px 0 0 18px}.ftp-reason-text{background:#fef3c7;border:1px solid #f59e0b;border-radius:3px;color:#92400e;cursor:pointer;display:inline-block;font-size:.7rem;padding:3px 8px;transition:background .15s ease}.ftp-reason-text:hover{background:#fde68a}.ftp-reason-input{background:#fef3c7;border:1px solid #f59e0b;border-radius:3px;font-size:.7rem;padding:3px 8px;width:calc(100% - 18px)}.ftp-reason-input:focus{background:#fff;outline:none}.ftp-empty,.ftp-loading{color:#999;font-size:.8rem;padding:20px;text-align:center}@media (max-width:1200px){.ftp-panel{width:240px}}@media (max-width:900px){.ftp-panel{display:none}}.pgl-container{background:#fff;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0;min-height:100vh;padding:0}.pgl-header{align-items:center;border-bottom:1px solid #e5e5e5;display:flex;justify-content:space-between;padding:24px 32px}.pgl-logo{font-size:1.5rem;font-weight:300;letter-spacing:-.5px}.pgl-logo-text{color:#000}.pgl-logo-gs{color:#000;font-weight:700}.pgl-add-btn{align-items:center;background:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:500;gap:8px;padding:10px 20px;transition:all .2s ease}.pgl-add-btn:hover{background:#333}.pgl-main-layout{display:flex;min-height:calc(100vh - 73px)}.pgl-main-content{flex:1 1;overflow-y:auto}.pgl-content{margin:0 auto;max-width:1200px;padding:32px}.pgl-section{margin-bottom:40px}.pgl-section-title{border-bottom:1px solid #e5e5e5;color:#333;font-size:1.1rem;font-weight:600;margin:0 0 20px;padding-bottom:8px}.pgl-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.pgl-card{background:#fff;border:1px solid #e5e5e5;border-radius:8px;cursor:pointer;padding:20px;transition:all .2s ease}.pgl-card:hover{border-color:#000;box-shadow:0 4px 12px #00000014}.pgl-card.completed{background:#fafafa;opacity:.7}.pgl-card-header{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.pgl-card-title{color:#000;flex:1 1;font-size:1rem;font-weight:600;line-height:1.3;margin:0}.pgl-card.completed .pgl-card-title{color:#666;text-decoration:line-through}.pgl-card-done-badge{align-items:center;background:#000;border-radius:50%;color:#fff;display:flex;flex-shrink:0;height:24px;justify-content:center;width:24px}.pgl-progress-gauge{align-items:center;display:flex;gap:12px;margin-bottom:16px}.pgl-progress-bar{background:#e5e5e5;border-radius:3px;flex:1 1;height:6px;overflow:hidden}.pgl-progress-fill{background:#000;border-radius:3px;height:100%;transition:width .3s ease}.pgl-progress-text{color:#333;font-size:.8rem;font-weight:600;min-width:36px;text-align:right}.pgl-card-meta{align-items:center;display:flex;gap:16px;margin-bottom:12px}.pgl-card-assignments,.pgl-card-deadline{align-items:center;color:#666;display:flex;font-size:.8rem;gap:4px}.pgl-card-deadline.late{color:#c00}.pgl-card-creator{color:#999;font-size:.75rem}.pgl-error,.pgl-loading{color:#666;font-size:.95rem;padding:60px 20px;text-align:center}.pgl-error{color:#666}.pgl-empty{color:#666;padding:80px 20px;text-align:center}.pgl-empty p{font-size:1rem;margin:0 0 24px}.pgl-empty-btn{align-items:center;background:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:8px;padding:12px 24px;transition:all .2s ease}.pgl-empty-btn:hover{background:#333}.pgl-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pgl-modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;max-width:400px;overflow:hidden;width:90%}.pgl-modal-header{border-bottom:1px solid #e5e5e5;color:#000;font-size:1.1rem;font-weight:600;padding:20px 24px}.pgl-modal-body{padding:24px}.pgl-modal-input{background:#fafafa;border:1px solid #e5e5e5;border-radius:6px;box-sizing:border-box;color:#000;font-size:1rem;padding:12px 16px;transition:all .2s ease;width:100%}.pgl-modal-input:focus{background:#fff;border-color:#000;outline:none}.pgl-modal-input::placeholder{color:#999}.pgl-modal-actions{background:#fafafa;border-top:1px solid #e5e5e5;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.pgl-modal-btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 20px;transition:all .15s ease}.pgl-modal-btn.cancel{background:#e5e5e5;color:#333}.pgl-modal-btn.cancel:hover{background:#d0d0d0}.pgl-modal-btn.confirm{background:#000;color:#fff}.pgl-modal-btn.confirm:hover{background:#333}.pgl-modal-btn.confirm:disabled{background:#ccc;cursor:not-allowed}@media (max-width:768px){.pgl-header{flex-direction:column;gap:16px;padding:20px}.pgl-add-btn{justify-content:center;width:100%}.pgl-content{padding:20px}.pgl-grid{grid-template-columns:1fr}}.pgd-container{background:#fff;color:#000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;min-height:100vh}.pgd-header{border-bottom:1px solid #e5e5e5;justify-content:space-between;padding:16px 24px}.pgd-back-btn,.pgd-header{align-items:center;display:flex}.pgd-back-btn{background:#0000;border:1px solid #e5e5e5;border-radius:6px;color:#333;cursor:pointer;font-size:.9rem;gap:8px;padding:8px 16px;transition:all .2s ease}.pgd-back-btn:hover{background:#f5f5f5;border-color:#000}.pgd-header-actions{display:flex;gap:8px}.pgd-delete-btn{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:6px;color:#666;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.pgd-delete-btn:hover{background:#f5f5f5;border-color:#000;color:#000}.pgd-main{display:grid;grid-template-columns:1fr 380px;min-height:calc(100vh - 70px)}.pgd-left{border-right:1px solid #e5e5e5;overflow-y:auto;padding:32px}.pgd-title{color:#000;font-size:1.75rem;font-weight:600;margin:0 0 16px}.pgd-title.pgd-title-editable{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;margin-left:-8px;padding:4px 8px;transition:background .15s ease}.pgd-title.pgd-title-editable:hover{background:#f5f5f5}.pgd-title-edit-icon{color:#666;opacity:0;transition:opacity .15s ease}.pgd-title.pgd-title-editable:hover .pgd-title-edit-icon{opacity:1}.pgd-title-edit{align-items:center;display:flex;gap:8px;margin-bottom:16px}.pgd-title-edit input{border:2px solid #000;border-radius:6px;flex:1 1;font-size:1.5rem;font-weight:600;padding:8px 12px}.pgd-title-edit input:focus{outline:none}.pgd-title-edit button{align-items:center;background:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;width:36px}.pgd-title-edit button:last-child{background:#e5e5e5;color:#333}.pgd-description-section{margin-bottom:24px}.pgd-description-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.pgd-description-textarea{background:#fafafa;border:1px solid #e5e5e5;border-radius:6px;box-sizing:border-box;font-size:.9rem;min-height:80px;padding:12px;resize:vertical;transition:all .2s ease;width:100%}.pgd-description-textarea:focus{background:#fff;border-color:#000;outline:none}.pgd-description-textarea::placeholder{color:#999}.pgd-info-row{align-items:center;display:flex;flex-wrap:wrap;gap:32px;margin-bottom:20px}.pgd-label{color:#666;font-size:.85rem;margin-right:8px}.pgd-status-container{align-items:center;display:flex;position:relative}.pgd-status-btn{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:6px;cursor:pointer;display:flex;font-size:.9rem;gap:8px;padding:8px 12px;transition:all .2s ease}.pgd-status-btn:hover{background:#f5f5f5;border-color:#000}.pgd-status-menu-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.pgd-status-menu{background:#fff;border:1px solid #e5e5e5;border-radius:8px;box-shadow:0 4px 16px #0000001a;left:0;margin-top:4px;min-width:160px;overflow:hidden;position:absolute;top:100%;z-index:100}.pgd-status-menu-item{align-items:center;background:#0000;border:none;color:#333;cursor:pointer;display:flex;font-size:.875rem;gap:10px;padding:10px 14px;transition:background .15s ease;width:100%}.pgd-status-menu-item:hover{background:#f5f5f5}.pgd-status-time-since{color:#666;font-size:.8rem;font-style:italic;margin-left:8px}.pgd-progress-container{align-items:center;display:flex;flex:1 1;gap:12px;max-width:300px}.pgd-progress-bar-container{flex:1 1}.pgd-progress-bar{background:#e5e5e5;border-radius:4px;height:8px;overflow:hidden}.pgd-progress-fill{background:#000;border-radius:4px;height:100%;transition:width .3s ease}.pgd-progress-value{background:#0000;border:1px solid #0000;border-radius:4px;color:#333;cursor:pointer;font-size:.9rem;font-weight:600;min-width:50px;padding:4px 8px;text-align:center}.pgd-progress-value:hover{background:#f5f5f5;border-color:#e5e5e5}.pgd-progress-edit{align-items:center;display:flex;gap:4px}.pgd-progress-edit input{border:1px solid #000;border-radius:4px;font-size:.9rem;padding:4px 6px;text-align:center;width:50px}.pgd-progress-edit input:focus{outline:none}.pgd-progress-edit span{color:#333;font-size:.9rem}.pgd-progress-edit button{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgd-progress-edit button:last-child{background:#e5e5e5;color:#333}.pgd-deadline-row{align-items:center;display:flex;margin-bottom:32px}.pgd-deadline-value{background:#0000;border:1px solid #e5e5e5;border-radius:6px;color:#333;cursor:pointer;font-size:.9rem;padding:8px 12px;transition:all .2s ease}.pgd-deadline-value:hover{background:#f5f5f5;border-color:#000}.pgd-deadline-none{color:#999}.pgd-deadline-remaining{color:#666;font-size:.85rem;margin-left:8px}.pgd-deadline-remaining.late{color:#c00}.pgd-deadline-edit{align-items:center;display:flex;gap:8px}.pgd-deadline-edit input{border:1px solid #000;border-radius:6px;font-size:.9rem;padding:8px 12px}.pgd-deadline-edit input:focus{outline:none}.pgd-deadline-edit button{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:28px;justify-content:center;width:28px}.pgd-deadline-edit button:last-child{background:#e5e5e5;color:#333}.pgd-waiting-reason-section{margin-bottom:24px}.pgd-waiting-reason-display-large{align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:12px 16px;transition:all .15s ease}.pgd-waiting-reason-display-large:hover{background:#fde68a}.pgd-waiting-reason-display-large .pgd-waiting-reason-label{color:#92400e;font-size:.85rem;font-weight:600}.pgd-waiting-reason-display-large .pgd-waiting-reason-text{color:#78350f;flex:1 1;font-size:.9rem}.pgd-waiting-edit-icon{color:#92400e;opacity:0;transition:opacity .15s ease}.pgd-waiting-reason-display-large:hover .pgd-waiting-edit-icon{opacity:1}.pgd-waiting-reason-edit-large{align-items:center;display:flex;gap:8px}.pgd-waiting-reason-edit-large input{background:#fef3c7;border:2px solid #f59e0b;border-radius:6px;flex:1 1;font-size:.9rem;padding:10px 14px}.pgd-waiting-reason-edit-large input:focus{background:#fff;outline:none}.pgd-waiting-reason-edit-large button{align-items:center;background:#f59e0b;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.pgd-waiting-reason-edit-large button:last-child{background:#e5e5e5;color:#333}.pgd-subtasks-section{margin-top:24px}.pgd-section-title{border-bottom:1px solid #e5e5e5;color:#333;font-size:1rem;font-weight:600;margin:0 0 16px;padding-bottom:8px}.pgd-subtasks-list{margin-bottom:16px}.pgd-subtask,.pgd-subtask-wrapper{position:relative}.pgd-subtask{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;gap:10px;padding:10px 8px}.pgd-subtask:hover{background:#fafafa}.pgd-subtask.completed{opacity:.6}.pgd-subtask-status{cursor:pointer;flex-shrink:0}.pgd-subtask-title{border-radius:3px;color:#333;cursor:pointer;flex:1 1;font-size:.9rem;padding:2px 4px;transition:background .15s ease}.pgd-subtask-title:hover{background:#e5e5e5}.pgd-subtask-title.completed{color:#999;text-decoration:line-through}.pgd-subtask-title-edit{align-items:center;display:flex;flex:1 1;gap:4px}.pgd-subtask-title-edit input{border:1px solid #000;border-radius:4px;flex:1 1;font-size:.9rem;padding:4px 8px}.pgd-subtask-title-edit input:focus{outline:none}.pgd-subtask-title-edit button{align-items:center;background:#000;border:none;border-radius:3px;color:#fff;cursor:pointer;display:flex;height:22px;justify-content:center;width:22px}.pgd-subtask-title-edit button:last-child{background:#e5e5e5;color:#333}.pgd-subtask-time-since{color:#999;font-size:.7rem;font-style:italic;white-space:nowrap}.pgd-subtask-timestamp{color:#999;font-size:.75rem;white-space:nowrap}.pgd-waiting-reason-block{margin:4px 0 8px 28px}.pgd-waiting-reason-display{align-items:center;background:#fef3c7;border:1px solid #f59e0b;border-radius:4px;cursor:pointer;display:flex;font-size:.8rem;gap:6px;padding:6px 10px;transition:background .15s ease}.pgd-waiting-reason-display:hover{background:#fde68a}.pgd-waiting-reason-display .pgd-waiting-reason-label{color:#92400e;font-weight:600}.pgd-waiting-reason-display .pgd-waiting-reason-text{color:#78350f}.pgd-waiting-reason-edit{align-items:center;display:flex;gap:4px}.pgd-waiting-reason-edit input{background:#fef3c7;border:1px solid #f59e0b;border-radius:4px;flex:1 1;font-size:.8rem;padding:6px 10px}.pgd-waiting-reason-edit input:focus{background:#fff;outline:none}.pgd-waiting-reason-edit button{align-items:center;background:#f59e0b;border:none;border-radius:3px;color:#fff;cursor:pointer;display:flex;height:22px;justify-content:center;width:22px}.pgd-waiting-reason-edit button:last-child{background:#e5e5e5;color:#333}.pgd-subtask-assign{flex-shrink:0;position:relative}.pgd-subtask-assigned-badge{align-items:center;background:#000;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.65rem;font-weight:600;height:22px;justify-content:center;transition:transform .15s ease;width:22px}.pgd-subtask-assigned-badge:hover{transform:scale(1.1)}.pgd-subtask-assign-btn{align-items:center;background:#0000;border:1px dashed #ccc;border-radius:50%;color:#999;cursor:pointer;display:flex;height:22px;justify-content:center;transition:all .15s ease;width:22px}.pgd-subtask-assign-btn:hover{border-color:#666;color:#666}.pgd-assign-picker-backdrop{bottom:0;left:0;position:fixed;right:0;top:0;z-index:99}.pgd-subtask-assign-picker{background:#fff;border:1px solid #e5e5e5;border-radius:6px;box-shadow:0 4px 12px #00000026;margin-top:4px;max-height:240px;min-width:180px;overflow:hidden;overflow-y:auto;position:absolute;right:0;top:100%;z-index:100}.pgd-assign-picker-item{align-items:center;background:#0000;border:none;color:#333;cursor:pointer;display:flex;font-size:.8rem;gap:8px;padding:8px 12px;text-align:left;transition:background .15s ease;width:100%}.pgd-assign-picker-item:hover{background:#f5f5f5}.pgd-assign-picker-item.selected{background:#f0f0f0;font-weight:600}.pgd-assign-picker-item.remove{border-bottom:1px solid #e5e5e5;color:#dc2626}.pgd-assign-picker-item.remove:hover{background:#fef2f2}.pgd-assign-picker-initials{align-items:center;background:#e5e5e5;border-radius:50%;color:#333;display:flex;font-size:.6rem;font-weight:600;height:22px;justify-content:center;width:22px}.pgd-subtask-actions{display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.pgd-subtask:hover .pgd-subtask-actions{opacity:1}.pgd-subtask-action{align-items:center;background:#0000;border:1px solid #e5e5e5;border-radius:4px;color:#666;cursor:pointer;display:flex;height:24px;justify-content:center;transition:all .15s ease;width:24px}.pgd-subtask-action:hover{background:#f5f5f5;border-color:#999;color:#333}.pgd-subtask-action.delete:hover{border-color:#000;color:#000}.pgd-subtask-children{margin-top:4px}.pgd-add-child-input{align-items:center;display:flex;gap:6px;margin:8px 0 8px 28px}.pgd-add-child-input input{border:1px solid #e5e5e5;border-radius:4px;flex:1 1;font-size:.85rem;padding:6px 10px}.pgd-add-child-input input:focus{border-color:#000;outline:none}.pgd-add-child-input button{align-items:center;border:none;border-radius:4px;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgd-add-child-input button:first-of-type{background:#000;color:#fff}.pgd-add-child-input button:last-of-type{background:#e5e5e5;color:#666}.pgd-add-subtask{align-items:center;background:#fafafa;border-radius:6px;display:flex;gap:8px;padding:8px}.pgd-add-subtask input{background:#0000;border:none;border-radius:4px;flex:1 1;font-size:.9rem;padding:10px 12px}.pgd-add-subtask input:focus{outline:none}.pgd-add-subtask input::placeholder{color:#999}.pgd-add-subtask button{align-items:center;background:#000;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;height:32px;justify-content:center;width:32px}.pgd-add-subtask button:hover{background:#333}.pgd-right{background:#fafafa;display:flex;flex-direction:column;gap:0;overflow-y:auto}.pgd-panel-title{align-items:center;color:#333;display:flex;font-size:.9rem;font-weight:600;gap:8px;margin:0 0 12px}.pgd-saving{color:#999;font-size:.75rem;font-weight:400}.pgd-notes-panel{border-bottom:1px solid #e5e5e5;padding:20px}.pgd-notes-textarea{background:#fff;border:1px solid #e5e5e5;border-radius:6px;box-sizing:border-box;font-size:.9rem;min-height:120px;padding:12px;resize:vertical;width:100%}.pgd-notes-textarea:focus{border-color:#000;outline:none}.pgd-notes-textarea::placeholder{color:#999}.pgd-chat-panel{border-bottom:1px solid #e5e5e5;display:flex;flex:1 1;flex-direction:column;min-height:250px;padding:20px}.pgd-chat-messages{flex:1 1;margin-bottom:12px;max-height:300px;overflow-y:auto}.pgd-chat-empty{color:#999;font-size:.85rem;padding:20px;text-align:center}.pgd-chat-message{background:#fff;border:1px solid #e5e5e5;border-radius:8px;margin-bottom:12px;padding:10px 12px}.pgd-chat-message.own{background:#f0f0f0;border-color:#d0d0d0}.pgd-chat-message-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.pgd-chat-message-user{color:#333;font-size:.8rem;font-weight:600}.pgd-chat-message-time{color:#999;font-size:.7rem}.pgd-chat-message-content{color:#333;font-size:.9rem;line-height:1.4}.pgd-chat-input-container{display:flex;gap:8px}.pgd-chat-input{background:#fff;border:1px solid #e5e5e5;border-radius:6px;flex:1 1;font-size:.9rem;padding:10px 14px}.pgd-chat-input:focus{border-color:#000;outline:none}.pgd-chat-send{align-items:center;background:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;height:40px;justify-content:center;width:40px}.pgd-chat-send:hover:not(:disabled){background:#333}.pgd-chat-send:disabled{background:#ccc;cursor:not-allowed}.pgd-assignments-panel{padding:20px}.pgd-assignments-list{margin-bottom:12px}.pgd-assignments-empty{color:#999;font-size:.85rem;padding:12px;text-align:center}.pgd-assignment-item{align-items:center;background:#fff;border:1px solid #e5e5e5;border-radius:6px;display:flex;gap:8px;margin-bottom:8px;padding:8px 12px}.pgd-assignment-name{color:#333;flex:1 1;font-size:.9rem}.pgd-assignment-remove{align-items:center;background:#0000;border:none;border-radius:4px;color:#999;cursor:pointer;display:flex;height:24px;justify-content:center;width:24px}.pgd-assignment-remove:hover{background:#f5f5f5;color:#000}.pgd-add-assignment-btn{align-items:center;background:#0000;border:1px dashed #ccc;border-radius:6px;color:#666;cursor:pointer;display:flex;font-size:.85rem;gap:8px;justify-content:center;padding:10px;transition:all .2s ease;width:100%}.pgd-add-assignment-btn:hover{border-color:#000;color:#000}.pgd-user-picker-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pgd-user-picker{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;display:flex;flex-direction:column;max-height:400px;max-width:360px;width:90%}.pgd-user-picker-header{align-items:center;border-bottom:1px solid #e5e5e5;display:flex;font-weight:600;justify-content:space-between;padding:16px 20px}.pgd-user-picker-header button{background:#0000;border:none;color:#666;cursor:pointer}.pgd-user-picker-header button:hover{color:#000}.pgd-user-picker-list{flex:1 1;overflow-y:auto;padding:8px}.pgd-user-picker-empty{color:#999;font-size:.9rem;padding:20px;text-align:center}.pgd-user-picker-item{align-items:center;background:#0000;border:none;border-radius:6px;color:#333;cursor:pointer;display:flex;font-size:.9rem;gap:10px;padding:12px 16px;transition:background .15s ease;width:100%}.pgd-user-picker-item:hover{background:#f5f5f5}.pgd-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.pgd-modal{background:#fff;border-radius:8px;box-shadow:0 10px 40px #0003;max-width:320px;overflow:hidden;width:90%}.pgd-modal-header{border-bottom:1px solid #e5e5e5;color:#000;font-size:1rem;font-weight:600;padding:16px 20px}.pgd-modal-body{color:#666;font-size:.9rem;padding:16px 20px}.pgd-modal-actions{background:#fafafa;border-top:1px solid #e5e5e5;display:flex;gap:8px;justify-content:flex-end;padding:12px 20px}.pgd-modal-btn{border:none;border-radius:4px;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 16px;transition:all .15s ease}.pgd-modal-btn.cancel{background:#e5e5e5;color:#333}.pgd-modal-btn.cancel:hover{background:#ccc}.pgd-modal-btn.confirm{background:#000;color:#fff}.pgd-modal-btn.confirm:hover{background:#333}.pgd-error,.pgd-loading{align-items:center;color:#666;display:flex;flex-direction:column;font-size:1rem;gap:20px;justify-content:center;min-height:50vh}@media (max-width:900px){.pgd-main{grid-template-columns:1fr}.pgd-left{border-bottom:1px solid #e5e5e5;border-right:none}.pgd-right{min-height:auto}.pgd-chat-messages{max-height:200px}}@media (max-width:600px){.pgd-left{padding:20px}.pgd-title{font-size:1.4rem}.pgd-info-row{align-items:flex-start;flex-direction:column;gap:16px}.pgd-progress-container{max-width:100%;width:100%}}.travel-agency-page{margin:0 auto;max-width:1600px;padding:20px}.travel-agency-page h1{color:#1e293b;margin-bottom:20px}.stats-row{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:20px}.stat-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;min-width:120px;padding:15px 20px;transition:all .2s ease}.stat-card.clickable{border:2px solid #0000;cursor:pointer}.stat-card.clickable:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.stat-card.clickable.active{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.stat-card.highlight{background:#3b82f6;color:#fff}.stat-card.highlight.active{border-color:#1d4ed8;box-shadow:0 0 0 3px #1d4ed84d}.stat-value{font-size:24px;font-weight:700}.stat-label{font-size:12px;margin-top:4px;opacity:.8}.filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.search-form{display:flex;gap:0}.search-form input{border:1px solid #e2e8f0;border-radius:6px 0 0 6px;padding:8px 12px;width:250px}.search-form button{background:#3b82f6;border:none;border-radius:0 6px 6px 0;color:#fff;cursor:pointer;padding:8px 12px}.filters-row select{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px}.checkbox-label{align-items:center;cursor:pointer;display:flex;font-size:14px;gap:6px}.table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.travel-agency-page table{border-collapse:collapse;width:100%}.travel-agency-page th{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#64748b;font-size:13px;font-weight:600;padding:12px;text-align:left}.travel-agency-page td{border-bottom:1px solid #f1f5f9;font-size:14px;padding:12px}.travel-agency-page tbody tr:hover{background:#f8fafc}.travel-agency-page tbody tr.excluded{background:#f1f5f9;opacity:.5}.nom-cell{max-width:250px}.nom-cell strong{display:block}.nom-cell small{color:#64748b;font-size:12px}.status-badge{border-radius:4px;display:inline-block;font-size:12px;font-weight:500;padding:4px 8px}.email-cell{min-width:100px}.email-info{display:flex;flex-direction:column;gap:2px}.email-info svg{margin-bottom:2px}.email-type{font-size:12px;font-weight:500}.email-info small{color:#64748b;font-size:11px}.no-email{color:#cbd5e1}.agreement-cell{min-width:80px}.agreement-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:4px 8px}.no-agreement{color:#cbd5e1}.assigned-cell{font-size:13px}.assigned-me{background:#10b981;border-radius:4px;color:#fff;font-size:12px;font-weight:600;padding:3px 8px}.assigned-other{color:#64748b}.assigned-none{color:#cbd5e1}.attribution-filter{font-weight:500}.actions-cell{white-space:nowrap}.actions-cell button{background:#f1f5f9;border:none;border-radius:4px;color:#64748b;cursor:pointer;margin-right:4px;padding:6px}.actions-cell button:hover{background:#e2e8f0;color:#1e293b}.actions-cell button.assign{color:#10b981}.actions-cell button.unassign{color:#ef4444}.actions-cell button.google{color:#3b82f6}.actions-cell button.exclude{color:#9ca3af}.actions-cell button.exclude:hover{color:#ef4444}.empty,.loading{color:#64748b;padding:40px;text-align:center}.pagination{align-items:center;color:#64748b;display:flex;font-size:14px;justify-content:space-between;margin-top:20px}.pagination-buttons{align-items:center;display:flex;gap:10px}.pagination-buttons button{background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;padding:8px 16px}.pagination-buttons button:disabled{cursor:not-allowed;opacity:.5}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;max-height:80vh;max-width:500px;overflow-y:auto;padding:24px;width:90%}.modal.modal-large{max-width:700px}.modal h2{font-size:20px;margin:0 0 8px}.modal h3{border-bottom:1px solid #e2e8f0;color:#374151;font-size:15px;margin:0 0 12px;padding-bottom:8px}.modal p{color:#64748b;margin:0 0 20px}.modal label{color:#374151;display:block;font-size:13px;font-weight:500;margin-bottom:6px;margin-top:16px}.modal label:first-of-type{margin-top:0}.modal input,.modal select,.modal textarea{border:1px solid #e2e8f0;border-radius:6px;font-size:14px;padding:10px 12px;width:100%}.modal textarea{resize:vertical}.modal-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1fr 1fr;margin-bottom:16px}.modal-section h3,.modal-section label:first-of-type{margin-top:0}@media (max-width:600px){.modal-grid{grid-template-columns:1fr}}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.modal-actions button{border-radius:6px;cursor:pointer;font-weight:500;padding:10px 20px}.modal-actions button.secondary{background:#f1f5f9;border:none;color:#64748b}.modal-actions button.primary{background:#3b82f6;border:none;color:#fff}.empty-history{color:#64748b;padding:20px;text-align:center}.history-list{max-height:400px;overflow-y:auto}.history-item{border:1px solid #e2e8f0;border-radius:8px;margin-bottom:10px;padding:12px}.history-header{display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px}.history-date{color:#64748b}.history-user{font-weight:500}.history-status{align-items:center;display:flex;gap:8px}.history-status .arrow{color:#64748b}.history-notes{background:#f8fafc;border-radius:4px;color:#64748b;font-size:13px;margin-top:8px;padding:8px}.btn{align-items:center;border:1px solid #0000;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-primary);font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-2);justify-content:center;line-height:1;padding:var(--space-3) var(--space-6);text-decoration:none;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-primary{background-color:var(--black);border-color:var(--black);color:var(--white)}.btn-primary:hover:not(:disabled){background-color:var(--gray-800);border-color:var(--gray-800)}.btn-primary:active:not(:disabled){background-color:var(--gray-900);transform:scale(.98)}.btn-secondary{background-color:var(--white);border-color:var(--gray-300);color:var(--black)}.btn-secondary:hover:not(:disabled){background-color:var(--gray-50);border-color:var(--gray-400)}.btn-ghost{background-color:initial;border-color:#0000;color:var(--black)}.btn-ghost:hover:not(:disabled){background-color:var(--gray-100)}.btn-outline{background-color:initial;border-color:var(--black);color:var(--black)}.btn-danger,.btn-outline:hover:not(:disabled){background-color:var(--black);color:var(--white)}.btn-danger{border-color:var(--black)}.btn-danger:hover:not(:disabled){background-color:var(--gray-700)}.btn-xs{padding:var(--space-1) var(--space-3)}.btn-sm,.btn-xs{font-size:var(--text-xs)}.btn-sm{padding:var(--space-2) var(--space-4)}.btn-lg{font-size:var(--text-base);padding:var(--space-4) var(--space-8)}.btn-xl{font-size:var(--text-lg);padding:var(--space-5) var(--space-10)}.btn-full{width:100%}.form-group,.input-group{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.form-label,.input-label{color:var(--black);font-size:var(--text-sm);font-weight:var(--font-medium)}.form-group input,.form-group select,.form-group textarea,.input{background-color:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-md);color:var(--black);font-family:var(--font-primary);font-size:var(--text-sm);outline:none;padding:var(--space-3) var(--space-4);transition:all var(--transition-fast);width:100%}.form-group input:hover,.form-group textarea:hover,.input:hover{border-color:var(--gray-400)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus,.input:focus{border-color:var(--black);box-shadow:0 0 0 1px var(--black)}.form-group input:disabled,.form-group textarea:disabled,.input:disabled{background-color:var(--gray-100);border-color:var(--gray-200);color:var(--gray-500);cursor:not-allowed}.form-group input.error,.input-error{background-color:var(--gray-50);border-color:var(--black)}.input-helper{color:var(--gray-600)}.input-error-msg,.input-helper{font-size:var(--text-xs);margin-top:calc(var(--space-2)*-1)}.input-error-msg{color:var(--black);font-weight:var(--font-medium)}.form-group textarea,textarea.input{min-height:100px;resize:vertical}.form-group select,select.input{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right var(--space-3) center;background-repeat:no-repeat;padding-right:var(--space-8)}.card{background-color:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:var(--space-6);transition:box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{border-bottom:1px solid var(--gray-200);margin-bottom:var(--space-4);padding-bottom:var(--space-4)}.card-title{color:var(--black);font-size:var(--text-xl);font-weight:var(--font-semibold);margin-bottom:0}.card-subtitle{color:var(--gray-600);font-size:var(--text-sm);margin-top:var(--space-2)}.card-body{color:var(--gray-700)}.card-footer{border-top:1px solid var(--gray-200);margin-top:var(--space-4);padding-top:var(--space-4)}.logo{align-items:center;color:var(--black);display:flex;font-size:var(--text-xl);font-weight:var(--font-semibold);gap:var(--space-3)}.logo-icon{flex-shrink:0}.logo-text{white-space:nowrap}.loader{animation:spin .6s linear infinite;border:2px solid var(--gray-300);border-radius:50%;border-top-color:var(--black);display:inline-block;height:20px;width:20px}.loader-sm{border-width:2px;height:16px;width:16px}.loader-lg{border-width:3px;height:40px;width:40px}.loader-xl{border-width:4px;height:64px;width:64px}.loading-container{align-items:center;display:flex;flex-direction:column;gap:var(--space-4);justify-content:center;min-height:200px}.alert{border:1px solid var(--gray-300);border-radius:var(--radius-md);font-size:var(--text-sm);margin-bottom:var(--space-4);padding:var(--space-4)}.alert-info{background-color:var(--gray-100);border-color:var(--gray-300);color:var(--gray-700)}.alert-success{background-color:var(--gray-50);border-color:var(--gray-400);color:var(--gray-700)}.alert-warning{background-color:var(--gray-100);border-color:var(--gray-500);color:var(--gray-900)}.alert-error,.error-message{background-color:var(--black);border-color:var(--black);border-radius:var(--radius-md);color:var(--white)}.alert-error,.error-message,.success-message{font-size:var(--text-sm);margin-bottom:var(--space-4);padding:var(--space-4)}.success-message{border:1px solid var(--gray-300);color:var(--black)}.badge,.success-message{background-color:var(--gray-100);border-radius:var(--radius-md)}.badge{align-items:center;color:var(--gray-700);display:inline-flex;font-size:var(--text-xs);font-weight:var(--font-medium);padding:var(--space-1) var(--space-3);white-space:nowrap}.badge-black{background-color:var(--black);color:var(--white)}.badge-outline{background-color:initial;border:1px solid var(--gray-300);color:var(--gray-700)}.divider{height:1px;margin:var(--space-4) 0}.divider,.divider-vertical{background-color:var(--gray-200)}.divider-vertical{height:auto;margin:0 var(--space-4);width:1px}.nav-item{align-items:center;border-radius:var(--radius-md);color:var(--gray-700);cursor:pointer;display:flex;font-size:var(--text-sm);font-weight:var(--font-medium);gap:var(--space-3);padding:var(--space-3) var(--space-4);text-decoration:none;transition:all var(--transition-fast)}.nav-item:hover{background-color:var(--gray-100);color:var(--black)}.nav-item.active{background-color:var(--black);color:var(--white)}.nav-icon{flex-shrink:0;height:20px;width:20px}.auth-container{background-color:var(--gray-50);padding:var(--space-4)}.auth-card{background-color:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8)}.auth-header{margin-bottom:var(--space-8);text-align:center}.auth-title{color:var(--black);font-size:var(--text-3xl);font-weight:var(--font-semibold);margin-bottom:var(--space-2)}.auth-footer,.auth-subtitle{color:var(--gray-600);font-size:var(--text-sm)}.auth-footer{margin-top:var(--space-6);text-align:center}.text-link{color:var(--gray-700);font-size:var(--text-sm);transition:color var(--transition-fast)}.text-link:hover{color:var(--black)}.webcam-container{border:2px solid var(--gray-300);border-radius:var(--radius-lg);margin:0 auto;max-width:500px;overflow:hidden}.webcam-container,.webcam-wrapper{background-color:var(--black);position:relative;width:100%}.webcam-video{display:block;height:auto;width:100%}.face-overlay{align-items:center;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0}.face-guide{border:3px solid var(--white);border-radius:50%;box-shadow:0 0 0 9999px #0000004d;height:200px;width:200px}.webcam-error{background-color:var(--gray-100);border:1px solid var(--gray-300);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center}@media (max-width:768px){.dashboard-layout{flex-direction:column}.sidebar{border-bottom:1px solid var(--gray-200);border-right:none;height:auto;position:relative;width:100%}.main-content{margin-left:0}.auth-card{max-width:100%;padding:var(--space-6)}.content{padding:var(--space-4)}}@media (max-width:640px){.btn{padding:var(--space-2) var(--space-4)}.header-actions{gap:var(--space-2)}.card{padding:var(--space-4)}}.App{background-color:#fafafa;background-color:var(--gray-50,#fafafa);min-height:100vh}.loading{color:#404040;color:var(--gray-700,#404040);flex-direction:column;font-size:1rem;font-weight:500;gap:1.5rem}.auth-container,.loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.auth-container{background-color:#fafafa;background-color:var(--gray-50,#fafafa);padding:1rem}.auth-card{background:#fff;background:var(--white,#fff);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:6px;box-shadow:0 10px 15px -3px #0000001a;max-width:420px;padding:2rem;width:100%}.auth-card h1{color:#000;color:var(--black,#000);font-size:1.875rem;font-weight:600;margin-bottom:.5rem;text-align:center}.auth-card h2{color:#525252;color:var(--gray-600,#525252);font-size:.875rem;font-weight:400;margin-bottom:2rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{color:#000;color:var(--black,#000);display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{background-color:#fff;background-color:var(--white,#fff);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);border-radius:4px;color:#000;color:var(--black,#000);font-size:.875rem;padding:.75rem 1rem;transition:all .15s cubic-bezier(.4,0,.2,1);width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#000;border-color:var(--black,#000);box-shadow:0 0 0 1px #000;box-shadow:0 0 0 1px var(--black,#000);outline:none}.btn-submit{background-color:#000;background-color:var(--black,#000);border:1px solid #000;border:1px solid var(--black,#000);border-radius:4px;color:#fff;color:var(--white,#fff);cursor:pointer;font-size:.875rem;font-weight:500;padding:.75rem 1.5rem;transition:all .15s cubic-bezier(.4,0,.2,1);width:100%}.btn-submit:hover:not(:disabled){background-color:#262626;background-color:var(--gray-800,#262626);border-color:#262626;border-color:var(--gray-800,#262626)}.btn-submit:disabled{cursor:not-allowed;opacity:.5}.error-message{background-color:#000;background-color:var(--black,#000);border:1px solid #000;border:1px solid var(--black,#000);border-radius:4px;color:#fff;color:var(--white,#fff)}.error-message,.success-message{font-size:.875rem;margin-bottom:1rem;padding:1rem}.success-message{background-color:#f5f5f5;background-color:var(--gray-100,#f5f5f5);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);border-radius:4px;color:#000;color:var(--black,#000)}.text-link{color:#404040;color:var(--gray-700,#404040);display:block;font-size:.875rem;margin-top:1.5rem;text-align:center;text-decoration:none;transition:color .15s cubic-bezier(.4,0,.2,1)}.text-link:hover{color:#000;color:var(--black,#000);text-decoration:underline}.dashboard-container{padding:0;width:100%}