@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600;700&family=IBM+Plex+Sans:wght@400;500;600&display=swap');/* this gets exported as style.css and can be used for the default theming */
/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */
.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, 0.5);

  --xy-minimap-background-color-default: #fff;
  --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.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, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);
  --xy-node-boxshadow-selected-default: 0 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, 0.08);
  --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.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, 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, 0.25);

  --xy-minimap-background-color-default: #141414;
  --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.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, 0.25);
  --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);
  --xy-node-boxshadow-selected-default: 0 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, 0.08);
  --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.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, 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 0.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;
  }
/* Arrowhead marker styles - use CSS custom properties as default */
.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 0.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: translateX(-15px) translateX(-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 {
  from {
    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: 0.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;
}
/* handle styles */
.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 {
  left: 0;
}
.react-flow__resize-control.handle.bottom.left {
  left: 0;
}
.react-flow__resize-control.handle.top.right {
  left: 100%;
}
.react-flow__resize-control.handle.bottom.right {
  left: 100%;
}
/* line styles */
.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%, 0);
  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: translate(0, -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));
}


:root {
  --navy: #242C5E;
  --navy-light: #3a4880;
  --navy-dark: #1a1e38;
  --orange: #E95625;
  --orange-dark: #c44418;
  --bg: #f0ece4;
  --bg2: #faf7f2;
  --bg3: #e8e2d8;
  --border: #c8bfb4;
  --text: #1a1e38;
  --text-muted: #4a5068;
  --text-dim: #7a80a0;
  --red: #b02020;
  --green: #166430;
  --shadow: 0 2px 8px rgba(36,44,94,0.09);
  --shadow-md: 0 4px 16px rgba(36,44,94,0.13);
  --radius: 10px;
  --radius-sm: 6px;
  --radius-lg: 14px;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body { height: 100%; overflow: hidden; }

html { overflow-x: hidden; }

body { background: var(--bg); color: var(--text); font-family: 'IBM Plex Sans', sans-serif; font-size: 16px; line-height: 1.65; }

/* ── LAYOUT ───────────────────────────────────────────────────────────────── */

.app-root { display: flex; flex-direction: column; height: 100vh; overflow: hidden; }

.app-body { display: flex; flex: 1; height: calc(100vh - 62px); overflow: hidden; }

/* ── HEADER ───────────────────────────────────────────────────────────────── */

.header { background: var(--navy); height: 62px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 12px rgba(26,30,56,0.22); }

.header-title { font-family: 'IBM Plex Mono', monospace; font-weight: 700; font-size: 16px; color: white; letter-spacing: 0.04em; white-space: nowrap; }

.header-dot { color: var(--orange); }

/* ── SIDEBAR ──────────────────────────────────────────────────────────────── */

.sidebar { width: 220px; min-width: 220px; background: var(--bg2); border-right: 1.5px solid var(--border); padding: 16px 10px; display: flex; flex-direction: column; gap: 3px; overflow-y: auto; flex-shrink: 0; height: 100%; }

.sidebar-item { display: flex; align-items: center; gap: 9px; padding: 9px 12px; border-radius: var(--radius-sm); border: none; background: transparent; cursor: pointer; font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; font-weight: 500; color: var(--text-muted); text-align: left; width: 100%; transition: all 0.15s; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.sidebar-item:hover { background: var(--bg3); color: var(--text); }

.sidebar-item.active { background: var(--navy); color: white; }

.sidebar-item.active:hover { background: var(--navy-light); }

/* ── MAIN ─────────────────────────────────────────────────────────────────── */

.main-content { flex: 1; overflow-y: auto; min-width: 0; height: 100%; }

/* ── BREADCRUMB ───────────────────────────────────────────────────────────── */

.breadcrumb { display: flex; align-items: center; gap: 5px; padding: 10px 28px; background: var(--bg2); border-bottom: 1.5px solid var(--border); flex-wrap: wrap; }

.breadcrumb-item { font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600; color: var(--text-muted); background: none; border: none; cursor: pointer; padding: 3px 5px; border-radius: 3px; transition: all 0.15s; }

.breadcrumb-item:hover { color: var(--navy); background: var(--bg3); }

.breadcrumb-sep { color: var(--text-dim); }

/* ── SCREEN ───────────────────────────────────────────────────────────────── */

.screen { padding: 32px 36px 60px; max-width: 980px; }

.screen-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 1rem; flex-wrap: wrap; }

.screen-header h2 { font-family: 'IBM Plex Sans', sans-serif; font-size: 26px; font-weight: 600; color: var(--text); }

.screen-section { margin-top: 32px; }

/* ── CONTEXT PATH ─────────────────────────────────────────────────────────── */

.context-path { display: flex; align-items: center; gap: 5px; font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: var(--orange); letter-spacing: 0.06em; margin-bottom: 4px; font-weight: 600; }

/* ── BTN RETOUR ───────────────────────────────────────────────────────────── */

.btn-retour { display: inline-flex; align-items: center; gap: 6px; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; color: var(--text-muted); background: var(--bg2); border: 1.5px solid var(--border); padding: 7px 14px; border-radius: var(--radius-sm); cursor: pointer; transition: all 0.15s; margin-bottom: 10px; position: relative; }

.btn-retour:hover { background: var(--bg3); color: var(--text); }

/* ── BOUTONS ──────────────────────────────────────────────────────────────── */

.btn-logout { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: white; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; padding: 7px 14px; border-radius: var(--radius-sm); cursor: pointer; display: flex; align-items: center; gap: 7px; transition: background 0.15s; }

.btn-logout:hover { background: rgba(255,255,255,0.18); }

.btn-primary { background: var(--orange); color: white; border: none; padding: 9px 18px; border-radius: var(--radius-sm); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 700; display: flex; align-items: center; gap: 7px; transition: background 0.15s; letter-spacing: 0.02em; }

.btn-primary:hover { background: var(--orange-dark); }

.btn-primary:disabled { opacity: 0.5; cursor: not-allowed; }

.btn-secondary { background: var(--bg2); border: 1.5px solid var(--border); color: var(--text); padding: 7px 14px; border-radius: var(--radius-sm); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 7px; transition: all 0.15s; }

.btn-secondary:hover { background: var(--bg3); border-color: #a89e94; }

.btn-secondary.active { background: var(--navy); color: white; border-color: var(--navy); }

.btn-small { background: var(--bg2); border: 1.5px solid var(--border); color: var(--text-muted); padding: 5px 10px; border-radius: var(--radius-sm); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600; display: flex; align-items: center; gap: 4px; transition: all 0.15s; }

.btn-small:hover { background: var(--bg3); color: var(--text); }

.btn-danger { color: var(--red) !important; border-color: rgba(176,32,32,0.3) !important; }

.btn-danger:hover { background: rgba(176,32,32,0.07) !important; border-color: var(--red) !important; }

/* ── CARDS ────────────────────────────────────────────────────────────────── */

.card { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 16px 18px; margin-bottom: 14px; box-shadow: var(--shadow); }

.project-card { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); cursor: pointer; transition: all 0.15s; box-shadow: var(--shadow); overflow: hidden; }

.project-card:hover { border-color: var(--orange); box-shadow: var(--shadow-md); transform: translateY(-1px); }

.card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 0.75rem; padding: 16px 18px 0; margin-bottom: 8px; }

