:root{--primary-color: #005f73;--secondary-color: #0a9396;--background-color: #f0f2f5;--card-bg: #ffffff;--text-color: #333;--text-light: #555;--border-color: #e9ecef;--shadow-color: rgba(0, 0, 0, .05);--font-family: Verdana, Geneva, Tahoma, sans-serif;--color-positive: #28a745;--color-negative: #dc3545}body{font-family:var(--font-family);margin:0;background-color:var(--background-color);color:var(--text-color);line-height:1.6}.login-page-main{display:flex;justify-content:center;align-items:center;height:100vh}header{background-color:var(--card-bg);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-color)}.logo{height:35px;margin-right:1rem}h1{font-size:1.5rem;color:var(--primary-color);margin:0;font-weight:600}.user-profile{display:flex;align-items:center;gap:1rem}#user-email{font-weight:500;color:var(--text-light)}h2{font-size:1.7rem;color:var(--primary-color);margin-bottom:1.5rem;padding-bottom:.5rem;border-bottom:2px solid var(--secondary-color);font-weight:600}h3{font-size:2rem;margin-top:0;margin-bottom:1rem;color:var(--primary-color);font-weight:600;word-break:break-word;white-space:normal}main{padding:2rem;max-width:1400px;margin:0 auto}.card{background-color:var(--card-bg);border-radius:12px;padding:1.5rem 2rem;margin-bottom:2rem;box-shadow:0 12px 20px -4px #00000026;transition:box-shadow .3s ease-in-out,transform .3s ease-in-out}.card:hover{transform:translateY(-2px);box-shadow:0 22px 30px -6px #0003}.upload-container h3{text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}#file-upload-area{display:flex;flex-direction:column;gap:1.5rem;margin:1.5rem 0}.file-input-group{display:flex;align-items:center;gap:1rem;background-color:#f8f9fa;padding:1rem;border-radius:5px}.file-input-group label{font-weight:500;flex-shrink:0}.file-input-group input[type=file]{flex-grow:1}.file-name{font-size:.85em;color:var(--text-light)}.file-period{font-size:.85em;color:var(--text-light);font-style:italic}.upload-actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}.file-metadata{display:flex;align-items:center;gap:.5rem;flex-grow:1;justify-content:flex-end}.btn-primary,.btn-secondary{border:none;padding:12px 24px;font-size:1rem;font-weight:600;border-radius:5px;cursor:pointer;transition:background-color .2s}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:#004c5c}.btn-secondary{background-color:#e9ecef;color:var(--primary-color)}.btn-secondary:hover{background-color:#ced4da}.btn-delete{background:none;border:none;color:var(--color-negative);font-size:1.5rem;font-weight:700;line-height:1;cursor:pointer;padding:0 .5rem;opacity:.5;transition:opacity .2s}.btn-delete:hover{opacity:1}.controls-container{margin-bottom:2rem}.control-group{margin-bottom:1rem}#secteurSelector{display:block;width:100%;padding:12px;font-size:1.1em;border-radius:5px;border:1px solid var(--border-color);background-color:var(--card-bg)}.kpi-container{display:flex;flex-direction:column;gap:20px;margin:2rem 0}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.kpi-label{font-size:1em;color:var(--text-color);font-weight:600;margin-bottom:.5rem}.kpi-title{background-color:#f0f2f5;padding:.2rem .5rem;border-radius:4px;display:inline-block;margin-bottom:.5rem}.kpi-sublabel{font-size:.9em;color:var(--text-light)}.kpi-subvalue{font-size:1rem;color:var(--text-light);margin-top:.5rem}.evolution{font-size:1rem;font-weight:700;display:inline-block;margin-left:10px}.evolution.positive{color:var(--color-positive)}.evolution.negative{color:var(--color-negative)}.charts-container{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:2rem;justify-content:space-around;align-items:flex-start;margin-bottom:2rem}.chart-wrapper{flex:1 1 40%;max-width:50%;height:auto;position:relative;border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);padding:1rem}.family-detail-charts .chart-wrapper{height:auto}.charts-container{display:flex;flex-wrap:wrap;margin:-1px}.chart-wrapper:nth-child(2n){border-right:none}.chart-wrapper-fullwidth{width:100%;height:400px;position:relative}.charts-container>.chart-wrapper:last-child,.charts-container>.chart-wrapper:nth-last-child(2):nth-child(odd){border-bottom:none}.chart-wrapper .chart-controls{justify-content:flex-end;margin-bottom:1rem}.chart-wrapper .choices{width:300px}.chart-wrapper.pie-chart{flex-grow:1;flex-basis:30%;height:220px}.pie-controls-wrapper{margin-bottom:1rem}.bar-controls-wrapper{display:flex;justify-content:flex-end;margin-bottom:1rem}.chart-controls{display:flex;align-items:center;gap:.5rem}.chart-controls label{font-weight:600;margin-right:1rem;color:var(--primary-color)}#metric-selector{padding:8px 12px;border-radius:5px;border:1px solid var(--border-color);font-size:1rem;background-color:#fff}.table-wrapper{max-height:600px;overflow-y:auto;margin-top:2rem}.section-divider{border:none;height:1px;background-color:var(--border-color);margin:2rem 0}.choices{width:250px;margin:0}.choices.choices-pie{width:300px}.choices__inner{background-color:#f8f9fa;border-radius:5px;border:1px solid var(--border-color);padding:4px 8px;font-size:.9rem}.choices__list--dropdown{border-radius:5px}.choices__item--selectable{padding-right:10px}table{width:100%;border-collapse:collapse}th,td{padding:12px 15px;text-align:left;border-bottom:1px solid var(--border-color)}td:not(:last-child),th:not(:last-child){border-right:1px solid var(--border-color)}thead th{background-color:#f8f9fa;color:var(--primary-color);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600;position:sticky;top:0;z-index:1}thead tr:nth-child(1) th{top:0}thead tr:nth-child(2) th{top:35px}thead tr:first-child th{border-bottom:1px solid var(--border-color)}thead th[colspan]{text-align:center}thead th:hover{background-color:#e9ecef}thead th[data-sort-key]{cursor:pointer}tbody tr:hover{background-color:#f1faff}td:not(:first-child){text-align:right;font-family:Consolas,Menlo,monospace}td:first-child{font-weight:500;color:var(--text-light);text-align:left}tfoot tr{background-color:#e9ecef;font-weight:700}tfoot td{color:var(--primary-color)}.year-separator{border-right:2px solid var(--secondary-color)!important}.sort-icons{display:inline-flex;flex-direction:column;margin-left:8px;cursor:pointer;font-size:1.2em;line-height:.6;vertical-align:middle}.sort-icons span{opacity:.3}.sort-icons span.active{opacity:1;color:var(--secondary-color)}.top-n-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;justify-content:flex-start}.top-n-controls label{font-weight:600;color:var(--primary-color)}.top-n-input{width:80px;padding:8px 12px;border:1px solid var(--border-color);border-radius:5px;font-size:1rem}.btn-tertiary{background:none;border:1px solid var(--secondary-color);color:var(--secondary-color);padding:8px 16px;font-size:.9rem;border-radius:5px;cursor:pointer;transition:all .2s;font-weight:600}.btn-tertiary:hover{background-color:var(--secondary-color);color:#fff}#detail-charts-scroll-container{max-height:600px;overflow-y:auto;padding-right:1rem;margin-right:-1rem}.inline-logo{height:28px;vertical-align:middle}.print-only{display:none}@media print{@page{size:A4 landscape;margin:1cm;@bottom-left{content:attr(data-print-footer);font-size:9pt;color:#888;white-space:pre}@bottom-center{content:"Page " counter(page) " sur " counter(pages);font-size:9pt;color:#888}@bottom-right{content:url(logo.png);transform:scale(.5)}}.print-only{display:block}.print-logo img{height:50px;opacity:.7}header,header h1,.upload-container,#export-container,#back-btn,.chart-controls,.top-n-controls,.control-group,.upload-actions,.file-input-group .btn-delete{display:none!important}body{background-color:#fff;color:#000;font-size:10pt;margin:0;padding:0;font-size:8pt}table{font-size:7pt}th,td{padding:4px 6px}main,.card{margin:0;padding:0;box-shadow:none;border:none;width:100%}canvas{-webkit-print-color-adjust:exact;print-color-adjust:exact}#print-data-section{page-break-before:always;break-before:page}.table-wrapper,#detail-charts-scroll-container{max-height:none;overflow:visible}:is(.table-wrapper,#detail-charts-scroll-container) #app-logo{display:block!important}.chart-wrapper{height:auto!important;min-width:0;page-break-inside:avoid}.charts-container{flex-direction:column}canvas{animation:none!important}}.kpi-container-item{display:flex;align-items:center;justify-content:space-between;flex-grow:1;border-left:4px solid transparent;padding:.5rem;transition:background-color .2s ease-in-out}.kpi-container-item:hover{background-color:#f9f9f9;border-left-color:#6495ed}.kpi-container-item .kpi{flex-grow:1}.kpi-chart-container{width:120px;height:50px;margin-left:1rem}.file-pdv{font-weight:600;color:var(--secondary-color);background-color:#e0f2f1;padding:.2rem .5rem;border-radius:4px;font-size:.8em}.kpi-container{margin-bottom:2rem}.color-legend{display:inline-block;width:15px;height:15px;border:1px solid #ccc;border-radius:3px;flex-shrink:0}.pdf-title-container{margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.pdf-title-container label{font-weight:600;color:var(--primary-color)}#pdf-title-input{flex-grow:1;padding:8px 12px;border:1px solid var(--border-color);border-radius:5px;font-size:1rem}.login-card{width:100%;max-width:400px;padding:2rem}.login-header{text-align:center;margin-bottom:2rem}.login-header img{height:50px;margin-bottom:1rem}.login-header h1{font-size:1.5rem;margin:0}.login-header h1+.title-divider{border:none;height:2px;background-color:var(--primary-color);margin:1.5rem 0}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-light)}.form-group input{width:100%;padding:12px;font-size:1rem;border-radius:5px;border:1px solid var(--border-color);box-sizing:border-box}#error-message{color:var(--color-negative);margin-bottom:1rem;text-align:center}.kpi-columns{display:flex;gap:2rem;margin:2rem 0}.kpi-column{flex:1;display:flex;flex-direction:column;gap:2rem;border-right:1px solid var(--border-color);padding-right:2rem}.kpi-column:last-child{border-right:none;padding-right:0}.kpi-item{display:flex;align-items:center;gap:1rem;border-bottom:1px solid var(--border-color);padding-bottom:1.5rem;margin-bottom:1.5rem}.kpi-column>.kpi-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.kpi-main{flex-grow:1;text-align:left}.kpi-value{font-size:2rem;font-weight:700;color:var(--primary-color)}.kpi-title{font-size:.9rem;color:var(--text-light);margin-bottom:.5rem}.comparison-group{display:flex;align-items:center;gap:1rem;margin-top:.5rem;justify-content:space-between}.kpi-comparison{font-size:.8rem;font-weight:500;white-space:nowrap}.kpi-bar-chart-comparison{width:50px;flex-shrink:0}.kpi-bar-chart{width:80px;flex-shrink:0;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;padding-top:45px}.bar-n,.bar-n1{height:23px;border-radius:0 px;margin-top:0}.bar-n{background-color:#28a745}.bar-n1{background-color:#4e73df}.kpi-card{background-color:#f8f9fa;padding:1rem;border-radius:5px;border-left:5px solid var(--primary-color)}.kpi-title{font-size:.9rem;font-weight:600;color:var(--text-light);margin-bottom:.5rem}.kpi-value{font-size:1.75rem;font-weight:700;color:var(--primary-color)}.kpi-comparison{font-size:.9rem;margin-top:.5rem}.kpi-comparison.positive{color:var(--color-positive)}.kpi-comparison.negative{color:var(--color-negative)}.kpi-grid-new{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-top:1.5rem}.kpi-card-new{padding:1rem;border-right:1px solid var(--border-color)}.kpi-card-new:last-child{border-right:none}.kpi-title-new{font-size:.9rem;font-weight:600;color:var(--text-light);margin-bottom:.5rem}.search-container{margin-bottom:1.5rem}.search-input{width:100%;padding:12px;font-size:1rem;border-radius:5px;border:1px solid var(--border-color);box-sizing:border-box}.kpi-value-new{font-size:1.5rem;font-weight:700;color:var(--primary-color);margin-bottom:.5rem}.kpi-comparison-new{font-size:.9rem}.kpi-comparison-new.positive{color:var(--color-positive)}.kpi-comparison-new.negative{color:var(--color-negative)}.kpi-comparison-label{font-size:.8rem;color:var(--text-light);display:block}.dropdown-container{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:block;min-width:15rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;box-shadow:0 .5rem 1rem #0000002d}.dropdown-menu .dropdown-item{padding:.5rem 1rem}.dropdown-menu .dropdown-item .form-check-label{cursor:pointer}.evolution-separator{border-right:3px double var(--secondary-color)!important}.charts-container.family-detail-charts{flex-wrap:nowrap}.choices{position:relative;overflow:hidden;margin-bottom:24px;font-size:16px}.choices:focus{outline:0}.choices:last-child{margin-bottom:0}.choices.is-open{overflow:visible}.choices.is-disabled .choices__inner,.choices.is-disabled .choices__input{background-color:#eaeaea;cursor:not-allowed;-webkit-user-select:none;user-select:none}.choices.is-disabled .choices__item{cursor:not-allowed}.choices [hidden]{display:none!important}.choices[data-type*=select-one]{cursor:pointer}.choices[data-type*=select-one] .choices__inner{padding-bottom:7.5px}.choices[data-type*=select-one] .choices__input{display:block;width:100%;padding:10px;border-bottom:1px solid #ddd;background-color:#fff;margin:0}.choices[data-type*=select-one] .choices__button{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjMDAwIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);padding:0;background-size:8px;position:absolute;top:50%;right:0;margin-top:-10px;margin-right:25px;height:20px;width:20px;border-radius:10em;opacity:.25}.choices[data-type*=select-one] .choices__button:focus,.choices[data-type*=select-one] .choices__button:hover{opacity:1}.choices[data-type*=select-one] .choices__button:focus{box-shadow:0 0 0 2px #005f75}.choices[data-type*=select-one] .choices__item[data-placeholder] .choices__button{display:none}.choices[data-type*=select-one]:after{content:"";height:0;width:0;border-style:solid;border-color:#333 transparent transparent;border-width:5px;position:absolute;right:11.5px;top:50%;margin-top:-2.5px;pointer-events:none}.choices[data-type*=select-one].is-open:after{border-color:transparent transparent #333;margin-top:-7.5px}.choices[data-type*=select-one][dir=rtl]:after{left:11.5px;right:auto}.choices[data-type*=select-one][dir=rtl] .choices__button{right:auto;left:0;margin-left:25px;margin-right:0}.choices[data-type*=select-multiple] .choices__inner,.choices[data-type*=text] .choices__inner{cursor:text}.choices[data-type*=select-multiple] .choices__button,.choices[data-type*=text] .choices__button{position:relative;display:inline-block;margin:0 -4px 0 8px;padding-left:16px;border-left:1px solid #003642;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iMjEiIHZpZXdCb3g9IjAgMCAyMSAyMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBmaWxsPSIjRkZGIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yLjU5Mi4wNDRsMTguMzY0IDE4LjM2NC0yLjU0OCAyLjU0OEwuMDQ0IDIuNTkyeiIvPjxwYXRoIGQ9Ik0wIDE4LjM2NEwxOC4zNjQgMGwyLjU0OCAyLjU0OEwyLjU0OCAyMC45MTJ6Ii8+PC9nPjwvc3ZnPg==);background-size:8px;width:8px;line-height:1;opacity:.75;border-radius:0}.choices[data-type*=select-multiple] .choices__button:focus,.choices[data-type*=select-multiple] .choices__button:hover,.choices[data-type*=text] .choices__button:focus,.choices[data-type*=text] .choices__button:hover{opacity:1}.choices__inner{display:inline-block;vertical-align:top;width:100%;background-color:#f9f9f9;padding:7.5px 7.5px 3.75px;border:1px solid #ddd;border-radius:2.5px;font-size:14px;min-height:44px;overflow:hidden}.is-focused .choices__inner,.is-open .choices__inner{border-color:#b7b7b7}.is-open .choices__inner{border-radius:2.5px 2.5px 0 0}.is-flipped.is-open .choices__inner{border-radius:0 0 2.5px 2.5px}.choices__list{margin:0;padding-left:0;list-style:none}.choices__list--single{display:inline-block;padding:4px 16px 4px 4px;width:100%}[dir=rtl] .choices__list--single{padding-right:4px;padding-left:16px}.choices__list--single .choices__item{width:100%}.choices__list--multiple{display:inline}.choices__list--multiple .choices__item{display:inline-block;vertical-align:middle;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:500;margin-right:3.75px;margin-bottom:3.75px;background-color:#005f75;border:1px solid #004a5c;color:#fff;word-break:break-all;box-sizing:border-box}.choices__list--multiple .choices__item[data-deletable]{padding-right:5px}[dir=rtl] .choices__list--multiple .choices__item{margin-right:0;margin-left:3.75px}.choices__list--multiple .choices__item.is-highlighted{background-color:#004a5c;border:1px solid #003642}.is-disabled .choices__list--multiple .choices__item{background-color:#aaa;border:1px solid #919191}.choices__list--dropdown,.choices__list[aria-expanded]{display:none;z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;border-bottom-left-radius:2.5px;border-bottom-right-radius:2.5px;overflow:hidden;word-break:break-all}.is-active.choices__list--dropdown,.is-active.choices__list[aria-expanded]{display:block}.is-open .choices__list--dropdown,.is-open .choices__list[aria-expanded]{border-color:#b7b7b7}.is-flipped .choices__list--dropdown,.is-flipped .choices__list[aria-expanded]{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-radius:.25rem .25rem 0 0}.choices__list--dropdown .choices__list,.choices__list[aria-expanded] .choices__list{position:relative;max-height:300px;overflow:auto;-webkit-overflow-scrolling:touch;will-change:scroll-position}.choices__list--dropdown .choices__item,.choices__list[aria-expanded] .choices__item{position:relative;padding:10px;font-size:14px}[dir=rtl] .choices__list--dropdown .choices__item,[dir=rtl] .choices__list[aria-expanded] .choices__item{text-align:right}@media (min-width:640px){.choices__list--dropdown .choices__item--selectable[data-select-text],.choices__list[aria-expanded] .choices__item--selectable[data-select-text]{padding-right:100px}.choices__list--dropdown .choices__item--selectable[data-select-text]:after,.choices__list[aria-expanded] .choices__item--selectable[data-select-text]:after{content:attr(data-select-text);font-size:12px;opacity:0;position:absolute;right:10px;top:50%;transform:translateY(-50%)}[dir=rtl] .choices__list--dropdown .choices__item--selectable[data-select-text],[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable[data-select-text]{text-align:right;padding-left:100px;padding-right:10px}[dir=rtl] .choices__list--dropdown .choices__item--selectable[data-select-text]:after,[dir=rtl] .choices__list[aria-expanded] .choices__item--selectable[data-select-text]:after{right:auto;left:10px}}.choices__list--dropdown .choices__item--selectable.is-highlighted,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown .choices__item--selectable.is-highlighted:after,.choices__list[aria-expanded] .choices__item--selectable.is-highlighted:after{opacity:.5}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;user-select:none;opacity:.5}.choices__heading{font-weight:600;font-size:12px;padding:10px;border-bottom:1px solid #f7f7f7;color:gray}.choices__button{text-indent:-9999px;appearance:none;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.choices__button:focus,.choices__input:focus{outline:0}.choices__input{display:inline-block;vertical-align:baseline;background-color:#f9f9f9;font-size:14px;margin-bottom:5px;border:0;border-radius:0;max-width:100%;padding:4px 0 4px 2px}.choices__input::-webkit-search-cancel-button,.choices__input::-webkit-search-decoration,.choices__input::-webkit-search-results-button,.choices__input::-webkit-search-results-decoration{display:none}.choices__input::-ms-clear,.choices__input::-ms-reveal{display:none;width:0;height:0}[dir=rtl] .choices__input{padding-right:2px;padding-left:0}.choices__placeholder{opacity:.5}
