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}.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__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}.calibration-capture,.calibration-intro,.calibration-processing,.calibration-success{margin:0 auto;max-width:700px}.intro-content{margin:2rem 0;text-align:left}.intro-content h3{color:#000;color:var(--black,#000);font-size:1.25rem;font-weight:600;margin-bottom:1rem}.intro-content p{color:#404040;color:var(--gray-700,#404040);line-height:1.6;margin-bottom:1.5rem}.instructions-list{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:4px;margin:1.5rem 0;padding:1.5rem}.instructions-list h4{color:#000;color:var(--black,#000);font-size:1rem;font-weight:600;margin-bottom:1rem}.instructions-list ul{list-style:none;margin:0;padding:0}.instructions-list li{color:#404040;color:var(--gray-700,#404040);font-size:.875rem;padding:.5rem 0}.security-note{background-color:#f5f5f5;background-color:var(--gray-100,#f5f5f5);border-left:3px solid #000;border-left:3px solid var(--black,#000);border-radius:4px;margin:1.5rem 0;padding:1rem 1.5rem}.security-note strong{color:#000;color:var(--black,#000);display:block;font-weight:600;margin-bottom:.5rem}.security-note p{color:#404040;color:var(--gray-700,#404040);font-size:.875rem;margin:0}.progress-text{color:#000;color:var(--black,#000);font-size:1.125rem;margin:.75rem 0}.progress-bar{background-color:#e5e5e5;background-color:var(--gray-200,#e5e5e5);margin:1.5rem 0}.instruction-box,.progress-fill{background-color:#000;background-color:var(--black,#000)}.instruction-box{border-radius:4px;color:#fff;color:var(--white,#fff);margin:1.5rem 0;padding:1.5rem;text-align:center}.instruction-box h3{color:#fff;color:var(--white,#fff);font-size:1.25rem;font-weight:600;margin:0}.webcam-wrapper{background-color:#000;background-color:var(--black,#000);border:1px solid #d4d4d4;border:1px solid var(--gray-300,#d4d4d4);border-radius:4px;margin:1.5rem 0;overflow:hidden}.face-guide{border:3px solid #fff;border:3px solid var(--white,#fff);box-shadow:0 0 0 9999px #0006}.btn-capture-big{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:1rem;font-weight:500;padding:1rem 2.5rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-capture-big:hover:not(:disabled){background-color:#262626;background-color:var(--gray-800,#262626)}.btn-capture-big:disabled{cursor:not-allowed;opacity:.5}.btn-secondary{border:1px solid var(--gray-300,#d4d4d4);border-radius:4px;padding:.875rem 2rem;transition:all .15s cubic-bezier(.4,0,.2,1)}.btn-secondary:hover{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border-color:var(--gray-400,#a3a3a3)}.button-group{gap:1rem;margin-top:2rem}.button-group,.captured-thumbnails{display:flex;flex-wrap:wrap;justify-content:center}.captured-thumbnails{background-color:#fafafa;background-color:var(--gray-50,#fafafa);border:1px solid #e5e5e5;border:1px solid var(--gray-200,#e5e5e5);border-radius:4px;gap:.75rem;margin-top:1.5rem;padding:1rem}.thumbnail{border:2px solid #000;border:2px solid var(--black,#000);border-radius:4px;height:80px;object-fit:cover;width:80px}.calibration-processing{padding:4rem 2.5rem;text-align:center}.loader{animation:spin .8s linear infinite;border-top:4px solid #000;height:60px;margin:0 auto 2rem;width:60px}.calibration-success{padding:4rem 2.5rem;text-align:center}.success-icon{align-items:center;background-color:#000;background-color:var(--black,#000);border-radius:50%;color:#fff;color:var(--white,#fff);display:flex;font-size:3.75rem;height:100px;justify-content:center;line-height:100px;margin:0 auto 2rem;width:100px}.success-detail{color:#404040;color:var(--gray-700,#404040);font-size:1rem;margin:1.5rem 0}.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;overflow:hidden}.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}@keyframes slideIn{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.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{gap:.25rem}.filter-group label{font-size:.75rem}.filter-group select{border:1px solid #d1d5db;border-radius:6px;color:#111827;min-width:150px;padding:.5rem 2rem .5rem .75rem}.filter-group select:focus{border-color:#111827;box-shadow:0 0 0 2px #1118271a}.refresh-btn{background:#111827;border-radius:6px;font-size:.875rem;padding:.5rem 1rem;transition:background .2s}.refresh-btn:hover:not(:disabled){background:#374151}.kpi-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.kpi-card{border:1px solid #e5e7eb;box-shadow:0 1px 3px #0000000d;padding:1.25rem}.kpi-label{color:#6b7280;font-size:.75rem;font-weight:600;margin-bottom:.5rem;text-transform:uppercase}.kpi-value{color:#111827;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{background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000000d;margin-bottom:1.5rem;padding:1.5rem}.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}.section-header h2{margin:0}.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{border-collapse:collapse;width:100%}.parking-table td,.parking-table th{border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;text-align:left}.parking-table th{background:#f9fafb;color:#6b7280;font-size:.75rem;font-weight:600;text-transform:uppercase}.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}.empty-state,.error-message,.loading-state{color:#6b7280;padding:3rem;text-align:center}.success-message{background:#d1fae5;color:#059669;font-weight:500}.cache-warning,.success-message{border-radius:8px;text-align:center}.cache-warning{background:#fef3c7;color:#b45309;font-size:.875rem;margin-bottom:1rem;padding:1rem}.refresh-progress{align-items:center;background:#f3f4f6;border-radius:8px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem}.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}}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#17171780;padding:1rem}.modal-content{max-width:600px;overflow:auto}.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:last-child{margin-bottom:0}.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;font-weight:600}.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}}.page-header-container{background:linear-gradient(135deg,#2c3e50,#3d5a80);border-radius:12px;box-shadow:0 4px 12px #0000001a;margin-bottom:2rem;padding:1.5rem 2rem}.page-header-top{flex-wrap:wrap;justify-content:space-between}.page-header-logo-section,.page-header-top{align-items:center;display:flex;gap:1rem}.page-header-titles{display:flex;flex-direction:column}.page-header-title{color:#fff;font-size:1.75rem;font-weight:700;letter-spacing:-.5px;margin:0}.page-header-subtitle{color:#fffc;font-size:.95rem;font-weight:400;margin:.25rem 0 0}.page-header-actions{align-items:center;display:flex;gap:1rem}.btn-back-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.btn-back-header:hover{background:#fff3;border-color:#ffffff4d;box-shadow:0 4px 12px #0003;transform:translateY(-1px)}@media (max-width:768px){.page-header-container{padding:1rem}.page-header-top{align-items:flex-start;flex-direction:column}.page-header-title{font-size:1.5rem}.page-header-actions{flex-direction:column;width:100%}.btn-back-header{width:100%}}.breadcrumbs{align-items:center;display:flex;font-size:.9rem;margin-bottom:1rem;padding:1rem 2rem}.breadcrumb-item{align-items:center;display:inline-flex}.breadcrumb-link{color:#6c757d;font-weight:500;text-decoration:none;transition:color .2s ease}.breadcrumb-link:hover{color:#3d5a80;text-decoration:underline}.breadcrumb-separator{color:#adb5bd;font-weight:300;margin:0 .5rem}.breadcrumb-current{color:#2c3e50;font-weight:600}@media (max-width:768px){.breadcrumbs{font-size:.85rem;padding:.75rem 1rem}.breadcrumb-separator{margin:0 .35rem}}.admin-page-container{background:linear-gradient(135deg,#f8f9fa,#e9ecef);min-height:100vh;padding:0}.admin-content-wrapper{margin:0 auto;max-width:1600px;padding:0 2rem 2rem}.admin-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #6c757d33;border-radius:16px;box-shadow:0 4px 12px #0000000d;margin-bottom:2rem;padding:2rem;transition:all .3s ease}.admin-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.admin-card-header{background:linear-gradient(135deg,#2c3e50,#3d5a80);border-radius:12px 12px 0 0;color:#fff;margin:-2rem -2rem 2rem;padding:1.5rem 2rem}.admin-card-title{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.admin-card-subtitle{color:#fffc;font-size:.95rem;margin:.5rem 0 0}.admin-stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem}.admin-stat-card{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #6c757d33;border-radius:12px;display:flex;gap:1rem;padding:1.5rem;transition:all .3s ease}.admin-stat-card:hover{box-shadow:0 8px 24px #0000001a;transform:translateY(-2px)}.admin-stat-icon{align-items:center;background:#3d5a801a;border-radius:12px;color:#3d5a80;display:flex;font-size:2rem;height:60px;justify-content:center;width:60px}.admin-stat-icon.success{background:#28a7451a;color:#28a745}.admin-stat-icon.warning{background:#ffc1071a;color:#ffc107}.admin-stat-icon.danger{background:#dc35451a;color:#dc3545}.admin-stat-content h3{color:#2c3e50;font-size:2rem;font-weight:700;margin:0}.admin-stat-content p{color:#6c757d;font-size:.875rem;margin:0}.btn-admin-primary{align-items:center;background:linear-gradient(135deg,#2c3e50,#3d5a80);border:none;border-radius:8px;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.btn-admin-primary:hover{background:linear-gradient(135deg,#3d5a80,#4a6fa5);box-shadow:0 4px 12px #3d5a804d;transform:translateY(-1px)}.btn-admin-secondary{background:#6c757d1a;border:1px solid #6c757d4d;border-radius:8px;color:#495057;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.btn-admin-secondary:hover{background:#6c757d33;border-color:#495057}.btn-admin-danger{background:linear-gradient(135deg,#dc3545,#c82333);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.btn-admin-danger:hover{background:linear-gradient(135deg,#c82333,#bd2130);box-shadow:0 4px 12px #dc35454d;transform:translateY(-1px)}.btn-admin-icon{align-items:center;background:#6c757d1a;border:none;border-radius:6px;color:#6c757d;cursor:pointer;display:inline-flex;justify-content:center;padding:.5rem;transition:all .2s ease}.btn-admin-icon.edit:hover,.btn-admin-icon:hover{background:#3d5a801a;color:#3d5a80}.btn-admin-icon.delete:hover{background:#dc35451a;color:#dc3545}.btn-admin-icon.save{color:#28a745}.btn-admin-icon.save:hover{background:#28a7451a}.admin-table-container{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #6c757d33;margin-bottom:2rem}.admin-table thead{background:linear-gradient(135deg,#2c3e50,#3d5a80)}.admin-table th{color:#fff;font-size:.875rem;letter-spacing:.5px;padding:1rem}.admin-table tbody tr{border-bottom:1px solid #6c757d1a;transition:background-color .2s ease}.admin-table tbody tr:hover{background:#3d5a800d}.admin-table td{color:#495057}.admin-filters{align-items:center;margin-bottom:2rem}.admin-search{align-items:center;display:flex;flex:1 1;min-width:300px;position:relative}.admin-search svg{color:#6c757d;left:1rem;position:absolute}.admin-search input{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border:1px solid #6c757d4d;border-radius:8px;font-size:1rem;padding:.75rem 1rem .75rem 2.5rem;transition:all .3s ease;width:100%}.admin-search input:focus{border-color:#3d5a80;box-shadow:0 0 0 3px #3d5a801a;outline:none}.admin-filter-buttons{display:flex;gap:.5rem}.admin-filter-btn{background:#fffffff2;border:1px solid #6c757d4d;border-radius:8px;color:#495057;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.admin-filter-btn:hover{background:#3d5a800d;border-color:#3d5a80}.admin-filter-btn.active{background:linear-gradient(135deg,#2c3e50,#3d5a80);border-color:#0000;color:#fff}.admin-badge{align-items:center;border-radius:6px;display:inline-flex;font-size:.875rem;gap:.25rem;padding:.375rem .75rem}.admin-badge.success{background:#28a7451a;color:#28a745}.admin-badge.warning{background:#ffc1071a;color:#ffc107}.admin-badge.danger{background:#dc35451a;color:#dc3545}.admin-badge.info{background:#3d5a801a;color:#3d5a80}.admin-config-panel{background:#3d5a800d;border:1px solid #3d5a8033;border-radius:12px;margin-bottom:2rem;padding:1.5rem}.admin-config-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.admin-config-title{align-items:center;color:#2c3e50;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin:0}.admin-config-form{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.admin-form-group{display:flex;flex-direction:column}.admin-form-label{color:#495057;font-size:.875rem;font-weight:600;margin-bottom:.5rem}.admin-form-input{border:1px solid #6c757d4d;border-radius:8px;font-size:1rem;padding:.75rem 1rem;transition:all .3s ease}.admin-form-input:focus{border-color:#3d5a80;box-shadow:0 0 0 3px #3d5a801a;outline:none}.admin-alert{align-items:center;border-radius:12px;display:flex;font-weight:500;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.5rem}.admin-alert.success{background:linear-gradient(135deg,#28a745,#218838);box-shadow:0 4px 12px #28a74533;color:#fff}.admin-alert.error{background:linear-gradient(135deg,#dc3545,#c82333);box-shadow:0 4px 12px #dc354533;color:#fff}.admin-alert.info{background:linear-gradient(135deg,#3d5a80,#4a6fa5);box-shadow:0 4px 12px #3d5a8033;color:#fff}.admin-spinner{animation:spin .8s linear infinite;border:2px solid #f3f4f6;border-radius:50%;border-top-color:#3d5a80;display:inline-block;height:16px;width:16px}@media (max-width:1200px){.admin-table-container{overflow-x:auto}.admin-table{min-width:1000px}}@media (max-width:768px){.admin-content-wrapper{padding:0 1rem 1rem}.admin-stats-grid{grid-template-columns:1fr}.admin-filters{align-items:stretch;flex-direction:column}.admin-search{min-width:100%}.admin-filter-buttons{flex-wrap:wrap}.admin-filter-btn{flex:1 1;min-width:100px}.admin-config-form{grid-template-columns:1fr}}.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);font-size:.875rem;padding:.5rem .75rem;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;font-size:.75rem;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-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 input[type=checkbox]{cursor:pointer;height:18px;width:18px}.checkbox-label span{color:#374151;font-size:.9375rem;font-weight:500}.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);border-radius:8px;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{border:1px solid #d1d5db;color:#374151;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;transition:all .2s}.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{border-bottom:1px solid #e5e7eb}.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;justify-content:space-between;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}.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{overflow-y:auto;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;transform:translateY(-1px)}@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{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;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;font-size:1.8rem}.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;font-weight:600}.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;cursor:pointer;display:inline-block;font-weight:500;padding:10px 24px;transition:all .2s}.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{color:#6b7280;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}.modal-overlay{background-color:#00000080}.modal-content{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content,.modal-large{max-width:900px}.modal-header{padding:24px 24px 16px}.modal-header h2{color:#1a202c;font-size:20px}.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;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;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}.form-actions,.modal-actions{border-top:1px solid #e2e8f0;display:flex;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){.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}.btn-refresh{background-color:#f7fafc;border:1px solid #cbd5e0;font-size:16px;padding:10px 16px}.btn-refresh:hover{background-color:#e2e8f0}.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{border:1px solid #e2e8f0;border-radius:12px;margin:24px 0;padding:60px 40px}.empty-state h3{font-weight:600}.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{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;transition:transform .2s}.stat-card:hover{box-shadow:0 4px 6px #0000001a}.stat-value{margin-bottom:4px}.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}.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;color:#fff}.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{display:flex;flex-direction:column}.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}.form-actions{display:flex;gap:12px}.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}.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}}.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;padding:1rem}.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}}.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;border-radius:6px;color:#64748b;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s;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;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;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{cursor:not-allowed;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{border-radius:12px;box-shadow:0 8px 24px #0000004d;display:flex;flex-direction:column;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{flex:1 1;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{align-items:center;color:#64748b;display:flex;font-size:13px;gap:8px}.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{align-items:center;display:flex;flex-direction:column;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;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;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{margin-bottom:20px;padding:20px}.filter-row{align-items:end;display:flex;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;font-weight:500}.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;border-radius:8px;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{background:#fff;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}}.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:280px 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{background:#fff;border-right:1px solid #e5e7eb;border-right:1px solid var(--border-color,#e5e7eb);color:#1a1a2e;display:flex;flex-direction:column;overflow:hidden}.col-header-v2{background:linear-gradient(135deg,#3c3c3c,#141414);color:#fff;padding:12px;text-align:center}.col-header-v2 .parking-badge{background:#fff;border-radius:20px;color:#1a1a2e;display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.5px;margin-bottom:6px;padding:4px 12px;text-transform:uppercase}.col-header-v2 .client-name{color:#fff;font-size:1.1rem;font-weight:700;letter-spacing:.3px;margin:0}.col-header-v2 .booking-ref{color:#fff!important;display:block;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.75rem;margin-top:4px;opacity:1!important}.client-info-v2{flex:1 1;overflow-y:auto;padding:12px}.info-section{border-bottom:1px solid #e9ecef;border-bottom:1px solid var(--border-color,#e9ecef);margin-bottom:8px;padding-bottom:8px}.info-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.section-title{color:#9ca3af;color:var(--text-secondary,#9ca3af);font-size:.65rem;font-weight:700;letter-spacing:.8px;margin-bottom:2px;margin-top:0;text-transform:uppercase}.info-row{align-items:flex-start;border-radius:6px;gap:10px;margin-bottom:2px;padding:2px 8px;transition:background .15s}.info-row:last-child{margin-bottom:0}.info-row .info-icon{flex-shrink:0;font-size:.9rem;text-align:center;width:20px}.info-row .info-text{color:#374151;color:var(--text-primary,#374151);font-size:.85rem;line-height:1.4;word-break:break-word}.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}.info-row.urgent{background:#e74c3c1a;border-radius:6px}.info-row.urgent .info-text{color:#dc2626;font-weight:600}.section-header{align-items:center;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;display:flex;flex-direction:column;gap:2px;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;word-break:break-word}.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.windshield-tab{position:relative}.windshield-history-badge{border-radius:12px;font-size:.75rem;font-weight:600;padding:5px 10px;position:absolute;right:12px;top:12px;z-index:5}.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 #00000026;max-width:calc(100% - 24px);overflow:hidden;position:absolute;right:12px;top:45px;width:320px;z-index:10}.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;padding:6px 8px;word-break:break-word}.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}.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}.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-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}}.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}.stats-row{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:20px}.stat-card{background:#fff;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;text-align:center;transition:all .2s ease}.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;display:flex;flex-wrap:wrap;gap:12px}.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{gap:4px;min-width:0}.filter-group.search-group{flex:1 1;max-width:280px;min-width:200px}.filter-group label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.7rem;letter-spacing:.5px}.filter-group input,.filter-group select{background:#fff;background:var(--input-bg,#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;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{margin-top:20px;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}@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{padding:60px 20px}.loading-state .spinner{border-top-color:#667eea;border-top-color:var(--primary-color,#667eea);height:40px;width:40px}.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}.header-right,.period-selector{align-items:center;display:flex}.period-selector{gap:8px}.period-selector label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.period-selector select{border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#1a1a2e;color:var(--text-primary,#1a1a2e);padding:8px 12px}.period-selector select,.subscriber-filter{background:#fff;background:var(--card-bg,#fff);border-radius:6px;cursor:pointer;font-size:.85rem}.subscriber-filter{align-items:center;border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);color:#6b7280;color:var(--text-secondary,#6b7280);display:flex;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}.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;text-align:center}.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:#fff;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;display:inline-block;font-size:.8rem;font-weight:600;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}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;justify-content:center}.loading-state .spinner{animation:spin .8s linear infinite;border:3px solid #e5e7eb;border:3px solid var(--border-color,#e5e7eb);border-radius:50%;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:var(--text-primary,#1a1a2e);font-size:1rem;margin:0 0 4px}.empty-state p{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.85rem}.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);border-radius:8px;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:.9rem;font-weight:600;padding:10px 20px;transition:all .2s ease}.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}.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}}@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)}}.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}}.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{background:#fff;border:1px solid #ddd;border-radius:8px;cursor:pointer;font-size:14px;padding:8px 12px}.filter-group select:focus{border-color:#667eea;outline:none}.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;font-size:13px;white-space:nowrap}.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{font-size:12px;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;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}}.my-feedbacks{margin:0 auto;max-width:800px;padding:24px}.loading-state{align-items:center;color:#666;display:flex;flex-direction:column;justify-content:center;padding:80px 20px}.loading-state .spin{animation:spin 1s linear infinite;font-size:24px;margin-bottom:12px}.empty-state{background:#fff;border-radius:16px;box-shadow:0 2px 12px #00000014;padding:80px 20px}.empty-state h3{color:#1a1a2e;font-size:20px}.empty-state p{color:#666;font-size:14px;margin:0}.empty-state .hint{background:#f8f9fa;border-radius:8px;margin-top:16px;padding:16px}.error-message{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;margin-bottom:20px}.feedbacks-list{display:flex;flex-direction:column;gap:16px}.feedback-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden;transition:box-shadow .2s}.feedback-card:hover{box-shadow:0 4px 16px #0000001f}.feedback-card.expanded{box-shadow:0 4px 20px #00000026}.feedback-card__header{background:#f8f9fa;background:var(--status-bg,#f8f9fa);border-left:4px solid #0000;cursor:pointer;padding:16px 20px;transition:background .2s}.feedback-card:hover .feedback-card__header{background:#f0f1f2;background:var(--status-bg,#f0f1f2)}.feedback-card__meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.priority-badge,.type-badge{align-items:center;border-radius:20px;color:#fff;display:inline-flex;font-size:11px;font-weight:500;gap:4px;padding:3px 10px}.type-badge svg{font-size:10px}.status-badge svg{font-size:11px}.status-badge .spin{animation:spin 1s linear infinite}.feedback-card__title-row{align-items:center;display:flex;gap:12px;justify-content:space-between}.feedback-card__title{color:#1a1a2e;flex:1 1;font-size:16px;font-weight:600;margin:0}.expand-icon{color:#999;font-size:12px;transition:transform .2s}.feedback-card__date{color:#888;display:block;font-size:12px;margin-top:6px}.feedback-card__body{border-top:1px solid #eee;padding:0 20px 20px}.feedback-card__section{margin-top:16px}.feedback-card__section h4{color:#666;font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.feedback-card__section p{color:#333;font-size:14px;line-height:1.6;margin:0;white-space:pre-wrap}.feedback-card__section code{background:#f5f5f5;border-radius:4px;font-family:monospace;font-size:13px;padding:4px 8px}.response-section{background:#f8f9fa;border-radius:0 0 12px 12px;margin:16px -20px -20px;padding:16px 20px 20px}.admin-response{background:#fff;border-left:3px solid #27ae60;border-radius:0 8px 8px 0;padding:12px 16px}.admin-response p{margin:0 0 8px}.response-meta{color:#666;font-size:12px}.no-response{color:#888;font-style:italic}@media (max-width:640px){.my-feedbacks{padding:16px}.feedback-card__header{padding:14px 16px}.feedback-card__title{font-size:15px}.feedback-card__body{padding:0 16px 16px}.response-section{margin:16px -16px -16px;padding:14px 16px 16px}}.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;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.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{color:#718096;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}@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{animation:spin 1s linear infinite;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}.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 label{color:#374151}.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}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.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);border-radius:8px;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{align-items:center;color:#6b7280;cursor:pointer;display:flex;font-size:.875rem;gap:8px}.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}.actions-cell{white-space:nowrap}.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%)}}@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 th{position:-webkit-sticky;position:sticky;top:0}.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-secondary:hover{background:#e2e8f0}.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{border-radius:20px}.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{color:#2d3748;font-size:36px}.stat-label{color:#718096;letter-spacing:.5px;text-transform:uppercase}.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-overlay{padding:20px}.modal-content{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.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{margin-bottom:16px}.form-group label{color:#4a5568;font-size:13px;margin-bottom:6px}.form-group input,.form-group select{border:1px solid #e2e8f0;padding:10px 12px}.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 .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}@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}}.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-item{display:flex;flex-direction:column}.summary-value{color:#2d3748;font-size:24px;font-weight:700;line-height:1}.summary-label{color:#718096;font-size:11px;letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.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{cursor:not-allowed;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{align-items:center;background:#fff;bottom:0;color:#718096;display:flex;flex-direction:column;font-size:14px;gap:12px;justify-content:center;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{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px;padding:20px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{color:#4a5568;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.filter-group input[type=date],.filter-group select{background:#fff;border:1px solid #cbd5e0;border-radius:6px;font-size:14px;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-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.summary-card{border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px}.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;font-weight:700}.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{border-collapse:collapse;width:100%}.transactions-table td,.transactions-table th{border-bottom:1px solid #edf2f7;padding:14px 16px;text-align:left}.transactions-table th{background:#f7fafc;color:#4a5568;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.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{color:#718096;padding:48px}.pagination{align-items:center;background:#f7fafc;border-top:1px solid #edf2f7;display:flex;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}.page-header{align-items:center}.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{color:#718096;padding:48px;text-align:center}.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{display:inline-block}.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-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;box-shadow:0 20px 25px -5px #0000001a;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#2d3748;font-size:18px;font-weight:600;margin:0}.btn-close{background:none;border:none;color:#a0aec0;cursor:pointer;font-size:24px;line-height:1;padding:0;transition:color .2s}.btn-close:hover{color:#4a5568}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{color:#2d3748;font-size:14px;margin-bottom:8px}.form-group input,.form-group select{border:1px solid #cbd5e0;border-radius:8px;font-size:14px;padding:12px;transition:all .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3182ce;box-shadow:0 0 0 3px #3182ce1a;outline:none}.modal-footer{background:#f7fafc;border-top:1px solid #e2e8f0;display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.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{border:1px solid #e2e8f0;color:#4a5568}.btn-secondary:hover{background:#f7fafc}.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{background:#fff;border:1px solid #e0e0e0;border-radius:8px;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{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:1.5rem;overflow:hidden}.city-header{align-items:center;background:#f9f9f9;border-bottom:1px solid #e0e0e0;cursor:pointer;display:flex;justify-content:space-between;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-radius:50%;border-top-color:#000;height:40px;margin-bottom:1rem;width:40px}.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;text-align:center}.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}}.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}.page-header{margin-bottom:32px}.page-header h1{color:#2d3748;font-size:28px;font-weight:600}.page-header p{color:#718096;font-size:16px}.controls-section{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=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}.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}.error-message{background:#fed7d7;border-radius:8px;color:#c53030;font-size:14px;margin-bottom:24px;padding:12px 16px}.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}.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}.no-results{color:#718096;font-size:15px;padding:48px 24px;text-align:center}@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}}.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;font-size:18px}.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;padding:4px 8px}.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;font-size:24px;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;font-weight:700}.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;font-size:12px;font-weight:500;gap:4px;padding:4px 10px}.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}.loading-container{gap:16px;padding:80px}.loader{animation:spin 1s linear infinite;border:4px solid #e0e0e0;border-top-color:#3498db;height:48px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}.page-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.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;gap: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}.table-container{overflow-x:auto}.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}.animation-table{font-size:12px}.animation-table td,.animation-table th{padding:8px}.capture-header{flex-direction:column;gap:12px}}.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%}