.card-header h3 { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; font-weight: 600; color: var(--text); }

.card-body-pad { padding: 0 18px 16px; }

.card-client-nom { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: var(--orange); letter-spacing: 0.08em; margin-bottom: 4px; font-weight: 700; }

.card-meta { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: var(--text-muted); }

.card-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 8px; margin-bottom: 4px; }

.card-deadline { font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; margin-top: 6px; }

.card-deadline.deadline-soon { color: var(--orange); }

.card-deadline.deadline-late { color: var(--red); }

/* ── TÂCHE CARDS (vue cartes) ─────────────────────────────────────────────── */

.taches-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }

.tache-card { background: var(--bg2); border: 1.5px solid var(--border); border-left: 4px solid var(--text-dim); border-radius: var(--radius); padding: 14px 16px; cursor: pointer; transition: all 0.15s; box-shadow: var(--shadow); }

.tache-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }

.tache-card-numerique { border-left-color: var(--navy); }

.tache-card-physique { border-left-color: #8b5cf6; }

.tache-card-mixte { border-left-color: var(--orange); }

.tache-card-sans_sortie { border-left-color: var(--text-dim); }

.tache-card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }

.tache-card-icon { flex-shrink: 0; }

.tache-card-nom { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; font-weight: 600; color: var(--text); flex: 1; }

.tache-card-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }

.tache-card-type { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--text-dim); letter-spacing: 0.06em; }

.tache-card-liens { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--text-dim); display: flex; flex-direction: column; gap: 2px; border-top: 1px solid var(--border); padding-top: 8px; margin-top: 8px; }

