@import"https://fonts.googleapis.com/css2?family=Raleway:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700&display=swap";:root{--primary-blue: #0c1b3a;--primary-light: #132d5e;--accent-blue: #3b82f6;--accent-cyan: #42D3EC;--accent-hover: #2bc4dd;--dark-gray: #1a1a2e;--medium-gray: #6b7280;--light-gray: #e5e7eb;--text-primary: #1a1a2e;--text-secondary: #6b7280;--background-white: #ffffff;--background-app: #f5f7fa;font-family:Raleway,Sen,system-ui,sans-serif;line-height:1.5;font-weight:400;font-size:16px;color-scheme:light;color:var(--text-primary);background-color:var(--background-white);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}#root{width:100%;min-height:100vh}a{font-weight:500;color:var(--accent-blue);text-decoration:inherit;transition:color .25s}a:hover{color:var(--primary-blue)}body{margin:0;padding:0;min-width:320px;min-height:100vh;width:100%;overflow-x:hidden;background-color:var(--background-white);color:var(--text-primary)}h1{font-size:2.625em;line-height:1.2;font-weight:700;color:var(--primary-blue);margin:0}h2{font-size:2.25em;font-weight:600;color:var(--primary-blue);margin:0}h3{font-size:1.25em;font-weight:600;color:var(--dark-gray);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .3s;border:none;text-decoration:none}.btn-primary{background:var(--primary-blue);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px);color:#fff}.btn-outline{background:transparent;color:var(--dark-gray);border:2px solid var(--light-gray)}.btn-outline:hover{border-color:var(--primary-blue);color:var(--primary-blue)}.btn-ghost{background:transparent;color:var(--medium-gray);border:none;padding:8px;border-radius:6px}.btn-ghost:hover{background:#f0f0f0;color:var(--primary-blue)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:14px 32px;font-size:16px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.card{background:#fff;border-radius:12px;border:1px solid #e9ecef;box-shadow:0 1px 3px #00000014}.card:hover.card-hover{box-shadow:0 4px 12px #0000001f}.card-header{padding:20px 24px 8px}.card-title{font-size:18px;font-weight:600;margin:0;color:var(--dark-gray)}.card-description{font-size:14px;color:var(--text-secondary);margin:4px 0 0}.card-content{padding:0 24px 20px}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.form-stack{display:flex;flex-direction:column;gap:20px}.form-hint{font-size:12px;color:var(--text-secondary);margin:2px 0 0}.form-label{font-size:14px;font-weight:600;color:var(--dark-gray)}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;border:2px solid var(--light-gray);border-radius:8px;font-size:15px;font-family:inherit;transition:border-color .3s,box-shadow .3s;background:#fff}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4a8eff1a}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:#f5f5f5;cursor:not-allowed}.loader{display:flex;align-items:center;justify-content:center;min-height:200px}.loader-fullpage{min-height:100vh}.spinner{width:32px;height:32px;border:3px solid #e9ecef;border-top:3px solid var(--primary-blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.badge{display:inline-block;padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}.badge-branch{background:#fef3c7;color:#92400e}.badge-leaf{background:#dcfce7;color:#166534}.badge-muted{background:#f0f0f0;color:#666}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media(max-width:767px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.sidebar-app-selector{padding:12px;border-bottom:1px solid rgba(255,255,255,.08)}.app-selector{position:relative}.app-selector-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-family:Raleway,sans-serif;font-size:13px;font-weight:600;color:#ffffffbf;transition:all .2s}.app-selector-btn:hover{background:#ffffff1f;color:#fff;border-color:#fff3}.app-selector-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#42d3ec33;border-radius:6px;color:#42d3ec;flex-shrink:0}.app-selector-label{flex:1;text-align:left}.app-selector-popup{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border-radius:10px;box-shadow:0 12px 40px #00000040;padding:6px;z-index:1500;animation:appPopIn .15s ease-out}@keyframes appPopIn{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.app-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;text-decoration:none;color:#1a1a2e;transition:all .15s;cursor:pointer}.app-card:hover{background:#f0f7ff}.app-card.active{background:#42d3ec1f;cursor:default}.app-card.active .app-card-name{color:#0c1b3a}.app-card.active .app-card-icon{background:#42d3ec33;color:#0c1b3a}.app-card.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.app-card-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:8px;flex-shrink:0;color:#6b7280}.app-card:hover .app-card-icon{background:#e0ecff;color:#2563eb}.app-card-info{display:flex;flex-direction:column;gap:1px;overflow:hidden}.app-card-name{font-family:Raleway,sans-serif;font-size:13px;font-weight:700;color:#0c1b3a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-card-desc{font-family:Raleway,sans-serif;font-size:11px;color:#9ca3af}@media(max-width:768px){.sidebar-app-selector{padding:8px 6px}.app-selector-btn{justify-content:center;padding:8px}.app-selector-label{display:none}.app-selector-popup{left:-4px;right:auto;width:220px}}.sidebar{width:240px;min-width:240px;height:calc(100vh - 64px);background:linear-gradient(180deg,#0c1b3a,#132d5e);display:flex;flex-direction:column;position:sticky;top:64px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.sidebar-nav{flex:1;padding:16px 0;display:flex;flex-direction:column;gap:4px}.sidebar-section{padding:0 12px;margin-bottom:8px}.sidebar-section-label{display:flex;align-items:center;gap:6px;padding:8px 12px 6px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#ffffff59}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 14px;margin:1px 0;border-radius:8px;color:#ffffffa6;text-decoration:none;font-size:13.5px;font-weight:500;transition:all .2s ease;position:relative}.sidebar-link:hover{color:#fff;background:#ffffff14}.sidebar-link.active{color:#fff;background:#42d3ec26;font-weight:600}.sidebar-link.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#42d3ec;border-radius:0 4px 4px 0}.sidebar-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#ffffff0f;flex-shrink:0;transition:background .2s}.sidebar-link:hover .sidebar-icon,.sidebar-link.active .sidebar-icon{background:#42d3ec33}.sidebar-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{padding:12px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-user-badge{display:flex;align-items:center;gap:10px;padding:10px;border-radius:8px;background:#ffffff0d}.sidebar-user-avatar{width:34px;height:34px;border-radius:8px;background:linear-gradient(135deg,#42d3ec,#1e88e5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.sidebar-user-info{display:flex;flex-direction:column;min-width:0}.sidebar-user-name{font-size:12.5px;font-weight:600;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;font-weight:500;color:#42d3eccc}@media(max-width:768px){.sidebar{width:70px;min-width:70px}.sidebar-text,.sidebar-section-label,.sidebar-user-info,.sidebar-app-selector{display:none}.sidebar-link{justify-content:center;padding:10px 6px}.sidebar-footer{display:flex;justify-content:center}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#42D3EC 0%,var(--primary-blue) 100%);padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;width:100%;max-width:450px;padding:40px;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.login-logo{width:150px;height:auto;margin-bottom:20px}.login-header h1{font-family:Raleway,sans-serif;font-size:2em;font-weight:700;color:var(--primary-blue);margin:0 0 10px}.login-subtitle{font-family:Raleway,sans-serif;font-size:1em;color:var(--text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:#fee;border:1px solid #fcc;border-left:4px solid #d32f2f;color:#d32f2f;padding:12px 15px;border-radius:6px;display:flex;align-items:center;gap:10px;font-size:14px}.error-icon{font-size:18px;font-weight:700;width:24px;height:24px;border-radius:50%;background:#d32f2f;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-form .form-group{display:flex;flex-direction:column;gap:8px}.login-form label{font-family:Raleway,sans-serif;font-size:14px;font-weight:600;color:var(--dark-gray)}.login-form input{padding:12px 16px;border:2px solid var(--light-gray);border-radius:8px;font-size:15px;font-family:Raleway,sans-serif;transition:all .3s;background:#fff}.login-form input:focus{outline:none;border-color:var(--accent-blue);box-shadow:0 0 0 3px #4a8eff1a}.login-form input:disabled{background:#f5f5f5;cursor:not-allowed}.btn-login{padding:14px 20px;background:var(--accent-blue);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;font-family:Raleway,sans-serif;cursor:pointer;transition:all .3s;margin-top:10px;box-shadow:0 4px 12px #4a8eff4d}.btn-login:hover:not(:disabled){background:var(--primary-blue);transform:translateY(-2px);box-shadow:0 6px 20px #4a8eff66}.btn-login:disabled{background:var(--light-gray);cursor:not-allowed;box-shadow:none}.login-sep{display:flex;align-items:center;text-align:center;margin:22px 0 18px;color:var(--text-secondary);font-family:Raleway,sans-serif;font-size:13px}.login-sep:before,.login-sep:after{content:"";flex:1;height:1px;background:#e9ecef}.login-sep span{padding:0 12px}.btn-sso{width:100%;padding:13px 20px;background:#fff;color:var(--primary-blue);border:2px solid var(--accent-blue);border-radius:8px;font-size:15px;font-weight:600;font-family:Raleway,sans-serif;cursor:pointer;transition:all .3s}.btn-sso:hover:not(:disabled){background:#4a8eff14;transform:translateY(-2px)}.btn-sso:active:not(:disabled){transform:translateY(0)}.btn-sso:disabled{border-color:var(--light-gray);color:var(--text-secondary);cursor:not-allowed}.login-footer{text-align:center;margin-top:30px;padding-top:20px;border-top:1px solid #e9ecef}.login-footer p{font-family:Raleway,sans-serif;font-size:13px;color:var(--text-secondary);margin:0}.page-title{font-size:1.5em;font-weight:700;color:var(--primary-blue);margin:0 0 24px}.section-title{font-size:1.1em;font-weight:600;margin:32px 0 16px;color:var(--dark-gray)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.stat-card .card-header{padding:16px 20px}.stat-value{font-size:2em;font-weight:700;margin:8px 0 0;color:var(--dark-gray)}.actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.action-card{display:block;text-decoration:none;color:inherit;padding:20px 24px;cursor:pointer;transition:box-shadow .3s}.action-card:hover{box-shadow:0 4px 12px #0000001f}.action-icon{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:12px}.action-card h4{font-size:16px;font-weight:600;margin:0 0 4px;color:var(--dark-gray)}.action-card p{font-size:14px;color:var(--text-secondary);margin:0}.simulateur-link{text-align:center;margin-top:32px}.simulateur-link a{color:var(--primary-blue);font-weight:500}.simulateur-link a:hover{text-decoration:underline}@media(max-width:767px){.stats-grid,.actions-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.stats-grid,.actions-grid{grid-template-columns:1fr}}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.ceilings-editor{display:flex;flex-direction:column;gap:8px}.ceilings-empty{font-size:12.5px;color:var(--text-secondary);font-style:italic;margin:0}.ceiling-row{border:1px solid var(--light-gray, #e5e7eb);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;background:#fafbfc}.ceiling-row-main,.ceiling-row-side{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.ceiling-row select,.ceiling-row input{border:1px solid var(--light-gray, #e5e7eb);border-radius:6px;padding:5px 7px;font-size:12.5px;background:#fff}.ceil-field{max-width:190px}.ceil-op{width:64px}.ceil-num{width:90px}.ceil-sep{font-size:12px;color:var(--text-secondary)}.ceil-arrow{color:#94a3b8;font-weight:700}.ceil-amount{width:110px;font-weight:700}.ceil-euro{font-weight:700;color:#475569}.ceil-label{flex:1;min-width:140px;font-style:italic}.ceil-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;border-radius:5px;border:1px solid var(--light-gray, #e5e7eb);background:#fff;color:#64748b;cursor:pointer}.ceil-btn:hover:not(:disabled){border-color:#2563eb;color:#2563eb}.ceil-btn:disabled{opacity:.35;cursor:default}.ceil-btn.danger:hover{border-color:#dc2626;color:#dc2626;background:#fef2f2}.ceilings-hint{font-size:11.5px;color:var(--text-secondary);margin:0}.ceiling-row.locked{background:#f1f5f9}.ceil-locked-label{flex:1;font-size:12.5px;font-style:italic;color:#475569}.flow-node{position:relative;font-family:Segoe UI,Arial,sans-serif;box-sizing:border-box}.flow-node.selected{outline:2px dashed #2563eb;outline-offset:3px}.color-green{--grad-a: #45b35a;--grad-b: #176f2e;--grad-border: #0d4a1d}.color-gold{--grad-a: #ddb02a;--grad-b: #9c7404;--grad-border: #6d5002}.color-blue{--grad-a: #6c8fc0;--grad-b: #2e5388;--grad-border: #1d3a66}.color-steel{--grad-a: #8aa6cc;--grad-b: #3a5e94;--grad-border: #24416e}.color-black{--grad-a: #4a4a4a;--grad-b: #050505;--grad-border: #000}.color-magenta{--grad-a: #d63384;--grad-b: #94134f;--grad-border: #6b0d39}.flow-reftag{position:absolute;top:-15px;left:2px;font-size:9px;color:#8a8a8a;font-weight:600;white-space:nowrap;pointer-events:none}.flow-decision .flow-reftag{top:2px;left:2px}.flow-handle{width:9px;height:9px;border-radius:50%;background:#2563eb;border:2px solid white;opacity:0;transition:opacity .15s}.flow-node:hover .flow-handle{opacity:1}.flow-readonly .flow-handle,.flow-readonly .flow-node:hover .flow-handle{opacity:0;pointer-events:none}.flow-start{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:2px solid var(--grad-border);border-radius:12px;padding:10px 16px;color:#fff;text-align:center}.flow-start-label{font-size:13px;font-weight:700;line-height:1.35}.flow-start-label div:last-child{color:#dbe7ff;margin-top:2px}.flow-family{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:1.5px solid var(--grad-border);border-radius:6px;padding:9px 12px;color:#fff;text-align:center;box-shadow:2px 2px 5px #00000040}.flow-family-label{font-size:13px;font-weight:700;line-height:1.25}.flow-decision{background:transparent}.flow-diamond-outer,.flow-diamond-inner{position:absolute;inset:0;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.flow-diamond-outer{background:var(--grad-border)}.flow-diamond-inner{inset:2px;background:linear-gradient(180deg,var(--grad-a),var(--grad-b))}.flow-decision-content{position:absolute;inset:14%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff}.flow-decision-label{font-size:11px;font-weight:700;line-height:1.2}.flow-decision .flow-lines{margin-top:3px}.flow-decision .flow-line{font-size:7.5px;line-height:1.15;justify-content:center;text-align:center}.flow-condition{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:2px solid var(--grad-border);border-radius:50%;padding:12px 14px;color:#fff;text-align:center}.flow-condition-label{font-size:10.5px;font-weight:700;line-height:1.2}.flow-solution{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:1.5px solid var(--grad-border);border-radius:5px;padding:7px 9px;color:#fff;text-align:center;box-shadow:2px 2px 4px #0003}.flow-solution-label{font-size:10px;font-weight:700;line-height:1.25}.flow-aid{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:1.5px solid rgba(255,255,255,.55);border-radius:10px;padding:7px 9px 6px;color:#fff;text-align:center;box-shadow:2px 3px 6px #0000004d}.flow-aid.border-red{border:2.5px solid #e01010}.flow-aid-title{font-size:11px;font-weight:700;font-style:italic}.flow-aid-subtitle{font-size:9.5px;font-weight:700;margin-top:1px}.flow-aid-duration{margin-top:4px;padding-top:3px;border-top:1px solid rgba(255,255,255,.35);font-size:8.5px;font-style:italic;font-weight:600}.flow-lines{margin-top:3px;display:flex;flex-direction:column;gap:1px}.flow-line{font-size:8.8px;line-height:1.25;font-weight:500;display:flex;align-items:center;justify-content:center;gap:3px;flex-wrap:wrap}.flow-line.line-bold{font-weight:800}.flow-line.line-red span:last-child{background:#d40000;color:#fff;padding:0 4px;border-radius:3px;font-weight:700}.flow-line.line-red-text{color:#d40000}.flow-line.line-red-text span:last-child{background:none;padding:0}.flow-badge{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;min-width:16px;border-radius:50%;background:linear-gradient(180deg,#b9b9b9,#7b7b7b);border:1px solid #5e5e5e;color:#fff;font-size:9px;font-weight:800;font-style:normal}.flow-badges-corner{position:absolute;top:-9px;left:-9px;display:flex;flex-direction:column;gap:2px;z-index:2}.flow-badge-inline{width:13px;height:13px;min-width:13px;font-size:8px}.flow-info{background:linear-gradient(180deg,var(--grad-a),var(--grad-b));border:2px solid var(--grad-border);border-radius:14px;padding:7px 10px;color:#fff;text-align:center}.flow-info-label{font-size:9.5px;font-weight:700;line-height:1.35}.flow-note{background:#fff;border:2.5px solid #d40000;border-radius:4px;padding:8px 10px;color:#1a1a1a;text-align:center}.flow-note-label,.flow-note .flow-line{font-size:10px;font-weight:600}.flow-editor{--ink: #0c1b3a;--ink-soft: #475569;--muted: #64748b;--line: #e2e8f0;--line-soft: #eef2f7;--surface: #ffffff;--surface-2: #f8fafc;--accent: #2563eb;--accent-soft: #eff6ff;display:flex;height:calc(100vh - 160px);border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 1px 3px #0c1b3a0f;color:var(--ink)}.flow-editor .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-width:26px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s}.flow-editor .icon-btn:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.flow-editor .icon-btn:disabled{opacity:.3;cursor:default}.flow-editor .icon-btn.danger:hover{background:#fef2f2;color:#dc2626}.flow-palette{width:214px;min-width:214px;background:var(--surface-2);border-right:1px solid var(--line);display:flex;flex-direction:column;overflow-y:auto;transition:width .18s ease,min-width .18s ease}.flow-palette.collapsed{width:58px;min-width:58px;align-items:center}.palette-head{display:flex;align-items:center;justify-content:space-between;padding:12px 10px 8px;gap:6px}.palette-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted)}.palette-hint{margin:0 12px 10px;font-size:11px;line-height:1.4;color:var(--muted)}.palette-groups{display:flex;flex-direction:column;gap:14px;padding:0 8px 12px;width:100%}.flow-palette.collapsed .palette-group+.palette-group{border-top:1px solid var(--line);padding-top:10px}.palette-group{display:flex;flex-direction:column;gap:4px}.palette-group-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.9px;color:#94a3b8;padding:0 4px 2px}.palette-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:9px;border:1px solid transparent;background:transparent;cursor:grab;text-align:left;font-family:inherit;transition:all .15s}.palette-item:hover{background:#fff;border-color:var(--line);box-shadow:0 2px 6px #0c1b3a12}.palette-item:active{cursor:grabbing;transform:scale(.985)}.flow-palette.collapsed .palette-item{justify-content:center;padding:8px 0}.palette-item-text{display:flex;flex-direction:column;gap:1px;min-width:0}.palette-item-text b{font-size:12.5px;font-weight:700;color:var(--ink);line-height:1.2}.palette-item-text em{font-size:10.5px;font-style:normal;color:var(--muted);line-height:1.25;overflow:hidden;text-overflow:ellipsis}.palette-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:7px}.palette-foot p{margin:0;font-size:10.8px;line-height:1.4;color:var(--muted)}.palette-foot b{color:var(--ink-soft)}.brick-shape{width:26px;height:18px;min-width:26px;display:block;border-radius:3px;background:linear-gradient(180deg,#ddb02a,#9c7404);box-shadow:inset 0 0 0 1px #ffffff59}.shape-start{width:30px;height:14px;border-radius:7px;background:linear-gradient(180deg,#8aa6cc,#3a5e94)}.shape-family{border-radius:3px;background:linear-gradient(180deg,#ddb02a,#9c7404)}.shape-decision{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);border-radius:0;box-shadow:none}.shape-condition{border-radius:50%;background:linear-gradient(180deg,#d63384,#94134f)}.shape-solution{width:24px;height:15px;border-radius:2px;background:linear-gradient(180deg,#c89a18,#8f6a04)}.shape-aid{border-radius:6px;box-shadow:inset 0 0 0 1px #ffffffbf}.shape-info{border-radius:8px;background:linear-gradient(180deg,#45b35a,#176f2e)}.shape-note{background:#fff;border:2px solid #d40000;border-radius:2px;box-shadow:none}.flow-canvas{flex:1;position:relative;background:#fbfcfe;min-width:0}.flow-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:calc(100% - 185px);background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:6px 8px;border:1px solid var(--line);border-radius:10px;box-shadow:0 4px 14px #0c1b3a1a;font-size:12px}.tb-sep{width:1px;height:20px;background:var(--line);flex-shrink:0}.tb-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--ink-soft);cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;white-space:nowrap;text-decoration:none;transition:all .15s}.tb-toggle:hover{background:var(--line-soft);color:var(--ink)}.tb-toggle.on{background:var(--ink);border-color:var(--ink);color:#fff}.tb-toggle.on:hover{background:#132d5e;color:#fff}.tb-range{width:90px;accent-color:var(--ink)}.tb-warn{display:inline-flex;align-items:center;gap:6px;background:#fff7ed;border:1px solid #fed7aa;color:#b45309;border-radius:8px;padding:5px 9px;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.tb-warn:hover{background:#ffedd5}.tb-counts{color:var(--muted);font-weight:600;white-space:nowrap;padding-right:4px;font-size:11.5px}.tb-search{position:relative;display:flex;align-items:center;gap:6px;color:#94a3b8;padding-left:4px}.tb-search input{border:none;outline:none;background:transparent;font-family:inherit;font-size:12.5px;width:138px;color:var(--ink);padding:6px 0}.tb-search input::placeholder{color:#a8b3c2}.tb-search-clear{display:inline-flex;border:none;background:transparent;color:#94a3b8;cursor:pointer;padding:2px;border-radius:4px}.tb-search-clear:hover{color:var(--ink)}.tb-search-results{position:absolute;top:calc(100% + 8px);left:-4px;width:310px;z-index:50;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px #0c1b3a2e;overflow:hidden;padding:4px}.tb-search-results button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:12.5px;border-radius:7px;color:var(--ink)}.tb-search-results button:hover{background:var(--accent-soft)}.tsr-type{font-size:9.5px;font-weight:800;text-transform:uppercase;white-space:nowrap;background:#f1f5f9;color:#64748b;border-radius:6px;padding:2px 6px;flex-shrink:0}.tsr-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tsr-acc{font-size:11px;color:var(--accent);font-weight:600;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}.flow-toasts{position:absolute;bottom:18px;left:50%;transform:translate(-50%);z-index:20;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.flow-toast{display:flex;align-items:center;gap:12px;background:var(--ink);color:#fff;border-radius:10px;padding:9px 15px;font-size:13px;font-weight:600;box-shadow:0 10px 28px #0c1b3a52;animation:fadeIn .15s ease;pointer-events:auto}.flow-toast.undo button{display:inline-flex;align-items:center;gap:5px;background:#ffffff24;color:#7dd3fc;border:none;border-radius:7px;padding:5px 11px;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer}.flow-toast.undo button:hover{background:#ffffff3d}.flow-panel{width:400px;min-width:400px;background:var(--surface);border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:hidden}.fp-head{display:flex;align-items:center;gap:8px;padding:12px 12px 10px 14px;border-bottom:1px solid var(--line-soft)}.fp-chip{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;background:#f1f5f9;border-radius:20px;padding:4px 10px 4px 6px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-soft)}.fp-chip-dot{width:11px;height:11px;border-radius:50%;background:#94a3b8}.fp-head-title{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-preview{display:flex;align-items:center;justify-content:center;padding:20px 16px 16px;min-height:96px;background:radial-gradient(circle at 1px 1px,#dbe3ec 1px,transparent 0) 0 0 / 14px 14px,linear-gradient(180deg,#f8fafc,#f1f5f9);border-bottom:1px solid var(--line-soft)}.fp-preview-stage{display:flex;align-items:center;justify-content:center}.fp-tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--line)}.fp-tab{position:relative;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:8px 6px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:6px 6px 0 0;transition:color .15s,background .15s}.fp-tab:hover{color:var(--ink);background:var(--surface-2)}.fp-tab.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}.fp-tab-dot{width:6px;height:6px;border-radius:50%;background:#22c55e;position:absolute;top:6px;right:8px}.panel-body{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:14px}.fp-foot{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface-2)}.fp-foot-acc{display:inline-flex;align-items:center;gap:5px;margin-right:auto;font-size:11px;font-weight:600;color:#4f46e5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.fp-foot .btn-soft:last-child{margin-left:auto}.fp-foot-acc~.btn-soft:last-child{margin-left:0}.btn-soft{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.btn-soft:hover{border-color:#cbd5e1;background:var(--surface-2);color:var(--ink)}.btn-soft.danger{color:#b91c1c}.btn-soft.danger:hover{background:#fef2f2;border-color:#fecaca;color:#991b1b}.panel-field{display:flex;flex-direction:column;gap:5px;flex:none;min-width:0}.panel-row>.panel-field{flex:1 1 0}.panel-field>span{font-size:10.5px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.panel-field>span em{font-style:normal;font-weight:600;text-transform:none;letter-spacing:0;opacity:.8}.panel-field input,.panel-field select,.panel-field textarea{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}.panel-field input:focus,.panel-field select:focus,.panel-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.panel-field textarea{resize:vertical;line-height:1.4}.panel-row{display:flex;gap:10px}.field-help{margin:2px 0 0;font-size:11px;line-height:1.4;color:var(--muted)}.field-empty{margin:0;font-size:12px;font-style:italic;color:var(--muted)}.panel-note{margin:0;padding:10px 12px;border-radius:9px;background:var(--surface-2);border:1px solid var(--line);font-size:12px;line-height:1.45;color:var(--ink-soft)}.panel-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.panel-toggle:hover{border-color:#cbd5e1}.panel-toggle input{width:16px;height:16px;accent-color:#dc2626;cursor:pointer}.panel-toggle-text{display:flex;flex-direction:column;gap:1px}.panel-toggle-text b{font-size:12.5px;font-weight:700}.panel-toggle-text em{font-style:normal;font-size:11px;color:var(--muted)}.chip-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.shape-chip,.color-chip{display:flex;align-items:center;gap:8px;text-align:left;padding:8px 9px;border-radius:9px;border:1px solid var(--line);background:#fff;cursor:pointer;font-family:inherit;transition:all .15s}.shape-chip:hover,.color-chip:hover{border-color:#cbd5e1;background:var(--surface-2)}.shape-chip.on,.color-chip.on{border-color:var(--ink);background:#f4f7fc;box-shadow:inset 0 0 0 1px var(--ink)}.shape-chip-label{font-size:11.5px;font-weight:600;color:var(--ink);line-height:1.2;overflow:hidden;text-overflow:ellipsis}.color-swatch{width:20px;height:20px;min-width:20px;border-radius:6px;box-shadow:inset 0 0 0 1px #00000026}.color-chip-text{display:flex;flex-direction:column;min-width:0}.color-chip-text b{font-size:11.5px;font-weight:700}.color-chip-text em{font-style:normal;font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.width-row{display:flex;align-items:center;gap:10px}.width-row input[type=range]{flex:1;accent-color:var(--ink)}.width-num{width:78px}.ref-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ref-row select{flex:1;min-width:0}.ref-row input{width:76px}.ref-preview{font-size:11px;font-weight:700;color:#64748b;background:#f1f5f9;border-radius:6px;padding:4px 8px;white-space:nowrap}.lines-editor{display:flex;flex-direction:column;gap:7px}.line-card{display:flex;flex-direction:column;gap:6px;border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--surface-2)}.line-text{border:1px solid var(--line);border-radius:7px;padding:6px 9px;font-size:12.5px;font-family:inherit;background:#fff;color:var(--ink)}.line-text:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1f}.line-tools{display:flex;align-items:center;gap:5px}.line-spacer{flex:1}.line-badge{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:7px;background:#fff;padding:2px 5px}.line-badge span{font-size:10px;font-weight:700;color:#94a3b8}.line-badge input{width:34px;border:none;outline:none;background:transparent;font-family:inherit;font-size:11.5px;padding:3px 0;color:var(--ink)}.line-pill{padding:4px 9px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;font-family:inherit;font-size:10.5px;font-weight:700;transition:all .15s}.line-pill:hover{border-color:#cbd5e1;color:var(--ink)}.line-pill.bold.on{background:var(--ink);border-color:var(--ink);color:#fff}.line-pill.on.red{background:#d40000;border-color:#d40000;color:#fff}.btn-add-line{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px;border-radius:8px;border:1px dashed #cbd5e1;background:transparent;color:var(--ink-soft);cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.btn-add-line:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.edge-colors{display:flex;gap:8px}.edge-color{flex:1;padding:8px;border-radius:8px;border:2px solid transparent;color:#fff;font-family:inherit;font-weight:700;font-size:12px;cursor:pointer;opacity:.5;transition:all .15s}.edge-color:hover{opacity:.8}.edge-color.on{opacity:1;border-color:var(--ink)}.btn-swap{display:inline-flex;align-items:center;justify-content:center;gap:6px;align-self:center;padding:5px 12px;border-radius:20px;border:1px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer;font-family:inherit;font-size:11.5px;font-weight:600}.btn-swap:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.panel-calc{border:1px solid #dbe2fb;background:#f7f8ff;border-radius:11px;padding:12px;display:flex;flex-direction:column;gap:10px}.panel-calc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.panel-calc-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#3730a3}.panel-calc-note{font-size:11.5px;color:#6366f1;margin:0}.panel-calc-warn{margin:0;font-size:11.5px;line-height:1.4;color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:8px 10px}.panel-calc .ceiling-row{background:#fff;border-color:#e6eafc}.panel-calc .ceil-field{flex:1;min-width:118px;max-width:none}.panel-calc .ceil-op{width:58px}.panel-calc .ceil-num{width:72px}.panel-calc .ceil-amount{width:88px}.panel-calc .ceil-label{min-width:110px}.panel-calc .panel-field input,.panel-calc .panel-field select,.panel-calc .panel-field textarea{border-color:#dbe2fb}.year-tabs{display:flex;gap:3px;flex-wrap:wrap}.year-tab{padding:4px 11px;border-radius:7px;border:1px solid #dbe2fb;background:#fff;color:#4f46e5;font-family:inherit;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s}.year-tab:hover{background:#eef2ff}.year-tab.active{background:#4f46e5;color:#fff;border-color:#4f46e5}.year-tab.add{display:inline-flex;align-items:center;padding:4px 8px;color:#6366f1}.year-add{display:flex;gap:6px}.year-add input{width:84px;border:1px solid #dbe2fb;border-radius:8px;padding:6px 9px;font-family:inherit;font-size:13px}.year-add .btn{padding:6px 10px}.btn-remove-year{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;background:none;border:none;cursor:pointer;padding:2px 0;font-family:inherit;color:#b91c1c;font-size:11.5px;font-weight:600}.btn-remove-year:hover{text-decoration:underline}.fp-empty{flex:1;overflow-y:auto;padding:28px 20px;display:flex;flex-direction:column;align-items:center;text-align:center}.fp-empty-icon{width:46px;height:46px;border-radius:14px;margin-bottom:12px;background:var(--surface-2);border:1px solid var(--line);color:#94a3b8;display:flex;align-items:center;justify-content:center}.fp-empty h4{margin:0 0 6px;font-size:14.5px;font-weight:700;color:var(--ink)}.fp-empty>p{margin:0 0 16px;font-size:12.5px;line-height:1.5;color:var(--muted);max-width:290px}.fp-empty-tips{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:7px;text-align:left}.fp-empty-tips li{font-size:12px;line-height:1.45;color:var(--ink-soft);background:var(--surface-2);border:1px solid var(--line-soft);border-radius:9px;padding:9px 11px}.fp-empty-tips b{color:var(--ink)}.fp-empty-audit{margin-top:18px;width:100%;text-align:left;border:1px solid #fed7aa;background:#fffbf5;border-radius:11px;padding:11px;display:flex;flex-direction:column;gap:6px}.fp-empty-audit-head{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#b45309}.fp-empty-audit>p{margin:0 0 2px;font-size:11px;line-height:1.4;color:#a16207}.fp-empty-audit-item{display:flex;align-items:center;gap:7px;width:100%;text-align:left;padding:6px 8px;border:1px solid #fde3c2;border-radius:8px;background:#fff;cursor:pointer;font-family:inherit;font-size:12px;color:var(--ink)}.fp-empty-audit-item:hover{border-color:#fdba74;background:#fff7ed}.fp-empty-audit-more{margin:0;font-size:11px;color:#a16207;font-style:italic}.save-state{font-size:11px;font-weight:700;white-space:nowrap}.save-state.saving{color:#94a3b8}.save-state.saved{color:#16a34a}.save-state.error{color:#dc2626}.btn-danger-solid{display:inline-flex;align-items:center;gap:6px;background:#dc2626;color:#fff;border:none}.btn-danger-solid:hover{background:#b91c1c;color:#fff}.confirm-overlay{position:fixed;inset:0;z-index:1300;background:#0c1b3a8c;display:flex;align-items:center;justify-content:center;animation:fadeIn .12s ease}.confirm-modal{background:#fff;border-radius:14px;padding:24px 26px;width:400px;max-width:calc(100vw - 40px);text-align:center;box-shadow:0 24px 60px #0c1b3a59}.confirm-icon{width:46px;height:46px;border-radius:50%;margin:0 auto 12px;background:#fef2f2;color:#dc2626;display:flex;align-items:center;justify-content:center}.confirm-modal h4{font-size:16.5px;font-weight:700;margin:0 0 8px}.confirm-modal p{font-size:13.5px;color:var(--text-secondary);line-height:1.5;margin:0 0 18px}.confirm-actions{display:flex;gap:10px;justify-content:center}.confirm-actions .btn{min-width:120px;justify-content:center}@media(max-width:1200px){.flow-panel{width:340px;min-width:340px}.chip-grid{grid-template-columns:1fr}}.drw-backdrop{position:fixed;inset:0;background:#0c1b3a59;z-index:1200}.drw{position:fixed;top:0;right:0;bottom:0;width:580px;max-width:100vw;z-index:1210;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-18px 0 44px #0c1b3a2e;display:flex;flex-direction:column;color:#0c1b3a;animation:drwIn .18s ease}@keyframes drwIn{0%{transform:translate(24px);opacity:.4}to{transform:none;opacity:1}}.drw-head{display:flex;align-items:center;gap:10px;padding:16px 16px 14px 20px;border-bottom:1px solid #eef2f7}.drw-title{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.drw-title b{font-size:16px;font-weight:700;line-height:1.25}.drw-title em{font-style:normal;font-size:11.5px;color:#94a3b8}.drw-save{font-size:11.5px;font-weight:700;white-space:nowrap}.drw-save.saving{color:#94a3b8}.drw-save.saved{color:#16a34a}.drw-save.error{color:#dc2626}.drw-icon{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-width:30px;border-radius:8px;border:1px solid transparent;background:transparent;color:#64748b;cursor:pointer}.drw-icon:hover{background:#f1f5f9;color:#0c1b3a}.drw-tabs{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid #e2e8f0}.drw-tabs button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 6px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-1px;border-radius:7px 7px 0 0}.drw-tabs button:hover{color:#0c1b3a;background:#f8fafc}.drw-tabs button.on{color:#0c1b3a;font-weight:700;border-bottom-color:#0c1b3a}.drw-badge{background:#dbeafe;color:#1e40af;border-radius:9px;padding:1px 6px;font-size:10.5px;font-weight:800}.drw-body{flex:1;overflow-y:auto;padding:18px 20px 28px;display:flex;flex-direction:column;gap:16px}.drw-field{display:flex;flex-direction:column;gap:6px}.drw-field>span{font-size:10.5px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.drw-field>input,.drw-field>select,.drw-field>textarea,.drw-unit>input{border:1px solid #e2e8f0;border-radius:9px;padding:9px 11px;font-family:inherit;font-size:13.5px;color:#0c1b3a;background:#fff;width:100%;transition:border-color .15s,box-shadow .15s}.drw-field>input:focus,.drw-field>select:focus,.drw-field>textarea:focus,.drw-unit>input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.drw-field>textarea{resize:vertical;line-height:1.45}.drw-row{display:flex;gap:12px}.drw-row>.drw-field{flex:1;min-width:0}.drw-row>.drw-field.small{flex:0 0 110px}.drw-unit{position:relative;display:flex;align-items:center}.drw-unit input{padding-right:30px}.drw-unit i{position:absolute;right:11px;font-style:normal;font-size:12.5px;font-weight:700;color:#94a3b8;pointer-events:none}.drw-types{display:grid;grid-template-columns:1fr 1fr;gap:7px}.drw-type{display:flex;flex-direction:column;gap:2px;text-align:left;padding:9px 11px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;cursor:pointer;font-family:inherit;transition:all .15s}.drw-type:hover{border-color:#cbd5e1;background:#f8fafc}.drw-type.on{border-color:#0c1b3a;background:#f4f7fc;box-shadow:inset 0 0 0 1px #0c1b3a}.drw-type b{font-size:12.5px;font-weight:700}.drw-type em{font-style:normal;font-size:10.5px;color:#64748b;line-height:1.3}.drw-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer;border:1px solid #e2e8f0;border-radius:10px;padding:11px 12px;background:#fff}.drw-toggle.inline{flex:1}.drw-toggle:hover{border-color:#cbd5e1}.drw-toggle input{width:17px;height:17px;margin-top:1px;accent-color:#0c1b3a;cursor:pointer}.drw-toggle span{display:flex;flex-direction:column;gap:2px}.drw-toggle b{font-size:13px;font-weight:700}.drw-toggle em{font-style:normal;font-size:11.5px;color:#64748b;line-height:1.35}.drw-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;align-self:flex-start;padding:9px 14px;border-radius:9px;border:1px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;text-decoration:none;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.drw-btn:hover{border-color:#94a3b8;color:#0c1b3a}.drw-btn.primary{background:#0c1b3a;border-color:#0c1b3a;color:#fff}.drw-btn.primary:hover{background:#132d5e;color:#fff}.drw-btn.danger{background:#dc2626;border-color:#dc2626;color:#fff}.drw-btn.danger:hover{background:#b91c1c;color:#fff}.drw-btn.danger-ghost{color:#b91c1c;border-color:#fecaca}.drw-btn.danger-ghost:hover{background:#fef2f2;border-color:#fca5a5;color:#991b1b}.drw-empty{text-align:center;padding:28px 20px;border:1px dashed #cbd5e1;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:12px;background:#f8fafc}.drw-empty.small{padding:16px}.drw-empty p{margin:0;font-size:13px;color:#64748b;line-height:1.5}.drw-note{margin:0;font-size:12.5px;line-height:1.5;color:#64748b}.drw-nodes{display:flex;flex-direction:column;gap:7px}.drw-node{display:flex;align-items:center;gap:10px;border:1px solid #e2e8f0;border-radius:10px;padding:10px 11px;background:#fff}.drw-node>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.drw-node b{font-size:13px;font-weight:600}.drw-node em{font-style:normal;font-size:11px;color:#94a3b8}.drw-node .drw-icon:hover{background:#fef2f2;color:#dc2626}.drw-danger{margin-top:6px;border:1px solid #fecaca;background:snow;border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:10px}.drw-danger-title{display:flex;align-items:center;gap:7px;font-size:11.5px;font-weight:800;color:#b91c1c;text-transform:uppercase;letter-spacing:.5px}.drw-danger p{margin:0;font-size:12.5px;line-height:1.5;color:#7f1d1d}.drw-danger-actions{display:flex;gap:8px}.drw-json{border-top:1px solid #eef2f7;padding-top:14px;display:flex;flex-direction:column;gap:10px}.drw-json-toggle{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;border:none;background:none;padding:0;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:700;color:#4f46e5}.drw-json-toggle:hover{text-decoration:underline}.drw-json-hint{margin:0;font-size:11.5px;line-height:1.5;color:#64748b}.drw-json-area{width:100%;border:1px solid #c7d2fe;border-radius:10px;padding:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.5;color:#0c1b3a;background:#fbfbff;resize:vertical}.drw-json-area:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51f}.drw-json-error{margin:0;font-size:12px;font-weight:600;color:#b91c1c;background:#fef2f2;border-radius:8px;padding:8px 10px}@media(max-width:640px){.drw{width:100vw}.drw-types{grid-template-columns:1fr}}.bareme{--ink: #0c1b3a;--muted: #64748b;--line: #e2e8f0;--line-soft: #eef2f7;display:flex;flex-direction:column;gap:16px;color:var(--ink)}.bar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.bar-head h1{font-size:1.7em;font-weight:700;color:var(--ink);margin:0}.bar-head p{font-size:13.5px;line-height:1.55;color:var(--muted);margin:6px 0 0;max-width:640px}.bar-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:9px;border:1px solid var(--line);background:#fff;color:#475569;cursor:pointer;text-decoration:none;font-family:inherit;font-size:13px;font-weight:600;white-space:nowrap;transition:all .15s}.bar-btn:hover:not(:disabled){border-color:#94a3b8;color:var(--ink)}.bar-btn:disabled{opacity:.4;cursor:not-allowed}.bar-btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.bar-btn.primary:hover:not(:disabled){background:#132d5e;color:#fff}.bar-btn.ghost{background:#fff}.bar-btn.danger{color:#b91c1c}.bar-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#fecaca}.bar-btn.danger-solid{background:#dc2626;border-color:#dc2626;color:#fff}.bar-btn.danger-solid:hover{background:#b91c1c}.bar-btn.small{padding:4px 9px;font-size:12px;border-radius:7px}.bar-years{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.bar-year-tabs{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.bar-year{padding:9px 20px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#475569;cursor:pointer;font-family:inherit;font-size:15px;font-weight:700;transition:all .15s}.bar-year:hover{border-color:#94a3b8;color:var(--ink)}.bar-year.on{background:var(--ink);border-color:var(--ink);color:#fff}.bar-year.add{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:#2563eb;border-style:dashed}.bar-year.add:hover{background:#eff6ff;border-color:#2563eb;color:#2563eb}.bar-year-state{display:flex;align-items:center;gap:12px;font-size:12.5px}.bar-year-state span{display:inline-flex;align-items:center;gap:6px;font-weight:600}.bar-year-state .ok{color:#15803d}.bar-year-state .warn{color:#b45309}.bar-compare{color:var(--muted);font-weight:500!important}.bar-newyear{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#f5f9ff;border:1px solid #bfdbfe;border-radius:12px;padding:14px 16px;font-size:13.5px;font-weight:600;color:#1e40af}.bar-newyear svg{color:#2563eb}.bar-newyear select,.bar-newyear input{border:1px solid #bfdbfe;border-radius:8px;padding:7px 10px;font-family:inherit;font-size:14px;font-weight:700;color:var(--ink);background:#fff}.bar-newyear input{width:92px}.bar-newyear-hint{flex-basis:100%;margin:2px 0 0;font-size:12px;font-weight:500;color:#3b82f6}.bar-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px}.bar-sep{width:1px;height:22px;background:var(--line)}.bar-selection{font-size:12.5px;color:var(--muted);font-weight:600}.bar-search{display:flex;align-items:center;gap:7px;color:#94a3b8;flex:1;min-width:220px}.bar-search input{flex:1;border:none;outline:none;background:transparent;font-family:inherit;font-size:13.5px;color:var(--ink);padding:6px 0}.bar-search button{border:none;background:none;color:#94a3b8;cursor:pointer;display:flex}.bar-save{margin-left:auto;font-size:12px;font-weight:700}.bar-save.saving{color:#94a3b8}.bar-save.saved{color:#16a34a}.bar-save.error{color:#dc2626}.bar-status{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;border-radius:10px;padding:11px 14px;font-size:13px;font-weight:600}.bar-table{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.bar-row{display:grid;gap:12px;align-items:center;grid-template-columns:34px minmax(190px,2fr) 92px 130px minmax(170px,1.3fr) 130px minmax(140px,1fr);padding:10px 14px;border-bottom:1px solid var(--line-soft)}.bar-row:last-child{border-bottom:none}.bar-row-head{background:#f8fafc;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);position:sticky;top:0;z-index:2}.bar-row.open{background:#fbfcfe}.bar-row.missing{background:#fffdf7}.c-check{display:flex;align-items:center;justify-content:center}.c-check input,.bar-group-check input{width:16px;height:16px;accent-color:var(--ink);cursor:pointer}.c-name{display:flex;flex-direction:column;gap:1px;min-width:0}.c-name b{font-size:13.5px;font-weight:600;line-height:1.3}.c-name em{font-style:normal;font-size:11px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.c-rate input,.c-unit input,.c-pop input,.c-notes input{width:100%;border:1px solid var(--line);border-radius:7px;padding:7px 9px;font-family:inherit;font-size:13px;color:var(--ink);background:#fff;transition:border-color .15s,box-shadow .15s}.c-rate input:focus,.c-unit input:focus,.c-pop input:focus,.c-notes input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.bar-input-unit{position:relative;display:flex;align-items:center}.bar-input-unit input{padding-right:26px!important}.bar-input-unit i{position:absolute;right:9px;font-style:normal;font-size:12px;font-weight:700;color:#94a3b8;pointer-events:none}.c-unit small{display:block;font-size:10.5px;color:#94a3b8;margin-top:2px}.bar-pop{display:flex;gap:5px}.bar-diff{display:block;margin-top:3px;font-size:10.5px;font-weight:600;color:#b45309;text-decoration:line-through;text-decoration-color:#fbbf24}.bar-ceil-toggle{display:flex;align-items:center;gap:5px;width:100%;text-align:left;border:1px solid var(--line);border-radius:7px;background:#f8fafc;padding:7px 9px;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;color:#475569}.bar-ceil-toggle:hover{border-color:#94a3b8;color:var(--ink)}.bar-ceil-toggle svg{flex-shrink:0}.bar-ceil-editor{grid-column:1 / -1;margin-top:6px;background:#fff;border:1px solid #c7d2fe;border-radius:11px;padding:13px}.bar-ceil-editor-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#3730a3;margin-bottom:9px}.c-missing{grid-column:3 / -1;display:flex;align-items:center;gap:12px;font-size:12.5px;font-style:italic;color:#b45309}.bar-group-head{display:flex;align-items:center;gap:9px;background:#f1f5f9;border-bottom:1px solid var(--line);padding:8px 14px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#475569}.bar-group-check{display:flex;align-items:center;width:20px}.bar-group-dot{width:10px;height:10px;border-radius:3px}.bar-group-count{margin-left:auto;background:#fff;border-radius:10px;padding:1px 8px;font-size:11px;color:var(--muted)}.bar-empty{padding:24px;text-align:center;font-size:13.5px;color:var(--muted);font-style:italic;margin:0}.bar-overlay{position:fixed;inset:0;z-index:1300;background:#0c1b3a8c;display:flex;align-items:center;justify-content:center;padding:20px}.bar-modal{background:#fff;border-radius:15px;padding:24px 26px;width:470px;max-width:100%;box-shadow:0 24px 60px #0c1b3a59}.bar-modal h4{display:flex;align-items:center;gap:9px;font-size:17px;font-weight:700;margin:0 0 8px;color:var(--ink)}.bar-modal-sub{font-size:13px;line-height:1.55;color:var(--muted);margin:0 0 18px}.bar-modal-row{display:flex;gap:14px;margin-bottom:14px}.bar-modal-row label{flex:1;display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.bar-modal-row input,.bar-modal-row select{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink);background:#fff}.bar-modal-row .bar-input-unit input{padding-right:28px;width:100%}.bar-modal-checks{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}.bar-modal-checks label{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;cursor:pointer}.bar-modal-checks input{width:17px;height:17px;accent-color:var(--ink);cursor:pointer}.bar-modal-note{display:flex;align-items:center;gap:7px;margin:0 0 18px;background:#f8fafc;border-radius:9px;padding:10px 12px;font-size:12.5px;color:var(--muted)}.bar-modal-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:1100px){.bar-row{grid-template-columns:30px minmax(150px,1.6fr) 80px 110px minmax(140px,1fr) 110px}.c-notes{display:none}}.c-name.as-button{display:flex;flex-direction:column;gap:1px;align-items:flex-start;position:relative;width:100%;text-align:left;cursor:pointer;border:none;background:none;padding:4px 22px 4px 0;font-family:inherit;color:inherit;border-radius:7px}.c-name.as-button:hover{background:#f8fafc}.c-name.as-button:hover .c-name-open{opacity:1}.c-name-open{position:absolute;right:4px;top:50%;transform:translateY(-50%);color:#94a3b8;opacity:0;transition:opacity .15s}.bar-off{font-style:normal;margin-left:7px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;background:#f1f5f9;color:#64748b;border-radius:8px;padding:1px 6px}.bar-modal.wide{width:620px}.bar-modal-field{display:flex;flex-direction:column;gap:6px;flex:1;margin-bottom:14px}.bar-modal-field>span{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.bar-modal-field input,.bar-modal-field select{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-family:inherit;font-size:14px;color:var(--ink);background:#fff;width:100%}.bar-modal-field input:focus,.bar-modal-field select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.fam-list{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.fam-row,.fam-new{display:flex;align-items:center;gap:8px}.fam-row input[type=color],.fam-new input[type=color]{width:34px;height:34px;min-width:34px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.fam-row input[type=text],.fam-row input[type=number],.fam-new input[type=text]{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:inherit;font-size:13.5px;color:var(--ink);background:#fff}.fam-name,.fam-new input[type=text]:first-of-type{flex:1}.fam-order{width:62px;text-align:center}.fam-count{min-width:30px;text-align:center;font-size:12px;font-weight:700;color:#64748b;background:#f1f5f9;border-radius:8px;padding:5px 8px}.fam-new{border-top:1px dashed var(--line);padding-top:12px;margin-bottom:16px}.fam-new input[type=text]{flex:1}.circuit-page{display:flex;flex-direction:column;height:100vh;background:#fafafa}.circuit-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;background:#fff;border-bottom:1px solid var(--light-gray);flex-wrap:wrap}.circuit-brand{display:flex;align-items:center;gap:14px}.circuit-brand img{height:44px}.circuit-brand h1{font-size:18px;margin:0}.circuit-brand p{font-size:12px;color:var(--text-secondary);margin:2px 0 0;max-width:560px}.circuit-nav{display:flex;gap:8px;align-items:center}.circuit-nav .btn{display:inline-flex;align-items:center;gap:6px}.circuit-canvas{flex:1;position:relative}.circuit-legend{background:#fff;padding:10px 12px;border-radius:8px;box-shadow:0 2px 8px #0000001f;font-size:12px;display:flex;flex-direction:column;gap:5px}.legend-row{display:flex;align-items:center;gap:7px;font-weight:600}.legend-dot{width:13px;height:13px;border-radius:4px;display:inline-block}.dot-green{background:linear-gradient(180deg,#45b35a,#176f2e)}.dot-gold{background:linear-gradient(180deg,#ddb02a,#9c7404)}.dot-blue{background:linear-gradient(180deg,#6c8fc0,#2e5388)}.dot-magenta{background:linear-gradient(180deg,#d63384,#94134f)}.legend-hint{font-size:11px;color:var(--text-secondary);margin-top:3px}.circuit-detail{position:absolute;right:14px;top:14px;width:320px;max-height:calc(100% - 28px);background:#fff;border-radius:10px;box-shadow:0 6px 24px #0000002e;padding:16px;overflow-y:auto;z-index:10}.circuit-detail-header{display:flex;justify-content:space-between;align-items:center}.circuit-detail-type{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.circuit-detail-badges{display:flex;gap:5px;margin-top:8px}.circuit-detail h3{margin:8px 0 4px;font-size:16px;line-height:1.3}.circuit-detail-subtitle{font-weight:700;font-size:13px;margin:4px 0}.circuit-detail-lines{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:5px}.circuit-detail-lines li{font-size:13px;line-height:1.4;padding-left:10px;border-left:3px solid var(--light-gray)}.circuit-detail-lines li.red{border-left-color:#d40000;color:#b00000;font-weight:600}.circuit-detail-duration{font-size:13px;margin:10px 0 0}.circuit-detail-acc{margin-top:14px;padding-top:12px;border-top:1px solid var(--light-gray)}.circuit-detail-acc p{font-size:13px;margin:0 0 8px}.circuit-detail-acc .btn{display:inline-flex;align-items:center;gap:6px}.sim-notice{display:flex;align-items:flex-start;gap:12px;background:#fffbeb;border:1px solid #fde68a;border-left:4px solid #f59e0b;border-radius:12px;padding:14px 16px}.sim-notice-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;border-radius:9px;background:#fef3c7;color:#b45309}.sim-notice p{margin:0;font-size:13px;line-height:1.5;color:#92400e;text-align:left}.sim-notice p strong{color:#78350f}.sim-notice.compact{padding:10px 13px;gap:10px;border-radius:10px}.sim-notice.compact .sim-notice-icon{width:26px;height:26px;border-radius:7px}.sim-notice.compact p{font-size:12.5px}@media print{.sim-notice{display:none}}.home-page{min-height:100vh;background:linear-gradient(180deg,#eef6fb,#fff 34%)}.home-header{border-bottom:1px solid #e5e7eb;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:50}.home-header-content{max-width:1100px;margin:0 auto;padding:16px 24px;display:flex;justify-content:space-between;align-items:center}.home-brand{display:flex;align-items:center;gap:10px}.home-logo{height:40px;width:auto}.home-brand-name{font-size:20px;font-weight:700;color:var(--primary-blue)}.home-nav{display:flex;align-items:center;gap:16px}.home-nav-link{font-size:14px;color:var(--text-secondary);text-decoration:none;display:flex;align-items:center;gap:6px;transition:color .2s}.home-nav-link:hover{color:var(--primary-blue)}.home-nav-login{background:var(--primary-blue);color:#fff;padding:8px 16px;border-radius:6px;font-weight:500}.home-nav-login:hover{color:#fff;opacity:.9}.home-nav-btn{background:none;border:none;font-size:14px;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:6px;padding:0;font-family:inherit;transition:color .2s}.home-nav-btn:hover{color:#d32f2f}.home-notice{max-width:620px;margin:26px auto 0}.hero{padding:56px 24px 64px}.hero-inner{max-width:780px;margin:0 auto;text-align:center}.hero-eyebrow{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#0e7490;background:#ecfeff;border:1px solid #a5f3fc;border-radius:20px;padding:6px 14px;margin-bottom:20px}.hero h1{font-size:2.7em;font-weight:700;color:#0c1b3a;line-height:1.15;margin:0 0 18px;letter-spacing:-.5px}.hero-accent{background:linear-gradient(120deg,#0c1b3a,#2563eb 55%,#42d3ec);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-text{font-size:1.05em;color:#64748b;max-width:620px;margin:0 auto 30px;line-height:1.65}.hero-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.hero-btn{display:inline-flex;align-items:center;gap:9px;padding:14px 26px;border-radius:11px;border:1.5px solid transparent;font-size:15px;font-weight:700;text-decoration:none;transition:all .2s}.hero-btn.primary{background:#0c1b3a;color:#fff;box-shadow:0 8px 22px #0c1b3a38}.hero-btn.primary:hover{background:#132d5e;color:#fff;transform:translateY(-2px);box-shadow:0 12px 28px #0c1b3a47}.hero-btn.ghost{background:#fff;color:#0c1b3a;border-color:#e2e8f0}.hero-btn.ghost:hover{border-color:#0c1b3a;color:#0c1b3a;transform:translateY(-2px)}.section-head{text-align:center;max-width:620px;margin:0 auto 36px}.section-head h2{font-size:1.6em;font-weight:700;color:#0c1b3a;margin:0 0 8px}.section-head p{font-size:14.5px;color:#64748b;margin:0;line-height:1.6}.home-categories{max-width:1100px;margin:0 auto;padding:56px 24px}.home-cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.home-cat-card{display:flex;flex-direction:column;padding:24px 22px;background:#fff;border:1px solid #e9ecef;border-radius:16px;text-decoration:none;color:inherit;position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}.home-cat-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--fam-color, #0c1b3a);opacity:0;transition:opacity .2s}.home-cat-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #0c1b3a1c;border-color:#dbe3ec}.home-cat-card:hover:before{opacity:1}.home-cat-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.home-cat-card h3{font-size:15.5px;font-weight:700;color:#0c1b3a;margin:0 0 7px;line-height:1.3}.home-cat-card p{font-size:13px;color:#64748b;margin:0 0 14px;line-height:1.5;flex:1}.home-cat-more{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:var(--fam-color, #2563eb)}.home-steps{background:#f8fafc;border-top:1px solid #eef2f7;padding:56px 24px 64px}.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;max-width:1000px;margin:0 auto}.step{background:#fff;border:1px solid #e9ecef;border-radius:14px;padding:22px 20px;text-align:left}.step-number{width:34px;height:34px;border-radius:10px;background:#0c1b3a;color:#fff;display:flex;align-items:center;justify-content:center;margin:0 0 12px;font-size:15px;font-weight:700}.step h3{font-size:14.5px;font-weight:700;color:#0c1b3a;margin:0 0 6px}.step p{font-size:13px;color:#64748b;margin:0;line-height:1.5}.home-cta{display:flex;justify-content:center;margin-top:38px}.home-footer{border-top:1px solid #e5e7eb;background:#f8fafc}.home-footer .footer-content{max-width:1100px;margin:0 auto;padding:40px 24px 20px}.home-footer .footer-columns{display:grid;grid-template-columns:auto 1fr 1fr;gap:40px;align-items:start;margin-bottom:24px}.home-footer .footer-column p{font-size:13px;color:var(--text-secondary);margin:4px 0}.home-footer .footer-logo-section{display:flex;align-items:center}.home-footer .footer-logo{height:60px;width:auto;opacity:.8}.home-footer .footer-disclaimer{font-style:italic;line-height:1.6}.home-footer .footer-bottom{text-align:center;padding-top:16px;border-top:1px solid #e5e7eb}.home-footer .footer-bottom p{font-size:12px;color:var(--text-secondary);margin:0}@media(max-width:1000px){.home-cat-grid,.steps-grid{grid-template-columns:1fr 1fr}}@media(max-width:767px){.hero{padding:36px 20px 44px}.hero h1{font-size:1.85em}.hero-btn{width:100%;justify-content:center}.home-categories,.home-steps{padding:40px 20px}}@media(max-width:480px){.home-cat-grid{grid-template-columns:1fr}}.collectivite-search,.collectivite-search-input{position:relative}.collectivite-search-input .sim-input{padding-left:40px;width:100%}.collectivite-search-input .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:#94a3b8}.collectivite-search-input .search-spinner{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#2563eb}.collectivite-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 14px 34px #0c1b3a29;overflow:hidden;max-height:320px;overflow-y:auto;padding:4px}.suggestion-empty{padding:14px;font-size:13px;color:#64748b}.suggestion-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 11px;border:none;background:transparent;cursor:pointer;font-family:inherit;font-size:13.5px;border-radius:9px;color:#0c1b3a}.suggestion-item.highlight{background:#eff6ff}.suggestion-type{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;padding:3px 8px;border-radius:10px;white-space:nowrap;background:#f1f5f9;color:#475569}.suggestion-type.epci{background:#eef2ff;color:#4338ca}.suggestion-name{flex:1;display:flex;flex-direction:column;min-width:0;font-weight:600}.suggestion-epci{font-size:11px;font-weight:500;color:#94a3b8}.suggestion-pop{font-size:12px;color:#64748b;white-space:nowrap;font-weight:600}.collectivite-picked{display:flex;align-items:center;gap:12px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:12px;padding:13px 15px}.picked-check{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:#16a34a;color:#fff}.picked-body{display:flex;flex-direction:column;gap:2px;min-width:0}.picked-body strong{font-size:15px;font-weight:700;color:#14532d}.picked-body span{font-size:12.5px;line-height:1.45;color:#15803d}.collectivite-picked.missing{background:#fffbeb;border-color:#fde68a}.collectivite-picked.missing .picked-check{background:#d97706}.collectivite-picked.missing .picked-body strong{color:#92400e}.collectivite-picked.missing .picked-body span{color:#b45309}.guided{display:flex;flex-direction:column;gap:18px}.guided-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:1px;font-size:12px}.guided-crumb{display:inline-flex;align-items:center;gap:1px;color:#94a3b8}.guided-crumb button{background:none;border:none;padding:3px 6px;border-radius:6px;font-family:inherit;font-size:12px;color:#2563eb;cursor:pointer;font-weight:600;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guided-crumb button:hover:not(:disabled){background:#eff6ff}.guided-crumb button:disabled{color:#0c1b3a;cursor:default;font-weight:700}.guided-question h4{font-size:19px;font-weight:700;line-height:1.35;margin:0;color:#0c1b3a}.guided-context{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:4px}.guided-context li{font-size:13px;line-height:1.4;color:#475569;padding-left:10px;border-left:3px solid #e2e8f0}.guided-context li.red{border-left-color:#d40000;color:#b00000;font-weight:600}.guided-options{display:flex;flex-direction:column;gap:9px}.guided-option{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:15px 16px;border:1.5px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer;font-family:inherit;font-size:14.5px;font-weight:600;color:#0c1b3a;transition:border-color .15s,box-shadow .15s,transform .15s}.guided-option:hover{border-color:#2563eb;box-shadow:0 4px 14px #2563eb24;transform:translateY(-1px)}.guided-option:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.guided-option-dot{width:14px;height:14px;min-width:14px;border-radius:4px}.guided-option-text{flex:1;line-height:1.35}.guided-option-chevron{color:#94a3b8;flex-shrink:0}.guided-edge-label{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:12px;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.guided-edge-label.oui{background:#dcfce7;color:#15803d}.guided-edge-label.non{background:#fee2e2;color:#b91c1c}.guided-info{display:flex;align-items:flex-start;gap:10px;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:12px 14px;color:#14532d}.guided-info>svg{flex-shrink:0;margin-top:1px;color:#16a34a}.guided-info p{margin:0 0 2px;font-size:13px;line-height:1.45;font-weight:600}.guided-info p:last-child{margin-bottom:0}.guided-info p.red{color:#b00000}.guided-fiches{display:flex;flex-direction:column;gap:12px}.guided-fiches-title{font-size:11px;font-weight:800;color:#64748b;margin:0;text-transform:uppercase;letter-spacing:.8px}.guided-fiche{display:flex;align-items:flex-start;gap:14px;border:1.5px solid #e2e8f0;border-left:4px solid #c89212;border-radius:12px;padding:14px 16px;background:#fffdf6;transition:border-color .15s,background .15s}.guided-fiche.picked{border-color:#2563eb;border-left-color:#2563eb;background:#f5f9ff}.guided-fiche-body{flex:1;min-width:0}.guided-fiche-title{font-size:15px;font-weight:700;color:#0c1b3a;line-height:1.3;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.guided-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;flex-shrink:0;background:linear-gradient(180deg,#b9b9b9,#7b7b7b);color:#fff;font-size:10.5px;font-weight:800}.guided-fiche-lines{list-style:none;padding:0;margin:9px 0 0;display:flex;flex-direction:column;gap:4px}.guided-fiche-lines li{font-size:13px;line-height:1.4;color:#475569;padding-left:10px;border-left:3px solid #e2e8f0}.guided-fiche-lines li.red{border-left-color:#d40000;color:#b00000;font-weight:600}.guided-fiche-duration{font-size:12px;font-style:italic;color:#64748b;margin:9px 0 0}.guided-fiche-info{margin:9px 0 0;font-size:12.5px;line-height:1.4;color:#1e40af;background:#eff6ff;border-radius:8px;padding:7px 10px}.guided-fiche-add{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;padding:9px 15px;border-radius:9px;border:1.5px solid #0c1b3a;background:#0c1b3a;color:#fff;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:700;white-space:nowrap;transition:all .15s}.guided-fiche-add:hover:not(:disabled){background:#132d5e;border-color:#132d5e}.guided-fiche-add.picked{background:#fff;color:#2563eb;border-color:#2563eb}.guided-fiche-add:disabled{opacity:.45;cursor:not-allowed}.guided-deadend{font-size:13.5px;color:#64748b;font-style:italic;margin:0;background:#f8fafc;border-radius:10px;padding:14px}.guided-context li.pop-ok,.guided-fiche-lines li.pop-ok{border-left-color:#16a34a;background:#f0fdf4;color:#14532d!important;font-weight:700;border-radius:0 8px 8px 0;padding:4px 9px 4px 10px}.guided-context li.pop-ok:after,.guided-fiche-lines li.pop-ok:after{content:"✓ votre collectivité";margin-left:8px;font-size:10px;font-weight:800;color:#16a34a;text-transform:uppercase;letter-spacing:.3px}.guided-context li.pop-off,.guided-fiche-lines li.pop-off{opacity:.4}.guided-info p.pop-ok{background:#dcfce7;border-radius:6px;padding:3px 8px;font-weight:800}.guided-info p.pop-ok:after{content:"✓ votre collectivité";margin-left:8px;font-size:10px;font-weight:800;color:#16a34a;text-transform:uppercase}.guided-info p.pop-off{opacity:.45}.guided-perso{display:flex;align-items:center;gap:8px;margin-top:10px;background:#eef2ff;border:1px solid #c7d2fe;color:#3730a3;font-size:12.5px;font-weight:700;line-height:1.4;padding:8px 11px;border-radius:9px}.guided-perso svg{min-width:14px}.guided-fiche.ineligible{opacity:.7;background:#fafafa;border-left-color:#cbd5e1}.guided-inelig{display:flex;align-items:center;gap:8px;margin-top:10px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:12.5px;font-weight:700;line-height:1.4;padding:8px 11px;border-radius:9px}.guided-inelig svg{min-width:14px}.guided-footer{display:flex;gap:8px;flex-wrap:wrap}.guided-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:20px;border:1px solid #e2e8f0;background:#fff;color:#475569;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:600;transition:all .15s}.guided-nav-btn:hover{border-color:#94a3b8;color:#0c1b3a;background:#f8fafc}.guided-basket{border:1.5px dashed #cbd5e1;border-radius:12px;padding:14px 16px;background:#f8fafc}.guided-basket.filled{border-style:solid;border-color:#bfdbfe;background:#f5f9ff}.basket-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.basket-title{display:inline-flex;align-items:center;gap:9px;font-weight:700;font-size:14px;color:#0c1b3a}.basket-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 7px;border-radius:12px;background:#0c1b3a;color:#fff;font-size:12.5px;font-weight:700}.basket-ready{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:#15803d;background:#dcfce7;border-radius:20px;padding:5px 12px}.basket-empty{font-size:12.5px;line-height:1.45;color:#64748b;margin:8px 0 0}.basket-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.basket-chip{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid #bfdbfe;color:#1e40af;border-radius:16px;padding:5px 6px 5px 12px;font-size:12.5px;font-weight:600;max-width:100%}.basket-chip>button{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:none;flex-shrink:0;background:#dbeafe;color:#1e40af;cursor:pointer}.basket-chip>button:hover{background:#ef4444;color:#fff}.basket-chip.inelig{background:#fef2f2;border-color:#fecaca;color:#b91c1c}@media(max-width:640px){.guided-fiche{flex-direction:column;gap:10px}.guided-fiche-add{width:100%;justify-content:center}.guided-question h4{font-size:17px}}.results{display:flex;flex-direction:column;gap:22px}.results-saved{display:flex;align-items:center;gap:9px;padding:12px 16px;background:#f0fdf4;color:#15803d;border:1px solid #bbf7d0;border-radius:10px;font-size:13.5px;font-weight:600}.results-hero{background:linear-gradient(135deg,#0c1b3a,#132d5e);border-radius:16px;padding:26px 28px;color:#fff;box-shadow:0 12px 30px #0c1b3a38}.results-hero-label{display:block;font-size:11.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#fff9}.results-total{font-size:2.9em;font-weight:700;line-height:1.1;margin:6px 0 4px;color:#42d3ec;letter-spacing:-.5px}.results-count{font-size:13px;color:#ffffffbf;margin:0}.results-section{display:flex;flex-direction:column;gap:12px}.results-section-title{font-size:14px;font-weight:700;color:#0c1b3a;display:flex;align-items:center;gap:8px;margin:0}.results-section-title.ineligible{color:#64748b}.result-card{background:#fff;border:1px solid #e2e8f0;border-radius:13px;padding:16px 18px;box-shadow:0 1px 3px #0c1b3a0d}.result-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.result-identity{display:flex;flex-direction:column;gap:3px;min-width:0}.result-name{font-size:15.5px;font-weight:700;color:#0c1b3a;line-height:1.3}.result-category{align-self:flex-start;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#475569;background:#f1f5f9;border-radius:10px;padding:2px 8px}.result-amount{font-size:22px;font-weight:700;color:#0c1b3a;white-space:nowrap;letter-spacing:-.3px}.result-breakdown{margin-top:12px;display:flex;flex-direction:column;gap:5px;font-size:13px;color:#475569;border-top:1px dashed #e2e8f0;padding-top:10px}.breakdown-row{display:flex;justify-content:space-between;gap:12px}.breakdown-row em{font-style:normal;color:#94a3b8}.breakdown-row span:last-child{font-weight:600;color:#0c1b3a;white-space:nowrap}.result-ceiling{margin-top:10px;display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;line-height:1.4;color:#64748b;background:#f8fafc;padding:8px 11px;border-radius:8px}.result-ceiling.capped{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.result-ceiling svg{flex-shrink:0}.result-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.result-tag{font-size:11.5px;font-weight:700;color:#1e40af;background:#eff6ff;border-radius:8px;padding:4px 9px}.result-tag.muted{color:#64748b;background:#f1f5f9}.result-notes{margin-top:10px;display:flex;align-items:flex-start;gap:7px;font-size:12.5px;line-height:1.45;color:#64748b}.result-notes svg{flex-shrink:0;margin-top:2px}.result-reason{font-size:13px;line-height:1.45;color:#64748b;margin:8px 0 0}.result-card.informative{border-left:4px solid #2563eb}.result-card.ineligible{opacity:.75;background:#fafafa}.result-card.ineligible .result-reason{color:#b91c1c}.result-fiche-lines{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:4px}.result-fiche-lines li{font-size:13px;line-height:1.45;color:#475569;padding-left:10px;border-left:3px solid #e2e8f0}.result-fiche-lines li.red{border-left-color:#d40000;color:#b00000;font-weight:600}.result-fiche-lines li.duration{font-style:italic;color:#64748b}.result-fiche-lines li.pop-ok{border-left-color:#16a34a;background:#f0fdf4;color:#14532d;font-weight:700;border-radius:0 8px 8px 0;padding:4px 9px 4px 10px}.result-fiche-lines li.pop-off{opacity:.4}.results-actions{display:flex;flex-wrap:wrap;gap:9px}.results-warning{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:16px 18px;font-size:12.5px;line-height:1.55;color:#64748b}.results-warning p{margin:0}.results-warning p strong{color:#0c1b3a;font-size:13px}.results-warning p+p{margin-top:5px}@media print{.sim-header,.sim-stepper,.sim-nav,.results-actions,.sim-notice,.sim-intro{display:none!important}.sim-page,.sim-card{background:#fff!important;box-shadow:none!important;border:none!important}.results-hero{background:#fff!important;color:#0c1b3a!important;border:2px solid #0c1b3a;box-shadow:none}.results-hero-label,.results-count{color:#475569!important}.results-total{color:#0c1b3a!important}.result-card{break-inside:avoid;box-shadow:none}}@media(max-width:640px){.result-header{flex-direction:column;gap:6px}.results-total{font-size:2.2em}}.sim-wizard{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.sim-stepper{list-style:none;display:flex;gap:6px;margin:0;padding:0}.sim-step{flex:1;min-width:0}.sim-step button{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;border:none;background:transparent;border-top:3px solid #e2e8f0;border-radius:0;font-family:inherit;font-size:12.5px;font-weight:600;color:#94a3b8;cursor:pointer;text-align:left;transition:color .15s,border-color .15s}.sim-step button:disabled{cursor:default}.sim-step.done button{color:#475569;border-top-color:#94a3b8}.sim-step.done button:hover:not(:disabled){color:#0c1b3a}.sim-step.active button{color:#0c1b3a;border-top-color:#0c1b3a;font-weight:700}.sim-step-num{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:11.5px;font-weight:700}.sim-step.done .sim-step-num{background:#16a34a;color:#fff}.sim-step.active .sim-step-num{background:#0c1b3a;color:#fff}.sim-step-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 2px 10px #0c1b3a0f}.sim-card-head{padding:22px 26px 0}.sim-card-head h2{font-size:20px;font-weight:700;color:#0c1b3a;margin:0}.sim-card-head p{font-size:13.5px;line-height:1.5;color:#64748b;margin:5px 0 0}.sim-card-body{padding:22px 26px 26px}.sim-nav{display:flex;gap:10px;align-items:center}.sim-nav-right{margin-left:auto}.sim-nav-hint{text-align:right;font-size:12.5px;color:#94a3b8;margin:-8px 2px 0}.sim-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:10px;border:1.5px solid transparent;font-family:inherit;font-size:14.5px;font-weight:700;cursor:pointer;transition:all .15s;text-decoration:none}.sim-btn.primary{background:#0c1b3a;color:#fff}.sim-btn.primary:hover:not(:disabled){background:#132d5e;transform:translateY(-1px);box-shadow:0 6px 16px #0c1b3a38}.sim-btn.ghost{background:#fff;color:#475569;border-color:#e2e8f0}.sim-btn.ghost:hover{border-color:#94a3b8;color:#0c1b3a}.sim-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.sim-error{display:flex;align-items:flex-start;gap:10px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:11px;padding:13px 15px;font-size:13.5px;line-height:1.45;font-weight:600}.sim-error svg{flex-shrink:0;margin-top:1px}.spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sim-form{display:flex;flex-direction:column;gap:20px}.sim-row{display:flex;gap:16px;flex-wrap:wrap}.sim-row>.sim-field{flex:1;min-width:180px}.sim-field{display:flex;flex-direction:column;gap:7px}.sim-field-label{display:flex;align-items:center;gap:7px;font-size:13.5px;font-weight:700;color:#0c1b3a}.sim-field-label svg{color:#64748b}.sim-field-hint{font-size:12px;line-height:1.45;color:#64748b;margin:0}.sim-input{width:100%;padding:12px 14px;border:1.5px solid #e2e8f0;border-radius:10px;font-family:inherit;font-size:15px;color:#0c1b3a;background:#fff;transition:border-color .15s,box-shadow .15s}.sim-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.sim-input::placeholder{color:#a8b3c2}.sim-input-unit{position:relative;display:flex;align-items:center}.sim-input-unit .sim-input{padding-right:52px}.sim-input-unit>span{position:absolute;right:14px;font-size:13.5px;font-weight:700;color:#94a3b8;pointer-events:none}.sim-check{display:flex;align-items:flex-start;gap:11px;cursor:pointer;border:1.5px solid #e2e8f0;border-radius:12px;padding:14px 15px;background:#fff}.sim-check:hover{border-color:#cbd5e1}.sim-check input{width:18px;height:18px;margin-top:1px;accent-color:#0c1b3a;cursor:pointer}.sim-check span{display:flex;flex-direction:column;gap:3px}.sim-check b{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:#0c1b3a}.sim-check em{font-style:normal;font-size:12px;line-height:1.45;color:#64748b}.sim-link{align-self:flex-start;background:none;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:600;color:#2563eb;cursor:pointer;text-decoration:underline}.sim-link:hover{color:#0c1b3a}.sim-nothing{font-size:13px;line-height:1.5;color:#64748b;margin:0;background:#f8fafc;border-radius:10px;padding:14px}.sim-split-note{margin:0;font-size:12.5px;line-height:1.5;color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:11px 13px}.sim-group{border:1.5px solid #e2e8f0;border-radius:13px;padding:4px 16px 16px;margin:0;background:#fcfdfe}.sim-group legend{padding:4px 11px;margin-left:-4px;font-size:12.5px;font-weight:700;color:#0c1b3a;background:#fff;border:1.5px solid #e2e8f0;border-radius:8px}.sim-group-body{display:flex;flex-direction:column;gap:18px;padding-top:6px}.sim-recap{background:#f5f9ff;border:1px solid #bfdbfe;border-radius:12px;padding:13px 15px}.sim-recap-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#1e40af}.sim-recap ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.sim-recap li{font-size:13.5px;font-weight:600;color:#0c1b3a;padding-left:14px;position:relative}.sim-recap li:before{content:"•";position:absolute;left:2px;color:#2563eb}@media(max-width:640px){.sim-card-head{padding:18px 18px 0}.sim-card-body{padding:18px}.sim-step-text{display:none}.sim-step button{justify-content:center}.sim-btn{flex:1;padding:12px 16px}}.sim-page{min-height:100vh;background:#f5f7fa;padding-bottom:60px}.sim-header{background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:40}.sim-header-content{max-width:1000px;margin:0 auto;padding:14px 24px;display:flex;justify-content:space-between;align-items:center;gap:16px}.sim-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#0c1b3a;font-size:18px;font-weight:700}.sim-logo{height:38px;width:auto}.sim-header-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sim-header-link{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:600;color:#475569;transition:all .15s}.sim-header-link:hover{background:#f1f5f9;color:#0c1b3a}.sim-main{max-width:1000px;margin:0 auto;padding:28px 24px 0}.sim-intro{text-align:center;max-width:640px;margin:0 auto 20px}.sim-intro h1{font-size:1.9em;font-weight:700;color:#0c1b3a;margin:0 0 10px;line-height:1.2}.sim-intro p{font-size:14.5px;line-height:1.6;color:#64748b;margin:0}.sim-notice-wrap{max-width:760px;margin:0 auto 22px}.sim-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}.sim-empty{max-width:620px;margin:0 auto;text-align:center;padding:40px 24px;background:#fff;border:1px solid #e2e8f0;border-radius:14px;color:#64748b}.sim-empty p{margin:4px 0;font-size:14px}@media(max-width:640px){.sim-header-content{padding:12px 16px}.sim-brand span{display:none}.sim-main{padding:20px 16px 0}.sim-intro h1{font-size:1.5em}}.simulations-page{animation:fadeIn .3s ease-out}.simulations-page .page-title{display:flex;align-items:center;gap:10px}.simulations-loading{display:flex;justify-content:center;padding:40px 0}.simulations-empty{text-align:center;padding:60px 20px;color:var(--text-secondary)}.simulations-empty a{color:var(--primary-blue);text-decoration:underline}.simulations-table-wrap{overflow-x:auto;border-radius:8px;border:1px solid #e5e7eb;background:#fff}.simulations-table{width:100%;border-collapse:collapse}.simulations-table thead{background:#f8fafc;border-bottom:2px solid #e5e7eb}.simulations-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);letter-spacing:.5px}.simulations-table td{padding:12px 16px;border-bottom:1px solid #f1f5f9;font-size:14px}.simulations-table tbody tr:hover{background:#f8fafc}.sim-number{background:#f1f5f9;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;color:var(--primary-blue)}.sim-amount{font-weight:600;color:var(--primary-blue)}.btn-view-sim{background:none;border:none;cursor:pointer;padding:6px;border-radius:6px;color:var(--text-secondary);transition:all .2s}.btn-view-sim:hover{background:#e3f2fd;color:var(--primary-blue)}.simulations-pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px;font-size:14px;color:var(--text-secondary)}.sim-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.sim-modal{background:#fff;border-radius:12px;width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d}.sim-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.sim-modal-header h3{font-size:18px;font-weight:600;margin:0}.btn-close-sim{background:none;border:none;cursor:pointer;padding:4px;color:var(--text-secondary);border-radius:4px}.btn-close-sim:hover{background:#f1f5f9}.sim-modal-body{padding:20px}.sim-detail-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;padding:16px;background:#f8fafc;border-radius:8px;font-size:14px}.sim-detail-meta p{margin:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.app{min-height:100vh;width:100%;display:flex;flex-direction:column;background:var(--background-white)}.app-header{background:#fff;height:64px;display:flex;align-items:center;padding:0 24px;box-shadow:0 1px 3px #00000014;border-bottom:2px solid #42D3EC;position:sticky;top:0;z-index:1200}.header-content{width:100%;display:flex;align-items:center;gap:20px;justify-content:space-between}.app-logo{height:42px;width:auto;object-fit:contain}.header-text{flex:1}.app-header h1{margin:0;color:var(--primary-blue);font-size:1.15em;font-weight:700;white-space:nowrap}.header-subtitle{margin:0;color:#8896a6;font-size:.8em;font-weight:400}.header-user{display:flex;align-items:center;gap:15px}.user-info{font-family:Raleway,sans-serif;font-size:14px;font-weight:600;color:var(--primary-blue);display:flex;align-items:center;gap:6px}.btn-logout{padding:6px 16px;background:transparent;color:var(--primary-blue);border:1.5px solid #d0d7de;border-radius:6px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s}.btn-logout:hover{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.app-body{display:flex;flex:1;background:var(--background-app, #f5f7fa)}.app-main{flex:1;min-width:0;padding:28px 32px;background:var(--background-app, #f5f7fa);overflow-x:hidden;overflow-y:auto;min-height:calc(100vh - 64px)}.app-footer{background:#42d3ec;padding:67px 40px 27px;display:flex;flex-direction:column;align-items:center;gap:79px;min-height:318px}.footer-content{max-width:1231px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:79px}.footer-columns{display:flex;flex-direction:row;gap:0;align-items:flex-start}.footer-column{display:flex;flex-direction:column}.footer-logo-section{width:131px;margin-right:118px}.footer-logo{width:131px;height:77px;object-fit:contain;margin-left:-65.5px}.footer-contact{width:265px;margin-right:158px}.footer-contact p{margin:0 0 8px;font-family:Montserrat,sans-serif;font-size:15px;font-weight:500;line-height:1.8;letter-spacing:-.01em;color:#010d6f}.footer-contact p strong{color:#010d6f;font-weight:600}.footer-links{width:300px;margin-right:48px}.footer-links nav ul,.footer-links-secondary nav ul{list-style:none;padding:0;margin:0}.footer-links nav ul li,.footer-links-secondary nav ul li{margin-bottom:0;padding:12px 0}.footer-links nav ul li a,.footer-links-secondary nav ul li a{font-family:Raleway,sans-serif;font-size:16px;font-weight:600;text-transform:uppercase;line-height:1.2;letter-spacing:.01em;color:#000c6f;text-decoration:none;transition:color .3s;display:inline-block}.footer-links nav ul li a:hover,.footer-links-secondary nav ul li a:hover{color:#06c}.footer-links-secondary{width:120px;display:flex;flex-direction:column;gap:17px}.footer-bottom{display:flex;justify-content:center;width:100%;margin-top:20px}.footer-bottom p{margin:0;font-family:Raleway,sans-serif;font-size:14px;font-weight:600;line-height:1.5;letter-spacing:-.02em;color:#000c6f}@media(max-width:767px){.app-header{height:56px;padding:0 12px}.header-content{flex-direction:column;gap:15px;text-align:center}.app-logo{height:32px}.app-header h1{font-size:1.5em}.header-user{flex-direction:column;gap:10px;width:100%}.app-main{padding:20px 10px}.footer-columns{flex-direction:column;align-items:center}.footer-logo-section{width:100%;margin-right:0;margin-bottom:61px}.footer-logo{margin-left:0}.footer-contact{width:100%;margin-right:0;margin-bottom:54px}.footer-contact p{text-align:center}.footer-links{width:100%;margin-right:0}.footer-links nav ul li{text-align:center}.footer-links-secondary{width:100%;align-items:center}}
