@charset "UTF-8";:root{--primary-color: #4a6fa5;--secondary-color: #166088;--tertiary-color: oklch(.63 .26 29.23 / .42);--background-color: #f5f7fa;--text-color: #333;--border-color: #ddd;--border-color-darken: #888;--confirmed-color: #4caf50;--option-plus-color: #ff9800;--option-moins-color: #f44336;--past-opacity: .85;--past-text: #555;--past-background: #E0EADF;--hors-periode-background: white;--separator-period-color: #4a6fa5;--separator-today-color: #ff5722;--bg-inputs: rgba(255, 255, 255, .25)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.6}h1,h2,h3{margin-bottom:20px;color:var(--secondary-color)}h1{font-size:2.5rem;margin-block:0;color:var(--primary-color)}h2{margin-bottom:.5em}h2.year-header{color:var(--secondary-color);font-size:2em;font-weight:700;margin:20px 0 10px}h3.month-header{color:var(--primary-color);font-size:1.6em;margin-bottom:.5em;font-weight:600}.container{max-width:1280px;margin:0 auto;padding:0 1.4rem 1rem;display:grid;grid-template-areas:"header" "panel" "content";gap:1rem}.panel,#period-selector-panel,.period-selector,.summary,.event-form{background-color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;margin-bottom:20px;padding:20px}.events-container{background-color:#fff;padding:0 0 1rem}.panel,#period-selector-panel{grid-area:panel;width:100%;pointer-events:auto;z-index:100}.main-header{display:flex;justify-content:flex-start;column-gap:12px;margin-block:.5rem}.header-title h1{margin:0}.header-actions{display:flex;flex:1;justify-content:flex-end;gap:25px}.header-buttons{display:flex;gap:10px}.content-container{grid-area:content;display:grid;grid-template-columns:60% 40%;gap:20px;align-items:start}.right-column{position:sticky;top:20px}.period-info{display:flex;align-items:center;font-size:1em;background-color:#f5f7fa;border:1px solid var(--border-color);border-radius:4px;padding:6px 12px;margin-bottom:2rem;cursor:pointer;transition:background-color .2s}.period-info:hover{background-color:#e8eef7}.period-info .period-display{font-weight:800;font-size:1.2rem;color:gray}.period-info .period-display .period-start-date,.period-info .period-display .period-end-date{font-weight:600;color:var(--primary-color)}button{padding:6px 12px;border:none;border-radius:4px;font-weight:500;align-items:center;cursor:pointer;transition:background-color .3s}button .icon{font-size:18px}.btn-create-event{background-color:indigo;color:#fff}.btn-help{background-color:#4caf50;color:#fff}.btn-help:hover{background-color:#45a049}.btn-notes{background-color:wheat}.btn-prefs{background-color:#a1bad4}.btn-data{background-color:var(--secondary-color);color:#fff}.btn-data:hover{background-color:#0d4d6d}.btn-data .icon{font-size:1em}.btn-action{background-color:var(--primary-color);color:#fff}.btn-action:hover{background-color:var(--secondary-color)}.btn-cancel{background-color:#f5f5f5;color:#333;border:1px solid #ddd;padding:10px 15px;border-radius:4px}.btn-cancel:hover{background-color:#e5e5e5}.btn-colors{display:flex;align-items:center;gap:8px;background-color:#ad42c0;color:#fff;border:1px solid silver;padding:5px 12px;border-radius:4px;font-size:.8rem;cursor:pointer;transition:background-color .2s}.btn-colors:hover{background-color:#7b1fa2}.btn-colors .icon{font-size:1rem}.btn-small{padding:5px 10px;font-size:.9em}.form-row{display:flex;gap:15px;margin-bottom:15px}.form-group{flex:1;position:relative}.form-group.full-width{flex:100%}.form-group:has(#event-hours):after{content:"h";position:absolute;right:12px;top:50%;transform:translateY(-10%);color:#666;font-size:.9em;pointer-events:none;opacity:1;transition:opacity .2s ease}.form-group:has(#event-hours):has(input:focus):after{opacity:0}.form-group:has(#event-salaire):after{content:"€";position:absolute;right:15px;top:50%;transform:translateY(-10%);color:#666;font-size:.9em;pointer-events:none;opacity:1;transition:opacity .2s ease}.form-group:has(#event-salaire):has(input:focus):after{opacity:0}.form-field{margin-bottom:15px}.form-field label{display:block;margin-bottom:5px;font-weight:500;color:var(--text-color)}.form-actions{display:flex;gap:.5rem;justify-content:center;margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border-color)}input[type=text],input[type=date],input[type=number],select,textarea{width:100%;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:1em;transition:border-color .2s}input[type=text]:focus,input[type=date]:focus,input[type=number]:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary-color)}input[type=color]{width:100%;height:40px;border:1px solid var(--border-color);border-radius:4px;cursor:pointer;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:0;border-radius:4px}input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.date-inputs{display:flex;gap:15px;align-items:end}.date-group{flex:1}.date-end-group.disabled{opacity:.5;pointer-events:none}#event-hours:not(:focus),#event-salaire:not(:focus){padding-right:35px;text-align:right}#event-hours:not(:focus)::-webkit-outer-spin-button,#event-hours:not(:focus)::-webkit-inner-spin-button,#event-salaire:not(:focus)::-webkit-outer-spin-button,#event-salaire:not(:focus)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#event-hours:not(:focus)[type=number],#event-salaire:not(:focus)[type=number]{-moz-appearance:textfield}#event-hours:focus,#event-salaire:focus{padding-right:12px;text-align:left}#event-hours:focus::-webkit-outer-spin-button,#event-hours:focus::-webkit-inner-spin-button,#event-salaire:focus::-webkit-outer-spin-button,#event-salaire:focus::-webkit-inner-spin-button{-webkit-appearance:auto;opacity:1;margin:0;cursor:pointer}#event-hours:focus[type=number],#event-salaire:focus[type=number]{-moz-appearance:number-input}#event-hours:not(:focus){padding-right:25px}html{scroll-behavior:smooth}.event-item{margin-bottom:15px;margin:1.2rem 4rem;padding:1rem .8rem;box-shadow:0 1px 5px #0000001a;z-index:1;position:relative;background-color:#fff;border-radius:4px}.event-item[data-status=ok],.event-item.status-ok{border-left:5px solid var(--confirmed-color);background:var(--confirmed-color)!important}.event-item[data-status="option+"],.event-item.status-option-plus{border-left:5px solid var(--option-plus-color);background:#faebd7!important}.event-item[data-status=option-],.event-item.status-option-moins{border-left:5px solid var(--option-moins-color);background:#ffe4e1!important}.event-item.past.hors-periode{background-color:var(--hors-periode-background)!important;border-left:none}.event-item.past.in-period{background-color:var(--past-background)!important;border-left:none}.event-item.past.in-period .event-header-status{opacity:.4}.event-item.future.hors-periode{background-color:var(--hors-periode-background)!important;border-left:none}.event-item.highlighted{animation:highlightEvent 2s ease-in-out}.events-container{position:relative;overflow-x:hidden;overflow-y:auto}.events-container::-webkit-scrollbar{width:5px}.events-container::-webkit-scrollbar-track{background:#00000005;border-radius:0}.events-container::-webkit-scrollbar-thumb{background:var(--secondary-color);border-radius:6px;border:none;min-height:10px}.events-container::-webkit-scrollbar-thumb:hover{background:var(--primary-color);cursor:pointer}@supports not (scrollbar-width: auto){.events-container{scrollbar-width:thin;scrollbar-color:var(--primary-color) rgba(0,0,0,.02)}}.event-header-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:5px}.event-header-top .event-date-top{cursor:pointer;cursor:context-menu;display:flex;align-items:center;height:3.6rem;width:fit-content;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;margin-block:-.6em -2em}.event-header-top .event-date-top .calendar-icon{display:flex;position:relative;width:auto;height:100%;display:inline-block;margin:-2px -.4em -.4em;transition:filter .3s ease,margin .3s ease;filter:drop-shadow(0 0 1px var(--secondary-color))}.event-header-top .event-date-top .calendar-bg{width:100%;height:100%;display:block}.event-header-top .event-date-top .calendar-date{position:absolute;top:0;right:0;left:0;bottom:2px;margin-bottom:auto;font-weight:700;color:var(--secondary-color);text-shadow:1px 1px 2px rgba(255,255,255,.8);pointer-events:none;font-size:1.2em;font-weight:600;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1}.event-header-top .event-date-top .date-arrow-container{display:flex;flex-direction:column;align-items:center;margin:0 8px;position:relative}.event-header-top .event-date-top .date-arrow-container .days-count{font-size:.75rem;font-weight:500;color:var(--text-secondary, #666);margin-bottom:2px;line-height:1}.event-header-top .event-date-top .date-arrow-container .date-arrow{font-size:1.4rem;color:var(--text-secondary, #666);line-height:1}.event-header-top .event-date-top .date-arrow:not(.date-arrow-container .date-arrow){margin:0 8px;color:var(--text-secondary, #666)}.event-header-top .event-date-top:hover .calendar-icon{filter:drop-shadow(0 0 2px rgba(0,0,0,.5)) drop-shadow(0 4px 4px rgba(0,0,0,.2));margin-top:-2px;transform:scale(1.02)}.event-header-controls{display:flex;align-items:center;justify-content:flex-end;gap:10px}.event-header-hours,.event-header-status{display:flex;align-items:center}.event-header-hours label,.event-header-status label{margin-right:5px;margin-bottom:0;white-space:nowrap}.event-header-hours{position:relative;gap:2px;padding:2px 0}.event-header-hours input{width:60px;padding:3px 5px;font-size:1.2em;height:28px;text-align:right}.event-header-status select{width:auto;min-width:100px;padding:3px 8px;font-size:.9em;height:28px}.event-title-input{width:100%;min-height:2em;max-height:2em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1em;font-weight:500;border:1px solid transparent;border-radius:4px;background-color:var(--bg-inputs);padding:2px 5px;font-family:inherit;line-height:1.5;box-shadow:0 2px 4px #00000026}.event-title-input:not(:disabled):hover,.event-title-input:not(:disabled):focus{border-color:var(--border-color);background-color:#fff;box-shadow:0 2px 4px #0000004d}.event-title-input:focus{outline:none;border-color:var(--primary-color)}.event-title-input:disabled{color:inherit;opacity:1;cursor:default}.hours-input-wrapper,.event-header-hours{position:relative;display:inline-block}.hours-input-wrapper:after,.event-header-hours:after{content:"h";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#666;font-size:.9em;pointer-events:none;opacity:1;transition:opacity .2s ease}input:focus+.hours-input-wrapper:after,input:focus~.hours-input-wrapper:after,.hours-input-wrapper:has(input:focus):after,input:focus+.event-header-hours:after,input:focus~.event-header-hours:after,.event-header-hours:has(input:focus):after{opacity:0}.event-header-salaire{position:relative;display:flex;align-items:center;gap:8px}.event-header-salaire:after{content:"€";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#666;font-size:.9em;pointer-events:none;opacity:1;transition:opacity .2s ease;z-index:1}.event-header-salaire:has(.event-salaire-input:focus):after{opacity:0}.event-header-salaire .event-salaire-input{min-width:100px;flex:1}.event-hours-input,.event-header-hours input{background-color:var(--bg-inputs)}.event-hours-input:not(:focus),.event-header-hours input:not(:focus){padding-right:20px!important;text-align:right!important}.event-hours-input:not(:focus)::-webkit-outer-spin-button,.event-hours-input:not(:focus)::-webkit-inner-spin-button,.event-header-hours input:not(:focus)::-webkit-outer-spin-button,.event-header-hours input:not(:focus)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.event-hours-input:not(:focus)[type=number],.event-header-hours input:not(:focus)[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.event-hours-input:focus,.event-header-hours input:focus{padding-right:8px!important;text-align:left!important}.event-hours-input:focus::-webkit-outer-spin-button,.event-hours-input:focus::-webkit-inner-spin-button,.event-header-hours input:focus::-webkit-outer-spin-button,.event-header-hours input:focus::-webkit-inner-spin-button{-webkit-appearance:auto;opacity:1;margin:0;cursor:pointer}.event-hours-input:focus[type=number],.event-header-hours input:focus[type=number]{-moz-appearance:number-input;-webkit-appearance:number-input;appearance:number-input}.event-salaire-input{position:relative;background-color:var(--bg-inputs)}.event-salaire-input:not(:focus){padding-right:20px!important;text-align:right!important}.event-salaire-input:not(:focus)::-webkit-outer-spin-button,.event-salaire-input:not(:focus)::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.event-salaire-input:not(:focus)[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.event-salaire-input:focus{padding-right:8px!important;text-align:left!important}.event-salaire-input:focus::-webkit-outer-spin-button,.event-salaire-input:focus::-webkit-inner-spin-button{-webkit-appearance:auto;opacity:1;margin:0;cursor:pointer}.event-salaire-input:focus[type=number]{-moz-appearance:number-input;-webkit-appearance:number-input;appearance:number-input}.event-status-select{background-color:var(--bg-inputs)}.event-status-select option[value=delete]{background-color:#ffebee;color:#d32f2f;font-weight:700}.event-status-select.delete-option-selected{background-color:#ffebee;color:#d32f2f;border:1px solid #f44336;font-weight:700}.event-status-select.delete-option-selected:after{content:"";margin-left:0}.year-header{margin:20px -1rem 10px}.year-header h2{position:sticky;top:0;z-index:30;display:block;background-color:#fff;font-size:2rem;line-height:1;padding:.5rem 1.5rem 0}.month-header{margin-inline:-1em;border-radius:4px}.month-header h3{position:sticky;top:1rem;z-index:20;display:block;background-color:#fff;box-shadow:0 8px 15px -5px #fff9;font-size:1.7rem;padding:.5em 2em 0;margin:0}.month-header h3.is-sticky{box-shadow:0 8px 15px -5px #c4c4c499}.no-events{text-align:center;font-style:italic;color:#777}.absolute-today-link{position:sticky;top:1rem;right:0;margin:-3rem .5rem 1rem auto;display:block;width:fit-content;z-index:100;background:#fff;border:2px solid var(--secondary-color, #1976d2);border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:700;color:var(--secondary-color, #1976d2);text-decoration:none;box-shadow:0 2px 8px #1976d233;cursor:pointer;opacity:1;transition:opacity .5s ease-in-out}.absolute-today-link:hover{background:var(--secondary-color, #1976d2);color:#fff;border-color:var(--secondary-color, #1976d2)}.absolute-today-link.fade-out{opacity:0;pointer-events:none}.absolute-today-link.fade-in{opacity:1;pointer-events:auto}.events-container{position:relative;overflow-y:auto;max-height:calc(100vh - 200px)}#today.highlighted>.today-label{animation:highlight 1.8s ease-in-out}@keyframes highlight{0%{font-size:3.4em;border-block:2rem solid transparent}65%{font-size:1em}to{font-size:1em;border-block:0px solid transparent}}@keyframes highlightEvent{0%{transform:scale(.5);border:0 solid black}50%{transform:scale(1);border:10px solid black}55%{transform:scale(1);border:10px solid black}to{transform:scale(1);border:0px solid black}}.event-salaire-row{margin:0;padding:0 0 5px;display:flex;justify-content:flex-end}.event-header-salaire{display:flex;align-items:center;gap:8px}.event-header-salaire .event-salaire-label{font-size:.85em;font-weight:500;color:#666;margin-right:0!important;white-space:nowrap;min-width:50px}.event-header-salaire .event-salaire-input{min-width:140px;padding:4px 8px;font-size:.9em;border-radius:4px;border:1px solid var(--border-color);text-align:right}.event-header-salaire .event-salaire-input:focus{outline:none;border-color:var(--primary-color);background-color:#fff3cd}.no-highlight-effects .event-item.highlighted{animation:none!important;transform:none!important;box-shadow:none!important}.no-highlight-effects .scroll-to-today-btn.fade-out,.no-highlight-effects .scroll-to-today-btn.fade-in{transition:none!important;opacity:1!important}.no-highlight-effects #today.highlighted>.today-label{animation:none!important}.no-highlight-effects *[class*=highlight]{animation:none!important;transition:none!important}.modal{position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center}.modal-content{background-color:#fff;padding:25px;border-radius:8px;box-shadow:0 4px 20px #0003;width:90%;max-width:500px;position:relative}.modal-content.modal-large{max-width:600px}.close-modal{position:absolute;top:10px;right:10px;font-size:1.6rem;line-height:1;padding:.15em;border-radius:4px;cursor:pointer;color:#a9a9a9}.close-modal:hover{color:#dcdcdc;background-color:#333}.prefs-modal{max-width:500px;width:90vw}.prefs-section{display:flex;flex-direction:column;gap:20px;margin-top:20px}.prefs-item{padding:15px;border:1px solid var(--border-color, #ddd);border-radius:8px;background:#f9f9f9}.prefs-checkbox-label{display:flex;align-items:center;cursor:pointer;margin-bottom:8px}.prefs-checkbox{margin-right:12px;width:18px;height:18px;cursor:pointer}.prefs-checkbox-text{font-weight:500;color:var(--text-color, #333)}.prefs-description{margin:0;font-size:.9em;color:var(--secondary-color, #666);line-height:1.4}#help-modal{display:none;position:fixed;z-index:1000;left:0;top:0;width:100%;height:100%;background-color:#00000080;align-items:center;justify-content:center}#help-modal.show{display:flex!important}#help-modal .modal-content{max-height:80vh;overflow-y:auto;width:90%;max-width:860px;display:block;margin:0 auto;transform:translateY(0)}#help-modal .modal-content h2{color:var(--primary-color);border-bottom:2px solid var(--primary-color);padding-bottom:10px;margin-bottom:20px}#help-modal .modal-content h3{color:var(--secondary-color);margin-top:25px;margin-bottom:15px}#help-modal .modal-content p{margin-block:1em}#help-modal .modal-content ul{margin-left:20px}#help-modal .modal-content ul li{margin-bottom:8px;line-height:1.4}#help-modal .modal-content .help-section{margin-bottom:25px}#help-modal .modal-content .help-section:last-child{margin-bottom:0}#help-modal .modal-content .keyboard-shortcut{background-color:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:.9em}.import-method{margin:20px 0;padding:15px;background-color:#f8f9fa;border-radius:8px;border-left:4px solid #007bff}.import-method h4{margin:0 0 8px;color:#333;font-size:1.1em}.import-method p{margin:0 0 15px;color:#666;font-size:.9em}.export-controls,.import-controls{display:flex;gap:10px;margin-top:10px;flex-wrap:wrap}.export-options{display:flex;flex-direction:column;gap:10px;margin:15px 0}.export-options .btn-action{text-align:left;padding:12px 16px;display:flex;flex-direction:column;align-items:flex-start}.export-options .btn-action small{font-size:.85em;opacity:.8;margin-top:4px;font-weight:400}.drive-file-item{display:flex;justify-content:space-between;align-items:flex-start;padding:15px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;background-color:#f9f9f9}.drive-file-item .file-info{flex:1;margin-right:15px}.drive-file-item .file-info strong{display:block;margin-bottom:6px;font-size:1em;color:#333;word-break:break-word}.drive-file-item .file-info .file-path{margin:6px 0;font-size:12px;font-family:Courier New,monospace;background-color:#00000014;padding:4px 8px;border-radius:4px;border-left:3px solid var(--primary-color);display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.drive-file-item .file-info .file-path:hover{overflow:visible;white-space:normal;word-break:break-all;background-color:#0000001f;cursor:help;z-index:10;position:relative}.drive-file-item .file-info small{display:block;margin:4px 0;color:#666;font-size:.9em}.drive-file-item .file-info span{display:block;margin:4px 0;font-size:.85em}.drive-file-item .btn-action{flex-shrink:0;min-width:140px;white-space:nowrap}.drive-file-info{flex-grow:1}.data-modal.wide-modal{max-width:1100px;width:90vw;margin:auto}.data-manager-columns{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:20px}.data-manager-column h3{margin-bottom:10px;color:var(--primary-color);border-bottom:2px solid var(--border-color);padding-bottom:8px}.data-manager-column p{margin-bottom:20px;color:var(--secondary-color);font-size:.9em}.export-section,.import-section{margin-bottom:25px;padding:15px;background-color:var(--background-light);border-radius:8px;border:1px solid var(--border-color)}.export-section h4,.import-section h4{margin:0 0 12px;font-size:.95em;color:var(--secondary-color);text-transform:uppercase;letter-spacing:.5px}.export-section .btn-action,.export-section .btn-secondary,.import-section .btn-action,.import-section .btn-secondary{width:100%;margin-bottom:8px}.export-section .btn-action:last-child,.export-section .btn-secondary:last-child,.import-section .btn-action:last-child,.import-section .btn-secondary:last-child{margin-bottom:0}.export-column{padding-right:15px}.export-column .export-section{background-color:#28a7450d;border-color:#28a74533}.import-column{padding-left:15px}.import-column .import-section{background-color:#007bff0d;border-color:#007bff33}.import-controls{display:flex;flex-direction:column;gap:8px}.import-controls input[type=file]{padding:8px;border:1px solid var(--border-color);border-radius:4px;background-color:#fff}.import-controls label{font-size:.9em;color:var(--secondary-color);margin-bottom:5px}.import-controls textarea{resize:vertical;min-height:80px;padding:10px;border:1px solid var(--border-color);border-radius:4px;font-family:monospace;font-size:.85em}@media (max-width: 768px){.data-modal.wide-modal{width:95vw;max-width:none}.data-manager-columns{grid-template-columns:1fr;gap:20px}.export-column{border-right:none;padding-right:0;border-bottom:1px solid var(--border-color);padding-bottom:20px}.import-column{padding-left:0;padding-top:20px}}#data-import-modal .modal-content{max-width:800px;width:90vw;max-height:80vh;overflow-y:auto}@media (max-width: 900px){#data-import-modal .modal-content{width:95vw;max-width:none}#data-import-modal .drive-file-item{flex-direction:column;align-items:stretch}#data-import-modal .drive-file-item .file-info{margin-right:0;margin-bottom:10px}#data-import-modal .drive-file-item .btn-action{width:100%;min-width:auto}}@media (max-width: 600px){#data-import-modal .modal-content{padding:15px}#data-import-modal .drive-file-item{padding:12px}#data-import-modal .drive-file-item .file-info .file-path{font-size:11px;padding:3px 6px}}.file-path{font-family:Courier New,monospace;background-color:#0000000d;padding:4px 8px;border-radius:4px;border-left:3px solid var(--primary-color);display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:6px 0}.file-path:hover{background-color:#0000001a;cursor:help}.export-controls label{font-size:.9em;line-height:1}.export-controls .filename-preview{display:flex;align-items:center;width:100%;margin-top:5px;color:#666;font-size:.9em;background-color:#fff;border:1px dotted gray;border-radius:4px;padding:2px 4px}.export-controls .filename-preview .preview-icon{font-size:1.25em;margin-right:5px;transition:transform .2s ease,color .2s ease}.export-controls .filename-preview .preview-icon.active{transform:scale(1.1);color:var(--primary-color)}.export-controls .filename-preview .filename-preview-output{font-size:.85em;line-height:1.2;padding:2px 5px;display:inline-block;color:#555;transition:all .3s ease;border-radius:3px}.export-controls .filename-preview .filename-preview-output.updating{background:linear-gradient(90deg,#e3f2fd,#bbdefb,#e3f2fd);background-size:200% 100%;animation:shimmer .8s ease-in-out;transform:scale(1.02);color:var(--primary-color);font-weight:500}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.filename-options{margin-top:15px;padding:15px;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.filename-options h5{margin-top:0;margin-bottom:12px;font-size:.9em;color:#495057}.filename-options .option-group{margin-bottom:10px}.filename-options .option-group label{display:block;margin-bottom:6px;font-size:.85em;cursor:pointer}.filename-options .option-group label input[type=checkbox],.filename-options .option-group label input[type=radio]{margin-right:8px}.filename-options .option-group:last-child{margin-bottom:0}.filename-options #date-options{margin-left:20px;padding-left:15px;border-left:2px solid #dee2e6}.filename-options #date-options.disabled{opacity:.5;pointer-events:none}.input-with-icon{position:relative;display:flex;align-items:center}.input-with-icon .input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);font-size:16px;color:#6c757d;pointer-events:none;z-index:1}.input-with-icon input{width:100%;padding:10px 15px 10px 40px;border:1px solid #ddd;border-radius:4px;font-size:14px}.input-with-icon input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #4a6fa51a}.input-with-icon input::placeholder{color:#999}.drop-zone{border:2px dashed #ccc;border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:all .3s ease;background:#fafafa;margin-bottom:15px}.drop-zone:hover{border-color:var(--primary-color);background:#4a6fa50d}.drop-zone.drag-over{border-color:var(--primary-color);background:#4a6fa51a;transform:scale(1.02)}.drop-zone.has-file{border-color:var(--success-color, #28a745);background:#28a7450d}.drop-zone-content{pointer-events:none}.drop-icon{font-size:32px;margin-bottom:8px;display:block}.drop-text{color:#666;font-size:14px;line-height:1.4}.selected-file-info{display:flex!important;align-items:center;gap:8px;background:#fff;border:1px solid var(--success-color, #28a745);border-radius:6px;padding:8px 12px;margin-top:10px;color:var(--success-color, #28a745)}.selected-file-info .file-icon{font-size:16px}.selected-file-info .file-name{flex:1;font-weight:500}.selected-file-info .remove-file{background:none;border:none;color:#dc3545;font-size:18px;font-weight:700;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;pointer-events:all}.selected-file-info .remove-file:hover{background:#dc3545;color:#fff;border-radius:50%}.notes-modal{max-width:700px;width:90vw}.notes-modal .notes-container{margin:20px 0}.notes-modal .notes-container textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #4a6fa51a}.notes-modal .notes-info{font-style:italic}@media (max-width: 768px){.notes-modal .modal-content{padding:15px}.notes-modal .notes-container textarea{min-height:250px;font-size:16px}}.totals-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;gap:15px;text-align:center;margin-bottom:20px}.totals-grid .total-box{padding:12px;border-radius:8px;font-size:.9em}.totals-grid .total-box h3{margin:0 0 8px;font-size:.9em}.totals-grid .total-box p{font-size:1.8em;font-weight:700;margin:0}.total-effectuees{grid-column:1;grid-row:1}.total-confirmees{grid-column:2;grid-row:1;border-left:2px solid #ddd}.total-options-plus{grid-column:3;grid-row:1;border-left:2px solid #ddd;margin-left:1rem}.total-ok{grid-column:1/3;grid-row:2;border-top:2px solid #ddd}.total-general-plus{grid-column:3;grid-row:2;border-top:2px solid #ddd;border-left:2px solid #ddd;margin-left:1rem}.total-box.total-past{background-color:var(--past-background);border-top:2px solid rgba(100,100,100,.5)}.total-box.total-confirmed{background-color:var(--confirmed-color);border-top:2px solid rgba(0,150,136,.5)}.total-box.total-all-confirmed{background-color:color-mix(in srgb,var(--confirmed-color),var(--past-background));border-top:2px solid rgba(0,220,26,.27)}.total-box.total-options-plus{background-color:var(--option-plus-color);border-top:2px solid rgba(168,103,5,.5)}.total-box.total-general-plus{background-color:color-mix(in srgb,var(--option-plus-color),var(--past-background));border-top:2px solid rgba(168,103,5,.5)}.totals{display:flex;gap:20px;text-align:center;margin-bottom:15px}.totals:last-child{margin-bottom:0}.totals-global .total-box{flex:1}.calculs-container{display:grid;grid-template-columns:1fr 2fr;border:1px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:20px}.colonne-heures-effectuees{display:flex;flex-direction:column;background-color:#1976d20d}.colonne-calculs{display:flex;flex-direction:column}.titre-colonne{padding:12px;background-color:var(--border-color);font-weight:700;text-align:center;font-size:.9em;color:var(--secondary-color);border-bottom:1px solid var(--border-color);display:none}.contenu-heures{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 20px;background-color:#1976d21a;gap:10px}.contenu-heures .label{font-size:.9em;color:var(--secondary-color);font-weight:700;text-align:center}.contenu-heures .value{font-size:2em;font-weight:700;color:var(--primary-color)}.rangee-confirmees,.rangee-options{display:grid;grid-template-columns:1fr 1fr;flex:1}.rangee-confirmees{border-bottom:1px solid var(--border-color)}.calc-item{padding:20px 15px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid var(--border-color);text-align:center}.calc-item:last-child{border-right:none}.calc-item .label{font-size:.85em;color:var(--tertiary-color);margin-bottom:8px;font-weight:500}.calc-item .value{font-weight:700;font-size:1.4em;color:var(--text-color)}.rangee-confirmees .calc-item:first-child{background-color:#0096880d}.rangee-confirmees .calc-item:last-child{background-color:#1af30214}.rangee-options .calc-item:first-child{background-color:#ffc1071a}.rangee-options .calc-item:last-child{background-color:#4caf501a}.salaire-totals-grid{display:flex;flex-direction:column;gap:6px;margin-bottom:20px;padding:15px;background:#f9f9f9;border-radius:8px;border:1px solid var(--border-color)}.salaire-totals-grid .salaire-total-item{display:flex;justify-content:space-between;align-items:center;padding:4px 0;min-height:24px}.salaire-totals-grid .salaire-total-item:not(:last-child){border-bottom:1px solid #e0e0e0;padding-bottom:6px}.salaire-totals-grid .salaire-total-item .salaire-label{font-size:.9em;color:var(--secondary-color);font-weight:500;flex:1;text-align:left}.salaire-totals-grid .salaire-total-item .salaire-value{font-weight:700;font-size:1em;color:var(--primary-color);text-align:right;white-space:nowrap;margin-left:10px}.salaire-totals-grid .salaire-total-item:last-child{border-top:2px solid var(--primary-color);padding-top:8px;margin-top:5px}.salaire-totals-grid .salaire-total-item:last-child .salaire-label{font-weight:700;color:var(--text-color)}.salaire-totals-grid .salaire-total-item:last-child .salaire-value{font-size:1.1em;color:var(--primary-color);font-weight:700}.period-separator,.today-separator{display:flex;align-items:center}.separator-line{flex-grow:1;height:3px;background-color:var(--separator-period-color)}.separator-label{padding:0 15px;font-size:1em;font-weight:700;color:var(--separator-period-color)}.colors-modal .separator-preview{margin-inline:0;max-width:100%}.colors-modal{max-width:800px;width:90%;max-height:90vh;overflow-y:auto}.colors-container{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.color-row{display:flex;align-items:center;gap:2rem;padding:.5rem;margin-block:.5rem;border:1px solid var(--border-color);border-radius:8px;background-color:#f9f9f9}.color-control{flex:0 0 300px;display:flex;align-items:center;gap:1rem}.color-control input[type=color]{width:60px;height:50px;border:3px solid var(--border-color-darken);border-radius:8px;cursor:pointer;padding:0;flex-shrink:0}.color-info{flex:1}.color-label{display:block;font-weight:600;color:var(--text-color);margin-bottom:.25rem}.color-description{display:block;font-size:.85rem;color:#666;font-style:italic}.color-preview-example{flex:1}.color-preview-example .event-item{margin:0;border:1px solid var(--border-color)!important;border-left:5px solid var(--confirmed-color)}.color-preview-example .event-item.past-in-period{background-color:var(--past-background)!important;border-left:none!important}.color-preview-example .event-item.past-in-period .event-header-status{opacity:.4}.color-preview-example .event-header-hours input{background-color:#fff}body .colors-container .color-row .color-preview-example select:disabled,body .colors-container .color-row .color-preview-example select[disabled]{opacity:1!important;color:#333!important;border-color:#ddd!important;background-color:#fff!important;cursor:default!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.notification{position:fixed;bottom:20px;right:20px;padding:10px 20px;border-radius:5px;background-color:#fff;box-shadow:0 2px 10px #0003;transform:translateY(100px);opacity:0;transition:transform .3s,opacity .3s;z-index:1100}.notification.success{border-left:4px solid var(--primary-color)}.notification.error{border-left:4px solid #f44336}.notification.show{transform:translateY(0);opacity:1}[data-visible=true]{display:block!important}#current-period-summary[data-visible=true]{display:flex!important}[data-visible=false]{display:none!important}.icon{font-size:1rem}@media (max-width: 768px){.content-container{grid-template-columns:1fr}.left-column{max-height:none;overflow-y:visible}.right-column{position:static}.date-inputs,.form-row,.totals{flex-direction:column}.totals-grid{grid-template-columns:1fr;grid-template-rows:repeat(5,auto)}.totals-grid .total-effectuees{grid-column:1;grid-row:1}.totals-grid .total-confirmees{grid-column:1;grid-row:2;border-left:none;border-top:2px solid #ddd}.totals-grid .total-options-plus{grid-column:1;grid-row:3;border-left:none;border-top:2px solid #ddd;margin-left:0}.totals-grid .total-ok{grid-column:1;grid-row:4;border-top:2px solid #ddd}.totals-grid .total-general-plus{grid-column:1;grid-row:5;border-left:none;border-top:2px solid #ddd;margin-left:0}.calculs-container{grid-template-columns:1fr}.colonne-heures-effectuees{border-bottom:1px solid var(--border-color)}.contenu-heures{padding:20px}.contenu-heures .value{font-size:1.5em}}body:not(.salaires-enabled) .salaire-totals-grid,body:not(.salaires-enabled) #event-salaire,body:not(.salaires-enabled) label[for=event-salaire],body:not(.salaires-enabled) .event-header-salaire,body:not(.salaires-enabled) .event-salaire-input,body:not(.salaires-enabled) .event-salaire-label{display:none!important}body.salaires-enabled .salaire-totals-grid{display:grid!important}body.salaires-enabled #event-salaire,body.salaires-enabled label[for=event-salaire],body.salaires-enabled .event-header-salaire,body.salaires-enabled .event-salaire-input,body.salaires-enabled .event-salaire-label{display:block!important}body.salaires-enabled .event-header-salaire{display:flex!important}