.tache-card-fab { display: flex; gap: 12px; border-top: 1px solid var(--border); padding-top: 8px; margin-top: 8px; }

/* ── TAGS TYPE TÂCHE ──────────────────────────────────────────────────────── */

.tag-type-numerique { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 4px; background: rgba(36,44,94,0.1); color: var(--navy); }

.tag-type-physique { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 4px; background: rgba(139,92,246,0.12); color: #7c3aed; }

.tag-type-mixte { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 4px; background: rgba(233,86,37,0.12); color: var(--orange-dark); }

.tag-type-sans_sortie { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 4px; background: rgba(122,128,160,0.12); color: var(--text-muted); }

/* ── REACT FLOW NŒUDS ────────────────────────────────────────────────────── */

.rf-node { background: var(--bg2); border: 2px solid var(--border); border-radius: var(--radius); padding: 12px 14px; min-width: 160px; max-width: 220px; cursor: pointer; box-shadow: var(--shadow); transition: box-shadow 0.15s; position: relative; }

.rf-node:hover { box-shadow: var(--shadow-md); }

.rf-node-physique { background: rgba(139,92,246,0.05); }

.rf-node-mixte { background: rgba(233,86,37,0.04); }

.rf-node-sans_sortie { background: rgba(122,128,160,0.05); }

.rf-node-header { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }

.rf-node-icon { flex-shrink: 0; }

.rf-node-nom { font-family: 'IBM Plex Sans', sans-serif; font-size: 13px; font-weight: 600; color: var(--text); flex: 1; line-height: 1.3; }

.rf-node-footer { display: flex; justify-content: space-between; align-items: center; }

.rf-node-type { font-family: 'IBM Plex Mono', monospace; font-size: 10px; color: var(--text-dim); letter-spacing: 0.06em; }

.rf-node-etat { font-family: 'IBM Plex Mono', monospace; font-size: 10px; font-weight: 700; letter-spacing: 0.04em; }

.rf-handle { width: 12px !important; height: 12px !important; border-radius: 50% !important; border: 2px solid var(--bg2) !important; }

.rf-handle-in { background: var(--navy-light) !important; left: -6px !important; }

.rf-handle-out { background: var(--orange) !important; right: -6px !important; }

/* ── FABRICATION SECTION ──────────────────────────────────────────────────── */

.fabrication-card { background: rgba(139,92,246,0.05); border: 1.5px solid rgba(139,92,246,0.2); border-radius: var(--radius); padding: 18px; margin-bottom: 24px; }

.fabrication-section { background: rgba(139,92,246,0.04); border: 1.5px solid rgba(139,92,246,0.15); border-radius: var(--radius); padding: 16px; margin-bottom: 14px; }

/* ── SUGGESTIONS ──────────────────────────────────────────────────────────── */

.suggestions-box { background: rgba(233,86,37,0.05); border: 1.5px solid rgba(233,86,37,0.2); border-radius: var(--radius); padding: 16px; margin-bottom: 20px; }

.suggestion-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; background: var(--bg2); border: 1.5px solid var(--border); border-radius: 20px; cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600; color: var(--text-muted); transition: all 0.15s; }

.suggestion-chip:hover { background: var(--navy); color: white; border-color: var(--navy); }

/* ── GRILLES ──────────────────────────────────────────────────────────────── */

.projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-bottom: 2rem; }

.grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 14px; }

.info-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin-bottom: 20px; }

/* ── INFO CARDS ───────────────────────────────────────────────────────────── */

.info-card { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 14px 16px; box-shadow: var(--shadow); }

.info-label { font-family: 'IBM Plex Mono', monospace; font-size: 11px; color: var(--text-dim); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 6px; }

.info-value-sm { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; font-weight: 600; color: var(--text); }

/* ── LISTES ───────────────────────────────────────────────────────────────── */

.clients-list, .projects-list { display: flex; flex-direction: column; gap: 10px; }

.list-item { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 12px 16px; display: flex; justify-content: space-between; align-items: center; cursor: pointer; transition: all 0.15s; box-shadow: var(--shadow); }

