.numeric-input-error{box-shadow:0 0 0 1px #e74c3c66;background-color:#e74c3c14!important;border-color:#e74c3c!important}body.light-mode .numeric-input-error{background-color:#c0392b14!important;border-color:#c0392b!important}body.high-contrast-mode .numeric-input-error{box-shadow:0 0 0 2px red;color:#f66!important;background-color:#000!important;border-color:red!important}body.amber-mode .numeric-input-error{background-color:#ff33001a!important;border-color:#f30!important}.numeric-input-rejected{animation:.35s ease-out numeric-input-reject-flash}@keyframes numeric-input-reject-flash{0%{background-color:#e74c3c59}to{background-color:#0000}}.numeric-input-wrapped{animation:.6s ease-out numeric-input-wrap-flash}@keyframes numeric-input-wrap-flash{0%{background-color:#f39c1273;box-shadow:0 0 0 2px #f39c1299}to{box-shadow:none;background-color:#0000}}.custom-tooltip{color:#e0e0e0;white-space:pre-wrap;background:#1a1a2e;border:1px solid #4ecdc4;border-radius:4px;max-width:300px;padding:4px 8px;font-family:monospace;font-size:12px;box-shadow:0 2px 8px #0006}body.high-contrast-mode .custom-tooltip{color:#fff;background:#000;border-color:#ff0}body.amber-mode .custom-tooltip{color:#fc0;background:#1a1200;border-color:#f80}body.light-mode .custom-tooltip{color:#333;background:#fff;border-color:#2196f3;box-shadow:0 2px 8px #00000026}.empty-state{color:#888;text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.empty-state-icon{color:#555;opacity:.8;margin-bottom:4px}.empty-state-title{color:#bbb;font-size:14px;font-weight:700}.empty-state-hint{color:#aaa;white-space:pre-wrap;text-align:left;max-width:400px;font-size:12px;line-height:1.5}.empty-state-overlay{z-index:50;pointer-events:none;background:#1e1e1e4d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}body.light-mode .empty-state{color:#666}body.light-mode .empty-state-icon{color:#aaa}body.light-mode .empty-state-title{color:#444}body.light-mode .empty-state-hint{color:#666}body.light-mode .empty-state-overlay{background:#f0f0f080}body.high-contrast-mode .empty-state-icon{color:#ff0;opacity:1}body.high-contrast-mode .empty-state-title{color:#ff0}body.high-contrast-mode .empty-state-hint{color:#ccc}body.amber-mode .empty-state-icon{color:#f80;opacity:1}body.amber-mode .empty-state-title{color:#f80}body.amber-mode .empty-state-hint{color:#c90}.timeline-container{flex-direction:column;display:flex}.diagram-title{color:#eee;background:#1e1e1e;border-bottom:1px solid #333;align-items:center;margin:0 0 .5rem;padding:.5rem 1rem;font-size:1rem;display:flex}.timeline-container.dragging{cursor:ew-resize;-webkit-user-select:none;user-select:none}.timeline-container.dragging *{cursor:ew-resize!important}.timeline-layout{flex-direction:row;display:flex}.timeline-sidebar{z-index:10;background:#1a1a1a;border-right:1px solid #444;flex-shrink:0;width:325px;padding-top:0}.sidebar-header-row{z-index:20;background:#222;border-bottom:1px solid #444;align-items:center;gap:3px;height:50px;padding:0 6px;display:flex;position:sticky;top:0}.col-label{color:#888;text-align:center;box-sizing:border-box;font-size:.75em}.col-label.col-grp{flex-shrink:0;width:28px}.col-label.col-name{text-align:left;flex-shrink:0;width:160px}.col-label.col-time{flex-shrink:0;width:26px;position:relative;left:-10px}.col-label.col-da{flex-shrink:0;width:20px;position:relative;left:-10px}.row-label-container{color:#eee;border-bottom:1px solid #333;align-items:center;gap:3px;height:30px;padding:0 6px;display:flex}.label-id{box-sizing:border-box;flex-shrink:0;width:28px;font-weight:700}.label-name-wrapper{flex-shrink:0;align-items:center;display:inline-flex;position:relative}.label-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;border-radius:3px;flex-shrink:0;width:160px;padding:2px 14px 2px 4px;font-size:.75em;position:relative;overflow:hidden}.phase-flag-indicator{color:#fff;cursor:help;font-size:.9em;font-weight:700;line-height:1;position:absolute;top:-1px;right:1px}.phase-flag-tooltip{color:#eee;white-space:nowrap;z-index:100;pointer-events:none;background:#333;border-radius:4px;padding:6px 10px;font-size:.7em;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.input-time-sm{color:#fff;text-align:center;box-sizing:border-box;background:#333;border:1px solid #444;border-radius:3px;flex-shrink:0;width:26px;padding:1px;font-size:.75em}.input-time-sm:focus{background:#444;border-color:#666;outline:none}.input-da{color:#b432ff;text-align:center;box-sizing:border-box;background:#333;border:1px solid #444;border-radius:3px;flex-shrink:0;width:20px;padding:1px;font-size:.75em}.input-da:focus{background:#444;border-color:#666;outline:none}.input-da-placeholder{flex-shrink:0;width:20px}.input-time-sm-placeholder{flex-shrink:0;width:26px}.input-time{color:#fff;text-align:center;background:#333;border:1px solid #444;border-radius:4px;width:45px;padding:4px;font-size:.9em}.input-time:focus{background:#444;border-color:#666;outline:none}.no-phase-label{text-align:center;color:#666;flex:1;font-style:italic}.timeline-scroll-area{background:#242424;flex-grow:0;flex-shrink:0;position:relative;overflow:visible}.timeline-track-container{position:relative}.timeline-ruler{z-index:20;background:#222;border-bottom:1px solid #444;width:100%;height:50px;position:sticky;top:0}.timeline-row-track{border-bottom:1px solid #333;height:30px;position:relative;overflow:hidden}.timeline-row-track.row-conflict{box-shadow:inset 4px 0 #e74c3c}.green-cut-overlay{z-index:50;pointer-events:none;background:#2a2a2a;border-left:1px dashed #666;border-right:1px dashed #666;position:absolute;top:7px;bottom:7px}.cycle-block{z-index:10;display:flex;position:absolute;top:7px;bottom:7px}.cycle-block.dragging{z-index:100}.drag-handle{cursor:ew-resize;z-index:25;background:0 0;width:8px;transition:background-color .15s;position:absolute;top:0;bottom:0}.drag-handle:hover,.drag-handle:active{background:#ffffff4d}.drag-handle-start{border-radius:2px 0 0 2px;left:0;transform:translate(-50%)}.drag-handle-end{border-radius:0 2px 2px 0;transform:translate(-50%)}.drag-handle:before{content:"";background:0 0;border-radius:1px;width:2px;height:60%;transition:background-color .15s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.drag-handle:hover:before,.drag-handle:active:before{background:#fffc}.action-drag-handle{cursor:ew-resize;z-index:25;pointer-events:auto;background:0 0;width:10px;transition:background-color .15s;position:absolute;top:0;bottom:0}.action-drag-handle:hover{background:#ffffff4d}.action-drag-handle:active{background:#ffffff80}.action-drag-handle-start{border-radius:3px 0 0 3px;left:0;transform:translate(-50%)}.action-drag-handle-end{border-radius:0 3px 3px 0;right:0;transform:translate(50%)}.adaptatif-overlay.dragging,.escamotage-overlay.dragging,.signa-wrapper.dragging,.brace-marker.dragging,.ouverture-anticipee.dragging,.cycle-block.lucarne.dragging{z-index:100}.phase-bar{height:100%}.phase-bar.green{background:linear-gradient(#0f0,#0c0);box-shadow:0 0 5px #00ff0080}.phase-bar.green-dark{background:linear-gradient(#080,#060);box-shadow:0 0 5px #00880080}.phase-bar.orange{background:linear-gradient(#ff0,#cc0);box-shadow:0 0 5px #ffff0080}.phase-bar.pedestrian-orange{background:0 0;position:relative}.phase-bar.pedestrian-orange:after{content:"";background:red;height:2px;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 3px #f00c}.phase-bar.cyclist-orange{background:0 0;position:relative}.phase-bar.cyclist-orange:after{content:"";background:repeating-linear-gradient(90deg,red 0 4px,#0000 4px 8px);height:2px;position:absolute;top:50%;left:0;right:0;box-shadow:0 0 3px #ff000080}.ruler-tick{color:#888;justify-content:center;align-items:center;height:100%;font-size:.75em;display:flex;position:absolute;top:0;transform:translate(-50%)}.playhead{z-index:50;pointer-events:none;background:#f44;width:2px;position:absolute;top:0;bottom:0}.timeline-grid{pointer-events:none;z-index:1;position:absolute;inset:0}.grid-line{width:1px;position:absolute;top:0;bottom:0}.grid-1s{background:#ffffff0d}.grid-5s{background:#ffffff1f}.grid-10s{background:#ffffff40}.grid-cycle-end{background:#fff;width:2px}.brace-marker{z-index:20;pointer-events:none;justify-content:center;align-items:flex-start;height:100%;display:flex;position:absolute;top:0}.brace-marker:before{content:"";border:none;border-top:3px solid #e53935;border-left:3px solid #e53935;border-radius:4px 0 0;width:calc(50% - 4px);height:4px;position:absolute;top:6px;left:0}.brace-marker:after{content:"";border-top:3px solid #e53935;border-bottom:none;border-left:none;border-right:3px solid #e53935;border-radius:0 4px 0 0;width:calc(50% - 4px);height:4px;position:absolute;top:6px;right:0}.brace-marker .brace-point{background:0 0;border:none;border-top:3px solid #e53935;border-left:3px solid #e53935;width:4px;height:4px;position:absolute;top:2px;left:50%;transform:translate(-50%)rotate(45deg)}.brace-text{display:none}.cycle-block.lucarne{opacity:.8}.escamotage-overlay{z-index:21;pointer-events:none;box-sizing:border-box;background:#80808033;border:2px solid #c8c8c8b3;position:absolute}.adaptatif-overlay{z-index:18;pointer-events:none;box-sizing:border-box;background:#64b4ff33;border:2px solid #64b4ffb3;border-radius:4px;position:absolute}.escamotage-label,.adaptatif-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;white-space:nowrap;z-index:50;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;bottom:0;left:4px}.escamotage-group-overlay{z-index:20;pointer-events:none;background:repeating-linear-gradient(-45deg,#80808033,#80808033 3px,#80808066 3px 6px);border:2px dashed #888;border-radius:3px;position:absolute}.escamotage-group-overlay.dragging{z-index:100}.escamotage-group-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;white-space:nowrap;z-index:50;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.fermeture-arrow{overflow:visible}.ouverture-anticipee{z-index:100;pointer-events:none;background:repeating-linear-gradient(45deg,#00cc00b3,#00cc00b3 1px,#0000 1px 2px);border:.5px solid #00000080;border-radius:2px;height:25%;position:absolute;bottom:7px}.ouverture-anticipee-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;white-space:nowrap;z-index:101;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;bottom:calc(100% + 2px);left:2px}.bar-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;text-overflow:ellipsis;white-space:nowrap;z-index:50;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.signa-orange-bar{pointer-events:none;z-index:10;background:repeating-linear-gradient(90deg, #ff8c00, #ff8c00 var(--stripe-width,10px), transparent var(--stripe-width,10px), transparent calc(var(--stripe-width,10px) * 2));border-radius:2px;position:absolute;box-shadow:0 0 3px #ff8c0080}.signa-blue-bar{pointer-events:none;z-index:10;background:linear-gradient(#00f,#0000c8);border-radius:2px;position:absolute;box-shadow:0 0 5px #0000ff80}.signa-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;white-space:nowrap;z-index:50;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.controle-flot-wrapper{pointer-events:auto;z-index:15;position:absolute}.controle-flot-intermittent{pointer-events:none;z-index:10;background:repeating-linear-gradient(90deg, gold, gold var(--stripe-width,10px), gray var(--stripe-width,10px), gray calc(var(--stripe-width,10px) * 2));border-radius:2px;position:absolute;box-shadow:0 0 3px #ffd70080}.controle-flot-orange{pointer-events:none;z-index:10;background:linear-gradient(#ff8c00,#cc7000);border-radius:2px;position:absolute;box-shadow:0 0 3px #ff8c0080}.controle-flot-red{pointer-events:none;z-index:10;background:linear-gradient(red,#c00);border-radius:2px;position:absolute;box-shadow:0 0 3px #ff000080}.controle-flot-label{color:#fff;text-shadow:0 0 3px #000c,0 0 1px #000;white-space:nowrap;z-index:50;pointer-events:none;font-size:.65em;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.controle-flot-wrapper.highlighted,.controle-flot-intermittent.highlighted,.controle-flot-orange.highlighted,.controle-flot-red.highlighted{outline-offset:1px;outline:2px solid #fc0;box-shadow:0 0 10px #ffcc0080}.cycle-block.highlighted,.brace-marker.highlighted,.ouverture-anticipee.highlighted,.adaptatif-overlay.highlighted,.escamotage-overlay.highlighted,.signa-wrapper.highlighted{outline-offset:1px;z-index:100;outline:2px solid #fc0;box-shadow:0 0 10px #ffcc0080}.cycle-block.lucarne.highlighted .phase-bar.green-dark{background:linear-gradient(#2a8a2a,#1a6a1a);box-shadow:inset 0 0 10px #ffcc004d}.brace-marker.highlighted:before,.brace-marker.highlighted:after{border-color:#fc0}.brace-marker.highlighted .brace-point{border-top-color:#fc0}.ouverture-anticipee.highlighted{border-color:#fc0c}.escamotage-group-hover.highlighted{background:#fc03;border-radius:3px}.escamotage-arrows.highlighted line,.escamotage-arrows.highlighted rect{stroke:#0d47a1;stroke-width:2px}.escamotage-arrows.highlighted polygon{fill:#0d47a1}.signa-orange-bar.highlighted,.signa-blue-bar.highlighted{outline-offset:1px;outline:2px solid #fc0;box-shadow:0 0 8px #ffcc0080}.point-repos-arrows{overflow:visible}.point-repos-arrows line{transition:stroke-width .15s}.point-repos-arrows.highlighted line{stroke:#fc0;stroke-width:3px}.point-repos-arrows.highlighted polygon{fill:#fc0}.synchro-bts-arrows{overflow:visible}.synchro-bts-arrows line{transition:stroke-width .15s}.synchro-bts-arrows.highlighted line{stroke:#fc0;stroke-width:3px}.synchro-bts-arrows.highlighted polygon{fill:#fc0}.instant-co-arrows{overflow:visible}.instant-co-arrows line{transition:stroke-width .15s}.instant-co-arrows.highlighted line{stroke:#fc0;stroke-width:3px}.instant-co-arrows.highlighted polygon{fill:#fc0}.point-repos-label,.synchro-bts-label,.instant-co-label{cursor:pointer}.priorite-pietons-wrapper{z-index:15}.priorite-pietons-wrapper.dragging{z-index:100}.priorite-pietons-bar.highlighted,.priorite-pietons-wrapper.highlighted{outline-offset:1px;outline:2px solid #fc0;box-shadow:0 0 8px #ffcc0080}.debut-bande-arrows{overflow:visible}.debut-bande-arrows line{stroke:#0c0;stroke-width:.7px;stroke-dasharray:4 4;transition:stroke-width .15s}.debut-bande-arrows.highlighted line{stroke:#0f0;stroke-width:2px}.debut-bande-arrows.highlighted polygon{fill:#0f0}.fin-bande-arrows{overflow:visible}.fin-bande-arrows line{stroke:#0c0;stroke-width:.7px;stroke-dasharray:4 4;transition:stroke-width .15s}.fin-bande-arrows.highlighted line{stroke:#0f0;stroke-width:2px}.fin-bande-arrows.highlighted polygon{fill:#0f0}.action-hover-tooltip{color:#e0e0e0;background:#1a1a2e;border:1px solid #4ecdc4;border-radius:4px;padding:5px 10px;font-family:monospace;font-size:12px}.action-hover-tooltip-name{color:#4ecdc4;font-weight:700}.action-hover-tooltip-seconds{color:#aaa}.action-hover-tooltip-micro{white-space:pre-wrap;border-top:1px solid #444;margin-top:4px;padding-top:4px}.action-hover-tooltip-micro .micro-keyword{color:#b432ff}.action-hover-tooltip-micro .micro-bold{font-weight:700}body.high-contrast-mode .action-hover-tooltip{color:#fff;background:#000;border-color:#ff0}body.high-contrast-mode .action-hover-tooltip-name{color:#ff0}body.high-contrast-mode .action-hover-tooltip-seconds{color:#ccc}body.high-contrast-mode .action-hover-tooltip-micro{border-top-color:#666}body.high-contrast-mode .action-hover-tooltip-micro .micro-keyword{color:#ff80ff}body.amber-mode .action-hover-tooltip{color:#fc0;background:#1a1200;border-color:#f80}body.amber-mode .action-hover-tooltip-name{color:#f80}body.amber-mode .action-hover-tooltip-seconds{color:#c90}body.amber-mode .action-hover-tooltip-micro{border-top-color:#540}body.amber-mode .action-hover-tooltip-micro .micro-keyword{color:#f60}body.light-mode .action-hover-tooltip{color:#333;background:#fff;border-color:#2196f3}body.light-mode .action-hover-tooltip-name{color:#1565c0}body.light-mode .action-hover-tooltip-seconds{color:#666}body.light-mode .action-hover-tooltip-micro{border-top-color:#ddd}body.light-mode .action-hover-tooltip-micro .micro-keyword{color:#8200c8}.simulation-playhead{z-index:100;pointer-events:none;background:#f90;width:2px;transition:left .1s linear;position:absolute;top:0}.simulation-playhead.playing{transition:none}.simulation-playhead:before{content:"";background:#f90;border-radius:50%;width:10px;height:10px;position:absolute;top:0;left:-4px}.playhead-time{color:#000;white-space:nowrap;background:#f90;border-radius:2px;padding:1px 4px;font-size:10px;font-weight:700;position:absolute;top:12px;left:6px}.cycle-block.arrow-highlighted{z-index:10}.cycle-block.arrow-highlighted .phase-bar{filter:brightness(1.2);box-shadow:0 0 8px 2px #6496ffcc,0 0 12px 4px #6496ff66}.cycle-block.arrow-saturated .phase-bar{filter:brightness(1.3);margin-top:-4px;box-shadow:0 0 10px 3px #e74c3ce6,0 0 16px 6px #e74c3c80;height:24px!important}.vutile-overlay{pointer-events:none;z-index:5;border:2px solid;border-left:none;position:absolute;top:0;bottom:0;left:0}.vutile-overlay.vutile-green{background:#4caf50d9;border-color:#4caf50;box-shadow:0 0 4px #4caf50}.vutile-overlay.vutile-orange{background:#ff9800d9;border-color:#ff9800;box-shadow:0 0 4px #ff9800}.vutile-overlay.vutile-red{background:#f44336d9;border-color:#f44336;box-shadow:0 0 4px #f44336}.vutile-overlay.vutile-black{background:#212121d9;border-color:#212121;box-shadow:0 0 4px #000}.timeline-comments{background:#1a1a1a;border-left:1px solid #444;flex-shrink:0;width:270px;margin-left:30px}.comments-header{color:#888;background:#222;border-bottom:1px solid #444;justify-content:center;align-items:center;gap:8px;height:50px;font-size:.75em;display:flex}.comment-color-btn{cursor:default;-webkit-user-select:none;user-select:none;font-size:1.2em;font-weight:700}.comment-color-plus{color:#4caf50}.comment-color-minus{color:#f44336}.comment-size-btn{cursor:pointer;-webkit-user-select:none;user-select:none;color:#888;margin-left:4px;font-size:1em;font-weight:700}.comment-size-btn:hover{color:#ccc}.comment-row{border-bottom:1px solid #333;align-items:center;height:30px;padding:0 6px;display:flex}.input-comment{color:#fff;box-sizing:border-box;white-space:nowrap;cursor:text;background:#333;border:1px solid #444;border-radius:3px;width:100%;height:20px;padding:2px 4px;font-size:.7em;line-height:16px;overflow:hidden}.input-comment:focus{background:#444;border-color:#666;outline:none}.input-comment:empty:before{content:"";color:#666}.timeline-remarques{background:#1a1a1a;border-left:1px solid #444;flex-direction:column;flex-shrink:0;width:280px;margin-left:10px;display:flex;overflow:hidden}.timeline-remarques.remarques-popup-mode{border-left:none;width:100%;height:100%;margin-left:0}.timeline-remarques.remarques-popup-mode .input-remarques{overflow:auto}.remarques-header{color:#888;background:#222;border-bottom:1px solid #444;justify-content:center;align-items:center;height:50px;font-size:.75em;display:flex}.input-remarques{color:#fff;box-sizing:border-box;white-space:pre-wrap;word-wrap:break-word;cursor:text;background:#333;border:1px solid #444;flex:1;padding:8px;font-family:inherit;font-size:.9em;overflow:hidden}.input-remarques:focus{background:#444;border-color:#666;outline:none}.input-remarques:empty:before{content:"Remarques générales...";color:#666}.input-comment[data-tooltip],.input-remarques[data-tooltip]{position:relative}.input-comment[data-tooltip]:after,.input-remarques[data-tooltip]:after{content:attr(data-tooltip);color:#fff;white-space:nowrap;z-index:1000;opacity:0;visibility:hidden;pointer-events:none;white-space:normal;text-align:center;background:#333;border:1px solid #555;border-radius:4px;max-width:300px;padding:6px 10px;font-size:.75em;transition:opacity .3s,visibility .3s;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.input-comment[data-tooltip]:hover:after,.input-remarques[data-tooltip]:hover:after{opacity:1;visibility:visible;transition-delay:20s}body.png-export-clean .timeline-comments,body.png-export-clean .timeline-remarques{display:none!important}body.png-export-clean .matrix-scroll,body.png-export-clean .matrix-container-inline,body.png-export-clean .action-table-scroll{width:auto!important;max-width:none!important;overflow:visible!important}body.png-export-clean .action-table th,body.png-export-clean .action-table td{color:#000!important;background:#fff!important}body.png-export-clean .action-table input:not([type=checkbox]),body.png-export-clean .action-table select,body.png-export-clean .action-table textarea{color:#000!important;text-overflow:clip!important;background:#fff!important;font-size:.85em!important;overflow:visible!important}body.png-export-clean .action-table textarea{white-space:pre-wrap!important;word-wrap:break-word!important;height:auto!important;min-height:1.5em!important}body.png-export-clean .input-action,body.png-export-clean .input-desc,body.png-export-clean .input-micro{font-size:.85em!important}body.png-export-clean .action-table thead th,body.png-export-clean .action-table-title{color:#000!important;background:#f0f0f0!important;font-size:.85em!important}body.png-export-clean .phasage-bulle-container{background:#fff!important}.rest-point-band{pointer-events:auto;z-index:5;background:repeating-linear-gradient(135deg,#9696962e 0 6px,#b4b4b447 6px 12px);border-left:1px dashed #c8c8c899;border-right:1px dashed #c8c8c899;position:absolute;top:0;overflow:hidden}.rest-point-label{color:#dcdcdcd9;white-space:nowrap;text-shadow:0 0 3px #0009;letter-spacing:.5px;font-size:.7em;font-weight:600;position:absolute;top:4px;left:50%;transform:translate(-50%)}body.light-mode .rest-point-label,body.sepia-mode .rest-point-label{color:#3c3c3cd9;text-shadow:0 0 3px #fff9}.timeline-container.read-only .drag-handle,.timeline-container.read-only .action-drag-handle{display:none!important}.timeline-container.read-only [style*=ew-resize]{pointer-events:none!important;cursor:default!important}.timeline-container.read-only .point-repos-label,.timeline-container.read-only .synchro-bts-label,.timeline-container.read-only .instant-co-label,.timeline-container.read-only .adaptatif-label,.timeline-container.read-only .escamotage-label{cursor:default!important;pointer-events:none!important}.diagram-detach-btn{vertical-align:middle;margin-left:12px}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{color:#fff;pointer-events:auto;border-radius:6px;align-items:center;gap:10px;min-width:260px;max-width:400px;padding:10px 14px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:13px;animation:.25s ease-out toast-slide-in;display:flex;box-shadow:0 4px 16px #0006}.toast-leaving{animation:.25s ease-in forwards toast-slide-out}.toast-icon{background:#fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;font-weight:700;display:flex}.toast-msg{word-break:break-word;flex:1}.toast-success{background:#1b4332;border-left:3px solid #2ecc71}.toast-error{background:#4a1d1d;border-left:3px solid #e74c3c}.toast-info{background:#1a3a5c;border-left:3px solid #3498db}@keyframes toast-slide-in{0%{opacity:0;transform:translate(110%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(110%)}}body.light-mode .toast{color:#fff}body.light-mode .toast-success{background:#27ae60}body.light-mode .toast-error{background:#c0392b}body.light-mode .toast-info{background:#2980b9}body.high-contrast-mode .toast{color:#fff;border-style:solid;border-width:3px}body.high-contrast-mode .toast-success{background:#000;border-color:#0f0;border-left-style:solid;border-left-width:3px}body.high-contrast-mode .toast-error{background:#000;border-color:red;border-left-style:solid;border-left-width:3px}body.high-contrast-mode .toast-info{color:#ff0;background:#000;border-color:#ff0;border-left-style:solid;border-left-width:3px}body.amber-mode .toast{color:#fc0}body.amber-mode .toast-success{background:#1a1200;border-left:3px solid #f80}body.amber-mode .toast-error{background:#2a0a00;border-left:3px solid #f30}body.amber-mode .toast-info{background:#2a1a00;border-left:3px solid #fa0}.group-table-container{background:#1e1e1e;border:1px solid #333;border-radius:6px;max-height:none;margin-top:0;padding:0;overflow:visible}.group-table-title{color:#fff;background:#222;border-bottom:1px solid #444;margin:0;padding:8px 10px;font-size:1em;font-weight:700}.group-table{border-collapse:collapse;table-layout:auto;width:auto}.group-table th{text-align:center;color:#888;z-index:20;white-space:nowrap;background:#222;border-bottom:1px solid #444;height:50px;padding:0 4px;font-size:.75em;font-weight:400;position:sticky;top:0}.group-table tr{height:30px}.group-table tr.form-hovered-row td{background-color:#64b4ff1f!important}.group-table td{vertical-align:middle;border-bottom:1px solid #333;height:30px;padding:0 2px}.group-table input{color:#fff;text-align:center;background:#333;border:1px solid #444;border-radius:3px;width:32px;padding:2px;font-size:.8em}.group-table select.input-type{color:#fff;background:#333;border:1px solid #444;border-radius:3px;width:70px;padding:1px;font-size:.8em}select.input-courant{color:#fff;background:#333;border:1px solid #444;border-radius:3px;padding:1px;font-size:.8em;width:70px!important}.input-mini,.input-yellow{color:#fff!important;width:32px!important}.input-timing{text-align:center!important;width:40px!important}.input-readonly{cursor:default;color:#8cf!important;background:#2a2a2a!important}.col-id{color:#eee;width:28px;padding:0 4px;font-weight:700}.input-name-cell{font-size:.8em;text-align:left!important;color:#fff!important;width:160px!important}.btn-move{cursor:pointer;color:#aaa;background:#444;border:1px solid #555;border-radius:2px;margin:0 1px;padding:1px 4px;font-size:.9em;display:inline-block;width:auto!important}.btn-move:hover:not(:disabled){color:#3498db;background:#555}.btn-move:disabled{color:#555;cursor:default}.col-name-readonly{color:#ccc;text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:.85em;overflow:hidden}.input-trafic-text{text-align:center!important;width:60px!important}.input-trafic-num{text-align:center!important;width:45px!important}.col-calculated{text-align:center;color:#8cf;font-weight:700}.modal-overlay{z-index:2000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:#3a3a3a;border:1px solid #555;border-radius:8px;min-width:300px;max-width:500px;max-height:80vh;overflow:hidden;box-shadow:0 8px 32px #00000080}.modal-content.modal-wide{width:90vw;max-width:1000px}.modal-header{background:#444;border-bottom:1px solid #555;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.modal-header h3{color:#eee;margin:0;font-size:1em}.modal-close{color:#aaa;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5em;line-height:1}.modal-close:hover{color:#fff}.modal-body{max-height:60vh;padding:16px;overflow-y:auto}.modal-body label{color:#e0e0e0;margin-bottom:8px;font-size:.9em;display:block}.modal-body input[type=number]{color:#fff;background:#444;border:1px solid #666;border-radius:4px;width:80px;margin-left:8px;padding:6px 10px}.modal-body input[type=number]:focus{border-color:#888;outline:none}.modal-actions{border-top:1px solid #555;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:.9em}.modal-btn-primary{color:#fff;background:#4a9eff}.modal-btn-primary:hover:not(:disabled){background:#3a8eef}.modal-btn-primary:disabled{opacity:.4;cursor:default}.modal-btn-secondary{color:#e0e0e0;background:#505050}.modal-btn-secondary:hover{background:#606060}.project-list li{cursor:pointer;color:#e0e0e0;border-bottom:1px solid #555;padding:10px 12px;transition:background .15s}.project-list li:hover{color:#fff;background:#505050}.no-projects{color:#aaa;text-align:center;padding:20px}.form-row{margin-bottom:12px}.form-row label{align-items:center;gap:8px;display:flex}.modal-overlay.modal-menu-overlay{background:0 0;justify-content:flex-start;align-items:flex-start}.modal-overlay.modal-menu-overlay .modal-content{border-radius:4px;margin-top:28px;margin-left:160px;box-shadow:0 4px 16px #0009}.modal-overlay.modal-users-overlay{justify-content:flex-end}.modal-overlay.modal-users-overlay .modal-content{margin-left:auto;margin-right:10px}.modal-overlay.modal-compact-overlay .modal-content{min-width:220px}.modal-overlay.modal-compact-overlay .modal-body{padding:8px 14px}.modal-overlay.modal-compact-overlay .form-row{margin-bottom:6px}.modal-overlay.modal-compact-overlay .form-row label{gap:6px;font-size:.88em}.modal-overlay.modal-compact-overlay .modal-actions{margin-top:8px;padding-top:8px}.modal-overlay.modal-phasage-bulle-overlay{pointer-events:none;background:0 0;justify-content:flex-start;align-items:flex-start;padding:60px 0 0 20px}.modal-overlay.modal-phasage-bulle-overlay .modal-content{pointer-events:auto;min-width:250px;box-shadow:0 4px 20px #000c}.modal-overlay.modal-phasage-bulle-overlay .modal-body{padding:10px 16px}.modal-overlay.modal-phasage-bulle-overlay .modal-actions{padding:8px 16px}.traffic-table-container{background:#1e1e1e;border:1px solid #333;border-radius:8px;width:520px;min-width:520px;max-width:520px;max-height:none;margin-top:8px;padding:0;overflow:visible}.traffic-table-container h3{color:#eee;margin:0;font-size:1rem}.traffic-header{border-bottom:1px solid #333;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem;display:flex}.traffic-all-groups-checkbox{color:#aaa;cursor:pointer;white-space:nowrap;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.traffic-all-groups-checkbox input{cursor:pointer}.traffic-dataset-group{align-items:center;gap:0;display:flex;position:relative}.traffic-dataset-label{color:#aaa;background:#333;border:1px solid #555;border-right:none;border-radius:4px 0 0 4px;padding:4px 6px;font-size:.85rem}.traffic-dataset-selector{color:#fff;cursor:pointer;background:#333;border:1px solid #555;border-radius:0 4px 4px 0;min-width:110px;padding:4px 8px;font-size:.85rem}.traffic-dataset-selector:hover{border-color:#4ecdc4}.traffic-dataset-selector:focus{border-color:#4ecdc4;outline:none;box-shadow:0 0 0 2px #4ecdc433}.traffic-dataset-tooltip{color:#eee;white-space:nowrap;z-index:100;pointer-events:none;background:#333;border-radius:4px;margin-top:4px;padding:6px 10px;font-size:.8em;position:absolute;top:100%;right:0;box-shadow:0 2px 6px #0000004d}.traffic-table{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.75em}.traffic-table th{text-align:center;color:#aaa;z-index:20;white-space:normal;vertical-align:middle;background:#1e1e1e;border-bottom:1px solid #444;height:36px;padding:0 2px;font-weight:400;line-height:1.2;position:sticky;top:0}.traffic-table th.col-grp{width:28px;min-width:28px;max-width:28px}.traffic-table th.col-nom{text-align:left;width:160px;min-width:160px}.traffic-table tr{height:30px}.traffic-table td{vertical-align:middle;border-bottom:1px solid #333;height:30px;padding:0 2px}.traffic-table input{color:#fff;text-align:right;background:#333;border:1px solid #444;border-radius:4px;width:38px;height:20px;padding:2px 3px}.traffic-table .col-id{color:#888;font-weight:700}.traffic-table .col-name-readonly{color:#fff;text-overflow:ellipsis;white-space:nowrap;text-align:left;width:160px;min-width:160px;max-width:160px;font-size:1.1em;font-weight:400;overflow:hidden;padding-left:0!important}.traffic-table .input-trafic-text{text-align:center!important;width:60px!important}.traffic-table .input-trafic-num{text-align:center!important;width:38px!important}.trafic-input-wrapper{align-items:center;display:inline-flex;position:relative}.trafic-coordinated-c{color:#fff;pointer-events:none;margin-left:0;font-size:.8em}.trafic-custom-tooltip{color:#eee;white-space:nowrap;z-index:100;pointer-events:none;background:#333;border-radius:4px;padding:6px 10px;font-size:.85em;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0000004d}.traffic-table .col-calculated{text-align:center;color:#8cf;width:38px;min-width:38px;padding:0 2px;font-weight:700}.traffic-table .capacity-green{color:#4caf50}.traffic-table .capacity-orange{color:#ff9800}.traffic-table .capacity-red{color:#f44336}.traffic-table .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}.col-trafic-header{position:relative}.paste-button-container{display:inline-block;position:relative}.paste-button{color:#1e1e1e;cursor:pointer;background:#4ecdc4;border:none;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:700}.paste-button:hover{background:#45b7aa}.paste-dropdown{z-index:100;background:#333;border:1px solid #555;border-radius:4px;min-width:100px;position:absolute;top:100%;left:0;box-shadow:0 2px 8px #0000004d}.paste-dropdown-item{cursor:pointer;color:#fff;padding:6px 10px;font-size:.8rem}.paste-dropdown-item:hover{color:#1e1e1e;background:#4ecdc4}.traffic-table tbody tr.row-highlighted{outline-offset:-2px;outline:2px solid #4ecdc4;background:#4ecdc459!important}.traffic-table tbody tr.row-highlighted td{background:0 0!important}.traffic-table tbody tr.row-inhibited td.col-calculated{opacity:.5;color:#666}.traffic-diagnostic-summary{color:#ccc;background:#4ecdc414;border-left:3px solid #4ecdc4;border-radius:3px;margin-top:8px;padding:6px 8px;font-size:.82em;line-height:1.5}.traffic-diagnostic-summary .tds-label{color:#4ecdc4;font-weight:700}.traffic-diagnostic-summary .tds-saturated{color:#f44336;font-weight:700}.traffic-diagnostic-summary .capacity-green{color:#4caf50}.traffic-diagnostic-summary .capacity-orange{color:#ff9800}.traffic-diagnostic-summary .capacity-red{color:#f44336}.traffic-diagnostic-summary .capacity-black{border-radius:2px;padding:0 4px;font-weight:700;color:#000!important;background-color:#ff6b6b!important}.matrix-container-inline{background:#1e1e1e;border-radius:8px;flex-direction:column;height:100%;padding:1rem 0 1rem .25rem;display:flex;overflow:hidden}.matrix-container-inline h3{color:#eee;margin:0 0 .5rem;font-size:1rem}.matrix-scroll{flex-grow:1;padding:1rem 0 1rem .25rem;overflow:auto}.matrix-grid{border-collapse:collapse;margin-top:10px}.matrix-grid th{z-index:10;background:#222;border:1px solid #444;width:18px;min-width:18px;height:18px;padding:2px;font-size:.8em;position:sticky;top:0}.matrix-grid td{text-align:center;border:1px solid #444;width:18px;min-width:18px;max-width:18px;height:30px;padding:0}.row-header{z-index:5;background:#222;font-weight:700;position:sticky;left:0}.matrix-grid input{color:#fff;text-align:center;background:0 0;border:none;width:100%;height:100%;font-size:.8em}.matrix-grid input:focus{background:#333;outline:none}.diagonal-cell{background:#333!important}.matrix-hovered-row td,.matrix-hovered-row th,th.matrix-hovered-col,td.matrix-hovered-col{background-color:#64b4ff1f!important}.matrix-hovered-row td.matrix-hovered-col{background-color:#64b4ff40!important}.diagonal{color:#666}.matrix-locked-cell{text-align:center;cursor:default;width:100%;color:inherit;display:inline-block}.col-name-header{text-align:left;z-index:10;min-width:70px;padding-left:4px;font-size:.8em;width:auto!important}.col-index-header{text-align:right;padding-right:4px}.matrix-grid .row-name{text-align:left;color:#fff;white-space:nowrap;z-index:5;background:#1e1e1e;font-size:.8em;position:sticky;left:24px;width:auto!important;min-width:70px!important;max-width:none!important;padding:0 4px!important}.row-header{z-index:6;left:0;width:24px!important;min-width:24px!important;max-width:24px!important}.matrix-conflict-cell{outline-offset:-2px;outline:2px dashed #c0392b;background:#ff00004d!important}.matrix-conflict-input{font-weight:700;background:0 0!important}.matrix-asymmetric-cell{outline-offset:-2px;outline:2px dotted #d35400;background:#ffa5004d!important}.matrix-error-input{color:orange!important}.matrix-warning{color:orange;background:#ffa50033;border:1px solid orange;border-radius:4px;margin-top:12px;padding:8px 12px;font-size:.85em}.matrix-error{color:red;background:#f003;border:1px solid red;border-radius:4px;margin-top:12px;padding:8px 12px;font-size:.85em}.conflict-details{margin:8px 0 0;padding-left:20px;list-style:outside}.conflict-details li{margin:4px 0}.matrix-compare-higher{color:red!important;font-weight:700!important}.matrix-compare-lower{color:#4f4!important;font-weight:700!important}.matrix-bi-sep-bottom{border-bottom:1px solid #fff!important}.matrix-bi-sep-right{border-right:1px solid #fff!important}.action-table-container{box-sizing:border-box;background:#1e1e1e;border-top:1px solid #333;grid-template-rows:auto 1fr auto auto auto;grid-template-columns:minmax(0,max-content) 1fr;height:100%;margin-top:1rem;padding:1rem calc(1rem + 10px) 1rem 1rem;display:grid;overflow:hidden}.action-table-container.conditions-detached{grid-template-rows:0 0 0 1fr auto}.action-table-container.variables-detached{grid-template-rows:auto 1fr 0 0 auto}.action-table-container.conditions-detached.variables-detached{grid-template-rows:0 0 0 0 auto}.action-table-container h3{color:#eee;margin:0 0 .5rem;font-size:1rem}.action-table-title-row{grid-area:1/1;align-items:center;gap:12px;display:flex}.action-table-title{margin:0 0 .5rem}.detach-btn{color:#ccc;cursor:pointer;background:#444;border:1px solid #666;border-radius:3px;padding:2px 10px;font-size:.75rem}.detach-btn:hover:not(:disabled){color:#fff;background:#00897b}.detach-btn:disabled{opacity:.4;cursor:default}.add-condition-btn{white-space:nowrap}.action-table-title-row .add-condition-btn{margin-left:auto}.popup-add-condition-row{justify-content:flex-end;padding:4px 2px 6px;display:flex}.action-table-container .action-table-scroll{grid-area:2/1;min-height:0;overflow:auto}.action-table-bottom-section{flex-direction:column;grid-area:4/1;padding-top:.5rem;display:flex;overflow:hidden}.variables-micro-header{flex-shrink:0;align-items:center;gap:12px;display:flex}.variables-micro-header h3{flex-shrink:0;margin:0 0 .4rem}.variables-micro-scroll{flex:1;min-height:0;overflow:auto}.action-table-separator-horizontal{cursor:row-resize;background:#333;grid-area:3/1;height:6px;transition:background .15s}.action-table-separator-horizontal:hover,.action-table-separator-horizontal.resizing{background:#555}.action-table-scroll{scrollbar-gutter:stable;border:1px solid #333;flex:1;min-height:0;overflow:auto}.action-table{border-collapse:collapse;border:2px solid #666;width:auto;font-size:.7em}.action-table th{color:#aaa;text-align:left;white-space:nowrap;z-index:20;background:#222;border:1px solid #555;padding:4px;font-weight:400;position:sticky;top:0}.action-table thead tr.header-group th{border-bottom:2px solid #666;top:0}.action-table thead tr.header-sub th{border-bottom:2px solid #666;top:26px}.action-table th.header-grouped{text-align:center;background:#2a2a2a;border-bottom:1px solid #555}.action-table thead tr.header-sub th{text-align:center;font-size:.9em}.action-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s,color .2s}.action-table th.sortable:hover{color:#fff;background:#333}.action-table th.sortable.sorted{color:#6af;background:#2a3a4a}.action-table td{border:1px solid #555;padding:1px}.action-table input,.action-table select,.action-table textarea{color:#ddd;background:0 0;border:none;width:100%;padding:1px 3px;font-family:monospace}.action-table input:focus,.action-table select:focus,.action-table textarea:focus{background:#333;outline:none}.action-table select{cursor:pointer}.action-table select option{color:#ddd;background:#222}.action-table td:has(input:disabled){background:#2a2a2a;padding:0;position:relative}.action-table input.input-disabled,.action-table input:disabled{color:#666;cursor:not-allowed;box-sizing:border-box;background:#2a2a2a;padding:2px 4px;display:block;position:absolute;inset:0;width:100%!important;height:100%!important}.idx-col{color:#666;text-align:center;width:22px}.input-gf{width:26px!important}.input-action{text-overflow:ellipsis;font-size:1.5em;overflow:hidden;width:220px!important;max-width:220px!important}.input-desc{font-size:1.5em;width:var(--col-desc-w,160px)!important}.input-time-xs{text-align:right;width:30px!important}.input-abrv{width:var(--col-abrv-w,38px)!important}.input-micro{resize:none;vertical-align:top;min-height:16px;font-size:1.5em;line-height:1.2;overflow:hidden;width:var(--col-micro-w,420px)!important}.micro-highlight-container{display:inline-block;position:relative;width:var(--col-micro-w,420px)!important}.micro-highlight-backdrop{pointer-events:none;white-space:pre-wrap;word-wrap:break-word;color:#eee;border:1px solid #0000;padding:1px 3px;font-family:monospace;font-size:1.5em;line-height:1.2;position:absolute;inset:0;overflow:hidden}.micro-highlight-backdrop .micro-keyword{color:#b432ff}.micro-highlight-backdrop .micro-bold{font-weight:700}.input-micro.micro-has-backdrop{color:#0000;caret-color:#eee}.input-small{width:17px!important}.action-table-container.dragging{cursor:ew-resize;-webkit-user-select:none;user-select:none}.action-table-container.dragging *{cursor:ew-resize!important}.draggable-cell{position:relative}.drag-handle-time{cursor:ew-resize;z-index:1;background:0 0;transition:background-color .15s;position:absolute;inset:0}.drag-handle-time:hover{background:#64b4ff26}.drag-handle-time:active{background:#64b4ff40}.draggable-cell input:focus{z-index:2;position:relative}.draggable-cell:before{content:"↔";color:#555;opacity:0;pointer-events:none;z-index:3;font-size:8px;transition:opacity .15s;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.draggable-cell:hover:before{opacity:1}.action-table tbody tr.row-highlighted{outline-offset:-1px;outline:2px solid #fc0c;background:#ffcc0059!important}.action-table tbody tr.row-highlighted td{color:#fff!important;background:0 0!important}.action-table tbody tr:hover{background:#6496c81a}.custom-fields-list{flex-direction:column;flex:1;gap:.4rem;min-height:0;display:flex}.custom-field-input{box-sizing:border-box;color:#eee;background:#2a2a2a;border:1px solid #444;border-radius:3px;width:100%;min-width:42ch;padding:6px 8px;font-size:.8em}.custom-field-input:focus{background:#333;border-color:#666;outline:none}.custom-field-input::placeholder{color:#666}.action-table-panel-resize{cursor:row-resize;background:linear-gradient(#333 0%,#444 50%,#333 100%);grid-area:5/1/auto/-1;height:8px;transition:background .15s;position:relative}.action-table-panel-resize:after{content:"⋯";color:#666;letter-spacing:2px;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.action-table-panel-resize:hover,.action-table-panel-resize.resizing{background:linear-gradient(#444 0%,#555 50%,#444 100%)}.action-table-panel-resize:hover:after,.action-table-panel-resize.resizing:after{color:#999}.popup-content-wrapper{box-sizing:border-box;flex-direction:column;height:100%;padding:12px;display:flex}.popup-content-wrapper .action-table-scroll{flex:1;min-height:0;overflow:auto}.popup-content-wrapper .custom-fields-list{padding:4px}.action-table th.col-resizable{padding-right:14px}.action-table th.col-resizable .col-resize-handle{cursor:col-resize;-webkit-user-select:none;user-select:none;width:10px;height:100%;position:absolute;top:0;right:0}.action-table th.col-resizable .col-resize-handle:before{content:"";opacity:.45;border:4px solid #0000;border-color:#0000 currentColor;width:0;height:0;position:absolute;top:50%;right:3px;transform:translateY(-50%)}.action-table th.col-resizable .col-resize-handle:hover:before{opacity:1}.capacity-comparison{color:#ddd;box-sizing:border-box;flex-direction:column;height:100%;padding:10px 12px;display:flex}.cc-controls{border-bottom:1px solid #444;flex-wrap:wrap;align-items:flex-start;gap:18px;margin-bottom:14px;padding-bottom:12px;display:flex}.cc-controls-label{color:#888;text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px;font-size:.8em;display:block}.cc-pf-checkboxes{flex-wrap:wrap;gap:4px 14px;display:flex}.cc-pf-checkbox{cursor:pointer;align-items:center;gap:5px;font-size:.9em;display:inline-flex}.cc-pf-checkbox input{cursor:pointer}.cc-dataset-select select{color:#eee;cursor:pointer;background:#2a2a2a;border:1px solid #4ecdc4;border-radius:4px;padding:5px 10px;font-size:.9em}.cc-export{align-self:center;margin-left:auto}.cc-export-btn{color:#14302e;cursor:pointer;background:#4ecdc4;border:none;border-radius:4px;padding:7px 14px;font-size:.9em;font-weight:700}.cc-export-btn:hover:not(:disabled){background:#6fd9d1}.cc-export-btn:disabled{opacity:.5;cursor:default}.cc-col-trafic-single{color:#9ad;background:#2f2f2f}.cc-corner{background:linear-gradient(to top right,#0000 calc(50% - .7px),#777 calc(50% - .7px) calc(50% + .7px),#0000 calc(50% + .7px)),#2a2a2a;min-width:150px}.cc-corner-pf,.cc-corner-gf{font-size:.82em;font-weight:700;line-height:1;position:absolute}.cc-corner-pf{color:#4ecdc4;top:6px;right:8px}.cc-corner-gf{color:#ddd;bottom:6px;left:8px}.cc-trafic-spacer{background:#333;border-bottom:none}body.light-mode .cc-corner,body.sepia-mode .cc-corner{background:linear-gradient(to top right,#0000 calc(50% - .7px),#999 calc(50% - .7px) calc(50% + .7px),#0000 calc(50% + .7px)),#f0f0f0}body.light-mode .cc-corner-gf,body.sepia-mode .cc-corner-gf{color:#222}body.light-mode .cc-trafic-spacer,body.sepia-mode .cc-trafic-spacer{background:#e8e8e8}.cc-table-scroll{flex:auto;min-height:0;overflow:auto}.cc-table{border-collapse:collapse;width:auto;font-size:.85em}.cc-table th,.cc-table td{text-align:center;white-space:nowrap;border:1px solid #444;padding:5px 10px}.cc-table thead th{color:#ccc;z-index:1;background:#333;position:sticky;top:0}.cc-pf-header{color:#4ecdc4;font-weight:700}.cc-pf-dataset{color:#999;margin-top:2px;font-size:.78em;font-weight:400;display:block}.cc-subheader th{color:#aaa;font-size:.92em;font-weight:400;top:38px}.cc-col-group{color:#ddd;z-index:1;background:#2a2a2a;position:sticky;left:0;text-align:left!important}.cc-table thead .cc-col-group{z-index:2}.cc-trafic{color:#9ad}.cc-vutile{color:#bbb}.cc-capacity{font-weight:700}.cc-empty,.cc-note{color:#888;margin-top:12px;font-size:.85em}.cc-note .capacity-green,.cc-note .capacity-orange,.cc-note .capacity-red,.cc-note .capacity-black{padding:0 3px;font-weight:700}.capacity-comparison .capacity-green{color:#4caf50}.capacity-comparison .capacity-orange{color:#ff9800}.capacity-comparison .capacity-red{color:#f44336}.capacity-comparison .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}body.light-mode .capacity-comparison,body.sepia-mode .capacity-comparison{color:#222}body.light-mode .cc-col-group,body.sepia-mode .cc-col-group{color:#222;background:#f0f0f0}body.light-mode .cc-table thead th,body.sepia-mode .cc-table thead th{color:#333;background:#e8e8e8}body.light-mode .cc-dataset-select select,body.sepia-mode .cc-dataset-select select{color:#222;background:#fff}.diagnostic-panel{--dg-surface:#1e1e1e;--dg-border:#333;--dg-header-bg:transparent;--dg-title:#eee;--dg-text:#ddd;--dg-muted:#aaa;--dg-rule:#333;background:var(--dg-surface);border:1px solid var(--dg-border);border-radius:8px;margin-top:8px;padding:10px 12px}body.light-mode .diagnostic-panel{--dg-surface:#f5f5f5;--dg-border:#ccc;--dg-header-bg:#e0e0e0;--dg-title:#222;--dg-text:#222;--dg-muted:#666;--dg-rule:#ddd}body.high-contrast-mode .diagnostic-panel{--dg-surface:#0f1440;--dg-border:#35a;--dg-header-bg:#1a2050;--dg-title:#fd0;--dg-text:#fff;--dg-muted:#c8cdf5;--dg-rule:#35a}body.amber-mode .diagnostic-panel{--dg-surface:#222;--dg-border:#555;--dg-header-bg:#303030;--dg-title:#ffb300;--dg-text:#f5f0e8;--dg-muted:#b09a72;--dg-rule:#555}body.daltonian-mode .diagnostic-panel{--dg-surface:#1b263b;--dg-border:#415a77;--dg-header-bg:#22304a;--dg-title:#4cc9f0;--dg-text:#e0e1dd;--dg-muted:#9aa5b1;--dg-rule:#415a77}body.sepia-mode .diagnostic-panel{--dg-surface:#faf3e0;--dg-border:#c9b88e;--dg-header-bg:#ede2c5;--dg-title:#8b4513;--dg-text:#5b4636;--dg-muted:#8a7250;--dg-rule:#c9b88e}body.blue-night-mode .diagnostic-panel{--dg-surface:#073642;--dg-border:#586e75;--dg-header-bg:#0a4552;--dg-title:#2aa198;--dg-text:#eee8d5;--dg-muted:#657b83;--dg-rule:#586e75}.diagnostic-panel-detached{box-sizing:border-box;height:100%;margin-top:0;overflow:auto}.diagnostic-title{color:var(--dg-title);align-items:center;gap:10px;margin:0 0 10px;font-size:.95em;display:flex}.diagnostic-empty{color:var(--dg-muted);margin:0;font-size:.85em}.diagnostic-table{border-collapse:collapse;width:100%;font-size:.8em}.diagnostic-table th,.diagnostic-table td{text-align:center;border-bottom:1px solid var(--dg-rule);padding:4px 6px}.diagnostic-table th{background:var(--dg-header-bg);color:var(--dg-muted);vertical-align:bottom;font-weight:400;line-height:1.15}.diagnostic-table td.dg-id{color:var(--dg-text);font-weight:700}.diagnostic-carrefour{border-top:1px solid var(--dg-rule);color:var(--dg-muted);margin-top:10px;padding-top:8px;font-size:.82em}.diagnostic-carrefour .dg-label{color:var(--dg-title);font-weight:700}.diagnostic-panel .capacity-green{color:#4caf50}.diagnostic-panel .capacity-orange{color:#ff9800}.diagnostic-panel .capacity-red{color:#f44336}.diagnostic-panel .capacity-black{border-radius:2px;padding:0 4px;font-weight:700;color:#000!important;background-color:#ff6b6b!important}.export-pf-modal{min-width:340px;max-width:440px}.export-pf-hint{opacity:.8;margin:0 0 14px;font-size:.85em;line-height:1.5}.export-pf-hint code,.export-pf-modal code{background:#8080802e;border-radius:3px;padding:0 4px;font-size:.92em}.export-pf-all{cursor:pointer;border-bottom:1px solid #80808059;align-items:center;gap:8px;padding:6px 4px;font-size:.9em;font-weight:700;display:flex}.export-pf-list{max-height:260px;margin:8px 0 16px;padding:0;list-style:none;overflow-y:auto}.export-pf-list li label{cursor:pointer;align-items:center;gap:8px;padding:6px 4px;font-size:.92em;display:flex}.export-pf-list li label:hover{background:#80808024;border-radius:4px}.export-pf-active{color:#14302e;background:#4ecdc4;border-radius:8px;margin-left:6px;padding:1px 6px;font-size:.72em;font-weight:700}.export-pf-readonly{cursor:pointer;background:#c896001f;border:1px solid #c8960073;border-radius:4px;align-items:flex-start;gap:8px;margin-top:4px;padding:10px;display:flex}.export-pf-readonly input{flex-shrink:0;margin-top:2px}.export-pf-readonly span{flex-direction:column;gap:3px;font-size:.9em;display:flex}.export-pf-readonly small{opacity:.75;font-size:.82em;line-height:1.4}.intersection-image-container{background:#1e1e1e;border-radius:4px;flex-direction:column;margin-top:1rem;padding:0;display:flex}.intersection-header{z-index:100;background:#1e1e1e;align-items:center;gap:10px;margin-bottom:0;padding:10px;display:flex;position:sticky;top:0}.intersection-header h3{color:#eee;white-space:nowrap;margin:0;font-size:1rem}.upload-btn-container{position:relative}.upload-btn{color:#fff;cursor:pointer;background:#4a4a6a;border:1px solid #666;border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-size:.8em;display:flex}.upload-btn:hover{background:#5a5a7a}.upload-btn .dropdown-arrow{opacity:.7;font-size:.7em}.upload-dropdown{z-index:100;background:#2a2a2a;border:1px solid #555;border-radius:4px;min-width:180px;margin-top:2px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #00000080}.upload-dropdown button{color:#ddd;text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;width:100%;padding:8px 12px;font-size:.85em;display:block;overflow:hidden}.upload-dropdown button:hover{color:#fff;background:#3a3a3a}.upload-dropdown .dropdown-separator{background:#444;height:1px;margin:4px 8px}.upload-dropdown .dropdown-header{color:#888;text-transform:uppercase;padding:6px 12px;font-size:.75em}.intersection-content{align-items:flex-start;gap:15px;display:flex}.intersection-image-area{cursor:crosshair;background:#252525;border:1px solid #444;border-radius:4px;flex-shrink:0;width:750px;height:530px;position:relative;overflow:hidden}.intersection-sidebar{flex-shrink:0;width:370px;min-width:370px}.intersection-img{object-fit:contain;pointer-events:none;width:100%;height:100%}.no-image-placeholder{color:#666;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;height:200px;display:flex}.no-image-placeholder p{margin:5px 0}.no-image-placeholder .hint{color:#555;font-size:.8em}.arrow-marker{cursor:move;z-index:10;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.arrow-marker .arrow-symbol{z-index:1;justify-content:center;align-items:center;transition:transform .15s,filter .3s;display:flex;position:relative}.arrow-marker .arrow-symbol svg{width:96px;height:96px}.arrow-marker .arrow-label,.floating-arrow-marker .arrow-label{color:#fff;white-space:nowrap;z-index:3;background:#000000d9;border-radius:3px;padding:2px 5px;font-size:12px;font-weight:700;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)}.arrow-marker.side-label .arrow-label,.floating-arrow-marker.side-label .arrow-label{position:absolute;inset:50% -50px auto auto;transform:translateY(-50%)}.arrow-marker.selected{z-index:20}.arrow-marker.selected .arrow-symbol{filter:drop-shadow(0 0 6px #ff6b6b)drop-shadow(0 0 3px #000)}.arrow-marker.selected .arrow-label{background:#ff6b6b}.arrow-editor{background:#2a2a2a;border:2px solid #4ecdc4;border-radius:6px;padding:12px 14px}.arrow-editor h4{color:#4ecdc4;border-bottom:1px solid #444;margin:0 0 12px;padding-bottom:8px;font-size:.95em}.apply-all-option{background:#3a3a4a;border:1px solid #555;border-radius:4px;margin-bottom:10px;padding:6px 8px}.apply-all-option input:checked+span{color:#f90;font-weight:700}.no-selection-hint{text-align:center;background:#2a2a2a;border:1px dashed #444;border-radius:4px;padding:15px}.display-options{background:#2a2a2a;border:1px solid #444;border-radius:4px;margin-top:15px;padding:10px}.checkbox-option{cursor:pointer;color:#ccc;align-items:center;gap:8px;font-size:.85em;display:flex}.checkbox-option input[type=checkbox]{cursor:pointer;accent-color:#4ecdc4;width:16px;height:16px}.image-filters{background:#2a2a2a;border:1px solid #444;border-radius:4px;margin-top:10px;padding:8px 10px}.filter-row{color:#ccc;align-items:center;gap:8px;margin-bottom:4px;font-size:.85em;display:flex}.filter-row:last-child{margin-bottom:0}.filter-row label{white-space:nowrap;min-width:75px}.filter-slider{accent-color:#4ecdc4;cursor:pointer;flex:1;height:4px}.filter-value{text-align:right;color:#999;min-width:38px;font-size:.85em}.no-selection-hint p{color:#666;margin:5px 0;font-size:.85em}.editor-row{align-items:center;gap:10px;margin-bottom:8px;display:flex}.editor-row label{color:#888;min-width:60px;font-size:.85em}.editor-row select{color:#fff;background:#333;border:1px solid #555;border-radius:3px;flex:1;padding:4px;font-size:.85em}.rotation-controls{flex:1;align-items:center;gap:8px;display:flex}.rotation-slider{appearance:none;cursor:pointer;background:#333;border-radius:3px;flex:1;height:6px}.rotation-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#4ecdc4;border-radius:50%;width:16px;height:16px}.rotation-slider::-moz-range-thumb{cursor:pointer;background:#4ecdc4;border:none;border-radius:50%;width:16px;height:16px}.rotation-input{color:#fff;text-align:center;background:#333;border:1px solid #555;border-radius:3px;width:50px;padding:4px 6px;font-size:.85em}.rotation-input::-webkit-inner-spin-button{opacity:1}.rotation-input::-webkit-outer-spin-button{opacity:1}.rotation-unit{color:#888;font-size:.9em}.scale-controls{flex:1;align-items:center;gap:8px;display:flex}.scale-slider{appearance:none;cursor:pointer;background:#333;border-radius:3px;flex:1;height:6px}.scale-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#f90;border-radius:50%;width:16px;height:16px}.scale-slider::-moz-range-thumb{cursor:pointer;background:#f90;border:none;border-radius:50%;width:16px;height:16px}.scale-input{color:#fff;text-align:center;background:#333;border:1px solid #555;border-radius:3px;width:50px;padding:4px 6px;font-size:.85em}.scale-input::-webkit-inner-spin-button{opacity:1}.scale-input::-webkit-outer-spin-button{opacity:1}.scale-unit{color:#888;font-size:.9em}.slider-btn{color:#fff;cursor:pointer;background:#333;border:1px solid #555;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:1em;font-weight:700;display:flex}.slider-btn:hover{background:#444;border-color:#666}.slider-btn.minus{color:#f44336}.slider-btn.plus{color:#4caf50}.length-controls{flex:1;align-items:center;gap:8px;display:flex}.length-slider{appearance:none;cursor:pointer;background:#333;border-radius:3px;flex:1;height:6px}.length-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#9c6;border-radius:50%;width:16px;height:16px}.length-slider::-moz-range-thumb{cursor:pointer;background:#9c6;border:none;border-radius:50%;width:16px;height:16px}.length-input{color:#fff;text-align:center;background:#333;border:1px solid #555;border-radius:3px;width:50px;padding:4px 6px;font-size:.85em}.length-input::-webkit-inner-spin-button{opacity:1}.length-input::-webkit-outer-spin-button{opacity:1}.length-unit{color:#888;font-size:.9em}.turn-length-controls{flex:1;align-items:center;gap:8px;display:flex}.turn-length-slider{appearance:none;cursor:pointer;background:#333;border-radius:3px;flex:1;height:6px}.turn-length-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#c9a;border-radius:50%;width:16px;height:16px}.turn-length-slider::-moz-range-thumb{cursor:pointer;background:#c9a;border:none;border-radius:50%;width:16px;height:16px}.turn-length-input{color:#fff;text-align:center;background:#333;border:1px solid #555;border-radius:3px;width:50px;padding:4px 6px;font-size:.85em}.turn-length-input::-webkit-inner-spin-button{opacity:1}.turn-length-input::-webkit-outer-spin-button{opacity:1}.turn-length-unit{color:#888;font-size:.9em}.delete-arrow-btn{color:#faa;cursor:pointer;background:#633;border:1px solid #844;border-radius:4px;width:100%;padding:6px;font-size:.85em}.delete-arrow-btn:hover{background:#744}.intersection-image-container>.hint{color:#666;text-align:center;margin-top:8px;font-size:.75em}.intersection-controls{align-items:center;gap:10px;display:flex}.simulation-controls{background:#2a2a3a;border:1px solid #444;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;display:flex}.sim-btn{color:#4ecdc4;cursor:pointer;background:#3a3a5a;border:1px solid #555;border-radius:4px;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:16px;transition:all .2s;display:flex}.sim-btn.playing{color:#4c4;background:#2a5a3a;border-color:#4c4}.sim-btn.reset-btn{color:#f66}.sim-btn.reset-btn:hover{background:#5a3a3a;border-color:#f66}.sim-time{color:#aaa;text-align:center;min-width:80px;font-family:monospace;font-size:.85em}.time-slider{appearance:none;cursor:pointer;background:#333;border-radius:3px;width:120px;height:6px}.time-slider::-webkit-slider-thumb{appearance:none;cursor:pointer;background:#f90;border-radius:50%;width:14px;height:14px}.time-slider::-moz-range-thumb{cursor:pointer;background:#f90;border:none;border-radius:50%;width:14px;height:14px}body.amber-mode .time-slider,body.high-contrast-mode .time-slider{background:#000;border:1px solid #fff}body.amber-mode .time-slider::-webkit-slider-thumb{background:#fff;border:2px solid #000;box-shadow:0 0 0 1px #fff}body.high-contrast-mode .time-slider::-webkit-slider-thumb{background:#fff;border:2px solid #000;box-shadow:0 0 0 1px #fff}body.amber-mode .time-slider::-moz-range-thumb{background:#fff;border:2px solid #000;box-shadow:0 0 0 1px #fff}body.high-contrast-mode .time-slider::-moz-range-thumb{background:#fff;border:2px solid #000;box-shadow:0 0 0 1px #fff}.arrow-marker.animating .arrow-symbol{transition:filter .3s}.arrow-marker.hovered{z-index:25}.arrow-marker.hovered .arrow-symbol{filter:drop-shadow(0 0 10px #fff)drop-shadow(0 0 20px #fff)}.arrow-marker.hovered .arrow-label{background:#66f;box-shadow:0 0 8px #6464ffcc}.group-number-centroid{color:#000;z-index:50;pointer-events:none;background:#ffffffb3;border:1px solid #000;border-radius:2px;padding:0 2px;font-size:12px;font-weight:700;line-height:1.2;position:absolute;transform:translate(-50%,-50%)}.group-number-centroid.pieton{background:0 0;border:none;border-radius:0;padding:0}.floating-header-buttons{align-items:center;gap:8px;display:flex}.floating-zoom-control{background:#333;border-radius:4px;align-items:center;gap:2px;padding:2px 4px;display:flex}.floating-zoom-btn{color:#aaa;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.1em;line-height:1}.floating-zoom-btn:hover{color:#fff}.floating-zoom-value{color:#ccc;text-align:center;min-width:36px;font-size:.75em}.floating-close-btn,.floating-crop-btn{color:#aaa;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:1em}.floating-close-btn:hover,.floating-crop-btn:hover{color:#fff;background:#555}.floating-crop-btn.active{color:#fff;background:#4a4a6a}.floating-crop-controls{background:#333;border-bottom:1px solid #444;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.crop-control{color:#ccc;align-items:center;gap:4px;font-size:.75em;display:flex}.crop-control label{text-align:right;width:45px}.crop-control input[type=range]{cursor:pointer;width:80px;height:4px}.crop-control span{text-align:left;color:#888;width:40px}.crop-reset-btn{color:#ccc;cursor:pointer;background:#555;border:none;border-radius:3px;margin-left:auto;padding:4px 8px;font-size:.75em}.crop-reset-btn:hover{color:#fff;background:#666}.floating-image-content{padding:0}.floating-btn{margin-right:8px}.floating-image-wrapper{background:#252525;border-radius:4px;position:relative;overflow:hidden}.floating-image-inner{position:relative}.floating-image-inner img{object-fit:contain;width:100%;height:100%}.floating-arrow-marker{cursor:default;z-index:10;position:absolute;transform:translate(-50%,-50%)}.floating-arrow-marker .arrow-symbol{justify-content:center;align-items:center;display:flex}.floating-arrow-marker .arrow-symbol svg{width:96px;height:96px}.floating-arrow-marker.hovered{z-index:20}.floating-arrow-marker.hovered .arrow-symbol{filter:drop-shadow(0 0 8px #0f0)drop-shadow(0 0 16px #0f0)}.menu-bar{z-index:100;background:#3a3a3a;border-bottom:2px solid #ddd;align-items:stretch;height:28px;padding:0;display:flex;position:relative}.menu-bar-logo-btn{cursor:pointer;background:0 0;border:none;align-self:stretch;align-items:center;margin:0;padding:3px 6px 3px 8px;transition:background-color .15s;display:flex}.menu-bar-logo-btn:hover,.menu-bar-logo-btn:focus-visible{background:#4a4a4a;outline:none}.menu-bar-logo{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:22px;height:22px;display:block}.menu-container{position:relative}.menu-button{color:#ddd;cursor:pointer;background:0 0;border:none;height:100%;padding:0 12px;font-size:.85em;transition:background-color .15s}.menu-button:hover:not(:disabled),.menu-button.active{color:#fff;background:#4a4a4a}.menu-button:disabled{color:#777;cursor:not-allowed}.menu-dropdown{z-index:1000;background:#3a3a3a;border:2px solid #ddd;border-top:none;min-width:160px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0006}.menu-item{color:#e0e0e0;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;width:100%;padding:8px 16px;font-size:.85em;transition:background-color .15s;display:block}.menu-item:hover:not(:disabled){color:#fff;background:#505050}.menu-item:disabled,.menu-item.disabled{color:#777;cursor:not-allowed}.menu-item:disabled:hover,.menu-item.disabled:hover{color:#777;background:0 0}.menu-separator{background:#555;height:1px;margin:4px 8px}.menu-item-with-submenu{position:relative}.menu-item-with-submenu:after{content:"";width:10px;height:100%;position:absolute;top:0;right:-10px}.menu-item-with-submenu:hover>.menu-item.has-submenu{color:#fff;background:#505050}.menu-item.has-submenu{justify-content:space-between;align-items:center;padding-right:8px;display:flex}.submenu-arrow{color:#aaa;margin-left:10px;font-size:.7em}.submenu-dropdown{z-index:1001;background:#3a3a3a;border:2px solid #ddd;min-width:150px;position:absolute;top:-2px;left:100%;box-shadow:0 4px 12px #0006}.submenu-dropdown:before{content:"";width:20px;height:100%;position:absolute;top:0;left:-20px}.submenu-dropdown.nested{top:-2px;left:calc(100% - 2px)}.nested-submenu{position:relative}.menu-item.checked{background:#4a4a5a}.checkmark{color:#4ecdc4;margin-right:8px;font-weight:700}.menu-header{color:#aaa;text-transform:uppercase;pointer-events:none;padding:8px 16px;font-size:.8em;font-weight:700}.menu-slider-item{white-space:nowrap;align-items:center;gap:8px;padding:6px 12px;display:flex}.menu-slider-label{color:#ccc;font-size:.85em}.menu-slider-input{cursor:pointer;accent-color:#4ecdc4;width:80px;height:4px}.menu-slider-value{color:#4ecdc4;text-align:right;min-width:40px;font-size:.85em}.micro-variables-modal{width:720px;max-width:92vw}.micro-variables-modal .micro-variables-intro{opacity:.9;margin:0 0 12px;font-size:.85rem;line-height:1.5}.micro-variables-modal .micro-keyword{color:#b432ff;font-weight:700}.micro-variables-table{flex-direction:column;gap:4px;display:flex}.micro-variables-head,.micro-variables-row{grid-template-columns:120px 1fr 28px;align-items:start;gap:8px;display:grid}.micro-variables-head{text-transform:uppercase;letter-spacing:.03em;opacity:.6;padding:0 2px 2px;font-size:.75rem}.micro-variables-name,.micro-variables-desc{color:inherit;background:#7f7f7f1f;border:1px solid #7f7f7f59;border-radius:3px;padding:4px 6px;font-size:.85rem}.micro-variables-name{color:#b432ff;font-family:monospace;font-weight:700}.micro-variables-desc{resize:vertical;min-height:2.4em;font-family:inherit;line-height:1.35}.micro-variables-name:focus,.micro-variables-desc:focus{border-color:#b432ffb3;outline:none}.micro-variables-remove{width:24px;height:24px;color:inherit;cursor:pointer;opacity:.7;background:0 0;border:1px solid #7f7f7f59;border-radius:3px;font-size:1.1rem;line-height:1}.micro-variables-remove:hover{opacity:1;color:#e06;border-color:#e06}.micro-variables-empty{opacity:.6;padding:8px 2px;font-size:.85rem}.micro-variables-add{color:#b432ff;cursor:pointer;background:0 0;border:1px dashed #b432ff99;border-radius:3px;margin:10px 0 4px;padding:4px 12px;font-size:.85rem}.micro-variables-add:hover{background:#b432ff1f}.micro-variables-modal .micro-variables-spacer{flex:1}.dialog-overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-container{background:#2a2a2a;border-radius:8px;flex-direction:column;max-width:90vw;max-height:90vh;display:flex;box-shadow:0 4px 20px #00000080}.green-wave-dialog{width:1250px}.dialog-header{border-bottom:1px solid #444;justify-content:space-between;align-items:center;padding:15px 20px;display:flex}.dialog-header h2{color:#fff;margin:0;font-size:1.2em}.dialog-close{color:#888;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5em;line-height:1}.dialog-close:hover{color:#fff}.dialog-content{flex:1;padding:20px;overflow-y:auto}.add-project-section{margin-bottom:20px}.add-project-section label{color:#ccc;margin-bottom:8px;display:block}.add-project-row{gap:10px;display:flex}.add-project-row select{color:#fff;background:#333;border:1px solid #555;border-radius:4px;flex:1;padding:8px 12px;font-size:.95em}.btn-add{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;padding:8px 16px;font-weight:700}.btn-add:hover:not(:disabled){background:#45a049}.btn-add:disabled{cursor:not-allowed;background:#555}.intersections-list{border:1px solid #444;border-radius:4px;overflow:hidden}.intersections-header{color:#aaa;background:#333;padding:10px;font-size:.85em;font-weight:700;display:flex}.intersection-row{border-top:1px solid #444;align-items:center;padding:10px;display:flex}.intersection-row:hover{background:#353535}.col-order{text-align:center;color:#888;width:40px}.col-name{color:#fff;flex:1;min-width:150px}.col-pf{width:100px}.col-pf select{color:#fff;background:#333;border:1px solid #555;border-radius:3px;width:90px;padding:5px;font-size:.85em}.col-distance{width:100px}.col-distance input{color:#fff;text-align:right;background:#333;border:1px solid #555;border-radius:3px;width:80px;padding:5px 8px}.col-distance-d{width:90px}.col-distance-d input{color:#fff;text-align:right;background:#333;border:1px solid #555;border-radius:3px;width:70px;padding:5px 8px}.col-group{width:200px}.col-group select{color:#fff;background:#333;border:1px solid #555;border-radius:3px;width:190px;padding:5px;font-size:.85em}.col-actions{justify-content:flex-end;gap:5px;width:50px;display:flex}.btn-remove{color:#faa;cursor:pointer;background:#633;border:1px solid #844;border-radius:3px;padding:4px 8px}.btn-remove:hover{color:#fff;background:#844}.empty-message{color:#888;text-align:center;padding:40px 20px;font-style:italic}.dialog-footer{border-top:1px solid #444;justify-content:flex-end;gap:10px;padding:15px 20px;display:flex}.btn-cancel{color:#fff;cursor:pointer;background:#555;border:none;border-radius:4px;padding:10px 20px}.btn-confirm{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:4px;padding:10px 20px;font-weight:700}.btn-confirm:hover:not(:disabled){background:#1976d2}.btn-confirm:disabled{cursor:not-allowed;background:#555}.green-wave-page{color:#fff;background:#1e1e1e;flex-direction:column;min-height:100vh;display:flex}.green-wave-page-header{background:#333;border-bottom:1px solid #444;flex-shrink:0;align-items:center;padding:15px 20px;display:flex}.green-wave-page-header h1{color:#4caf50;flex-shrink:0;margin:0;font-size:1.5em}.green-wave-page .green-wave-controls{margin-left:20px}.green-wave-pf-select{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;margin-left:15px;padding:6px 12px;font-size:.95em;font-weight:700}.green-wave-pf-select:hover{background:#45a049}.green-wave-pf-select:focus{outline:none;box-shadow:0 0 0 2px #4caf5080}.green-wave-pf-select option{color:#fff;background:#333}.green-wave-page .green-wave-diagram-scroll{flex-shrink:0;padding:20px;overflow:auto}.green-wave-loading{color:#888;justify-content:center;align-items:center;height:100vh;font-size:1.2em;display:flex}.green-wave-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.green-wave-container{background:#2a2a2a;border-radius:8px;flex-direction:column;width:95vw;height:90vh;display:flex;overflow:hidden;box-shadow:0 4px 30px #0009}.green-wave-header{background:#333;border-bottom:1px solid #444;align-items:center;padding:15px 20px;display:flex}.green-wave-header h2{color:#4caf50;flex-shrink:0;margin:0;font-size:1.3em}.green-wave-header h2 .folder-name{color:#8bc34a;margin-left:8px;font-weight:400}.green-wave-controls{flex:1;gap:20px;margin-left:30px;display:flex}.green-wave-controls label{color:#aaa;align-items:center;gap:8px;font-size:.9em;display:flex}.green-wave-controls input[type=number]{color:#fff;text-align:center;background:#444;border:1px solid #555;border-radius:3px;width:60px;padding:4px 8px}.green-wave-controls input[type=range]{width:100px}.green-wave-sync-btn{color:#fff;cursor:pointer;background:#2196f3;border:none;border-radius:4px;margin-left:10px;padding:6px 16px;font-size:.9em}.green-wave-sync-btn:hover{background:#1976d2}.green-wave-save-btn{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;margin-left:10px;padding:6px 16px;font-size:.9em}.green-wave-save-btn:hover{background:#45a049}.green-wave-print-btn{color:#fff;cursor:pointer;background:#9c27b0;border:none;border-radius:4px;margin-left:10px;padding:6px 16px;font-size:.9em}.green-wave-print-btn:hover{background:#7b1fa2}.green-wave-close{color:#888;cursor:pointer;background:0 0;border:none;margin-left:20px;padding:0;font-size:2em;line-height:1}.green-wave-close:hover{color:#fff}.green-wave-diagram-scroll{background:#1e1e1e;flex:1;padding:20px;overflow:auto}.green-wave-svg{min-width:100%;display:block}.green-wave-legend{background:#333;border-top:1px solid #444;flex-wrap:wrap;flex-shrink:0;justify-content:flex-start;gap:20px;padding:12px 20px;display:flex}.legend-item{color:#ccc;align-items:center;gap:8px;font-size:.85em;display:flex}.legend-color{border-radius:2px;width:20px;height:12px}.legend-line{border-top:2px dashed #4caf50;width:30px;height:0}.legend-bandwidth{background:#4caf504d;border:1px solid #4caf50;border-radius:2px;width:20px;height:12px}.green-wave-params-panel{background:#252525;border-top:1px solid #4caf50;flex-shrink:0;padding:10px 15px}.green-wave-params-panel h3{color:#4caf50;align-items:center;gap:8px;margin:0 0 8px;font-size:.95em;font-weight:700;display:flex}.btn-add-intersection{color:#4caf50;cursor:pointer;background:#333;border:1px solid #4caf50;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;margin-left:10px;padding:0;font-size:16px;font-weight:700;line-height:1;display:flex}.btn-add-intersection:hover{color:#fff;background:#4caf50}.btn-detach-datatable{color:#4caf50;cursor:pointer;background:0 0;border:1px solid #4caf50;border-radius:4px;margin-left:12px;padding:3px 12px;font-size:.75em;font-weight:700}.btn-detach-datatable:hover{color:#fff;background:#4caf50}body.light-mode .btn-detach-datatable,body.sepia-mode .btn-detach-datatable{color:#2a8a85;border-color:#2a8a85}body.light-mode .btn-detach-datatable:hover,body.sepia-mode .btn-detach-datatable:hover{color:#fff;background:#2a8a85}.green-wave-params-panel h3:before{content:"";background:#4caf50;border-radius:2px;width:3px;height:14px;display:inline-block}.params-table{flex-direction:column;gap:4px;max-width:600px;display:flex}.params-header{color:#888;border-bottom:1px solid #444;gap:8px;padding:4px 0;font-size:.8em;display:flex}.params-row{align-items:center;gap:8px;padding:2px 0;display:flex}.params-row-g2{margin-top:-2px}.param-col-name{color:#ccc;text-overflow:ellipsis;white-space:nowrap;width:120px;font-size:.85em;overflow:hidden}.param-col-dist{text-align:center;width:60px}.param-col-group{width:40px;font-size:.85em;font-weight:700}.param-col-offset,.param-col-green{text-align:center;width:50px}.params-row input{color:#fff;background:#333;border:1px solid #444;border-radius:3px;padding:3px 5px;font-size:.85em}.params-row input:focus{background:#3a3a3a;border-color:#4caf50;outline:none}.green-wave-data-table{border-collapse:collapse;width:auto;margin-top:5px;font-size:.75em}.green-wave-data-table th,.green-wave-data-table td{text-align:center;border:1px solid #444;padding:4px 6px}.green-wave-data-table thead th{color:#ccc;background:#333;font-weight:400}.green-wave-data-table thead .sub-header th{background:#2a2a2a;padding:2px 4px;font-size:.9em}.green-wave-data-table tbody tr{background:#252525}.green-wave-data-table tbody tr:hover{background:#2d2d2d}.green-wave-data-table tbody tr:nth-child(2n){background:#2a2a2a}.green-wave-data-table .col-index{color:#888;width:30px}.green-wave-data-table .col-name{text-align:left;color:#fff;text-overflow:ellipsis;white-space:nowrap;width:320px;max-width:320px;font-weight:700;overflow:hidden}.green-wave-data-table .col-cycle{color:#888;width:40px}.green-wave-data-table .col-cycle.cycle-conflict{color:#f44;font-weight:700}.green-wave-data-table .row-cycle-conflict{background:#ff444426!important}.green-wave-data-table .col-group-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;width:150px;max-width:150px;font-size:.9em;overflow:hidden}.green-wave-data-table input{color:#fff;text-align:center;background:#333;border:1px solid #444;border-radius:3px;width:40px;padding:2px 4px;font-size:.9em;font-weight:700}.green-wave-data-table input:focus{background:#3a3a3a;border-color:#4caf50;outline:none}.green-wave-data-table select{color:#fff;cursor:pointer;background:#333;border:1px solid #444;border-radius:3px;padding:2px 4px;font-size:.9em;font-weight:700}.green-wave-data-table select:focus{background:#3a3a3a;border-color:#4caf50;outline:none}.green-wave-data-table .col-pf{width:100px}.green-wave-data-table .col-pf select{width:95px}.green-wave-data-table .col-group-select{width:280px}.green-wave-data-table .col-group-select select{text-overflow:ellipsis;width:270px}.green-wave-data-table .col-distance{width:50px}.green-wave-data-table .col-distance input{width:45px}.col-order{width:55px}.order-controls{justify-content:center;align-items:center;gap:2px;display:flex}.order-controls span{text-align:center;color:#888;min-width:14px;font-weight:700}.order-controls .btn-move{color:#aaa;cursor:pointer;background:#333;border:1px solid #555;border-radius:2px;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:10px;line-height:1;display:flex}.order-controls .btn-move:hover:not(:disabled){color:#fff;background:#444;border-color:#666}.order-controls .btn-move:disabled{opacity:.3;cursor:not-allowed}.green-wave-actions{border-top:1px solid #444;gap:15px;margin-top:20px;padding-top:20px;display:flex}.btn-action{cursor:pointer;border:none;border-radius:6px;padding:12px 24px;font-size:1em;font-weight:700;transition:all .2s}.btn-action.btn-sync{color:#fff;background:#2196f3}.btn-action.btn-sync:hover{background:#1976d2;transform:translateY(-1px)}.btn-action.btn-save{color:#fff;background:#4caf50}.btn-action.btn-save:hover{background:#388e3c;transform:translateY(-1px)}@media print{html:has(body.print-greenwave){background:#fff!important}body.print-greenwave{page:gw-page;background:#fff!important}@page gw-page{size:A4 landscape;margin:10mm}body.print-greenwave #root{display:none!important}body.print-greenwave #gw-print-area,body.print-greenwave #gw-print-area *{visibility:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-greenwave #gw-print-area{background:#fff!important;width:100%!important;padding:8px!important;position:absolute!important;top:0!important;left:0!important;overflow:hidden!important}}.gw-welcome-screen{background:#1a1a1a;flex:1;justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.gw-welcome-screen .gw-welcome-hint{color:#888;text-align:center;margin:0;font-size:1rem;line-height:1.7}.gw-welcome-screen .gw-welcome-hint strong{color:#ccc;font-weight:400}.gw-welcome-screen .gw-welcome-hint code{background:#333;border-radius:3px;padding:1px 5px;font-size:.9em}body.light-mode .gw-welcome-screen,body.sepia-mode .gw-welcome-screen{background:0 0}body.light-mode .gw-welcome-screen .gw-welcome-hint,body.sepia-mode .gw-welcome-screen .gw-welcome-hint{color:#555}body.light-mode .gw-welcome-screen .gw-welcome-hint strong,body.sepia-mode .gw-welcome-screen .gw-welcome-hint strong{color:#222}body.light-mode .gw-welcome-screen .gw-welcome-hint code,body.sepia-mode .gw-welcome-screen .gw-welcome-hint code{background:#eee}.gw-about-overlay{z-index:2000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gw-about-modal{color:#ddd;background:#2a2a2a;border:1px solid #444;border-radius:8px;min-width:400px;max-width:600px;padding:30px 40px;box-shadow:0 4px 30px #00000080}.gw-about-modal h2{color:#4caf50;margin:0 0 8px}.gw-about-modal p{margin:8px 0;line-height:1.5}.gw-about-close{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;margin-top:20px;padding:8px 24px;font-weight:700}.gw-about-close:hover{background:#45a049}body.light-mode .gw-about-modal,body.sepia-mode .gw-about-modal{color:#222;background:#fff;border-color:#ccc}body.light-mode .gw-about-modal h2,body.sepia-mode .gw-about-modal h2{color:#2e7d32}.green-wave-svg-bg{fill:#1a1a1a}.green-wave-axis{stroke:#888}.green-wave-grid{stroke:#333;stroke-width:.5px}.green-wave-grid-cycle{stroke:#555;stroke-width:1px}.green-wave-axis-tick{fill:#888}.green-wave-axis-label{fill:#aaa}.green-wave-data-table .gf-montant-header{background:#3d4a2d}.green-wave-data-table .gf-descendant-header{background:#5a3d1a}body.light-mode .green-wave-page,body.sepia-mode .green-wave-page{color:#222;background:#fafafa}body.light-mode .green-wave-page-header,body.sepia-mode .green-wave-page-header,body.light-mode .green-wave-header,body.sepia-mode .green-wave-header{background:#f0f0f0;border-bottom-color:#ccc}body.light-mode .green-wave-container,body.sepia-mode .green-wave-container{background:#fff;box-shadow:0 4px 30px #0003}body.light-mode .green-wave-pf-select option,body.sepia-mode .green-wave-pf-select option{color:#222;background:#fff}body.light-mode .green-wave-controls label,body.sepia-mode .green-wave-controls label{color:#555}body.light-mode .green-wave-controls input[type=number],body.sepia-mode .green-wave-controls input[type=number]{color:#222;background:#fff;border-color:#ccc}body.light-mode .green-wave-close,body.sepia-mode .green-wave-close{color:#666}body.light-mode .green-wave-close:hover,body.sepia-mode .green-wave-close:hover{color:#222}body.light-mode .green-wave-diagram-scroll,body.sepia-mode .green-wave-diagram-scroll{background:#fafafa}body.light-mode .green-wave-legend,body.sepia-mode .green-wave-legend{background:#f0f0f0;border-top-color:#ccc}body.light-mode .legend-item,body.light-mode .legend-item span,body.sepia-mode .legend-item,body.sepia-mode .legend-item span{color:#000!important}body.light-mode .green-wave-params-panel,body.sepia-mode .green-wave-params-panel{background:#f5f5f5}body.light-mode .btn-add-intersection,body.sepia-mode .btn-add-intersection{background:#fff}body.light-mode .params-header,body.sepia-mode .params-header{color:#666;border-bottom-color:#ccc}body.light-mode .param-col-name,body.sepia-mode .param-col-name{color:#444}body.light-mode .params-row input,body.sepia-mode .params-row input{color:#222;background:#fff;border-color:#ccc}body.light-mode .params-row input:focus,body.sepia-mode .params-row input:focus{background:#fff}body.light-mode .green-wave-data-table th,body.sepia-mode .green-wave-data-table th,body.light-mode .green-wave-data-table td,body.sepia-mode .green-wave-data-table td{border-color:#ccc}body.light-mode .green-wave-data-table thead th,body.sepia-mode .green-wave-data-table thead th{color:#444;background:#f0f0f0}body.light-mode .green-wave-data-table thead .sub-header th,body.sepia-mode .green-wave-data-table thead .sub-header th{background:#e8e8e8}body.light-mode .green-wave-data-table tbody tr,body.sepia-mode .green-wave-data-table tbody tr{background:#fff}body.light-mode .green-wave-data-table tbody tr:hover,body.sepia-mode .green-wave-data-table tbody tr:hover{background:#f5f5f5}body.light-mode .green-wave-data-table tbody tr:nth-child(2n),body.sepia-mode .green-wave-data-table tbody tr:nth-child(2n){background:#f8f8f8}body.light-mode .green-wave-data-table .col-index,body.sepia-mode .green-wave-data-table .col-index,body.light-mode .green-wave-data-table .col-cycle,body.sepia-mode .green-wave-data-table .col-cycle{color:#666}body.light-mode .green-wave-data-table .col-name,body.sepia-mode .green-wave-data-table .col-name{color:#222}body.light-mode .green-wave-data-table input,body.sepia-mode .green-wave-data-table input,body.light-mode .green-wave-data-table select,body.sepia-mode .green-wave-data-table select{color:#000;background:#fff;border-color:#999}body.light-mode .green-wave-svg-bg{fill:#fff}body.light-mode .green-wave-axis{stroke:#333}body.light-mode .green-wave-grid{stroke:#bbb}body.light-mode .green-wave-grid-cycle{stroke:#888}body.light-mode .green-wave-axis-tick,body.light-mode .green-wave-axis-label{fill:#000}body.light-mode .green-wave-data-table .gf-montant-header,body.light-mode .green-wave-data-table .gf-descendant-header{color:#222}body.light-mode .green-wave-data-table .gf-montant-header{background:#d4e8b8}body.light-mode .green-wave-data-table .gf-descendant-header{background:#ffd9b3}body.sepia-mode .green-wave-page,body.sepia-mode .green-wave-diagram-scroll{background:#f4ecd8}body.sepia-mode .green-wave-page-header,body.sepia-mode .green-wave-header,body.sepia-mode .green-wave-legend{background:#e8dcc0;border-color:#c9b88e}body.sepia-mode .green-wave-params-panel{background:#efe5cc}body.sepia-mode .green-wave-svg-bg{fill:#f4ecd8}body.sepia-mode .green-wave-axis{stroke:#5b4636}body.sepia-mode .green-wave-grid{stroke:#c9b88e}body.sepia-mode .green-wave-grid-cycle{stroke:#a89b6e}body.sepia-mode .green-wave-axis-tick,body.sepia-mode .green-wave-axis-label{fill:#4b3a26}body.sepia-mode .green-wave-data-table .gf-montant-header,body.sepia-mode .green-wave-data-table .gf-descendant-header{color:#4b3a26}body.sepia-mode .green-wave-data-table .gf-montant-header{background:#c8d4a0}body.sepia-mode .green-wave-data-table .gf-descendant-header{background:#e8c89a}.green-wave-page>.menu-bar{position:sticky;top:0}.green-wave-page .green-wave-params-panel>h3{z-index:5;background:#252525;margin:0;padding-bottom:8px;position:sticky;top:30px}body.light-mode .green-wave-page .green-wave-params-panel>h3,body.sepia-mode .green-wave-page .green-wave-params-panel>h3{background:#f5f5f5}.green-wave-page .green-wave-data-table thead>tr:first-child>th{z-index:4;position:sticky;top:60px}.green-wave-page .green-wave-data-table thead .sub-header>th{z-index:4;position:sticky;top:84px}.green-wave-data-table td.ov-cell-hover{background:#ffc80038;transition:background .1s ease-out,box-shadow .1s ease-out;box-shadow:inset 0 0 0 1px #ffc8008c}body.light-mode .green-wave-data-table td.ov-cell-hover,body.sepia-mode .green-wave-data-table td.ov-cell-hover{background:#c8780033;box-shadow:inset 0 0 0 1px #c8780099}body.amber-mode .green-wave-data-table td.ov-cell-hover{background:#ffffff29;box-shadow:inset 0 0 0 1px #ffffff80}body.high-contrast-mode .green-wave-data-table td.ov-cell-hover{background:#ffff004d;box-shadow:inset 0 0 0 2px #ffff00d9}.simulation-panel{background:#1e1e1e;flex-direction:column;height:100%;padding:10px;display:flex}.simulation-header{border-bottom:1px solid #444;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:10px;display:flex}.simulation-header h3{color:#4ecdc4;margin:0;font-size:1.1em}.simulation-count{color:#888;font-size:.85em}.simulation-controls{gap:8px;margin-bottom:10px;display:flex}.sim-btn{color:#ddd;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;flex:1;padding:6px 10px;font-size:.8em;transition:background-color .2s,border-color .2s}.sim-btn:hover{background:#444;border-color:#666}.sim-btn:active{background:#555}.simulation-list{flex-direction:column;flex:1;gap:2px;display:flex;overflow-y:auto}.no-actions{color:#666;text-align:center;padding:20px;font-size:.85em}.simulation-item{cursor:pointer;background:#2a2a2a;border:1px solid #3a3a3a;border-radius:3px;align-items:center;gap:1px;padding:2px 4px;font-size:.75em;transition:background-color .15s,border-color .15s;display:flex}.simulation-item:hover{background:#333;border-color:#555}.simulation-item.checked{background:#2a3a3a;border-color:#4ecdc4}.simulation-item input[type=checkbox]{cursor:pointer;accent-color:#4ecdc4;width:14px;height:14px}.sim-row-num{color:#666;text-align:center;min-width:18px;font-weight:700}.sim-action-type{color:#ccc;white-space:nowrap;text-overflow:ellipsis;flex:1;max-width:140px;overflow:hidden}.sim-gf{color:#aaf;background:#3a3a5a;border-radius:3px;padding:1px 3px;font-size:.9em}.sim-time{color:#888;white-space:nowrap;font-size:.9em}.sim-desc{color:#777;white-space:nowrap;text-overflow:ellipsis;max-width:100px;font-size:.85em;font-style:italic;overflow:hidden}.simulation-info{background:#252525;border:1px solid #3a3a3a;border-radius:4px;margin-bottom:10px;padding:8px 10px}.sim-info-item{align-items:center;gap:8px;font-size:.85em;display:flex}.sim-info-label{color:#888}.sim-info-value{color:#4ecdc4;font-weight:700}.sim-info-delta{color:#f90;font-size:.9em}.simulation-conflicts{background:#3a2525;border:1px solid #633;border-radius:4px;margin-bottom:10px;padding:8px}.conflicts-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.conflicts-icon{color:#fff;background:#c44;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:.8em;font-weight:700;display:flex}.conflicts-title{color:#f88;font-size:.9em;font-weight:700}.conflicts-list{flex-direction:column;gap:4px;max-height:150px;display:flex;overflow-y:auto}.conflict-item{cursor:pointer;background:#2a2020;border-radius:3px;flex-direction:row;align-items:baseline;gap:6px;padding:4px 6px;font-size:.8em;transition:background .15s;display:flex}.conflict-item:hover{background:#3a2828}.conflict-groups{color:#faa;white-space:nowrap;flex-shrink:0;font-weight:700}.conflict-message{color:#caa;font-size:.9em}.simulation-valid{background:#253525;border:1px solid #363;border-radius:4px;align-items:center;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.valid-icon{color:#fff;background:#4a4;border-radius:3px;padding:2px 6px;font-size:.75em;font-weight:700}.simulation-valid span:last-child{color:#8c8;font-size:.85em}.simulation-list-header{color:#eee;border-bottom:1px solid #333;margin-bottom:6px;padding-bottom:4px;font-size:1rem;font-weight:400}.simulation-item.modifying{border-left:3px solid #f90}.simulation-item.modifying.checked{background:#3a3525;border-color:#f90;border-left-style:solid;border-left-width:3px}.simulation-item.hovered{box-shadow:0 0 8px #ffcc0080;color:#fff!important;background:#ffcc004d!important;border-color:#fc0c!important}.simulation-item.erased{opacity:.4;text-decoration:line-through}.simulation-item.erased .simulation-item-text{color:#666}.simulation-traffic{border-top:1px solid #444;margin-top:10px;padding-top:10px}.simulation-traffic-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.simulation-traffic-header .traffic-title{color:#eee;font-size:1rem;font-weight:400}.simulation-traffic-header .traffic-dataset{color:#aaf;background:#3a3a5a;border-radius:3px;padding:2px 8px;font-size:.75em}.simulation-traffic-table{border-collapse:separate;border-spacing:3px 0;width:100%;font-size:.75em}.simulation-traffic-table th{text-align:center;color:#888;border-bottom:1px solid #444;padding:4px 3px;font-weight:400}.simulation-traffic-table td{text-align:center;color:#ccc;border-bottom:1px solid #333;padding:4px 3px}.simulation-traffic-table .col-id{color:#666;width:28px}.simulation-traffic-table .col-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}.simulation-traffic-table .col-green{color:#4caf50}.simulation-traffic-table .col-vutile{color:#aaa}.simulation-traffic-table .capacity-green{color:#4caf50}.simulation-traffic-table .capacity-orange{color:#ff9800}.simulation-traffic-table .capacity-red{color:#f44336}.simulation-traffic-table .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}.simulation-traffic-table tr.row-inhibited td.col-vutile,.simulation-traffic-table tr.row-inhibited td.col-capacity,.simulation-traffic-table tr.row-inhibited td.col-delay,.simulation-traffic-table tr.row-inhibited td.col-queue{opacity:.85;color:#bbb}.phasage-bulle-container{background:#1a1a1a;min-height:100%;padding:1rem}.phasage-bulle-header{border-bottom:1px solid #444;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem;display:flex}.phasage-title-section{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.phasage-bulle-header h3{color:#fff;margin:0;font-size:1.1em}.phasage-plan-name{color:#dc4edc;background:#dc4edc26;border:1px solid #dc4edc4d;border-radius:4px;padding:2px 8px;font-size:.95em;font-weight:500}.phasage-controls{align-items:center;gap:1rem;display:flex}.phase-count-label{color:#aaa;align-items:center;gap:.5rem;font-size:.85em;display:flex}.phase-count-select{color:#fff;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;padding:4px 8px;font-size:.9em}.phase-count-select:hover{border-color:#777}.phasage-slider-label{color:#aaa;white-space:nowrap;align-items:center;gap:.4rem;font-size:.8em;display:flex}.phasage-slider{cursor:pointer;accent-color:#3498db;width:80px;height:4px}.phasage-info{color:#888;font-size:.9em}.phasage-circular-container{width:100%;height:calc(100vh - 200px);min-height:600px;max-height:900px;position:relative}.ellipse-outline{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.connecting-arrows{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0}.phase-bubble{z-index:10;position:absolute;transform:translate(-50%,-50%)}.phase-bubble-content{background:#1a1a1a;border:2px solid #555;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 15px #00000080}.phase-bubble-content:hover{border-color:#888;transform:scale(1.03);box-shadow:0 6px 20px #9664c866}.phase-bubble-label{z-index:30;background:#141414f2;border:1px solid #dc4edc;border-radius:6px;flex-direction:column;padding:5px 10px;display:flex;position:absolute;box-shadow:0 2px 8px #00000080}.phase-bubble-label.label-top-left{align-items:flex-start;top:5px;left:5px}.phase-bubble-label.label-bottom-right{align-items:flex-end;bottom:5px;right:5px}.phase-number{color:#dc4edc;white-space:nowrap;font-size:.75em;font-weight:700}.phase-time-display{color:#aaa;white-space:nowrap;font-size:.7em}.phase-bubble-image{background:#1a1a1a;flex-shrink:0;width:570px;height:456px;position:relative}.phase-image-wrapper{width:100%;height:100%;position:relative}.phase-img{object-fit:contain;width:100%;height:100%}.phase-no-image{color:#555;justify-content:center;align-items:center;width:100%;height:100%;font-size:3em;display:flex}.phase-arrow-marker{z-index:10;position:absolute;transform:translate(-50%,-50%)}.phase-arrow-symbol{justify-content:center;align-items:center;display:flex}.phase-arrow-symbol svg{width:64px;height:64px}.phase-arrow-label{color:#fff;white-space:nowrap;z-index:3;background:#000000d9;border-radius:3px;padding:2px 6px;font-size:12px;font-weight:700;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)}.phase-arrow-marker.side-label .phase-arrow-label{position:absolute;inset:50% -35px auto auto;transform:translateY(-50%)}.phase-arrow-marker.hovered{z-index:25}.phase-arrow-marker.hovered .phase-arrow-symbol{filter:drop-shadow(0 0 10px #fff)drop-shadow(0 0 20px #fff)}.phase-arrow-marker.hovered .phase-arrow-label{background:#dc4edc;box-shadow:0 0 8px #dc4edccc}@media (width<=1600px){.phase-bubble-image{width:456px;height:365px}.phase-arrow-symbol svg{width:64px;height:64px}.phase-arrow-label{font-size:12px}}@media (width<=1400px){.phase-bubble-image{width:365px;height:292px}.phase-arrow-symbol svg{width:56px;height:56px}.phase-arrow-label{font-size:11px}}@media (width<=1100px){.phase-bubble-image{width:285px;height:228px}.phase-arrow-symbol svg{width:48px;height:48px}.phase-arrow-label{font-size:10px}.phase-bubble-label{padding:3px 6px}.phase-number{font-size:.7em}.phase-time-display{font-size:.65em}}@media (width<=800px){.phasage-circular-container{height:calc(100vh - 250px);min-height:500px}.phase-bubble-image{width:205px;height:164px}.phase-arrow-symbol svg{width:38px;height:38px}.phase-arrow-label{font-size:9px}.phase-bubble-label{padding:2px 4px}.phase-number{font-size:.65em}.phase-time-display{font-size:.6em}}.login-overlay{z-index:10000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-modal{background:#2a2a2a;border-radius:8px;width:100%;max-width:400px;padding:32px;box-shadow:0 8px 32px #00000080}.login-header{text-align:center;margin-bottom:24px}.login-header h2{color:#fff;margin:0 0 8px;font-size:24px;font-weight:600}.login-subtitle{color:#888;margin:0;font-size:14px}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{flex-direction:column;gap:6px;display:flex}.login-field label{color:#aaa;font-size:13px;font-weight:500}.login-field input{color:#fff;background:#333;border:1px solid #555;border-radius:4px;outline:none;padding:10px 12px;font-size:14px;transition:border-color .2s}.login-field input:focus{border-color:#4a9eff}.login-field input::placeholder{color:#666}.login-error{color:#ff6b6b;text-align:center;background:#ff4d4d26;border:1px solid #ff4d4d4d;border-radius:4px;padding:10px 12px;font-size:13px}.login-button{color:#fff;cursor:pointer;background:#4a9eff;border:none;border-radius:4px;margin-top:8px;padding:12px;font-size:14px;font-weight:600;transition:background .2s}.login-button:hover:not(:disabled){background:#3a8eef}.login-button:disabled{cursor:not-allowed;background:#555}.login-info{color:#888;text-align:center;background:#4a9eff1a;border-radius:4px;margin:16px 0 0;padding:12px;font-size:12px}.login-loading{color:#888;text-align:center;padding:40px;font-size:14px}.user-manager{min-width:450px}.user-manager-section{margin-bottom:24px}.user-manager-section h3{color:#fff;border-bottom:1px solid #444;margin:0 0 12px;padding-bottom:8px;font-size:14px}.user-manager-error{color:#ff6b6b;background:#ff4d4d26;border:1px solid #ff4d4d4d;border-radius:4px;margin-bottom:16px;padding:10px 12px;font-size:13px}.user-manager-success{color:#2ecc71;background:#2ecc7126;border:1px solid #2ecc714d;border-radius:4px;margin-bottom:16px;padding:10px 12px;font-size:13px}.user-table{border-collapse:collapse;width:100%;font-size:13px}.user-table th{text-align:left;color:#aaa;background:#333;padding:8px;font-weight:500}.user-table td{color:#ddd;border-bottom:1px solid #333;padding:8px}.user-table select{color:#fff;background:#333;border:1px solid #555;border-radius:4px;padding:4px 8px;font-size:12px}.user-table select:disabled{opacity:.5}.admin-badge{color:#fff;text-transform:uppercase;background:#4a9eff;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:10px}.current-badge{color:#fff;background:#2ecc71;border-radius:3px;margin-left:8px;padding:2px 6px;font-size:10px}.user-actions{gap:4px;display:flex}.user-action-btn{color:#ddd;cursor:pointer;background:#444;border:1px solid #555;border-radius:4px;padding:4px 8px;font-size:12px;transition:all .2s}.user-action-btn:hover:not(:disabled){background:#555}.user-action-btn.delete:hover:not(:disabled){background:#c0392b;border-color:#e74c3c}.user-action-btn:disabled{opacity:.3;cursor:not-allowed}.create-user-form{flex-wrap:wrap;gap:8px;display:flex}.create-user-form input{color:#fff;background:#333;border:1px solid #555;border-radius:4px;flex:1;min-width:120px;padding:8px 12px;font-size:13px}.create-user-form input:focus{border-color:#4a9eff;outline:none}.create-user-form select{color:#fff;background:#333;border:1px solid #555;border-radius:4px;padding:8px 12px;font-size:13px}.create-user-form button{color:#fff;cursor:pointer;background:#4a9eff;border:none;border-radius:4px;padding:8px 16px;font-size:13px;transition:background .2s}.create-user-form button:hover:not(:disabled){background:#3a8eef}.create-user-form button:disabled{cursor:not-allowed;background:#555}.reset-password-section{background:#4a9eff1a;border-radius:4px;padding:16px}.reset-password-form{gap:8px;display:flex}.reset-password-form input{color:#fff;background:#333;border:1px solid #555;border-radius:4px;flex:1;padding:8px 12px;font-size:13px}.reset-password-form button{color:#fff;cursor:pointer;background:#4a9eff;border:none;border-radius:4px;padding:8px 16px;font-size:13px}.reset-password-form button:hover{background:#3a8eef}.reset-password-form .cancel-btn{background:#555}.reset-password-form .cancel-btn:hover{background:#666}.import-export-buttons{gap:8px;display:flex}.import-export-buttons button{color:#ddd;cursor:pointer;background:#444;border:1px solid #555;border-radius:4px;padding:8px 16px;font-size:13px;transition:all .2s}.import-export-buttons button:hover{color:#fff;background:#555}.modal-content.external-links-modal{--el-item-bg:#3a3a3a;--el-item-hover:#454545;--el-text:#fff;--el-muted:#888;--el-field-bg:#2c2c2c;--el-field-border:#555;--el-btn-bg:#555;--el-btn-bg-hover:#666;--el-btn-fg:#fff;--el-separator:#444;min-width:700px;max-width:900px;font-size:.85em}body.light-mode .external-links-modal{--el-item-bg:#e8e8e8;--el-item-hover:#dcdcdc;--el-text:#222;--el-muted:#666;--el-field-bg:#fff;--el-field-border:#999;--el-btn-bg:#d0d0d0;--el-btn-bg-hover:silver;--el-btn-fg:#222;--el-separator:#ccc}body.high-contrast-mode .external-links-modal{--el-item-bg:#1a2050;--el-item-hover:#253080;--el-text:#fff;--el-muted:#c8cdf5;--el-field-bg:#1a2050;--el-field-border:#46b;--el-btn-bg:#1a2050;--el-btn-bg-hover:#253080;--el-btn-fg:#fd0;--el-separator:#35a}body.amber-mode .external-links-modal{--el-item-bg:#303030;--el-item-hover:#3a3a3a;--el-text:#f5f0e8;--el-muted:#b09a72;--el-field-bg:#303030;--el-field-border:#666;--el-btn-bg:#404040;--el-btn-bg-hover:#4a4a4a;--el-btn-fg:#ffb300;--el-separator:#555}body.daltonian-mode .external-links-modal{--el-item-bg:#22304a;--el-item-hover:#2c3e5c;--el-text:#e0e1dd;--el-muted:#9aa5b1;--el-field-bg:#1b263b;--el-field-border:#415a77;--el-btn-bg:#415a77;--el-btn-bg-hover:#4d6a8a;--el-btn-fg:#e0e1dd;--el-separator:#415a77}body.sepia-mode .external-links-modal{--el-item-bg:#ede2c5;--el-item-hover:#e3d5b0;--el-text:#5b4636;--el-muted:#8a7250;--el-field-bg:#faf3e0;--el-field-border:#c9b88e;--el-btn-bg:#c9b88e;--el-btn-bg-hover:#bda87a;--el-btn-fg:#5b4636;--el-separator:#c9b88e}body.blue-night-mode .external-links-modal{--el-item-bg:#0a4552;--el-item-hover:#0d5263;--el-text:#eee8d5;--el-muted:#657b83;--el-field-bg:#073642;--el-field-border:#586e75;--el-btn-bg:#586e75;--el-btn-bg-hover:#657b83;--el-btn-fg:#eee8d5;--el-separator:#586e75}.links-list{margin-bottom:1.5rem}.no-links{color:var(--el-muted);text-align:center;padding:1rem;font-style:italic}.link-item{background:var(--el-item-bg);cursor:pointer;border-radius:4px;align-items:center;margin-bottom:.5rem;padding:.75rem;transition:background .2s;display:flex}.link-item:hover{background:var(--el-item-hover)}.link-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.link-name{color:var(--el-text);font-weight:500}.link-path{color:var(--el-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85em;overflow:hidden}.link-actions{gap:.5rem;margin-left:1rem;display:flex}.link-actions button{cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 8px;font-size:1rem}.btn-copy{color:#81c784}.btn-copy:hover{background:#81c78433}.btn-edit{color:#64b5f6}.btn-edit:hover{background:#64b5f633}.btn-delete{color:#ef5350}.btn-delete:hover{background:#ef535033}.link-form{background:var(--el-item-bg);border-radius:4px;padding:1rem}.link-form h4{color:var(--el-text);margin:0 0 1rem;font-size:.95rem}.el-form-row{align-items:center;margin-bottom:.75rem;display:flex}.el-form-row label{color:var(--el-muted);min-width:70px;font-size:.9em}.el-form-row input{background:var(--el-field-bg);border:1px solid var(--el-field-border);color:var(--el-text);border-radius:4px;flex:1;padding:.4rem;font-size:.8em}.el-form-row input:focus{border-color:#4caf50;outline:none}.path-input-group{flex:1;gap:.5rem;display:flex}.path-input-group input{flex:1}.btn-browse{background:var(--el-btn-bg);color:var(--el-btn-fg);cursor:pointer;border:none;border-radius:4px;padding:.5rem .75rem;font-size:.9em}.btn-browse:hover{background:var(--el-btn-bg-hover)}.form-actions{gap:.5rem;margin-top:1rem;display:flex}.btn-add,.btn-save{color:#fff;cursor:pointer;background:#4caf50;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9em}.btn-add:hover,.btn-save:hover{background:#45a049}.btn-cancel{background:var(--el-btn-bg);color:var(--el-btn-fg);cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9em}.btn-cancel:hover{background:var(--el-btn-bg-hover)}.el-footer{border-top-color:var(--el-separator);justify-content:space-between;align-items:center}.el-footer .hint{color:var(--el-muted);margin:0;font-size:.85em}.el-footer .btn-close{background:var(--el-btn-bg);color:var(--el-btn-fg);cursor:pointer;border:none;border-radius:4px;padding:.5rem 1.5rem}.el-footer .btn-close:hover{background:var(--el-btn-bg-hover)}.properties-panel{padding:0 .5rem}.properties-title{color:#fff;margin:0 0 1rem;font-size:1rem}.properties-form{flex-direction:column;gap:.5rem;display:flex}.property-field{align-items:center;gap:.5rem;display:flex}.property-field label{color:#aaa;flex-shrink:0;min-width:130px;font-size:.8rem;font-weight:500}.property-field input,.property-field select{color:#fff;background:#2a2a2a;border:1px solid #444;border-radius:3px;flex:1;min-width:0;padding:5px 8px;font-family:inherit;font-size:.85rem}.property-field input[type=number]{flex:0 0 70px;width:70px}.property-field input:focus,.property-field select:focus,.property-field textarea:focus{border-color:#3498db;outline:none}.property-field-full{flex-direction:column;gap:.25rem;display:flex}.property-field-full label{color:#aaa;font-size:.8rem;font-weight:500}.property-field-full textarea{color:#fff;resize:vertical;background:#2a2a2a;border:1px solid #444;border-radius:3px;min-height:60px;padding:5px 8px;font-family:inherit;font-size:.85rem}.property-field-full textarea:focus{border-color:#3498db;outline:none}.property-readonly{color:#888;font-size:.85rem}.property-separator{border-top:1px solid #333;margin:.25rem 0}.logo-box{cursor:pointer;background:#2a2a2a;border:1px dashed #555;border-radius:3px;flex:0 0 72px;justify-content:center;align-items:center;width:72px;height:72px;display:flex;overflow:hidden}.logo-box:hover{border-color:#3498db}.logo-img{object-fit:contain;width:100%;height:100%}.logo-placeholder{color:#666;text-align:center;font-size:.55rem}.app-container{flex-direction:column;height:100vh;display:flex}.welcome-screen{background:#1a1a1a;flex:1;justify-content:center;align-items:center;padding:2rem;display:flex}.welcome-screen .welcome-hint{color:#777;text-align:center;margin:0;font-size:1rem}.welcome-screen .welcome-hint strong{color:#aaa;font-weight:400}body.light-mode .welcome-screen{background:#f5f5f5}body.light-mode .welcome-screen .welcome-hint{color:#888}body.light-mode .welcome-screen .welcome-hint strong{color:#555}.app-header{background:#111;border-bottom:1px solid #333;justify-content:space-between;align-items:center;height:60px;padding:0 1rem;display:flex}.header-inputs{align-items:center;gap:1rem;display:flex}.input-name{color:#fff;background:0 0;border:none;border-bottom:1px solid #555;width:40ch;font-size:.95rem;font-weight:700}.input-name:read-only{cursor:default;border-bottom-style:dotted}.input-name:focus{border-color:#aaa;outline:none}.input-count{color:#fff;background:#333;border:1px solid #444;border-radius:4px;width:30px;margin-left:8px;padding:4px}.gfx-label{color:#eee}.input-dependency-gap{color:#fff;text-align:center;background:#333;border:1px solid #444;border-radius:4px;width:2ch;padding:4px}.input-dependency-gap::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.input-dependency-gap::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.header-actions{align-items:center;gap:.5rem;display:flex}.undo-btn{color:#ddd;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;align-items:center;gap:4px;padding:6px 12px;font-size:.85rem;transition:all .2s;display:flex}.undo-btn:hover:not(:disabled){color:#fff;background:#444;border-color:#666}.undo-btn:disabled{opacity:.4;cursor:not-allowed}.toggle-btn{color:#ddd;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;align-items:center;gap:4px;padding:6px 12px;font-size:.85rem;transition:all .2s;display:flex}.toggle-btn:hover{color:#fff;background:#444;border-color:#666}.toggle-btn.active{color:#8f8;background:#2a5a2a;border-color:#4a8a4a}.validate-btn.validated{color:#4caf50;background:#2ecc714d;border-color:#4caf50}.validate-btn.validated:hover{background:#2ecc7173}.validate-btn.invalidated{color:#e74c3c;background:#e74c3c4d;border-color:#e74c3c}.validate-btn.invalidated:hover{background:#e74c3c73}.status-bar{font-size:.9rem;font-weight:700}.status-error{color:#e74c3c;animation:2s infinite pulse}.status-ok{color:#2ecc71}.status-ok.status-clickable{cursor:pointer;border-radius:4px;padding:2px 8px;transition:background-color .2s,transform .1s}.status-ok.status-clickable:hover{background-color:#2ecc7133;transform:scale(1.05)}.user-info{align-items:center;gap:12px;margin-left:16px;display:flex}.user-name{color:#888;font-size:.85rem}.logout-btn{color:#ccc;cursor:pointer;background:#444;border:1px solid #555;border-radius:4px;padding:4px 10px;font-size:.8rem;transition:all .2s}.logout-btn:hover{color:#fff;background:#555}.split-view{flex-grow:1;display:flex;overflow:hidden auto}.sidebar{background:#181818;border-right:none;flex-direction:column;flex-shrink:0;min-width:300px;max-width:1200px;padding:1rem;display:flex;overflow:visible}.resize-divider{cursor:col-resize;background:#333;flex-shrink:0;width:6px;transition:background .2s;position:relative}.resize-divider:hover,.resize-divider.resizing{background:#0af}.resize-divider:after{content:"";background:#555;border-radius:1px;width:2px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-divider:hover:after,.resize-divider.resizing:after{background:#fff}.horizontal-resize-divider{cursor:row-resize;background:#333;flex-shrink:0;justify-content:center;align-items:center;height:8px;margin:4px 0;transition:background .2s;display:flex;position:relative}.horizontal-resize-divider:hover,.horizontal-resize-divider.resizing{background:#0af}.horizontal-resize-handle{background:#555;border-radius:2px;width:60px;height:4px;transition:background .2s}.horizontal-resize-divider:hover .horizontal-resize-handle,.horizontal-resize-divider.resizing .horizontal-resize-handle{background:#fff}.diagram-panel{flex-shrink:0}.action-panel{min-height:100px}.diagram-area{background:#242424;flex-grow:1;padding:1rem;overflow:visible}.conflict-list{--cf-majeur:#e74c3c;--cf-potentiel:#ff9800;--cf-tint-majeur:#e74c3c1a;--cf-tint-potentiel:#ff98001a;--cf-rule-majeur:#e74c3c40;--cf-rule-potentiel:#ff980040;--cf-text:#eee;--cf-muted:#9aa0a6;--cf-flag:#888;background:var(--cf-tint-majeur);border:1px solid var(--cf-majeur);border-radius:4px;margin-top:1rem;padding:1rem}.conflict-list h4{justify-content:space-between;align-items:center;gap:8px;margin:0 0 .35rem;display:flex}.conflict-list ul{margin:0;padding-left:1.2rem;font-size:.85em}.conflict-empty-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.conflict-none{color:#2ecc71;margin:0;font-size:.9em;font-weight:700}body.light-mode .conflict-none,body.sepia-mode .conflict-none{color:#1e8449}.conflict-section+.conflict-section{border-top:1px solid var(--cf-rule-majeur);margin-top:.75rem;padding-top:.6rem}.conflict-section-majeurs{color:var(--cf-majeur)}.conflict-section-potentiels{color:var(--cf-potentiel)}.conflict-item-majeur{color:var(--cf-text)}.conflict-item-potentiel{color:var(--cf-muted)}.conflict-item-potentiel .conflict-flag{color:var(--cf-flag);margin-left:6px;font-size:.85em}.conflict-list-sans-majeur{background:var(--cf-tint-potentiel);border-color:var(--cf-potentiel)}.conflict-list-sans-majeur .conflict-section+.conflict-section{border-top-color:var(--cf-rule-potentiel)}body.light-mode .conflict-list{--cf-potentiel:#d97706;--cf-text:#222;--cf-muted:#6b7075;--cf-flag:#777}body.high-contrast-mode .conflict-list{--cf-majeur:#f55;--cf-potentiel:#fd0;--cf-tint-majeur:#ff555538;--cf-tint-potentiel:#ffdd002e;--cf-rule-majeur:#f556;--cf-rule-potentiel:#fd06;--cf-text:#fff;--cf-muted:#c8cdf5;--cf-flag:#c8cdf5}body.amber-mode .conflict-list{--cf-text:#ffb300;--cf-muted:#a8813c;--cf-flag:#a8813c}body.daltonian-mode .conflict-list{--cf-majeur:#ff8c42;--cf-potentiel:#4cc9f0;--cf-tint-majeur:#ff8c421f;--cf-tint-potentiel:#4cc9f01f;--cf-rule-majeur:#ff8c424d;--cf-rule-potentiel:#4cc9f04d;--cf-text:#e0e1dd;--cf-muted:#9aa5b1;--cf-flag:#9aa5b1}body.sepia-mode .conflict-list{--cf-majeur:#a63d2f;--cf-potentiel:#b8860b;--cf-tint-majeur:#a63d2f1a;--cf-tint-potentiel:#b8860b1f;--cf-rule-majeur:#a63d2f40;--cf-rule-potentiel:#b8860b4d;--cf-text:#5b4636;--cf-muted:#8a7250;--cf-flag:#8a7250}body.blue-night-mode .conflict-list{--cf-majeur:#dc322f;--cf-potentiel:#b58900;--cf-tint-majeur:#dc322f24;--cf-tint-potentiel:#b5890024;--cf-rule-majeur:#dc322f4d;--cf-rule-potentiel:#b589004d;--cf-text:#eee8d5;--cf-muted:#657b83;--cf-flag:#657b83}.conflict-list-detached{box-sizing:border-box;height:100%;margin-top:0}.directories-info{background:#4caf501a;border:1px solid #4caf50;border-radius:4px;margin-top:1rem;padding:.75rem}.directories-info h4{color:#4caf50;margin:0 0 .5rem;font-size:.9em}.dir-row{gap:8px;padding:3px 0;font-size:.8em;display:flex}.dir-label{color:#888;flex-shrink:0;min-width:75px}.dir-value{color:#4caf50;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-tabs{border-bottom:1px solid #333;margin-bottom:1rem;display:flex}.tab-btn{color:#888;cursor:pointer;background:#222;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;transition:all .2s}.tab-btn:hover{color:#ccc;background:#2a2a2a}.tab-btn.active{color:#fff;background:#1e1e1e;border-bottom:2px solid #3498db;font-weight:700}.tab-warning-icon{color:#f39c12;margin-left:4px;font-size:.9em}.unsaved-indicator{color:#f39c12;vertical-align:middle;margin-left:6px;font-size:1.4em;font-weight:700;line-height:1}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.legend-container{flex-direction:column;gap:12px;display:flex}.legend-item{align-items:center;gap:15px;display:flex}.legend-preview{border-radius:3px;flex-shrink:0;width:80px;height:20px}.legend-item span{color:#ddd;font-size:.9em}.legend-adaptatif{background:#64b4ff33;border:2px solid #64b4ffb3;border-radius:4px}.legend-escamotage-group{background:0 0;border:none;height:20px;position:relative;overflow:visible}.legend-escamotage-group svg{width:100%;height:100%}.legend-escamotage{background:#80808033;border:1px solid #80808066}.legend-ouverture{background:repeating-linear-gradient(45deg,#0000,#0000 1px,#00c80066 1px 3px);border:1px solid #00c80080;height:10px}.legend-fermeture{background:0 0;border:none;height:14px;position:relative}.legend-fermeture:before{content:"";border:none;border-top:3px solid #e53935;border-left:3px solid #e53935;border-radius:4px 0 0;width:calc(50% - 6px);height:4px;position:absolute;top:6px;left:0}.legend-fermeture:after{content:"";border-top:3px solid #e53935;border-bottom:none;border-left:none;border-right:3px solid #e53935;border-radius:0 4px 0 0;width:calc(50% - 6px);height:4px;position:absolute;top:6px;right:0}.legend-fermeture .brace-point{background:0 0;border:none;border-top:3px solid #e53935;border-left:3px solid #e53935;width:5px;height:5px;position:absolute;top:2px;left:50%;transform:translate(-50%)rotate(45deg)}.legend-signa{background:0 0;border:none;gap:2px;display:flex}.legend-signa-orange{background:repeating-linear-gradient(90deg,#ff8c00,#ff8c00 5px,#0000 5px 10px);border-radius:2px;width:40px;height:10px}.legend-signa-blue{background:linear-gradient(#4169e1,#2849c1);border-radius:2px;width:36px;height:10px}.legend-bande-debut{background:0 0;border:none;height:20px;position:relative;overflow:visible}.legend-bande-debut svg{width:100%;height:100%}.legend-bande-fin{background:0 0;border:none;height:20px;position:relative;overflow:visible}.legend-bande-fin svg{width:100%;height:100%}.legend-lucarne{opacity:.8;background:linear-gradient(#0c0 40%,#050 100%);border:1px solid #00b40099;height:12px}.legend-controle-flot{background:0 0;border:none;border-radius:2px;height:10px;display:flex;overflow:hidden}.legend-cf-intermittent{background:repeating-linear-gradient(90deg,gold,gold 5px,gray 5px 10px);flex:1;height:100%;box-shadow:0 0 2px #ffd70080}.legend-cf-orange{background:linear-gradient(#ff8c00,#cc7000);flex:.6;height:100%}.legend-cf-red{background:linear-gradient(red,#c00);flex:.4;height:100%}.legend-instant-co{background:0 0;border:none;height:20px;position:relative}.legend-instant-co:before{content:"";background:#ff8c00;width:2px;height:12px;position:absolute;top:2px;left:10px}.legend-instant-co:after{content:"";border-top:6px solid #ff8c00;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;bottom:2px;left:6px}.legend-point-repos{background:0 0;border:none;height:20px;position:relative}.legend-point-repos:before{content:"";background:red;width:2px;height:12px;position:absolute;top:2px;left:10px}.legend-point-repos:after{content:"";border-top:6px solid red;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;bottom:2px;left:6px}.legend-priorite-pietons{background:repeating-linear-gradient(90deg,#ff0,#ff0 5px,#0000 5px 10px);border-radius:2px;height:10px;box-shadow:0 0 2px #ffff0080}.legend-synchro-bts{background:0 0;border:none;height:20px;position:relative}.legend-synchro-bts:before{content:"";background:#00f;width:2px;height:12px;position:absolute;top:2px;left:10px}.legend-synchro-bts:after{content:"";border-top:6px solid #00f;border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;position:absolute;bottom:2px;left:6px}.floating-legend-window{z-index:99999;background:#2a2a2a;border:1px solid #555;border-radius:6px;min-width:280px;position:fixed;overflow:hidden;box-shadow:0 4px 20px #00000080}.floating-legend-header{cursor:move;-webkit-user-select:none;user-select:none;background:#3a3a4a;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.floating-legend-header span{color:#eee;font-size:.85em;font-weight:500}.floating-legend-content{box-sizing:border-box;padding:12px 16px}.legend-section{flex-direction:column;gap:10px;display:flex}.legend-section-title{color:#aaa;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #444;margin-bottom:4px;padding-bottom:6px;font-size:.8em;font-weight:600}.help-content{padding-right:10px}.help-section{border-bottom:1px solid #444;margin-bottom:20px;padding-bottom:15px}.help-section:last-child{border-bottom:none;margin-bottom:0}.help-section dl dt{color:#4ecdc4;margin-top:10px}.help-section dl dt:first-child{margin-top:0}.help-section dl dd{color:#ddd;margin:4px 0 8px 16px}.help-toc a:hover{text-decoration:underline}.help-back-to-top{float:right;color:#1a1a2e;cursor:pointer;z-index:10;background:#4ecdc4;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;margin-right:8px;font-size:1.3em;font-weight:700;transition:transform .15s,background .15s;display:flex;position:sticky;bottom:12px;box-shadow:0 2px 8px #0006}.help-back-to-top:hover{background:#6eeae0;transform:translateY(-2px)}body.light-mode .help-back-to-top{color:#fff;background:#2196f3}body.light-mode .help-back-to-top:hover{background:#1976d2}body.high-contrast-mode .help-back-to-top{color:#000;background:#ff0;border:2px solid #ff0}body.amber-mode .help-back-to-top{color:#000;background:#f80}.help-section h4{color:#3498db;margin:0 0 10px;font-size:1.1em}.help-section p{color:#ccc;margin:0 0 10px;font-size:.9em;line-height:1.5}.help-section ul{color:#bbb;margin:0;padding-left:20px;font-size:.9em}.help-section li{margin-bottom:6px;line-height:1.4}.help-section li strong{color:#fff}.pf-tabs-bar{background:#1a1a1a;border-bottom:1px solid #333;align-items:center;gap:2px;margin-bottom:8px;padding:4px 8px;display:flex}.pf-tab{cursor:pointer;color:#888;background:#2a2a2a;border:1px solid #444;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:6px;padding:6px 12px;font-size:.85em;transition:all .2s;display:flex;position:relative}.pf-tab[data-pf-tooltip]:after{content:attr(data-pf-tooltip);color:#eee;white-space:nowrap;z-index:100;opacity:0;visibility:hidden;pointer-events:none;background:#333;border-radius:4px;padding:4px 8px;font-size:.8em;transition:opacity .2s,visibility .2s;position:absolute;top:100%;left:50%;transform:translate(-50%)}.pf-tab[data-pf-tooltip]:hover:after{opacity:1;visibility:visible;transition-delay:5s}.pf-tab:hover{color:#ccc;background:#333}.pf-tab.active{color:#fff;background:#242424;border-color:#4ecdc4;font-weight:700;box-shadow:0 0 0 2px #4ecdc4}.pf-tab.dragging{opacity:.5;border:2px dashed #007acc}.pf-tab.pf-validated{color:#8f8;background:#4caf5040;border-color:#4caf50}.pf-tab.pf-validated.active{color:#fff;background:#4caf5059;border-color:#4caf50;box-shadow:0 0 0 2px #4caf50}.pf-tab.pf-invalidated{color:#f88;background:#e74c3c40;border-color:#e74c3c}.pf-tab.pf-invalidated.active{color:#fff;background:#e74c3c59;border-color:#e74c3c;box-shadow:0 0 0 2px #e74c3c}.pf-tab[draggable=true]{cursor:grab}.pf-tab[draggable=true]:active{cursor:grabbing}.pf-tab-name{white-space:nowrap}.pf-tab-lock{vertical-align:baseline;margin-right:3px;font-size:.85em}.pf-tabs-spacer{flex-grow:1}.cycle-input-label{color:#fff;align-items:center;gap:5px;margin-right:8px;font-size:.9em;display:flex}.cycle-input-label .input-count{width:30px;margin-left:0}.pf-tab-close{color:#666;cursor:pointer;background:0 0;border:none;border-radius:3px;padding:0 2px;font-size:1.1em;line-height:1}.pf-tab-close:hover{color:#fff;background:#555}.pf-tab-add{color:#888;cursor:pointer;background:#333;border:1px solid #555;border-radius:4px;margin-left:4px;padding:4px 10px;font-size:1.2em;transition:all .2s}.pf-tab-add:hover{color:#fff;background:#444;border-color:#666}.pf-tab.simulation-tab{color:#6cc;background:#1a2a2a;border-color:#2a4a4a;margin-left:200px}.pf-tab.simulation-tab:hover{color:#8ee;background:#2a3a3a}.pf-tab.simulation-tab.active{color:#4ecdc4;background:#2a4040;border-color:#4ecdc4}.pf-tab.phasage-tab{color:#c6c;background:#2a1a2a;border-color:#4a2a4a;margin-left:4px}.pf-tab.phasage-tab:hover{color:#e8e;background:#3a2a3a}.pf-tab.phasage-tab.active{color:#dc4edc;background:#402a40;border-color:#dc4edc}.phasage-config-panel{z-index:100;color:#ccc;background:#1e1e1ef2;border:1px solid #555;border-radius:6px;padding:8px 12px;position:absolute;top:50px;left:10px;box-shadow:0 4px 12px #00000080}.project-list-container{background:#1a1a1a;border:1px solid #444;border-radius:4px;max-height:300px;margin-bottom:15px;overflow-y:auto}.project-list{margin:0;padding:0;list-style:none}.project-list li{cursor:pointer;border-bottom:1px solid #333;align-items:center;gap:10px;padding:10px 15px;transition:background-color .15s;display:flex}.project-list li:last-child{border-bottom:none}.project-list li:hover{background:#2a2a2a}.project-list li.selected{color:#fff;background:#3a5a8a}.project-list li.selected:hover{background:#4a6a9a}.project-icon{background:#888;border-radius:2px;width:16px;height:14px;position:relative}.project-icon:before{content:"";background:#888;border-radius:2px 2px 0 0;width:8px;height:4px;position:absolute;top:-4px;left:0}.project-list li.selected .project-icon,.project-list li.selected .project-icon:before{background:#acf}.project-name{color:#ddd;flex:1;font-size:.95em}.project-list li.selected .project-name{color:#fff;font-weight:500}.project-info-modal{flex-direction:column;flex:1;gap:2px;display:flex}.project-details-modal{color:#888;font-size:.75em}.project-list li.selected .project-details-modal{color:#aaa}.no-projects{color:#888;text-align:center;padding:20px;font-style:italic}.green-wave-icon{background:linear-gradient(135deg,#4caf50 0%,#8bc34a 100%);border-radius:3px;width:18px;height:14px;position:relative}.green-wave-icon:before{content:"";background:#ffffff80;border-radius:1px;height:2px;position:absolute;top:3px;left:3px;right:3px}.green-wave-icon:after{content:"";background:#ffffff4d;border-radius:1px;height:2px;position:absolute;bottom:3px;left:3px;right:3px}.project-info{flex-direction:column;flex:1;gap:2px;display:flex}.project-details{color:#888;font-size:.8em}.project-item.selected .project-details{color:#aaa}.open-greenwave-modal{min-width:400px}.open-greenwave-modal .project-item{cursor:pointer;background:#2a2a2a;border-radius:4px;align-items:center;gap:12px;margin-bottom:4px;padding:10px 12px;transition:background .15s;display:flex}.open-greenwave-modal .project-item:hover{background:#333}.open-greenwave-modal .project-item.selected{background:#3a5a8a}.btn-delete-item{color:#888;cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:4px 8px;font-size:1.2em;transition:all .15s}.btn-delete-item:hover{color:#f44;opacity:1;background:#ff44441a}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.print-preview-overlay{z-index:1100}.print-preview-modal-large{flex-direction:column;width:90%;max-width:800px;max-height:90vh;display:flex}.print-preview-container{background:#333;flex:1;justify-content:center;padding:20px;display:flex;overflow:auto}.print-preview-page{color:#000;background:#fff;border-radius:2px;min-width:600px;max-width:700px;padding:30px;box-shadow:0 4px 20px #00000080}.print-preview-header{text-align:center;border-bottom:2px solid #333;margin-bottom:20px;padding-bottom:15px}.print-preview-header h2{color:#000;margin:0 0 5px;font-size:1.4rem}.print-preview-header p{color:#666;margin:0;font-size:.9rem}.print-preview-matrix{margin:0;padding:0;overflow-x:auto}.preview-matrix-table{border-collapse:collapse;width:100%;font-size:.75rem}.preview-matrix-table th,.preview-matrix-table td{text-align:center;border:1px solid #ccc;min-width:25px;padding:4px 6px}.preview-matrix-table th,.preview-matrix-table td.row-header{background:#f0f0f0;font-weight:700;color:#000!important}.preview-matrix-table td.row-name{color:#000!important}.preview-matrix-table td.diagonal{background:#e0e0e0}.print-preview-form{overflow-x:auto}.preview-form-table{border-collapse:collapse;width:100%;font-size:.85rem}.preview-form-table th,.preview-form-table td{text-align:center;border:1px solid #ccc;padding:6px 10px}.preview-form-table th{background:#f0f0f0;font-weight:700}.preview-form-table.preview-form-small{max-width:400px;margin:0 auto}.print-preview-diagram{flex-direction:column;min-height:400px;display:flex}.print-preview-diagram.print-preview-landscape{transform-origin:0 0;width:111%;min-width:900px;transform:scale(.9)}.print-diagram-header{text-align:center;border-bottom:2px solid #333;margin-bottom:15px;padding-bottom:10px}.print-diagram-header h3{color:#000;margin:0 0 5px;font-size:1.3rem}.print-diagram-subtitle{color:#444;margin:0;font-size:1rem;font-weight:500}.print-diagram-content{flex:none;min-height:200px;overflow:visible;background:#fff!important}.print-diagram-content .timeline-comments,.print-diagram-content .timeline-remarques,.print-diagram-content .no-print{display:none!important}.print-diagram-content .timeline-layout{flex-direction:row!important;gap:0!important;display:flex!important}.print-diagram-content .timeline-sidebar{flex-shrink:0!important}.print-diagram-content .timeline-scroll-area{flex-grow:1!important;overflow:visible!important}.print-diagram-content,.print-diagram-content .timeline-container,.print-diagram-content .timeline-layout,.print-diagram-content .timeline-scroll-area,.print-diagram-content .timeline-track-container,.print-diagram-content .timeline-row-track,.print-diagram-content .grid-container{background-color:#fff!important}.print-diagram-content .cycle-block{background:0 0!important}.print-diagram-content .phase-bar.green{background:#0f0 linear-gradient(#0f0,#0c0)!important}.print-diagram-content .phase-bar.green-dark{background:#080 linear-gradient(#080,#060)!important}.print-diagram-content .phase-bar.orange{background:#ff0 linear-gradient(#ff0,#cc0)!important}.print-diagram-content .phase-bar.red{background:red linear-gradient(red,#c00)!important}.print-diagram-content .timeline-diagram,.print-diagram-content .timeline-wrapper,.print-diagram-content .timeline-container,.print-diagram-content .timeline-content,.print-diagram-content .diagram-area{background:#fff!important}.print-diagram-content .sidebar-column,.print-diagram-content .sidebar-header-row{color:#000!important;background:#fff!important}.print-diagram-content .timeline-sidebar,.print-diagram-content .group-row,.print-diagram-content .group-row-content,.print-diagram-content .row-label-container{background:#fff!important}.print-diagram-content .group-row-label,.print-diagram-content .group-label,.print-diagram-content .ruler,.print-diagram-content .ruler-container,.print-diagram-content .timeline-ruler{color:#000!important;background:#fff!important}.print-diagram-content .ruler-tick-label,.print-diagram-content .tick-label{color:#333!important}.print-diagram-content .bar-label,.print-diagram-content .ouverture-anticipee-label,.print-diagram-content .adaptatif-label,.print-diagram-content .escamotage-label,.print-diagram-content .point-repos-label{text-shadow:none!important;color:#000!important;font-weight:400!important}.print-diagram-content .diagram-title,.print-diagram-content .col-label,.print-diagram-content .label-id,.print-diagram-content .label-name,.print-diagram-content .ruler-tick,.print-diagram-content span,.print-diagram-content div{color:#000!important}.print-diagram-content .escamotage-overlay{border:1px solid #000000b3!important;border-right:none!important;box-shadow:1px 0 #000000b3!important}.print-diagram-content .adaptatif-overlay{border:1px solid #0000c8b3!important;border-right:none!important;border-radius:0!important;box-shadow:1px 0 #0000c8b3!important}.print-diagram-content .ouverture-anticipee{box-sizing:border-box!important;border:1px solid #0009!important;border-radius:0!important}.print-diagram-content .brace-marker:before,.print-diagram-content .brace-marker:after{border-width:1px!important;height:8px!important}.print-diagram-content .brace-marker:before{border-radius:4px 0 0!important}.print-diagram-content .brace-marker:after{border-radius:0 4px 0 0!important;right:-1px!important}.print-diagram-content .brace-marker .brace-point{border-width:1px!important;width:5px!important;height:5px!important;top:4px!important}.print-diagram-content .escamotage-group-overlay{background:repeating-linear-gradient(-45deg,#0000,#0000 3px,#00000059 3px 5px)!important;border:2px dashed #0009!important}.print-diagram-content .timeline-container{border:2px solid #000!important}.print-diagram-content .timeline-sidebar{border-right:1px solid #000!important}.print-diagram-content .sidebar-header-row{border-bottom:1px solid #000!important}.print-diagram-content .row-label-container,.print-diagram-content .timeline-row-track{border-bottom:1px solid #999!important}.print-diagram-content .grid-line{background:#00000026!important}.print-diagram-content .grid-5s{background:#00000040!important}.print-diagram-content .grid-10s{background:#0006!important}.print-diagram-content .timeline-ruler{border-bottom:1px solid #000!important}.print-diagram-content input{color:#000!important;background:0 0!important;border:none!important}.print-diagram-content .diagram-title{display:none!important}.print-diagram-preview{flex:1}.print-preview-actions-count{color:#666;text-align:center;margin-top:15px;font-size:.9rem}.print-diagram-footer{color:#666;border-top:1px solid #ccc;justify-content:space-between;margin-top:15px;padding-top:10px;font-size:.8rem;display:flex}.print-actions-section{background:#fff;margin-top:20px}.print-actions-section h4{color:#333;border-bottom:1px solid #ccc;margin:0 0 10px;padding-bottom:5px;font-size:.9rem}.print-actions-table{border-collapse:collapse;background:#fff;width:100%;font-size:.7rem}.print-actions-table th,.print-actions-table td{text-align:center;color:#000;background:#fff;border:1px solid #999;padding:3px 5px}.print-actions-table th{background:#f0f0f0;font-weight:700}.print-actions-table .print-actions-subheader th{padding:2px 3px;font-size:.65rem}.print-actions-table td:nth-child(2),.print-actions-table td:nth-child(3),.print-actions-table td:nth-child(7){text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}.print-actions-table td.print-micro-cell{white-space:pre-wrap;text-overflow:clip;word-break:break-word;max-width:220px;overflow:visible}.print-dossier-reserve .diagnostic-panel{background:0 0;border:none;margin:0;padding:0}.print-dossier-reserve .diagnostic-table{border-collapse:collapse;font-size:.75rem}.print-dossier-reserve .diagnostic-table th,.print-dossier-reserve .diagnostic-table td{text-align:center;color:#000;background:#fff;border:1px solid #999;padding:2px 6px}.print-dossier-reserve .diagnostic-table th{background:#f0f0f0;font-weight:700}.print-dossier-reserve .diagnostic-carrefour,.print-dossier-reserve .diagnostic-carrefour .dg-label{color:#000}.print-dossier-reserve .diagnostic-table td.capacity-green{color:#4caf50}.print-dossier-reserve .diagnostic-table td.capacity-orange{color:#ff9800}.print-dossier-reserve .diagnostic-table td.capacity-red{color:#f44336}.print-dossier-reserve .diagnostic-table td.capacity-black{color:#000}.print-footer-path{text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:60%;overflow:hidden}.print-footer-date{text-align:right}.print-preview-diagram-note{color:#666;margin-bottom:20px;font-style:italic}.print-preview-modal-large:has(.print-preview-landscape){width:1100px;max-width:95%;max-height:95vh}.print-preview-page:has(.print-preview-landscape){min-width:950px;max-width:none;max-height:none}.print-preview-overlay:has(.print-preview-dossier){pointer-events:none;background:0 0!important}.print-preview-modal-large:has(.print-preview-dossier){opacity:0;position:fixed;top:0;left:-9999px}.dossier-dialog{min-width:320px;max-width:400px}.dossier-dialog-body{flex-direction:column;gap:2px;max-height:65vh;padding:12px 20px;display:flex;overflow-y:auto}.dossier-dialog-body label{cursor:pointer;align-items:center;gap:8px;padding:1px 0;font-size:14px;display:flex}.dossier-dialog-body label:hover{color:#4fc3f7}.dossier-dialog-body input[type=checkbox]{cursor:pointer;width:16px;height:16px}.dossier-checkbox-indent{opacity:.85;margin-left:24px;font-size:13px!important}.dossier-pf-group{border-left:2px solid #0000;margin-top:2px;padding-left:0}.dossier-pf-validated{font-weight:700;color:#4caf50!important}.dossier-pf-invalidated{font-weight:700;color:#e74c3c!important}.dossier-pf-suboptions{flex-direction:column;gap:1px;margin-left:28px;display:flex}.dossier-pf-suboptions label{opacity:.85;font-size:12px!important}.print-preview-dossier{color:#000;background:#fff;flex-direction:column;gap:30px;display:flex}.print-dossier-section{page-break-inside:avoid;color:#000;background:#fff;padding:0 2px}.print-dossier-legend .legend-section{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 24px;display:grid}.print-dossier-legend .legend-section-title{color:#333;grid-column:1/-1}.print-dossier-legend .legend-item{break-inside:avoid;color:#000}.print-dossier-legend .legend-item span{color:#000;font-weight:700}.print-dossier-section h3{border-bottom:1px solid #999;margin:0 0 8px;padding:4px 6px;font-size:14px;font-weight:700;position:relative;color:#000!important;background:#fff!important}.print-dossier-title{text-align:center}.print-dossier-title h2{margin:0}.print-dossier-title p{color:#666;margin:0}.dossier-title-logos{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.dossier-title-logo-left,.dossier-title-logo-right{flex:0 0 100px;align-items:center;display:flex}.dossier-title-logo-left{justify-content:flex-start}.dossier-title-logo-right{justify-content:flex-end}.dossier-title-center{text-align:center;flex:1}.dossier-title-center h2{margin:0}.dossier-title-commune{color:#333;margin:2px 0 0;font-size:20px;font-weight:700}.dossier-logo-large{object-fit:contain;max-width:100px;max-height:60px}.dossier-header-logos{align-items:center;gap:6px;display:inline-flex;position:absolute;top:50%;right:0;transform:translateY(-50%)}.dossier-header-logos img{object-fit:contain;width:auto;height:36px}.dossier-image-props-headers{align-items:baseline;margin-bottom:6px;display:flex}.dossier-image-props-h3-left{flex:1;margin:0}.dossier-image-props-h3-right{flex:0 0 250px;margin:0;padding-left:20px}.dossier-image-props-row{align-items:flex-start;gap:20px;display:flex}.dossier-image-col{flex:1;min-width:0}.dossier-props-col{flex:0 0 250px}.dossier-props-table{border-collapse:collapse;color:#000;width:100%;font-size:11px}.dossier-props-table td{vertical-align:top;border-bottom:1px solid #e0e0e0;padding:3px 6px}.dossier-props-table td:first-child{white-space:nowrap;color:#333;width:110px;font-weight:700}.dossier-props-comment{white-space:pre-wrap;max-height:80px;overflow:hidden}.dossier-image-container{max-height:720px;display:inline-block;position:relative;overflow:visible}.dossier-carrefour-img{max-width:100%;height:auto;max-height:691px;display:block}.dossier-gf-label{color:#000;z-index:10;background:#ffffffd9;border:1px solid #333;border-radius:3px;padding:1px 4px;font-size:16px;font-weight:700;line-height:1.2;position:absolute;transform:translate(-50%,-50%)}.dossier-gf-label.pieton{background:0 0;border:none;border-radius:0;padding:0}.dossier-no-image{color:#999;text-align:center;font-style:italic}.dossier-diagram-content{overflow:hidden}.print-diagram-content .debut-bande-arrows line,.print-diagram-content .fin-bande-arrows line{stroke:#0c0!important;stroke-width:.3px!important;stroke-dasharray:2 2!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.print-diagram-content .debut-bande-arrows polygon,.print-diagram-content .fin-bande-arrows polygon{fill:#0c0!important;opacity:.7!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}.print-dossier-matrix .preview-matrix-table{color:#000}.print-dossier-matrix .preview-matrix-table th,.print-dossier-matrix .preview-matrix-table td{color:#000;background:#fff;border-color:#999}.print-dossier-matrix .preview-matrix-table th,.print-dossier-matrix .preview-matrix-table td.row-header{color:#000;background:#f0f0f0}.print-dossier-matrix .preview-matrix-table td.row-name,.print-dossier-matrix .preview-matrix-table th.col-name-header,.print-dossier-matrix .preview-matrix-table td.row-header,.print-dossier-matrix .preview-matrix-table th{text-align:left;white-space:nowrap;background:#f0f0f0;padding:1px 4px;font-size:.65rem;color:#000!important}.print-dossier-matrix .preview-matrix-table td.diagonal{background:#e0e0e0}.print-dossier-form .preview-form-table{color:#000;table-layout:auto;width:auto;font-size:.75rem}.print-dossier-form .preview-form-table th,.print-dossier-form .preview-form-table td{color:#000;white-space:nowrap;background:#fff;border-color:#999;padding:2px 6px}.print-dossier-form .preview-form-table th{background:#f0f0f0}.print-dossier-variables,.dossier-variables-list{color:#000;background:#fff}.dossier-variables-list p{color:#000;background:#fff;margin:2px 0;font-size:12px}.dossier-traffic-table{border-collapse:collapse;color:#000;background:#fff;width:auto;font-size:.75rem}.dossier-traffic-table th,.dossier-traffic-table td{text-align:center;color:#000;white-space:nowrap;background:#fff;border:1px solid #999;padding:2px 6px}.dossier-traffic-table th{color:#000;background:#f0f0f0;font-weight:700}.print-dossier-matrix .preview-matrix-table{table-layout:auto;width:auto;max-width:100%;font-size:.65rem}.print-dossier-matrix .preview-matrix-table th,.print-dossier-matrix .preview-matrix-table td{white-space:nowrap;min-width:16px;padding:1px 3px}.print-dossier-actions .print-actions-table{width:auto;font-size:.7rem}.print-dossier-actions .print-actions-table td:nth-child(4),.print-dossier-actions .print-actions-table td:nth-child(5),.print-dossier-actions .print-actions-table td:nth-child(6),.print-dossier-actions .print-actions-table td:nth-child(8),.print-dossier-actions .print-actions-table td:nth-child(9),.print-dossier-actions .print-actions-table td:nth-child(10),.print-dossier-actions .print-actions-table td:nth-child(11),.print-dossier-actions .print-actions-table td:nth-child(12),.print-dossier-actions .print-actions-table td:nth-child(13){white-space:nowrap;padding:2px 3px}.print-dossier-actions .print-actions-table td:nth-child(7){text-align:left;white-space:nowrap;max-width:none;overflow:visible}@media print{@page{size:A4 portrait;margin:10mm}body.print-diagram{page:diagram-page}@page diagram-page{size:A4 landscape;margin:5mm}body *{visibility:hidden}.no-print{display:none!important}body.print-matrix .print-preview-overlay,body.print-matrix .print-preview-overlay *,body.print-matrix .modal-overlay,body.print-matrix .modal-overlay *,body.print-matrix .print-preview-modal-large,body.print-matrix .print-preview-modal-large *,body.print-matrix .modal-content,body.print-matrix .modal-content *{visibility:visible!important}body.print-matrix .print-preview-overlay,body.print-matrix .modal-overlay{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}body.print-matrix .print-preview-modal-large,body.print-matrix .modal-content{box-shadow:none!important;background:#fff!important;border:none!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;position:relative!important;overflow:visible!important}body.print-matrix .modal-header,body.print-matrix .modal-footer{display:none!important}body.print-matrix .modal-body{max-height:none!important;overflow:visible!important}body.print-matrix .print-preview-container{background:#fff!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-matrix .print-preview-page{transform-origin:0 0;transform:scale(.85);box-shadow:none!important;background:#fff!important;border:none!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-matrix .print-preview-header{text-align:left!important;margin:0 0 10px!important;padding:0 0 10px!important}body.print-matrix .print-preview-matrix{margin:0!important;padding:0!important}body.print-matrix .preview-matrix-table{margin:0!important;font-size:.6rem!important}body.print-matrix .preview-matrix-table th,body.print-matrix .preview-matrix-table td{min-width:20px!important;padding:2px 4px!important}body.print-form .print-preview-overlay,body.print-form .print-preview-overlay *,body.print-form .modal-overlay,body.print-form .modal-overlay *,body.print-form .print-preview-modal-large,body.print-form .print-preview-modal-large *,body.print-form .modal-content,body.print-form .modal-content *{visibility:visible!important}body.print-form .print-preview-overlay,body.print-form .modal-overlay{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}body.print-form .print-preview-modal-large,body.print-form .modal-content{box-shadow:none!important;background:#fff!important;border:none!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;position:relative!important;overflow:visible!important}body.print-form .modal-header,body.print-form .modal-footer{display:none!important}body.print-form .modal-body{max-height:none!important;overflow:visible!important}body.print-form .print-preview-container{background:#fff!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-form .print-preview-page{transform-origin:0 0;transform:scale(.9);box-shadow:none!important;background:#fff!important;border:none!important;max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-diagram{background:#fff!important}body.print-diagram .print-preview-overlay,body.print-diagram .print-preview-modal-large,body.print-diagram .print-preview-overlay *,body.print-diagram .print-preview-modal-large *,body.print-diagram .print-actions-section,body.print-diagram .print-actions-section *{visibility:visible!important}body.print-diagram .print-actions-table{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important}body.print-diagram .print-actions-table th{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#f0f0f0!important}body.print-diagram .print-preview-overlay,body.print-diagram .modal-overlay{background:#fff!important;width:auto!important;min-width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}body.print-diagram .print-preview-modal-large,body.print-diagram .modal-content{box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;width:auto!important;min-width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;position:relative!important;overflow:visible!important}body.print-diagram .modal-header,body.print-diagram .modal-footer{display:none!important}body.print-diagram .modal-body{height:auto!important;max-height:none!important;overflow:visible!important}body.print-diagram .print-preview-container{background:#fff!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-diagram .print-preview-page{box-shadow:none!important;background:#fff!important;border:none!important;width:auto!important;min-width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-diagram .print-preview-diagram{transform-origin:0 0;background:#fff!important;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;margin-left:0!important;padding-left:0!important;overflow:visible!important}body.print-diagram .print-diagram-content{background:#fff!important;max-width:none!important;margin-left:0!important;padding-left:0!important;overflow:visible!important}body.print-diagram .print-diagram-header,body.print-diagram .print-actions-section,body.print-diagram .print-diagram-footer{margin-left:0!important;padding-left:0!important}body.print-diagram .print-actions-section{page-break-inside:avoid;visibility:visible!important;display:block!important;overflow:visible!important}body.print-diagram .print-actions-table{visibility:visible!important;display:table!important}body.print-diagram .print-actions-table *{visibility:visible!important}body.print-diagram .timeline-container,body.print-diagram .timeline-layout,body.print-diagram .timeline-sidebar,body.print-diagram .timeline-scroll-area,body.print-diagram .timeline-track-container,body.print-diagram .timeline-row-track,body.print-diagram .sidebar-header-row,body.print-diagram .row-label-container{background:#fff!important}body.print-diagram .label-id,body.print-diagram .label-name,body.print-diagram .col-label,body.print-diagram .ruler-tick,body.print-diagram .diagram-title{color:#000!important}body.print-diagram .diagram-title{background:#e8e8e8!important}body.print-diagram .input-time-sm,body.print-diagram .input-da{color:#000!important;background:0 0!important;border:none!important}body.print-diagram .print-diagram-content,body.print-diagram .print-diagram-content *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-diagram .grid-line{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#00000026!important}body.print-diagram .grid-5s{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#00000040!important}body.print-diagram .grid-10s{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#0006!important}body.print-diagram .grid-cycle-end{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background-color:#0009!important}body.print-diagram .phase-bar{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;visibility:visible!important;display:block!important}body.print-diagram .phase-bar.green{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;background:#0c0!important}body.print-diagram .phase-bar.green-dark{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;background:#060!important}body.print-diagram .phase-bar.orange{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;background:#cc0!important}body.print-diagram .phase-bar.red{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;background:#c00!important}body.print-diagram .phase-bar.pedestrian-orange:after,body.print-diagram .phase-bar.cyclist-orange:after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important;background:repeating-linear-gradient(45deg,#ff0,#ff0 2px,#0000 2px 4px)!important}body.print-diagram .cycle-block{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-diagram .debut-bande-arrows line,body.print-diagram .fin-bande-arrows line{stroke:#0c0!important;stroke-width:.3px!important;stroke-dasharray:2 2!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-diagram .debut-bande-arrows polygon,body.print-diagram .fin-bande-arrows polygon{fill:#0c0!important;opacity:.7!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-diagram .timeline-container{border:1px solid #000!important}body.print-diagram .timeline-sidebar{border-right:1px solid #000!important}body.print-diagram .row-label-container,body.print-diagram .timeline-row-track{border-bottom:1px solid #ccc!important}body.print-diagram .sidebar-header-row{border-bottom:1px solid #000!important}body.print-diagram .timeline-ruler{background:#fff!important;border-bottom:1px solid #000!important}body.print-diagram .timeline-sidebar,body.print-diagram .sidebar-header-row,body.print-diagram .row-label-container{background:#fff!important}body.print-diagram .print-preview-diagram{transform-origin:0 0;width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;overflow:visible!important}body.print-diagram .print-diagram-content{max-width:none!important;height:auto!important;display:block!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-container{transform-origin:0 0;width:auto!important;max-width:none!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-layout{width:auto!important;max-width:none!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-scroll-area{flex:none!important;max-width:none!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-track-container{flex-shrink:0!important;max-width:none!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-grid{max-width:none!important;overflow:visible!important}body.print-diagram .print-diagram-content .timeline-row-track{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;height:30px!important;position:relative!important;overflow:visible!important}body.print-diagram .timeline-comments,body.print-diagram .timeline-remarques,body.print-diagram .no-print,body.print-diagram .print-diagram-content .timeline-comments,body.print-diagram .print-diagram-content .timeline-remarques{visibility:hidden!important;opacity:0!important;width:0!important;max-width:0!important;height:0!important;max-height:0!important;display:none!important;position:absolute!important;top:-9999px!important;left:-9999px!important;overflow:hidden!important}body.print-diagram .label-id{font-size:.75rem!important}body.print-diagram .label-name{font-size:.7rem!important}body.print-diagram .input-time-sm{font-size:.65rem!important}body.print-diagram .print-diagram-content{display:block!important;overflow:visible!important}body.print-diagram .timeline-container{flex-direction:column!important;display:flex!important;overflow:visible!important}body.print-diagram .timeline-layout{flex-flow:row!important;display:flex!important;overflow:visible!important}body.print-diagram .print-actions-section{page-break-before:auto;page-break-inside:avoid;clear:both!important;width:auto!important;max-width:100%!important;margin-top:15px!important;display:block!important}body.print-diagram .print-actions-section h4{margin-bottom:5px!important;font-size:.8rem!important}body.print-diagram .print-actions-table{font-size:.6rem!important}body.print-diagram .print-actions-table th,body.print-diagram .print-actions-table td{padding:2px 3px!important}body.print-diagram .print-diagram-footer{page-break-before:avoid}body.print-diagram .print-diagram-content,body.print-diagram .timeline-container{page-break-inside:avoid!important;position:relative!important;overflow:visible!important}body.print-diagram .timeline-layout,body.print-diagram .timeline-scroll-area,body.print-diagram .timeline-track-container{position:relative!important;overflow:visible!important}body.print-diagram .print-preview-diagram{page-break-inside:avoid!important;position:relative!important;overflow:visible!important}body.print-diagram .print-preview-page{overflow:visible!important}html:has(body.print-dossier){background:#fff!important}body.print-dossier{page:dossier-page;background:#fff!important}@page dossier-page{size:A4 landscape;margin:10mm;margin-bottom:7mm}body.print-dossier *{visibility:hidden!important}body.print-dossier .print-preview-overlay,body.print-dossier .print-preview-overlay *,body.print-dossier .print-preview-modal-large,body.print-dossier .print-preview-modal-large *,body.print-dossier .print-preview-dossier,body.print-dossier .print-preview-dossier *{visibility:visible!important}body.print-dossier .print-preview-overlay,body.print-dossier .modal-overlay{background:#fff!important;width:100%!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;position:absolute!important;top:0!important;left:0!important;overflow:visible!important}body.print-dossier .print-preview-modal-large,body.print-dossier .modal-content{opacity:1!important;box-shadow:none!important;background:#fff!important;border:none!important;border-radius:0!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;position:relative!important;top:auto!important;left:auto!important;overflow:visible!important}body.print-dossier .modal-header,body.print-dossier .modal-footer{display:none!important}body.print-dossier .print-preview-container{background:#fff!important;flex:none!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-dossier .print-preview-page{box-shadow:none!important;background:#fff!important;border:none!important;width:100%!important;min-width:auto!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important}body.print-dossier .print-preview-dossier{color:#000!important;background:#fff!important;height:auto!important;overflow:visible!important}body.print-dossier .print-dossier-section{page-break-inside:avoid;page-break-after:auto;color:#000!important;background:#fff!important;overflow:visible!important}body.print-dossier .print-dossier-phasage{flex-direction:column!important;height:calc(100vh - 7mm)!important;display:flex!important;overflow:hidden!important}body.print-dossier .print-dossier-section h3{color:#000!important;background:#fff!important;font-size:14px!important;font-weight:700!important;display:block!important}body.print-dossier .print-dossier-remarques{margin-top:2px;padding:4px 8px;font-size:14px;color:#000!important;background:#fff!important}body.print-dossier .print-dossier-remarques *{color:#000!important;background:0 0!important}body.print-dossier .dossier-diagram-content{overflow:visible!important}body.print-dossier .dossier-diagram-content .diagram-title{display:none!important}body.print-dossier .debut-bande-arrows line,body.print-dossier .fin-bande-arrows line{stroke:#0c0!important;stroke-width:.3px!important;stroke-dasharray:2 2!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-dossier .debut-bande-arrows polygon,body.print-dossier .fin-bande-arrows polygon{fill:#0c0!important;opacity:.7!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-dossier .point-repos-label,body.print-dossier .synchro-bts-label,body.print-dossier .instant-co-label{color:#000!important}body.print-dossier .sidebar-header-row>:not(:last-child),body.print-dossier .row-label-container>:not(:last-child){border-right:1px solid #bbb!important}body.print-dossier .print-preview-overlay *,body.print-dossier .print-preview-modal-large *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-dossier .print-preview-dossier,body.print-dossier .print-dossier-section,body.print-dossier .print-dossier-title,body.print-dossier .print-dossier-form,body.print-dossier .print-dossier-form td,body.print-dossier .print-dossier-matrix,body.print-dossier .print-dossier-variables,body.print-dossier .dossier-variables-list,body.print-dossier .dossier-variables-list p,body.print-dossier .print-dossier-traffic,body.print-dossier .print-dossier-actions,body.print-dossier .print-actions-table td,body.print-dossier .print-dossier-diagram{color:#000!important;background:#fff!important}body.print-dossier .print-dossier-matrix td,body.print-dossier .dossier-traffic-table td,body.print-dossier .timeline-row-track,body.print-dossier .timeline-track-container,body.print-dossier .row-label-container,body.print-dossier .sidebar-header-row,body.print-dossier .ruler-container,body.print-dossier .timeline-ruler,body.print-dossier .timeline-sidebar{background:#fff!important}body.print-dossier .phase-bar.green{background:#0c0 linear-gradient(#0f0,#0c0)!important}body.print-dossier .phase-bar.green-dark{background:#060 linear-gradient(#080,#060)!important}body.print-dossier .phase-bar.orange{background:#cc0 linear-gradient(#ff0,#cc0)!important}body.print-dossier .phase-bar.red{background:#c00 linear-gradient(red,#c00)!important}body.print-dossier .grid-line{background-color:#00000026!important}body.print-dossier .grid-5s{background-color:#00000040!important}body.print-dossier .grid-10s{background-color:#0006!important}body.print-dossier .preview-form-table th,body.print-dossier .preview-matrix-table th,body.print-dossier .preview-matrix-table td.row-header,body.print-dossier .print-actions-table th,body.print-dossier .dossier-traffic-table th,body.print-dossier .print-dossier-reserve .diagnostic-table th{background:#f0f0f0!important}body.print-dossier .print-dossier-reserve .diagnostic-table th,body.print-dossier .print-dossier-reserve .diagnostic-table td{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-dossier .preview-matrix-table td.diagonal{background:#e0e0e0!important}body.print-dossier .preview-matrix-table td[style],body.print-dossier .dossier-traffic-table td[style]{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body.print-dossier .dossier-phasage-centered{flex-direction:column!important;justify-content:flex-start!important;align-items:stretch!important;display:flex!important}body.print-dossier .dossier-phasage-centered h3{text-align:left;width:100%;margin-bottom:0}body.print-dossier .dossier-phasage-centered .dossier-phasage-content{flex:1;width:100%;overflow:visible!important}body.print-dossier .dossier-phasage-content .phasage-bulle-container{background:#fff!important;height:100%!important;padding:0!important}body.print-dossier .dossier-phasage-content .phasage-bulle-header{display:none!important}body.print-dossier .dossier-phasage-content .phasage-circular-container{height:100%!important;min-height:unset!important;max-height:unset!important;overflow:visible!important}body.print-dossier .dossier-phasage-content .phase-bubble-content{background:#fff!important;border:none!important;box-shadow:inset 0 0 0 2px #999,0 2px 6px #00000026!important}body.print-dossier .dossier-phasage-content .phase-bubble-label{box-shadow:none!important;background:#fffffff2!important;border-color:#666!important;padding:2px 5px!important}body.print-dossier .dossier-phasage-content .phase-bubble-label.label-bottom-right{bottom:20px!important;right:10px!important}body.print-dossier .dossier-phasage-content .phase-number{color:#333!important;font-size:1.2em!important}body.print-dossier .dossier-phasage-content .phase-time-display{color:#666!important;font-size:1.1em!important}body.print-dossier .dossier-phasage-content .phase-bubble-image{background:#fff!important}body.print-dossier .dossier-phasage-content .ellipse-outline{display:none!important}body.print-dossier .dossier-phasage-content .connecting-arrows path{stroke:#643ca080!important}body.print-dossier .dossier-phasage-content .connecting-arrows marker polygon{fill:#643ca080!important}body.print-dossier .phasage-hide-ovals .ellipse-outline{visibility:hidden!important;width:0!important;height:0!important;display:none!important;overflow:hidden!important}body.print-dossier .phasage-hide-ovals .ellipse-outline ellipse{stroke:none!important;display:none!important}}.phasage-bulle-sidebar{flex-direction:column;height:100%;display:flex}.phasage-bulle-sidebar .sidebar-header{border-bottom:1px solid #555;margin-bottom:.5rem;padding-bottom:.5rem}.phasage-bulle-sidebar .sidebar-header h3{color:#dc4edc;margin:0 0 .15rem;font-size:.9em}.phasage-bulle-sidebar .sidebar-subtitle{color:#aaa;margin:0;font-size:.75em}.phasage-group-list{flex-direction:column;flex:1;gap:2px;padding-right:4px;display:flex;overflow-y:auto}.phasage-group-item{cursor:pointer;background:#3a3a3a;border:1px solid #555;border-radius:6px;align-items:center;gap:5px;padding:4px 8px;transition:all .15s;display:flex}.phasage-group-item:hover{background:#505050;border-color:#666}.phasage-group-item.checked{background:#3a2a3a;border-color:#dc4edc}.phasage-group-item.no-arrow{opacity:.5;cursor:not-allowed}.phasage-group-item.hovered{background:#4a3a4a;border-color:#dc4edc;box-shadow:0 0 8px #dc4edc80}.phasage-group-item input[type=checkbox]{accent-color:#dc4edc;cursor:pointer;width:13px;height:13px}.phasage-group-item.no-arrow input[type=checkbox]{cursor:not-allowed}.phasage-group-id{color:#dc4edc;min-width:30px;font-size:.8em;font-weight:700}.phasage-group-name{color:#e0e0e0;white-space:nowrap;text-overflow:ellipsis;flex:1;max-width:180px;font-size:.75em;overflow:hidden}.phasage-group-courant{color:#aaa;text-align:center;background:#444;border-radius:3px;min-width:50px;padding:1px 4px;font-size:.75em}.phasage-no-arrow-hint{color:#888;margin-left:auto;font-size:.8em}.phasage-group-actions{border-top:1px solid #555;gap:6px;margin-top:.5rem;padding-top:.5rem;display:flex}.phasage-btn-select-all,.phasage-btn-deselect-all{cursor:pointer;border:1px solid #555;border-radius:4px;flex:1;padding:8px 12px;font-size:.85em;transition:all .15s}.phasage-btn-select-all{color:#8f8;background:#2a352a}.phasage-btn-select-all:hover{background:#3a453a;border-color:#6a6}.phasage-btn-deselect-all{color:#f88;background:#352a2a}.phasage-btn-deselect-all:hover{background:#453a3a;border-color:#a66}.toggle-btn.phasage-btn{color:#c6c;background:#2a1a2a;border-color:#4a2a4a}.toggle-btn.phasage-btn:hover{color:#e8e;background:#3a2a3a;border-color:#6a4a6a}.reload-prompt{z-index:100000;color:#eee;background:#2a2a2a;border:1px solid #4ecdc4;border-radius:8px;align-items:center;gap:12px;padding:10px 12px 10px 16px;font-size:.9em;animation:.2s reload-prompt-in;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 6px 20px #00000073}@keyframes reload-prompt-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.reload-prompt-msg{font-weight:500}.reload-prompt-btn{color:#14302e;cursor:pointer;background:#4ecdc4;border:none;border-radius:5px;padding:4px 14px;font-size:.9em;font-weight:700}.reload-prompt-btn:hover{background:#6fe0d8}.reload-prompt-close{color:#999;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2em;line-height:1}.reload-prompt-close:hover{color:#eee}body.light-mode .reload-prompt{color:#222;background:#fff;box-shadow:0 6px 20px #0003}body.light-mode .reload-prompt-close{color:#888}body.light-mode .reload-prompt-close:hover{color:#222}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-green:#2ecc71;--color-orange:#f1c40f;--color-red:#e74c3c;--color-green-glowing:#0f0;--color-orange-glowing:gold;--color-red-glowing:red;--bg-card:#333;--border-radius:8px;background-color:#242424;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{background-color:#242424;min-width:320px;min-height:100vh;margin:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=button]:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:2px solid #4ecdc4}body.light-mode button:focus-visible,body.light-mode input:focus-visible,body.light-mode select:focus-visible,body.light-mode textarea:focus-visible,body.light-mode [role=button]:focus-visible,body.light-mode a:focus-visible,body.light-mode [tabindex]:focus-visible{outline:2px solid #2196f3}body.high-contrast-mode button:focus-visible,body.high-contrast-mode input:focus-visible,body.high-contrast-mode select:focus-visible,body.high-contrast-mode textarea:focus-visible,body.high-contrast-mode [role=button]:focus-visible,body.high-contrast-mode a:focus-visible,body.high-contrast-mode [tabindex]:focus-visible{outline:3px solid #ff0}body.amber-mode button:focus-visible,body.amber-mode input:focus-visible,body.amber-mode select:focus-visible,body.amber-mode textarea:focus-visible,body.amber-mode [role=button]:focus-visible,body.amber-mode a:focus-visible,body.amber-mode [tabindex]:focus-visible{outline:2px solid #f80}body.light-mode{color:#222;background-color:#fff}body.light-mode .app-header{background:#e0e0e0;border-bottom:1px solid #bbb}body.light-mode .app-header input,body.light-mode .app-header select{color:#222;background:#fff;border-color:#999}body.light-mode .gfx-label,body.light-mode .app-header button{color:#222}body.light-mode .undo-btn,body.light-mode .toggle-btn{color:#222;background:#d0d0d0;border-color:#999}body.light-mode .undo-btn:hover,body.light-mode .toggle-btn:hover{background:#bbb}body.light-mode .toggle-btn.active{background-color:#2ecc714d}body.light-mode .validate-btn.validated{color:#fff;background:#4caf50;border-color:#2e7d32;font-weight:700}body.light-mode .validate-btn.invalidated{color:#c0392b;background:#e74c3c4d;border-color:#e74c3c}body.light-mode .logout-btn{color:#222;background:#d0d0d0;border-color:#999}body.light-mode .logout-btn:hover{color:#000;background:#bbb}body.light-mode .sidebar{background:#f0f0f0;border-right:1px solid #ccc}body.light-mode .sidebar input,body.light-mode .sidebar select,body.light-mode .sidebar textarea{color:#222;background:#fff;border-color:#999}body.light-mode .sidebar label,body.light-mode .sidebar span,body.light-mode .sidebar th,body.light-mode .sidebar td,body.light-mode .sidebar h3,body.light-mode .sidebar h4,body.light-mode .sidebar p{color:#222}body.light-mode .tab-btn{color:#222;background:#ddd}body.light-mode .tab-btn.active{color:#000;background:#fff}body.light-mode .tab-btn:hover{background:#ccc}body.light-mode .group-table-container{background:#f5f5f5}body.light-mode .group-table-title,body.light-mode .group-table th{color:#222;background:#e0e0e0}body.light-mode .group-table td{color:#222}body.light-mode .group-table .col-id{color:#000}body.light-mode .group-table input,body.light-mode .group-table select{color:#222;background:#fff;border-color:#999}body.light-mode .input-name-cell,body.light-mode .input-mini,body.light-mode .input-yellow{color:#000!important}body.light-mode .input-readonly{background:#eee!important}body.light-mode .btn-move{color:#222;background:#d0d0d0}body.light-mode .btn-move:hover{background:#bbb}body.light-mode .matrix-container-inline{background:#f5f5f5}body.light-mode .matrix-grid th,body.light-mode .row-header{color:#222;background:#e0e0e0}body.light-mode .row-name{color:#000;background:#f5f5f5}body.light-mode .diagonal-cell{background:#ddd}body.light-mode .sidebar .matrix-grid input{color:#222;background:0 0!important}body.light-mode .sidebar .matrix-grid input:focus{background:#e8e8e8!important}body.light-mode .matrix-grid th,body.light-mode .matrix-grid td{border-color:#999}body.light-mode .matrix-bi-sep-bottom{border-bottom-color:#000!important}body.light-mode .matrix-bi-sep-right{border-right-color:#000!important}body.light-mode .traffic-table-container{background:#f5f5f5}body.light-mode .traffic-table th{color:#222;background:#e0e0e0}body.light-mode .traffic-table input,body.light-mode .traffic-table select{color:#222;background:#fff;border-color:#999}body.light-mode .sidebar .traffic-table .col-calculated{color:#8cf}body.light-mode .sidebar .traffic-table .capacity-green{color:#4caf50}body.light-mode .sidebar .traffic-table .capacity-orange{color:#ff9800}body.light-mode .sidebar .traffic-table .capacity-red{color:#f44336}body.light-mode .sidebar .traffic-table .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}body.light-mode .traffic-dataset-label,body.light-mode .traffic-dataset-selector{color:#222;background:#d0d0d0;border-color:#999}body.light-mode .paste-dropdown{color:#222;background:#e0e0e0;border-color:#999}body.light-mode .diagram-area,body.light-mode .diagram-panel{background:#fff}body.light-mode .diagram-title{color:#222;background:#e8e8e8}body.light-mode .timeline-sidebar{background:#f0f0f0}body.light-mode .sidebar-header-row{color:#222;background:#e0e0e0}body.light-mode .timeline-sidebar td{color:#222}body.light-mode .input-time-sm{color:#222;background:#fff;border-color:#999}body.light-mode .input-da{background:#fff;border-color:#999}body.light-mode .row-label-container{color:#222}body.light-mode .label-id,body.light-mode .label-name{color:#000}body.light-mode .col-label{color:#555}body.light-mode .timeline-scroll-area{background:#fafafa}body.light-mode .timeline-ruler{color:#222;background:#e8e8e8}body.light-mode .timeline-comments{background:#f0f0f0}body.light-mode .comments-header{color:#222;background:#e0e0e0}body.light-mode .input-comment{color:#222;background:#fff;border-color:#999}body.light-mode .timeline-remarques{background:#f0f0f0}body.light-mode .remarques-header{color:#222;background:#e0e0e0}body.light-mode .input-remarques{color:#222;background:#fff;border-color:#999}body.light-mode .phase-flag-indicator{color:#c62828}body.sepia-mode .phase-flag-indicator{color:#8b3a1f}body.light-mode .help-section p,body.light-mode .help-section ul,body.light-mode .help-section dl dd,body.sepia-mode .help-section p,body.sepia-mode .help-section ul,body.sepia-mode .help-section dl dd,body.light-mode .help-section li,body.sepia-mode .help-section li{color:#222}body.light-mode .help-section li strong,body.sepia-mode .help-section li strong{color:#000}body.light-mode .help-section h4,body.sepia-mode .help-section h4{color:#1976d2}body.light-mode .help-section dl dt,body.sepia-mode .help-section dl dt{color:#2a8a85}body.light-mode .help-section,body.sepia-mode .help-section{border-bottom-color:#ccc}body.light-mode .help-toc,body.sepia-mode .help-toc{background:#f5f5f5!important;border-color:#ccc!important}body.light-mode .help-toc h3,body.sepia-mode .help-toc h3{color:#2a8a85!important}body.light-mode .help-toc a,body.sepia-mode .help-toc a{color:#1976d2!important}body.light-mode .help-toc ul li a,body.sepia-mode .help-toc ul li a{color:#444!important}body.light-mode .help-content>h3,body.sepia-mode .help-content>h3{color:#2a8a85!important;border-bottom-color:#2a8a85!important}body.light-mode .bar-label,body.light-mode .escamotage-label,body.light-mode .adaptatif-label,body.light-mode .ouverture-anticipee-label,body.light-mode .point-repos-label,body.light-mode .signa-label,body.light-mode .controle-flot-label,body.light-mode .synchro-bts-label,body.light-mode .instant-co-label,body.light-mode .priorite-pietons-label,body.light-mode .fleche-anticipation-label,body.sepia-mode .bar-label,body.sepia-mode .escamotage-label,body.sepia-mode .adaptatif-label,body.sepia-mode .ouverture-anticipee-label,body.sepia-mode .point-repos-label,body.sepia-mode .signa-label,body.sepia-mode .controle-flot-label,body.sepia-mode .synchro-bts-label,body.sepia-mode .instant-co-label,body.sepia-mode .priorite-pietons-label,body.sepia-mode .fleche-anticipation-label{color:#000!important;text-shadow:none!important}body.light-mode .logo-box{background:#fff;border-color:#999}body.light-mode .cycle-input-label{color:#000}body.light-mode .cycle-input-label .input-count{color:#000;background:#fff;border-color:#999}body.light-mode .action-table-container,body.light-mode .action-panel{background:#f5f5f5}body.light-mode .action-table-container h3{color:#222}body.light-mode .action-table th{color:#222;background:#e0e0e0}body.light-mode .action-table thead tr.header-group th{color:#222;background:#e8e8e8}body.light-mode .action-table td{color:#222}body.light-mode .action-table input,body.light-mode .action-table select{color:#222;background:#fff;border-color:#999}body.light-mode .action-table select option{color:#222;background:#fff}body.light-mode .action-table input.input-disabled{background:#eee}body.light-mode .action-table td:has(input:disabled){background:#eee}body.light-mode .custom-field-input{color:#222;background:#eee}body.light-mode .action-table-panel-resize{background:#ccc}body.light-mode .micro-highlight-backdrop{color:#222}body.light-mode .input-micro.micro-has-backdrop{caret-color:#222}body.light-mode .action-table input:focus,body.light-mode .action-table select:focus,body.light-mode .action-table textarea:focus{background:#eee}body.light-mode .action-table td{border-color:#bbb}body.light-mode .floating-panel{background:#f5f5f5;border:5px solid #333;box-shadow:0 8px 32px #00000026}body.light-mode .floating-panel-titlebar{color:#222;background:#e0e0e0}body.light-mode .floating-panel-close{color:#666}body.light-mode .floating-panel-body{color:#222;background:#f5f5f5}body.light-mode .action-table-separator-horizontal{background:#ccc}body.light-mode .detach-btn{color:#333;background:#ddd;border-color:#aaa}body.light-mode .detach-btn:hover:not(:disabled){color:#fff;background:#00897b}body.light-mode .custom-field-input:focus{background:#fff;border-color:#888}body.light-mode .custom-field-input::placeholder{color:#999}body.light-mode .modal-content{color:#222;background:#f5f5f5}body.light-mode .modal-header{color:#fff;background:#555;border-bottom-color:#666}body.light-mode .modal-header h3{color:#fff}body.light-mode .modal-close{color:#ccc}body.light-mode .modal-close:hover{color:#fff}body.light-mode .modal-body{color:#222}body.light-mode .modal-body input,body.light-mode .modal-body select{color:#222;background:#fff;border-color:#999}body.light-mode .modal-btn-secondary{color:#222;background:#d0d0d0}body.light-mode .pf-tabs-bar{background:#e0e0e0}body.light-mode .pf-tab{color:#222;background:#d0d0d0}body.light-mode .pf-tab.active{color:#000;background:#fff}body.light-mode .pf-tab.pf-validated{color:#fff;background:#4caf50;border-color:#2e7d32;font-weight:700}body.light-mode .pf-tab.pf-validated.active{color:#fff;background:#2e7d32;border-color:#1b5e20;font-weight:700}body.light-mode .pf-tab.pf-invalidated{color:#c0392b;background:#e74c3c33;border-color:#e74c3c}body.light-mode .pf-tab.pf-invalidated.active{color:#922b21;background:#e74c3c4d;border-color:#e74c3c}body.light-mode .project-manager{color:#222;background:#f0f0f0}body.light-mode .project-manager button{color:#222}body.light-mode .files-list li:hover{background:#ddd}body.light-mode .floating-legend-window{color:#222;background:#f0f0f0}body.light-mode .floating-legend-header{color:#222;background:#e0e0e0}body.light-mode .phasage-group-item{color:#222;background:#eee}body.light-mode .phasage-group-courant{color:#222;background:#ddd}body.light-mode .simulation-panel{color:#222;background:#f5f5f5}body.light-mode .simulation-panel input,body.light-mode .simulation-panel select{color:#222;background:#fff;border-color:#999}body.light-mode .simulation-panel th,body.light-mode .simulation-panel td,body.light-mode .simulation-panel button{color:#222}body.light-mode .simulation-item{background:#fff;border-color:#ccc}body.light-mode .simulation-item:hover{background:#eee;border-color:#999}body.light-mode .simulation-item.checked{background:#e8f5f4}body.light-mode .sim-action-type{color:#222}body.light-mode .sim-row-num{color:#666}body.light-mode .sim-time{color:#555}body.light-mode .sim-desc{color:#666}body.light-mode .simulation-info{background:#eee;border-color:#ccc}body.light-mode .sim-info-label{color:#555}body.light-mode .simulation-list-header{color:#222}body.light-mode .sim-btn{color:#222;background:#ddd;border-color:#999}body.light-mode .sim-btn:hover{background:#ccc}body.light-mode .simulation-traffic-table td,body.light-mode .simulation-traffic-header .traffic-title{color:#222}body.light-mode .grid-1s{background:#0000000f}body.light-mode .grid-5s{background:#00000026}body.light-mode .grid-10s{background:#0000004d}body.light-mode .ruler-tick{color:#444}body.light-mode .row-label-container{border-bottom-color:#ccc}body.light-mode .diagram-title,body.light-mode .timeline-ruler{border-bottom-color:#bbb}body.light-mode .timeline-row-track{background:#fafafa;border-bottom-color:#ccc}body.light-mode .comment-row{border-bottom-color:#ccc}body.light-mode .grid-cycle-end{background:#000}body.light-mode .green-cut-overlay{background:#e8e8e8}body.light-mode .intersection-image-container,body.light-mode .intersection-header{background:#fff}body.light-mode .intersection-header h3{color:#222}body.light-mode .intersection-image-area{background:#fff}body.light-mode .display-options{background:#f0f0f0;border-color:#ccc}body.light-mode .checkbox-option{color:#333}body.light-mode .image-filters{background:#f0f0f0;border-color:#ccc}body.light-mode .filter-row{color:#333}body.light-mode .filter-value{color:#666}body.light-mode .no-selection-hint{color:#333;background:#f0f0f0;border-color:#ccc}body.light-mode .hint{color:#666}body.light-mode .arrow-editor{color:#333;background:#f0f0f0;border-color:#ccc}body.light-mode .arrow-editor h4{color:#222}body.light-mode .arrow-editor label{color:#333}body.high-contrast-mode{color:#fff;background-color:#0a0e2a}body.high-contrast-mode .app-header{background:#0f1440;border-bottom:2px solid #35a}body.high-contrast-mode .app-header input,body.high-contrast-mode .app-header select{color:#fff;background:#1a2050;border:1px solid #46b}body.high-contrast-mode .gfx-label,body.high-contrast-mode .app-header button{color:#fd0}body.high-contrast-mode .undo-btn,body.high-contrast-mode .toggle-btn{color:#fd0;background:#1a2050;border-color:#46b}body.high-contrast-mode .undo-btn:hover,body.high-contrast-mode .toggle-btn:hover{background:#253080}body.high-contrast-mode .toggle-btn.active{background-color:#00e5ff4d}body.high-contrast-mode .validate-btn.validated{color:#4caf50;background:#4caf5059;border-color:#4caf50}body.high-contrast-mode .validate-btn.invalidated{color:#e74c3c;background:#e74c3c59;border-color:#e74c3c}body.high-contrast-mode .logout-btn{color:#fd0;background:#1a2050;border-color:#46b}body.high-contrast-mode .logout-btn:hover{color:#fe4;background:#253080}body.high-contrast-mode .sidebar{background:#0f1440;border-right:2px solid #35a}body.high-contrast-mode .sidebar input,body.high-contrast-mode .sidebar select,body.high-contrast-mode .sidebar textarea{color:#fff;background:#1a2050;border:1px solid #46b}body.high-contrast-mode .sidebar .matrix-grid input{border:none}body.high-contrast-mode .sidebar label,body.high-contrast-mode .sidebar span,body.high-contrast-mode .sidebar th,body.high-contrast-mode .sidebar td,body.high-contrast-mode .sidebar h3,body.high-contrast-mode .sidebar h4,body.high-contrast-mode .sidebar p{color:#fff}body.high-contrast-mode .tab-btn{color:#fd0;background:#1a2050;border:1px solid #35a}body.high-contrast-mode .tab-btn.active{color:#fe4;background:#253080;border-color:#00e5ff}body.high-contrast-mode .tab-btn:hover{background:#253080}body.high-contrast-mode .group-table-container{background:#0f1440}body.high-contrast-mode .group-table-title,body.high-contrast-mode .sidebar .group-table-title,body.high-contrast-mode .group-table th{color:#fd0;background:#1a2050}body.high-contrast-mode .group-table td{color:#fff}body.high-contrast-mode .group-table .col-id{color:#fd0}body.high-contrast-mode .group-table input,body.high-contrast-mode .group-table select{color:#fff;background:#1a2050;border:1px solid #46b}body.high-contrast-mode .input-mini,body.high-contrast-mode .input-yellow{color:#fff!important}body.high-contrast-mode .input-readonly{background:#0f1440!important}body.high-contrast-mode .btn-move{color:#fd0;background:#253080}body.high-contrast-mode .btn-move:hover{background:#3040a0}body.high-contrast-mode .matrix-container-inline{background:#0f1440}body.high-contrast-mode .matrix-container-inline h3,body.high-contrast-mode .sidebar .matrix-container-inline h3{color:#fd0}body.high-contrast-mode .matrix-grid th{color:#fd0;background:#1a2050}body.high-contrast-mode .row-header{background:#1a2050;color:#fd0!important}body.high-contrast-mode .row-name{background:#0f1440;color:#00e5ff!important}body.high-contrast-mode .matrix-grid .col-index-header{color:#fd0!important}body.high-contrast-mode .matrix-grid .col-name-header{color:#00e5ff!important}body.high-contrast-mode .traffic-table .col-id{color:#fd0!important}body.high-contrast-mode .traffic-table .col-name-readonly{color:#00e5ff!important}body.high-contrast-mode .diagonal-cell{background:#0a0e2a}body.high-contrast-mode .sidebar .matrix-grid input{color:#fff;background:0 0!important}body.high-contrast-mode .sidebar .matrix-grid input:focus{background:#253080!important}body.high-contrast-mode .matrix-grid th,body.high-contrast-mode .matrix-grid td{border-color:#35a}body.high-contrast-mode .matrix-bi-sep-bottom{border-bottom-color:#fd0!important}body.high-contrast-mode .matrix-bi-sep-right{border-right-color:#fd0!important}body.high-contrast-mode .traffic-table-container{background:#0f1440}body.high-contrast-mode .sidebar .traffic-table-container h3,body.high-contrast-mode .traffic-header h3{color:#fd0}body.high-contrast-mode .traffic-table th{color:#fd0;background:#1a2050}body.high-contrast-mode .traffic-table input,body.high-contrast-mode .traffic-table select{color:#fff;background:#1a2050;border:1px solid #46b}body.high-contrast-mode .sidebar .traffic-table .col-calculated{color:#00e5ff}body.high-contrast-mode .sidebar .traffic-table .capacity-green{color:#4f8}body.high-contrast-mode .sidebar .traffic-table .capacity-orange{color:#fa0}body.high-contrast-mode .sidebar .traffic-table .capacity-red{color:#f44}body.high-contrast-mode .sidebar .traffic-table .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}body.high-contrast-mode .traffic-dataset-label,body.high-contrast-mode .traffic-dataset-selector{color:#fd0;background:#1a2050;border-color:#46b}body.high-contrast-mode .paste-dropdown{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .diagram-area,body.high-contrast-mode .diagram-panel{background:#0a0e2a}body.high-contrast-mode .diagram-title{color:#fd0;background:#1a2050}body.high-contrast-mode .timeline-sidebar{background:#0f1440}body.high-contrast-mode .sidebar-header-row{color:#fd0;background:#1a2050}body.high-contrast-mode .timeline-sidebar td{color:#fff}body.high-contrast-mode .input-time-sm{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .input-da{color:#f4f;background:#1a2050;border-color:#46b}body.high-contrast-mode .row-label-container{color:#fff;border-bottom-color:#35a}body.high-contrast-mode .label-id{color:#fd0}body.high-contrast-mode .label-name{color:#00e5ff}body.high-contrast-mode .col-label{color:#abe}body.high-contrast-mode .timeline-scroll-area{background:#0a0e2a}body.high-contrast-mode .timeline-ruler{color:#fd0;background:#1a2050;border-bottom-color:#35a}body.high-contrast-mode .timeline-comments{background:#0f1440}body.high-contrast-mode .comments-header{color:#fd0;background:#1a2050}body.high-contrast-mode .input-comment{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .timeline-remarques{background:#0f1440}body.high-contrast-mode .remarques-header{color:#fd0;background:#1a2050}body.high-contrast-mode .input-remarques{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .logo-box{background:#1a2050;border-color:#46b}body.high-contrast-mode .cycle-input-label{color:#fd0}body.high-contrast-mode .cycle-input-label .input-count{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .action-table-container,body.high-contrast-mode .action-panel{background:#0f1440}body.high-contrast-mode .action-table-container h3{color:#fd0}body.high-contrast-mode .action-table th,body.high-contrast-mode .action-table thead tr.header-group th{color:#fd0;background:#1a2050}body.high-contrast-mode .action-table td{color:#fff;border-color:#35a}body.high-contrast-mode .action-table input,body.high-contrast-mode .action-table select{color:#fff;background:#1a2050;border:1px solid #46b}body.high-contrast-mode .action-table select option{color:#fff;background:#1a2050}body.high-contrast-mode .action-table input.input-disabled{background:#0a0e2a}body.high-contrast-mode .action-table td:has(input:disabled){background:#0a0e2a}body.high-contrast-mode .custom-field-input{color:#fff;background:#0f1440}body.high-contrast-mode .action-table-panel-resize{background:#35a}body.high-contrast-mode .micro-highlight-backdrop{color:#fff}body.high-contrast-mode .micro-highlight-backdrop .micro-keyword{color:#f4f}body.high-contrast-mode .input-micro.micro-has-backdrop{caret-color:#fff}body.high-contrast-mode .action-table input:focus,body.high-contrast-mode .action-table select:focus,body.high-contrast-mode .action-table textarea:focus{background:#253080}body.high-contrast-mode .detach-btn{color:#fd0;background:#253080;border-color:#46b}body.high-contrast-mode .detach-btn:hover:not(:disabled){color:#fff;background:#00897b}body.high-contrast-mode .action-table-separator-horizontal{background:#35a}body.high-contrast-mode .custom-field-input:focus{background:#1a2050;border-color:#00e5ff}body.high-contrast-mode .custom-field-input::placeholder{color:#67a}body.high-contrast-mode .floating-panel{background:#0f1440;border:5px solid #35a;box-shadow:0 8px 32px #0064ff4d}body.high-contrast-mode .floating-panel-titlebar{color:#fd0;background:#1a2050}body.high-contrast-mode .floating-panel-close{color:#f44}body.high-contrast-mode .floating-panel-body,body.high-contrast-mode .modal-content{color:#fff;background:#0f1440}body.high-contrast-mode .modal-header{color:#fd0;background:#1a2050;border-bottom-color:#35a}body.high-contrast-mode .modal-header h3{color:#fd0}body.high-contrast-mode .modal-close{color:#f44}body.high-contrast-mode .modal-close:hover{color:#f66}body.high-contrast-mode .modal-body{color:#fff}body.high-contrast-mode .modal-body input,body.high-contrast-mode .modal-body select{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .modal-btn-secondary{color:#fd0;background:#253080}body.high-contrast-mode .pf-tabs-bar{background:#0f1440}body.high-contrast-mode .pf-tab{color:#abe;background:#1a2050;border:1px solid #35a}body.high-contrast-mode .pf-tab.active{color:#fd0;background:#253080;border-color:#00e5ff}body.high-contrast-mode .pf-tab.pf-validated{color:#8f8;background:#4caf504d;border-color:#4caf50}body.high-contrast-mode .pf-tab.pf-validated.active{color:#fff;background:#4caf5066;border-color:#4caf50}body.high-contrast-mode .pf-tab.pf-invalidated{color:#f88;background:#e74c3c4d;border-color:#e74c3c}body.high-contrast-mode .pf-tab.pf-invalidated.active{color:#fff;background:#e74c3c66;border-color:#e74c3c}body.high-contrast-mode .project-manager{color:#fff;background:#0f1440}body.high-contrast-mode .project-manager button{color:#fd0}body.high-contrast-mode .files-list li:hover{background:#253080}body.high-contrast-mode .floating-legend-window{color:#fff;background:#0f1440}body.high-contrast-mode .floating-legend-header{color:#fd0;background:#1a2050}body.high-contrast-mode .phasage-group-item{color:#fff;background:#1a2050}body.high-contrast-mode .phasage-group-courant{color:#00e5ff;background:#253080}body.high-contrast-mode .simulation-panel{color:#fff;background:#0f1440}body.high-contrast-mode .simulation-panel input,body.high-contrast-mode .simulation-panel select{color:#fff;background:#1a2050;border-color:#46b}body.high-contrast-mode .simulation-panel th,body.high-contrast-mode .simulation-panel td{color:#fff}body.high-contrast-mode .simulation-panel button{color:#fd0}body.high-contrast-mode .simulation-item{background:#1a2050;border-color:#35a}body.high-contrast-mode .simulation-item:hover{background:#253080;border-color:#46b}body.high-contrast-mode .simulation-item.checked{background:#1a3060}body.high-contrast-mode .sim-action-type{color:#fd0}body.high-contrast-mode .sim-row-num{color:#abe}body.high-contrast-mode .sim-time{color:#00e5ff}body.high-contrast-mode .sim-desc{color:#abe}body.high-contrast-mode .simulation-info{background:#1a2050;border-color:#35a}body.high-contrast-mode .sim-info-label{color:#abe}body.high-contrast-mode .simulation-list-header{color:#fd0}body.high-contrast-mode .sim-btn{color:#ddd;background:#333;border-color:#555}body.high-contrast-mode .sim-btn:hover{background:#444}body.high-contrast-mode .simulation-traffic-table td{color:#fff}body.high-contrast-mode .simulation-traffic-header .traffic-title{color:#fd0}body.high-contrast-mode .grid-1s{background:#35a3}body.high-contrast-mode .grid-5s{background:#35a6}body.high-contrast-mode .grid-10s{background:#35a9}body.high-contrast-mode .ruler-tick{color:#fd0}body.high-contrast-mode .diagram-title,body.high-contrast-mode .timeline-ruler{border-bottom-color:#35a}body.high-contrast-mode .timeline-row-track{background:#0a0e2a;border-bottom-color:#35a}body.high-contrast-mode .comment-row{border-bottom-color:#35a}body.high-contrast-mode .grid-cycle-end{background:#fd0}body.high-contrast-mode .green-cut-overlay{background:#1a2050}body.high-contrast-mode .intersection-image-container,body.high-contrast-mode .intersection-header{background:#0f1440}body.high-contrast-mode .intersection-header h3{color:#fd0}body.high-contrast-mode .intersection-image-area{background:#0a0e2a}body.high-contrast-mode .display-options{background:#1a2050;border-color:#35a}body.high-contrast-mode .checkbox-option{color:#fff}body.high-contrast-mode .image-filters{background:#1a2050;border-color:#35a}body.high-contrast-mode .filter-row{color:#fff}body.high-contrast-mode .filter-value{color:#00e5ff}body.high-contrast-mode .no-selection-hint{color:#abe;background:#1a2050;border-color:#35a}body.high-contrast-mode .hint{color:#abe}body.high-contrast-mode .arrow-editor{color:#fff;background:#1a2050;border-color:#35a}body.high-contrast-mode .arrow-editor h4{color:#fd0}body.high-contrast-mode .arrow-editor label{color:#fff}body.high-contrast-mode .menu-bar{background:#0f1440;border-bottom:2px solid #fd0}body.high-contrast-mode .menu-button{color:#fd0}body.high-contrast-mode .menu-button.active,body.high-contrast-mode .menu-button:hover{background:#253080}body.high-contrast-mode .menu-button:disabled{color:#568}body.high-contrast-mode .menu-dropdown{background:#1a2050;border:2px solid #fd0;border-top:none}body.high-contrast-mode .menu-item{color:#fff}body.high-contrast-mode .menu-item:hover{background:#253080}body.high-contrast-mode .menu-item.disabled{color:#568}body.high-contrast-mode .menu-separator{border-color:#35a}body.high-contrast-mode .menu-header{color:#abe}body.high-contrast-mode .submenu-dropdown{background:#1a2050;border:2px solid #fd0}body.high-contrast-mode .menu-slider-label,body.high-contrast-mode .menu-slider-value{color:#fff}body.amber-mode{color:#f5f0e8;background-color:#1a1a1a}body.amber-mode .app-header{background:#252525;border-bottom:2px solid #555}body.amber-mode .app-header input,body.amber-mode .app-header select{color:#f5f0e8;background:#303030;border:1px solid #666}body.amber-mode .gfx-label,body.amber-mode .app-header button{color:#ffb300}body.amber-mode .undo-btn,body.amber-mode .toggle-btn{color:#ffb300;background:#303030;border-color:#666}body.amber-mode .undo-btn:hover,body.amber-mode .toggle-btn:hover{background:#404040}body.amber-mode .toggle-btn.active{background-color:#ffb30040}body.amber-mode .validate-btn.validated{color:#4caf50;background:#4caf5059;border-color:#4caf50}body.amber-mode .validate-btn.invalidated{color:#e74c3c;background:#e74c3c59;border-color:#e74c3c}body.amber-mode .logout-btn{color:#ffb300;background:#303030;border-color:#666}body.amber-mode .logout-btn:hover{color:#ffc640;background:#404040}body.amber-mode .sidebar{background:#222;border-right:2px solid #555}body.amber-mode .sidebar input,body.amber-mode .sidebar select,body.amber-mode .sidebar textarea{color:#f5f0e8;background:#303030;border:1px solid #666}body.amber-mode .sidebar .matrix-grid input{border:none}body.amber-mode .sidebar label,body.amber-mode .sidebar span,body.amber-mode .sidebar th,body.amber-mode .sidebar td,body.amber-mode .sidebar h3,body.amber-mode .sidebar h4,body.amber-mode .sidebar p{color:#f5f0e8}body.amber-mode .tab-btn{color:#ffb300;background:#303030;border:1px solid #555}body.amber-mode .tab-btn.active{color:#ffc640;background:#404040;border-color:#e68a00}body.amber-mode .tab-btn:hover{background:#3a3a3a}body.amber-mode .group-table-container{background:#222}body.amber-mode .group-table-title,body.amber-mode .sidebar .group-table-title,body.amber-mode .group-table th{color:#ffb300;background:#303030}body.amber-mode .group-table td{color:#f5f0e8}body.amber-mode .group-table .col-id{color:#ffb300}body.amber-mode .group-table input,body.amber-mode .group-table select{color:#f5f0e8;background:#303030;border:1px solid #666}body.amber-mode .input-mini,body.amber-mode .input-yellow{color:#f5f0e8!important}body.amber-mode .input-readonly{background:#252525!important}body.amber-mode .btn-move{color:#ffb300;background:#404040}body.amber-mode .btn-move:hover{background:#505050}body.amber-mode .matrix-container-inline{background:#222}body.amber-mode .matrix-container-inline h3,body.amber-mode .sidebar .matrix-container-inline h3{color:#ffb300}body.amber-mode .matrix-grid th{color:#ffb300;background:#303030}body.amber-mode .row-header{background:#303030;color:#ffb300!important}body.amber-mode .row-name{background:#252525;color:#ffc640!important}body.amber-mode .matrix-grid .col-index-header{color:#ffb300!important}body.amber-mode .matrix-grid .col-name-header{color:#ffc640!important}body.amber-mode .traffic-table .col-id{color:#ffb300!important}body.amber-mode .traffic-table .col-name-readonly{color:#ffc640!important}body.amber-mode .diagonal-cell{background:#1a1a1a}body.amber-mode .sidebar .matrix-grid input{color:#f5f0e8;background:0 0!important}body.amber-mode .sidebar .matrix-grid input:focus{background:#404040!important}body.amber-mode .matrix-grid th,body.amber-mode .matrix-grid td{border-color:#555}body.amber-mode .matrix-bi-sep-bottom{border-bottom-color:#ffb300!important}body.amber-mode .matrix-bi-sep-right{border-right-color:#ffb300!important}body.amber-mode .traffic-table-container{background:#222}body.amber-mode .sidebar .traffic-table-container h3,body.amber-mode .traffic-header h3{color:#ffb300}body.amber-mode .traffic-table th{color:#ffb300;background:#303030}body.amber-mode .traffic-table input,body.amber-mode .traffic-table select{color:#f5f0e8;background:#303030;border:1px solid #666}body.amber-mode .sidebar .traffic-table .col-calculated{color:#6cf}body.amber-mode .sidebar .traffic-table .capacity-green{color:#6f8}body.amber-mode .sidebar .traffic-table .capacity-orange{color:#fa3}body.amber-mode .sidebar .traffic-table .capacity-red{color:#f55}body.amber-mode .sidebar .traffic-table .capacity-black{font-weight:700;color:#000!important;background-color:#ff6b6b!important}body.amber-mode .traffic-dataset-label,body.amber-mode .traffic-dataset-selector{color:#ffb300;background:#303030;border-color:#666}body.amber-mode .paste-dropdown{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .diagram-area,body.amber-mode .diagram-panel{background:#1a1a1a}body.amber-mode .diagram-title{color:#ffb300;background:#303030}body.amber-mode .timeline-sidebar{background:#222}body.amber-mode .sidebar-header-row{color:#ffb300;background:#303030}body.amber-mode .timeline-sidebar td{color:#f5f0e8}body.amber-mode .input-time-sm{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .input-da{color:#f8f;background:#303030;border-color:#666}body.amber-mode .row-label-container{color:#f5f0e8;border-bottom-color:#555}body.amber-mode .label-id{color:#ffb300}body.amber-mode .label-name{color:#ffc640}body.amber-mode .col-label{color:#999}body.amber-mode .timeline-scroll-area{background:#1a1a1a}body.amber-mode .timeline-ruler{color:#ffb300;background:#303030;border-bottom-color:#555}body.amber-mode .timeline-comments{background:#222}body.amber-mode .comments-header{color:#ffb300;background:#303030}body.amber-mode .input-comment{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .timeline-remarques{background:#222}body.amber-mode .remarques-header{color:#ffb300;background:#303030}body.amber-mode .input-remarques{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .logo-box{background:#303030;border-color:#666}body.amber-mode .cycle-input-label{color:#ffb300}body.amber-mode .cycle-input-label .input-count{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .action-table-container,body.amber-mode .action-panel{background:#222}body.amber-mode .action-table-container h3{color:#ffb300}body.amber-mode .action-table th,body.amber-mode .action-table thead tr.header-group th{color:#ffb300;background:#303030}body.amber-mode .action-table td{color:#f5f0e8;border-color:#555}body.amber-mode .action-table input,body.amber-mode .action-table select{color:#f5f0e8;background:#303030;border:1px solid #666}body.amber-mode .action-table select option{color:#f5f0e8;background:#303030}body.amber-mode .action-table input.input-disabled{background:#1a1a1a}body.amber-mode .action-table td:has(input:disabled){background:#1a1a1a}body.amber-mode .custom-field-input{color:#f5f0e8;background:#252525}body.amber-mode .action-table-panel-resize{background:#555}body.amber-mode .micro-highlight-backdrop{color:#f5f0e8}body.amber-mode .micro-highlight-backdrop .micro-keyword{color:#f8f}body.amber-mode .input-micro.micro-has-backdrop{caret-color:#f5f0e8}body.amber-mode .action-table input:focus,body.amber-mode .action-table select:focus,body.amber-mode .action-table textarea:focus{background:#404040}body.amber-mode .detach-btn{color:#ffb300;background:#404040;border-color:#666}body.amber-mode .detach-btn:hover:not(:disabled){color:#fff;background:#e68a00}body.amber-mode .action-table-separator-horizontal{background:#555}body.amber-mode .custom-field-input:focus{background:#303030;border-color:#e68a00}body.amber-mode .custom-field-input::placeholder{color:#777}body.amber-mode .floating-panel{background:#222;border:5px solid #555;box-shadow:0 8px 32px #00000080}body.amber-mode .floating-panel-titlebar{color:#ffb300;background:#303030}body.amber-mode .floating-panel-close{color:#f55}body.amber-mode .floating-panel-body,body.amber-mode .modal-content{color:#f5f0e8;background:#222}body.amber-mode .modal-header{color:#ffb300;background:#303030;border-bottom-color:#555}body.amber-mode .modal-header h3{color:#ffb300}body.amber-mode .modal-close{color:#f55}body.amber-mode .modal-close:hover{color:#f77}body.amber-mode .modal-body{color:#f5f0e8}body.amber-mode .modal-body input,body.amber-mode .modal-body select{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .modal-btn-secondary{color:#ffb300;background:#404040}body.amber-mode .pf-tabs-bar{background:#222}body.amber-mode .pf-tab{color:#999;background:#303030;border:1px solid #555}body.amber-mode .pf-tab.active{color:#ffb300;background:#404040;border-color:#e68a00}body.amber-mode .pf-tab.pf-validated{color:#8f8;background:#4caf504d;border-color:#4caf50}body.amber-mode .pf-tab.pf-validated.active{color:#fff;background:#4caf5066;border-color:#4caf50}body.amber-mode .pf-tab.pf-invalidated{color:#f88;background:#e74c3c4d;border-color:#e74c3c}body.amber-mode .pf-tab.pf-invalidated.active{color:#fff;background:#e74c3c66;border-color:#e74c3c}body.amber-mode .project-manager{color:#f5f0e8;background:#222}body.amber-mode .project-manager button{color:#ffb300}body.amber-mode .files-list li:hover{background:#404040}body.amber-mode .floating-legend-window{color:#f5f0e8;background:#222}body.amber-mode .floating-legend-header{color:#ffb300;background:#303030}body.amber-mode .phasage-group-item{color:#f5f0e8;background:#303030}body.amber-mode .phasage-group-courant{color:#ffc640;background:#404040}body.amber-mode .simulation-panel{color:#f5f0e8;background:#222}body.amber-mode .simulation-panel input,body.amber-mode .simulation-panel select{color:#f5f0e8;background:#303030;border-color:#666}body.amber-mode .simulation-panel th,body.amber-mode .simulation-panel td{color:#f5f0e8}body.amber-mode .simulation-panel button{color:#ffb300}body.amber-mode .simulation-item{background:#303030;border-color:#555}body.amber-mode .simulation-item:hover{background:#404040;border-color:#666}body.amber-mode .simulation-item.checked{background:#3a3520}body.amber-mode .sim-action-type{color:#ffb300}body.amber-mode .sim-row-num{color:#999}body.amber-mode .sim-time{color:#ffc640}body.amber-mode .sim-desc{color:#999}body.amber-mode .simulation-info{background:#303030;border-color:#555}body.amber-mode .sim-info-label{color:#999}body.amber-mode .simulation-list-header{color:#ffb300}body.amber-mode .sim-btn{color:#ddd;background:#333;border-color:#555}body.amber-mode .sim-btn:hover{background:#444}body.amber-mode .simulation-traffic-table td{color:#f5f0e8}body.amber-mode .simulation-traffic-header .traffic-title{color:#ffb300}body.amber-mode .grid-1s{background:#ffffff0a}body.amber-mode .grid-5s{background:#ffffff14}body.amber-mode .grid-10s{background:#ffffff26}body.amber-mode .ruler-tick{color:#ffb300}body.amber-mode .diagram-title,body.amber-mode .timeline-ruler{border-bottom-color:#555}body.amber-mode .timeline-row-track{background:#1a1a1a;border-bottom-color:#555}body.amber-mode .comment-row{border-bottom-color:#555}body.amber-mode .grid-cycle-end{background:#ffb300}body.amber-mode .green-cut-overlay{background:#303030}body.amber-mode .intersection-image-container,body.amber-mode .intersection-header{background:#222}body.amber-mode .intersection-header h3{color:#ffb300}body.amber-mode .intersection-image-area{background:#1a1a1a}body.amber-mode .display-options{background:#303030;border-color:#555}body.amber-mode .checkbox-option{color:#f5f0e8}body.amber-mode .image-filters{background:#303030;border-color:#555}body.amber-mode .filter-row{color:#f5f0e8}body.amber-mode .filter-value{color:#ffc640}body.amber-mode .no-selection-hint{color:#999;background:#303030;border-color:#555}body.amber-mode .hint{color:#999}body.amber-mode .arrow-editor{color:#f5f0e8;background:#303030;border-color:#555}body.amber-mode .arrow-editor h4{color:#ffb300}body.amber-mode .arrow-editor label{color:#f5f0e8}body.amber-mode .menu-bar{background:#383838;border-bottom:2px solid #ffb300}body.amber-mode .menu-button{color:#ffb300}body.amber-mode .menu-button.active,body.amber-mode .menu-button:hover{background:#404040}body.amber-mode .menu-button:disabled{color:#666}body.amber-mode .menu-dropdown{background:#303030;border:2px solid #ffb300;border-top:none}body.amber-mode .menu-item{color:#f5f0e8}body.amber-mode .menu-item:hover{background:#404040}body.amber-mode .menu-item.disabled{color:#666}body.amber-mode .menu-separator{border-color:#555}body.amber-mode .menu-header{color:#999}body.amber-mode .submenu-dropdown{background:#303030;border:2px solid #ffb300}body.amber-mode .menu-slider-label,body.amber-mode .menu-slider-value{color:#f5f0e8}h1{text-align:center;margin-bottom:2rem;font-size:2.2em;line-height:1.1}.app-container{text-align:left;width:100%;margin:0;padding:0}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.card{background:var(--bg-card);border-radius:var(--border-radius);padding:2rem;box-shadow:0 4px 6px #0000004d}.main-layout{flex-direction:column;align-items:center;gap:3rem;display:flex}.visualization-section{flex-wrap:wrap;justify-content:center;align-items:center;gap:4rem;display:flex}@media (width<=768px){.visualization-section{flex-direction:column;gap:2rem}}.main-layout.wide{max-width:100%;padding:0 1rem}.visualization-section.full-width{width:100%}body.daltonian-mode{color:#e0e1dd;background-color:#0d1b2a}body.daltonian-mode .app-header{background:#1b263b;border-bottom:2px solid #415a77}body.daltonian-mode .sidebar,body.daltonian-mode .panel{color:#e0e1dd;background:#1b263b;border-color:#415a77}body.daltonian-mode button:focus-visible,body.daltonian-mode input:focus-visible,body.daltonian-mode select:focus-visible,body.daltonian-mode textarea:focus-visible,body.daltonian-mode [role=button]:focus-visible,body.daltonian-mode a:focus-visible,body.daltonian-mode [tabindex]:focus-visible{outline:2px solid #f4a261}body.daltonian-mode .gfx-label,body.daltonian-mode .app-header button{color:#4cc9f0}body.daltonian-mode input,body.daltonian-mode select,body.daltonian-mode textarea,body.daltonian-mode .modal-content{color:#e0e1dd;background:#1b263b;border:1px solid #415a77}body.daltonian-mode .modal-btn-primary{color:#fff;background:#4361ee}body.daltonian-mode .modal-btn-secondary{color:#e0e1dd;background:#415a77}body.daltonian-mode .toggle-btn,body.daltonian-mode .undo-btn{color:#4cc9f0;background:#1b263b;border:1px solid #415a77}body.daltonian-mode .toggle-btn.active{background-color:#4361ee4d}body.daltonian-mode .validate-btn.validated{color:#4cc9f0;background:#4cc9f059;border-color:#4cc9f0}body.daltonian-mode .validate-btn.invalidated{color:#f4a261;background:#f4a26159;border-color:#f4a261}body.sepia-mode{color:#5b4636;background-color:#f4ecd8}body.sepia-mode .app-header{background:#e8dcc0;border-bottom:2px solid #c9b88e}body.sepia-mode .sidebar,body.sepia-mode .panel{color:#5b4636;background:#ede2c5;border-color:#c9b88e}body.sepia-mode button:focus-visible,body.sepia-mode input:focus-visible,body.sepia-mode select:focus-visible,body.sepia-mode textarea:focus-visible,body.sepia-mode [role=button]:focus-visible,body.sepia-mode a:focus-visible,body.sepia-mode [tabindex]:focus-visible{outline:2px solid #8b4513}body.sepia-mode .gfx-label,body.sepia-mode .app-header button{color:#8b4513}body.sepia-mode input,body.sepia-mode select,body.sepia-mode textarea,body.sepia-mode .modal-content{color:#5b4636;background:#faf3e0;border:1px solid #c9b88e}body.sepia-mode .modal-btn-primary{color:#faf3e0;background:#8b4513}body.sepia-mode .modal-btn-secondary{color:#5b4636;background:#c9b88e}body.sepia-mode .toggle-btn,body.sepia-mode .undo-btn{color:#5b4636;background:#ede2c5;border:1px solid #c9b88e}body.sepia-mode .toggle-btn.active{background-color:#8b451333}body.sepia-mode .group-table input,body.sepia-mode .group-table select,body.sepia-mode .group-table select.input-type,body.sepia-mode select.input-courant,body.sepia-mode .input-name-cell,body.sepia-mode .input-mini,body.sepia-mode .input-yellow,body.sepia-mode .input-readonly,body.sepia-mode .input-trafic-text,body.sepia-mode .input-trafic-num,body.sepia-mode .input-time,body.sepia-mode .input-time-sm,body.sepia-mode .input-time-xs,body.sepia-mode .input-da,body.sepia-mode .input-gf,body.sepia-mode .input-action,body.sepia-mode .input-desc,body.sepia-mode .input-abrv,body.sepia-mode .input-micro,body.sepia-mode .input-small,body.sepia-mode .action-table input,body.sepia-mode .action-table select,body.sepia-mode .action-table textarea,body.sepia-mode .traffic-table input,body.sepia-mode .traffic-table select,body.sepia-mode .custom-field-input{color:#5b4636!important;background:#faf3e0!important;border:1px solid #c9b88e!important}body.sepia-mode .input-time-sm:focus,body.sepia-mode .input-time:focus,body.sepia-mode .input-da:focus,body.sepia-mode .action-table input:focus,body.sepia-mode .action-table select:focus,body.sepia-mode .action-table textarea:focus{background:#ede2c5!important;border-color:#8b4513!important}body.sepia-mode .action-table input:disabled,body.sepia-mode .action-table input.input-disabled,body.sepia-mode .input-readonly{color:#a09080!important;background:#e8dcc0!important}body.sepia-mode .action-table select option,body.sepia-mode select option{color:#5b4636;background:#faf3e0}body.sepia-mode .col-id,body.sepia-mode .col-calculated,body.sepia-mode .col-name-readonly{color:#5b4636!important}body.blue-night-mode{color:#93a1a1;background-color:#002b36}body.blue-night-mode .app-header{background:#073642;border-bottom:2px solid #586e75}body.blue-night-mode .sidebar,body.blue-night-mode .panel{color:#93a1a1;background:#073642;border-color:#586e75}body.blue-night-mode button:focus-visible,body.blue-night-mode input:focus-visible,body.blue-night-mode select:focus-visible,body.blue-night-mode textarea:focus-visible,body.blue-night-mode [role=button]:focus-visible,body.blue-night-mode a:focus-visible,body.blue-night-mode [tabindex]:focus-visible{outline:2px solid #b58900}body.blue-night-mode .gfx-label,body.blue-night-mode .app-header button{color:#2aa198}body.blue-night-mode input,body.blue-night-mode select,body.blue-night-mode textarea{color:#eee8d5;background:#073642;border:1px solid #586e75}body.blue-night-mode .modal-content{color:#93a1a1;background:#073642;border:1px solid #586e75}body.blue-night-mode .modal-btn-primary{color:#fdf6e3;background:#268bd2}body.blue-night-mode .modal-btn-secondary{color:#eee8d5;background:#586e75}body.blue-night-mode .toggle-btn,body.blue-night-mode .undo-btn{color:#2aa198;background:#073642;border:1px solid #586e75}body.blue-night-mode .toggle-btn.active{background-color:#268bd24d}body.blue-night-mode .validate-btn.validated{color:#859900;background:#85990059;border-color:#859900}body.blue-night-mode .validate-btn.invalidated{color:#dc322f;background:#dc322f59;border-color:#dc322f}.welcome-screen,.gw-welcome-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 24px;display:flex}.welcome-hint,.gw-welcome-hint{color:#888;margin:0;font-size:1.05em;line-height:1.6}.welcome-example-link{font:inherit;color:#4ecdc4;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.welcome-example-link:hover{color:#6fe3da}.example-banner{color:#d8c98a;text-align:center;background:#2d2a1e;border-bottom:1px solid #6b5d2f;padding:7px 16px;font-size:.85em;line-height:1.4}.example-banner strong{color:#f0e3a8}.readonly-banner{color:#8ac9d8;text-align:center;background:#1e2a2d;border-bottom:1px solid #2f5d6b;padding:7px 16px;font-size:.85em;line-height:1.4}.readonly-banner strong{color:#a8e6f0}.dossier-readonly .group-table-container input,.dossier-readonly .group-table-container select,.dossier-readonly .traffic-table-container input,.dossier-readonly .traffic-table-container select,.dossier-readonly .properties-panel input,.dossier-readonly .properties-panel select,.dossier-readonly .properties-panel textarea,.dossier-readonly .matrix-container-inline input,.dossier-readonly .action-table-container input,.dossier-readonly .action-table-container select,.dossier-readonly .action-table-container textarea,.dossier-readonly .app-header input:not([type=range]){pointer-events:none;opacity:.55;cursor:not-allowed}body.high-contrast-mode .example-banner,body.amber-mode .example-banner{color:#f5d000;background:#1a1f3a;border-bottom-color:#f5d000}body.high-contrast-mode .example-banner strong,body.amber-mode .example-banner strong{color:#fff}