.list-item:hover { background: var(--bg3); border-color: #a89e94; }

.list-item h3 { font-size: 16px; font-weight: 600; color: var(--text); margin-bottom: 2px; }

.list-item h4 { font-size: 15px; font-weight: 600; color: var(--text); margin-bottom: 2px; }

.list-item p { font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: var(--text-muted); }

/* ── TAGS ─────────────────────────────────────────────────────────────────── */

.tag { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; padding: 3px 9px; border-radius: 4px; }

.tag-payant { background: rgba(22,100,48,0.12); color: #0e5028; }

.tag-gratuit { background: rgba(36,44,94,0.12); color: var(--navy); }

.tag-devis { display: inline-block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; padding: 3px 8px; border-radius: 4px; background: rgba(233,86,37,0.15); color: #c04010; border: 1px solid rgba(233,86,37,0.35); }

.tag-dem-a_faire { background: rgba(233,86,37,0.13); color: #c04010; font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 4px; }

.tag-dem-integre { background: rgba(22,100,48,0.13); color: var(--green); font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 4px; }

.tag-dem-refusee { background: rgba(176,32,32,0.11); color: var(--red); font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; padding: 3px 9px; border-radius: 4px; }

.status { font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 600; color: var(--text-muted); background: var(--bg3); border: 1.5px solid var(--border); padding: 4px 9px; border-radius: 4px; letter-spacing: 0.04em; }

/* ── SÉRIES ───────────────────────────────────────────────────────────────── */

.serie-card { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); margin-bottom: 12px; box-shadow: var(--shadow); overflow: hidden; }

.serie-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; cursor: pointer; background: var(--bg3); border-bottom: 1px solid var(--border); transition: background 0.15s; }

.serie-header:hover { background: #e0d8ce; }

.serie-nom { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; font-weight: 600; color: var(--text); }

.serie-versions { padding: 10px 16px; display: flex; flex-direction: column; gap: 8px; }

.version-row { padding: 10px 12px; background: var(--bg); border: 1.5px solid var(--border); border-radius: var(--radius-sm); }

.version-num { font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 700; color: var(--orange); background: rgba(233,86,37,0.1); padding: 2px 7px; border-radius: 3px; flex-shrink: 0; }

.small { font-family: 'IBM Plex Mono', monospace; font-size: 12px; color: var(--text-muted); display: block; margin-bottom: 3px; }

.notes { font-size: 13px; font-style: italic; padding: 6px 10px; background: var(--bg3); border-radius: var(--radius-sm); margin: 6px 0; color: var(--text-muted); }

/* ── VERSION PREVIEW ──────────────────────────────────────────────────────── */

.version-preview { background: rgba(233,86,37,0.06); border: 1.5px solid rgba(233,86,37,0.28); border-radius: var(--radius); padding: 14px 18px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 10px; }

.version-preview-label { font-family: 'IBM Plex Mono', monospace; font-size: 12px; font-weight: 700; color: var(--orange); letter-spacing: 0.06em; text-transform: uppercase; }

/* ── DEMANDES ─────────────────────────────────────────────────────────────── */

.demand-card { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 10px; display: flex; box-shadow: var(--shadow); }

.demand-text { font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; color: var(--text); margin-bottom: 5px; line-height: 1.55; }

/* ── SECTIONS ─────────────────────────────────────────────────────────────── */

.section { margin-bottom: 36px; }

.section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }

.section-label { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-dim); }

/* ── FORMULAIRES ──────────────────────────────────────────────────────────── */

.form { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius-lg); padding: 24px; box-shadow: var(--shadow); }

.form-group { margin-bottom: 18px; }

.form-group label { display: block; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; color: var(--text-muted); letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 7px; }

.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 10px 13px; background: var(--bg3); border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; color: var(--text); transition: border-color 0.15s; outline: none; }

.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--orange); background: var(--bg2); }

.form-group textarea { min-height: 96px; resize: vertical; }

.form-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 24px; padding-top: 18px; border-top: 1.5px solid var(--border); }

.error { font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: var(--red); background: rgba(176,32,32,0.08); padding: 10px 14px; border-radius: var(--radius-sm); border: 1px solid rgba(176,32,32,0.22); margin-bottom: 14px; }

/* ── TRAVAUX ──────────────────────────────────────────────────────────────── */

.travaux-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }

.travaux-chip { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 600; background: rgba(36,44,94,0.09); color: var(--navy); border: 1px solid rgba(36,44,94,0.18); padding: 3px 8px; border-radius: 3px; }

.travaux-chip-lg { font-size: 12px; padding: 4px 10px; }

.travaux-checkboxes { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }

.travail-checkbox { display: flex; align-items: center; gap: 7px; padding: 7px 14px; border: 1.5px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; color: var(--text-muted); background: var(--bg3); transition: all 0.15s; user-select: none; }

.travail-checkbox input { display: none; }

.travail-checkbox:hover { border-color: var(--navy); color: var(--navy); }

.travail-checkbox.checked { background: var(--navy); color: white; border-color: var(--navy); }

/* ── CHECKBOX ─────────────────────────────────────────────────────────────── */

.checkbox-box { width: 17px; height: 17px; border: 1.5px solid var(--border); border-radius: 3px; background: var(--bg3); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.15s; }

.devis-checkbox.checked .checkbox-box { background: var(--orange); border-color: var(--orange); color: white; }

/* ── BADGES ───────────────────────────────────────────────────────────────── */

.badge-demandes { background: var(--red); color: white; font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; min-width: 22px; height: 22px; border-radius: 11px; display: flex; align-items: center; justify-content: center; padding: 0 6px; }

/* ── FILTRES ──────────────────────────────────────────────────────────────── */

.filters-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 20px; align-items: center; }

.filter-select { padding: 7px 11px; background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: var(--text); cursor: pointer; outline: none; transition: border-color 0.15s; }

.filter-select:focus { border-color: var(--orange); }

.filter-input { padding: 7px 11px; background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; color: var(--text); outline: none; transition: border-color 0.15s; min-width: 180px; }

.filter-input:focus { border-color: var(--orange); }

.filter-checkbox { display: flex; align-items: center; gap: 7px; padding: 7px 12px; border: 1.5px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: var(--text-muted); background: var(--bg2); transition: all 0.15s; user-select: none; }

.filter-checkbox.active { background: var(--navy); color: white; border-color: var(--navy); }

/* ── EMPTY STATES ─────────────────────────────────────────────────────────── */

.empty-state { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 3rem; text-align: center; font-family: 'IBM Plex Mono', monospace; font-size: 14px; color: var(--text-dim); }

.empty-state-sm { font-family: 'IBM Plex Mono', monospace; font-size: 13px; color: var(--text-dim); padding: 10px 0 18px; }

/* ── MODAL ────────────────────────────────────────────────────────────────── */

.modal-overlay { position: fixed; inset: 0; background: rgba(26,30,56,0.52); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 24px; }

.modal-box { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius-lg); max-width: 560px; width: 100%; max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 8px 32px rgba(26,30,56,0.28); }

.modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1.5px solid var(--border); }

.modal-title { font-family: 'IBM Plex Mono', monospace; font-size: 14px; font-weight: 700; color: var(--navy); letter-spacing: 0.06em; text-transform: uppercase; }

.modal-close { background: var(--bg3); border: 1.5px solid var(--border); border-radius: 6px; cursor: pointer; color: var(--text-muted); padding: 5px 7px; display: flex; align-items: center; }

.modal-close:hover { background: var(--border); }

.modal-body { padding: 20px; overflow-y: auto; display: flex; flex-direction: column; gap: 16px; }

.aide-section-titre { font-family: 'IBM Plex Mono', monospace; font-size: 11px; font-weight: 700; color: var(--orange); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 6px; }

.aide-section-contenu { font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; color: var(--text); line-height: 1.7; }

/* ── CONFIG ───────────────────────────────────────────────────────────────── */

.config-tabs { display: flex; gap: 4px; margin-bottom: 18px; border-bottom: 1.5px solid var(--border); flex-wrap: wrap; }

.config-tab { padding: 9px 16px; border: none; background: transparent; cursor: pointer; font-family: 'IBM Plex Mono', monospace; font-size: 13px; font-weight: 600; color: var(--text-muted); border-bottom: 2px solid transparent; margin-bottom: -1.5px; transition: all 0.15s; }

.config-tab:hover { color: var(--text); }

.config-tab.active { color: var(--orange); border-bottom-color: var(--orange); }

.config-section { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 18px; box-shadow: var(--shadow); }

.config-list { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; }

.config-item { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; background: var(--bg3); border: 1px solid var(--border); border-radius: var(--radius-sm); }

.config-item-nom { font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; font-weight: 600; color: var(--text); }

.config-item-desc { font-family: 'IBM Plex Sans', sans-serif; font-size: 13px; color: var(--text-muted); }

.config-add { display: flex; gap: 10px; align-items: center; }

.config-add input { flex: 1; padding: 9px 11px; background: var(--bg3); border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-family: 'IBM Plex Sans', sans-serif; font-size: 14px; color: var(--text); outline: none; }

.config-add input:focus { border-color: var(--orange); }

/* ── LOGIN ────────────────────────────────────────────────────────────────── */

.login-container { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: var(--navy-dark); }

.login-box { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius-lg); padding: 40px 36px; width: 100%; max-width: 520px; box-shadow: 0 8px 32px rgba(0,0,0,0.28); }

.login-box h1 { font-family: 'IBM Plex Mono', monospace; font-weight: 700; font-size: 24px; color: var(--navy); margin-bottom: 24px; white-space: nowrap; }

.login-box form { display: flex; flex-direction: column; gap: 12px; }

.login-box input { padding: 13px 16px; background: var(--bg3); border: 1.5px solid var(--border); border-radius: var(--radius-sm); font-family: 'IBM Plex Sans', sans-serif; font-size: 15px; color: var(--text); outline: none; transition: border-color 0.15s; }

.login-box input:focus { border-color: var(--orange); }

/* ── DEBUG LABELS ─────────────────────────────────────────────────────────── */

.dbg { position: relative; display: inline-flex; align-items: center; }

.dbg-block { position: relative; }

.dbg-tag { position: absolute; top: -1px; right: -1px; background: rgba(120,40,200,0.88); color: white; font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 0 var(--radius-sm) 0 4px; cursor: pointer; z-index: 50; white-space: nowrap; user-select: none; line-height: 16px; transition: background 0.1s; }

.dbg-tag:hover { background: rgba(90,20,180,0.95); }

.dbg-tag.copied { background: rgba(22,100,48,0.9) !important; }

.dbg-inline { font-family: 'IBM Plex Mono', monospace; font-size: 9px; font-weight: 700; background: rgba(120,40,200,0.88); color: white; padding: 1px 4px; border-radius: 3px; margin-left: 5px; cursor: pointer; user-select: none; vertical-align: middle; transition: background 0.1s; }

.dbg-inline:hover { background: rgba(90,20,180,0.95); }

.dbg-inline.copied { background: rgba(22,100,48,0.9) !important; }

/* ── BADGES CONTEXTUELS ──────────────────────────────────────────────────── */

.badge-contexte { display: inline-block; font-size: 10px; font-weight: 700; font-family: IBM Plex Mono, monospace; letter-spacing: 0.12em; padding: 3px 9px; border-radius: 4px; text-transform: uppercase; }

.badge-tache { background: rgba(36,44,94,0.12); color: var(--navy); border: 1.5px solid var(--navy); }

.badge-projet { background: rgba(233,86,37,0.12); color: var(--orange); border: 1.5px solid var(--orange); }

.badge-client { background: rgba(23,24,48,0.08); color: var(--text-muted); border: 1.5px solid var(--border); }

.badge-console { background: rgba(139,92,246,0.12); color: #7c3aed; border: 1.5px solid #7c3aed; }

/* ── FICHIERS PROJET ─────────────────────────────────────────────────────── */

.fichier-vignette { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); transition: all 0.15s; }

.fichier-vignette:hover { border-color: var(--orange); box-shadow: var(--shadow-md); }

.fichier-liste-item { background: var(--bg2); border: 1.5px solid var(--border); border-radius: var(--radius); padding: 12px 16px; display: flex; align-items: flex-start; gap: 14px; box-shadow: var(--shadow); }

.fichier-liste-item:hover { border-color: #a89e94; }

/* ── DOSSIERS LIÉS ───────────────────────────────────────────────────────── */

.dossier-card { background: var(--bg2); border: 1.5px solid var(--border); border-left: 4px solid var(--navy); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 10px; display: flex; align-items: center; gap: 14px; box-shadow: var(--shadow); }

.dossier-card:hover { border-left-color: var(--orange); }

/* ── RESPONSIVE ───────────────────────────────────────────────────────────── */

@media (max-width: 1200px) { .screen { padding: 24px 28px 48px; } }

@media (max-width: 900px) {
  .sidebar { display: none; }
  .screen { padding: 16px 16px 40px; }
  .grid-2 { grid-template-columns: 1fr; }
  .projects-grid, .taches-grid { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: repeat(2,1fr); }
  .header-title { font-size: 13px; }
}

@media (max-width: 600px) {
  .info-grid { grid-template-columns: 1fr; }
  .form-actions { flex-direction: column-reverse; }
  .form-actions button { width: 100%; justify-content: center; }
  .login-box h1 { white-space: normal; font-size: 18px; }
}
