
.topbar[data-v-2e07bb76] {
  width: 100%;
  height: 52px;
  background: #1e293b;
  display: flex;
  align-items: center;
  padding: 0 16px;
  gap: 24px;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 100;
}
.topbar-logo[data-v-2e07bb76] {
  display: flex;
  align-items: center;
  cursor: pointer;
  transition: opacity 150ms;
  flex-shrink: 0;
}
.topbar-logo[data-v-2e07bb76]:hover { opacity: 0.85;
}
.topbar-nav[data-v-2e07bb76] {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: 1;
}
.topbar-btn[data-v-2e07bb76] {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 12px;
  border: none;
  background: transparent;
  color: #94a3b8;
  border-radius: 8px;
  cursor: pointer;
  font-size: 13px;
  font-weight: 500;
  transition: all 150ms ease;
}
.topbar-btn .lbl[data-v-2e07bb76] { white-space: nowrap;
}
.topbar-btn[data-v-2e07bb76]:hover { background: rgba(255, 255, 255, 0.08); color: #e2e8f0;
}
.topbar-btn.active[data-v-2e07bb76] { background: rgba(99, 102, 241, 0.18); color: #c7d2fe;
}
.topbar-btn.icon-only[data-v-2e07bb76] { padding: 0 8px;
}
.quit-btn[data-v-2e07bb76] { color: var(--text-muted);
}
.quit-btn[data-v-2e07bb76]:hover { color: var(--danger); background: var(--danger-light);
}
.topbar-right[data-v-2e07bb76] {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.capture-btn[data-v-2e07bb76] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 14px;
  background: var(--success, #22c55e);
  color: white;
  border: none;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(34, 197, 94, 0.3);
  transition: all 150ms;
}
.capture-btn[data-v-2e07bb76]:hover { background: #16a34a; box-shadow: 0 3px 10px rgba(34, 197, 94, 0.4);
}
.action-btn[data-v-2e07bb76] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 14px;
  background: var(--accent);
  color: white;
  border: none;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(99, 102, 241, 0.3);
  transition: all 150ms;
}
.action-btn[data-v-2e07bb76]:hover { background: var(--accent-hover); box-shadow: 0 3px 10px rgba(99, 102, 241, 0.4);
}

.login-screen[data-v-c76e95a4] {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  padding: 20px;
  z-index: 2000;
}
.login-card[data-v-c76e95a4] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md, 0 8px 32px rgba(0,0,0,0.12));
  padding: 32px 28px;
  width: 100%;
  max-width: 340px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.login-logo[data-v-c76e95a4] { margin-bottom: 4px;
}
.login-sub[data-v-c76e95a4] { font-size: 13px; color: var(--text-muted); margin-bottom: 4px;
}
.login-card .input[data-v-c76e95a4] { text-align: center;
}
.login-error[data-v-c76e95a4] { font-size: 13px; color: var(--danger); font-weight: 500;
}
.login-btn[data-v-c76e95a4] { width: 100%; justify-content: center; margin-top: 4px;
}

.capture-overlay[data-v-57a95981] {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 500;
}
.capture-modal[data-v-57a95981] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  width: 400px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}
.capture-modal h3[data-v-57a95981] {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}
.capture-actions[data-v-57a95981] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.agenda-header[data-v-584117ee] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
  gap: 16px;
}
.header-left[data-v-584117ee] {
  display: flex;
  align-items: center;
  gap: 16px;
}
.date-label[data-v-584117ee] {
  font-size: 20px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  width: 280px;
  flex-shrink: 0;
}
.lock-icon[data-v-584117ee] { font-size: 14px; vertical-align: middle;
}
.view-toggle[data-v-584117ee] {
  display: flex;
  background: var(--bg);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  overflow: hidden;
}
.toggle-btn[data-v-584117ee] {
  padding: 5px 14px;
  font-size: 13px;
  font-weight: 500;
  border: none;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  transition: all var(--transition);
}
.toggle-btn.active[data-v-584117ee] {
  background: var(--bg-card);
  color: var(--text);
  box-shadow: var(--shadow-sm);
}
.toggle-btn[data-v-584117ee]:hover:not(.active) { color: var(--text);
}
.nav-arrows[data-v-584117ee] { display: flex; gap: 2px;
}
.nav-btn[data-v-584117ee] {
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  color: var(--text-muted);
  font-size: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all var(--transition);
}
.nav-btn[data-v-584117ee]:hover { background: var(--bg-hover); color: var(--text);
}
.nav-btn.dot[data-v-584117ee] { font-size: 24px; font-weight: bold;
}
.header-right[data-v-584117ee] {
  display: flex;
  align-items: center;
  gap: 12px;
}
.template-select[data-v-584117ee] {
  width: auto;
  min-width: 140px;
}
.input-sm[data-v-584117ee] { padding: 5px 10px; font-size: 13px;
}
.loc-onsite[data-v-584117ee] { background: #dbeafe; color: #1e40af; border-color: #93c5fd;
}
.loc-remote[data-v-584117ee] { background: #dcfce7; color: #166534; border-color: #86efac;
}
.tpl-picker-wrap[data-v-584117ee] { position: relative;
}
.tpl-picker-pop[data-v-584117ee] {
  position: absolute; top: 100%; right: 0; margin-top: 4px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-md);
  min-width: 180px; z-index: 100; padding: 4px 0;
}
.tpl-pick-item[data-v-584117ee] { padding: 6px 12px; font-size: 13px; cursor: pointer;
}
.tpl-pick-item[data-v-584117ee]:hover { background: var(--bg);
}
.tpl-pick-item.edit[data-v-584117ee] { color: var(--accent); font-weight: 500;
}
.tpl-pick-sep[data-v-584117ee] { height: 1px; background: var(--border); margin: 4px 0;
}
.template-badge[data-v-584117ee] {
  font-size: 12px;
  font-weight: 600;
  color: var(--accent);
  background: var(--accent-light);
  padding: 3px 10px;
  border-radius: 999px;
}
.capacity-label[data-v-584117ee] {
  font-size: 13px;
  color: var(--text-muted);
  white-space: nowrap;
}

.timeline-container[data-v-e82790e0] {
  position: relative;
  overflow-y: auto;
  flex: 2;
  padding: 8px 0;
}
.timeline[data-v-e82790e0] {
  position: relative;
  margin-left: 44px;
  margin-right: 8px;
  border-left: 1px solid var(--border);
}
.hour-line[data-v-e82790e0] {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid var(--border-light);
  pointer-events: none;
}
.hour-label[data-v-e82790e0] {
  position: absolute;
  left: -44px;
  top: -9px;
  font-size: 12px;
  color: var(--text-light);
  width: 36px;
  text-align: right;
}

/* Base block */
.block[data-v-e82790e0] {
  position: absolute;
  border-radius: var(--radius);
  overflow: hidden;
  transition: box-shadow 150ms ease;
}
.block[data-v-e82790e0]:not(.locked) { cursor: grab;
}
.block[data-v-e82790e0]:not(.locked):active { cursor: grabbing;
}
.block.locked[data-v-e82790e0] { cursor: default;
}
.block-inner[data-v-e82790e0] {
  padding: 6px 10px;
  padding-right: 30px;
  padding-bottom: 12px;
  display: flex;
  flex-direction: column;
  gap: 2px;
  height: 100%;
  overflow: hidden;
  position: relative;
  z-index: 1;
}
.block-title[data-v-e82790e0] {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  line-height: 1.3;
}
.block-title.has-cat[data-v-e82790e0] { padding-left: 32px;
}
.title-outlook[data-v-e82790e0] { color: #92400e;
}
.block-cat-badge[data-v-e82790e0] {
  position: absolute; top: 6px; left: 6px;
  font-size: 9px; font-weight: 700; letter-spacing: 0.4px;
  color: white; padding: 2px 5px; border-radius: 3px;
  line-height: 1.2;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.block-meta[data-v-e82790e0] {
  font-size: 11px;
  color: var(--text-muted);
  line-height: 1.3;
}
.block-residual[data-v-e82790e0] {
  font-size: 11px;
  color: var(--text-muted);
  font-style: italic;
}
.block-residual.done[data-v-e82790e0] { color: var(--success);
}
.block-duration[data-v-e82790e0] {
  position: absolute;
  right: 30px;
  top: 6px;
  font-size: 12px;
  font-weight: 500;
  color: var(--text-muted);
}

/* DayBlock style */
.block-dayblock[data-v-e82790e0] {
  background: var(--block-template);
  border: 1px solid var(--border);
}

/* Outlook style */
.block-outlook-oof[data-v-e82790e0] {
  background: repeating-linear-gradient(
    45deg,
    rgba(220, 38, 38, 0.18),
    rgba(220, 38, 38, 0.18) 10px,
    rgba(220, 38, 38, 0.32) 10px,
    rgba(220, 38, 38, 0.32) 20px
  );
  border: 2px solid rgba(220, 38, 38, 0.6);
  z-index: 30;
  cursor: pointer;
}
.block-outlook-oof .block-title[data-v-e82790e0] { color: #7f1d1d; font-weight: 700; text-shadow: 0 0 4px rgba(255,255,255,0.6);
}
.block-outlook-oof .block-meta[data-v-e82790e0] { color: #7f1d1d;
}
.block-outlook-soft[data-v-e82790e0] {
  background: var(--pastel-bg, var(--block-outlook));
  border: 1px dashed var(--project-color, var(--block-outlook-border));
  border-left: 3px dashed var(--project-color, var(--block-outlook-border));
  opacity: 0.45;
  z-index: 1;
  cursor: pointer;
  pointer-events: auto;
}
.block-outlook-soft .block-title[data-v-e82790e0] { color: var(--text-muted); font-weight: 500; font-style: italic;
}
.block-outlook-soft .block-meta[data-v-e82790e0] { color: var(--text-muted); opacity: 0.8;
}
.block-outlook[data-v-e82790e0] {
  background: var(--pastel-bg, var(--block-outlook));
  border: 1px solid var(--project-color, var(--block-outlook-border));
  border-left: 4px solid var(--project-color, var(--block-outlook-border));
  background-image:
    linear-gradient(var(--pastel-bg, var(--block-outlook)), var(--pastel-bg, var(--block-outlook))),
    repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,0.06) 6px 8px);
  background-blend-mode: multiply;
  cursor: pointer;
}
.block-outlook[data-v-e82790e0]::before {
  content: '📅';
  position: absolute;
  top: 4px; right: 6px;
  font-size: 11px;
  opacity: 0.7;
}

/* Task style */
.block-task[data-v-e82790e0] {
  background: var(--pastel-bg, var(--bg-card));
  border: 1px solid var(--border);
  border-left: 4px solid var(--project-color, var(--accent));
  box-shadow: var(--shadow-sm);
}
.block-task[data-v-e82790e0]:hover { box-shadow: var(--shadow);
}

/* Lock button */
.lock-btn[data-v-e82790e0] {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 24px;
  height: 24px;
  border: none;
  background: transparent;
  color: var(--text-light);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  opacity: 0.4;
  transition: all 150ms ease;
  z-index: 5;
}
.lock-btn[data-v-e82790e0]:hover {
  opacity: 1;
  background: rgba(0, 0, 0, 0.06);
}
.locked .lock-btn[data-v-e82790e0] {
  opacity: 0.7;
  color: var(--text-muted);
}
.del-btn[data-v-e82790e0] {
  position: absolute;
  top: 4px;
  right: 32px;
  width: 20px; height: 20px;
  border: none; background: transparent;
  color: var(--text-light); cursor: pointer;
  font-size: 16px; line-height: 1;
  border-radius: 4px;
  opacity: 0.4;
  transition: all 150ms ease;
}
.del-btn[data-v-e82790e0]:hover { opacity: 1; color: var(--danger); background: rgba(0,0,0,0.06);
}

/* Resize handle */
.resize-handle[data-v-e82790e0] {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 10px;
  cursor: ns-resize;
  background: transparent;
  z-index: 10;
}
.resize-handle[data-v-e82790e0]:hover {
  background: rgba(99, 102, 241, 0.2);
}

/* Ghost */
.drop-ghost[data-v-e82790e0] {
  position: absolute;
  left: 4px;
  right: 4px;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--ghost-color) 12%, transparent);
  border: 2px dashed var(--ghost-color);
  pointer-events: none;
  z-index: 40;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6px 10px;
  transition: top 80ms ease, height 80ms ease;
}
.ghost-label[data-v-e82790e0] {
  font-size: 12px;
  font-weight: 600;
  color: var(--ghost-color);
  opacity: 0.8;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ghost-duration[data-v-e82790e0] {
  font-size: 11px;
  color: var(--ghost-color);
  opacity: 0.6;
}

.week-container[data-v-94d87dfd] {
  display: flex;
  flex: 3;
  overflow-y: auto;
  overflow-x: hidden;
}

/* Hours column */
.hours-col[data-v-94d87dfd] {
  width: 36px;
  min-width: 36px;
  display: flex;
  flex-direction: column;
}
.hours-col-header[data-v-94d87dfd] {
  height: 44px;
  flex-shrink: 0;
}
.hours-col-body[data-v-94d87dfd] {
  position: relative;
}
.hour-line-label[data-v-94d87dfd] {
  position: absolute;
  right: 4px;
  font-size: 11px;
  color: var(--text-light);
  transform: translateY(-7px);
}

/* Day column */
.day-col[data-v-94d87dfd] {
  flex: 1;
  min-width: 0;
  border-left: 1px solid var(--border);
  display: flex;
  flex-direction: column;
}
.day-col.today[data-v-94d87dfd] {
  background: var(--accent-light);
}
.day-actions[data-v-94d87dfd] { display: flex; gap: 4px; align-items: center;
}
.loc-pill[data-v-94d87dfd] {
  border: 1px solid; border-radius: 999px; padding: 1px 6px;
  font-size: 11px; cursor: pointer; background: var(--bg-card);
}
.loc-pill.loc-onsite[data-v-94d87dfd] { color: #1e40af; border-color: #93c5fd; background: #dbeafe;
}
.loc-pill.loc-remote[data-v-94d87dfd] { color: #166534; border-color: #86efac; background: #dcfce7;
}
.tpl-btn[data-v-94d87dfd] {
  border: 1px solid var(--border); border-radius: 4px;
  background: var(--bg); color: var(--text-muted);
  padding: 1px 6px; font-size: 11px; cursor: pointer;
}
.tpl-btn[data-v-94d87dfd]:hover { color: var(--text);
}
.day-tpl-pop-wrap[data-v-94d87dfd] { position: relative;
}
.tpl-pop[data-v-94d87dfd] {
  position: absolute; top: 100%; right: 0; margin-top: 2px;
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow-md);
  min-width: 140px; z-index: 100; padding: 4px 0;
}
.tpl-pop-item[data-v-94d87dfd] { padding: 5px 10px; font-size: 12px; cursor: pointer;
}
.tpl-pop-item[data-v-94d87dfd]:hover { background: var(--bg);
}
.tpl-pop-item.edit[data-v-94d87dfd] { color: var(--accent);
}
.tpl-pop-sep[data-v-94d87dfd] { height: 1px; background: var(--border); margin: 3px 0;
}
.day-col-header[data-v-94d87dfd] {
  height: 44px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
  flex-shrink: 0;
}
.day-col-header.today[data-v-94d87dfd] {
  background: var(--accent);
  color: white;
}
.day-col-header.today .day-col-label[data-v-94d87dfd] { color: white;
}
.day-col-header.today .day-col-capacity[data-v-94d87dfd] { color: rgba(255,255,255,0.7);
}
.day-col-label[data-v-94d87dfd] {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
}
.day-tpl-select[data-v-94d87dfd] {
  font-size: 10px;
  padding: 1px 4px;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--bg);
  color: var(--text-muted);
  cursor: pointer;
  max-width: 90px;
  appearance: none;
}
.day-col-header.today .day-tpl-select[data-v-94d87dfd] {
  border-color: rgba(255,255,255,0.3);
  background: rgba(255,255,255,0.15);
  color: rgba(255,255,255,0.8);
}
.day-col-timeline[data-v-94d87dfd] {
  position: relative;
  flex: 1;
}
.hour-line[data-v-94d87dfd] {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid var(--border-light);
  pointer-events: none;
}

/* Weekend separator */
.weekend-sep[data-v-94d87dfd] {
  width: 32px;
  min-width: 32px;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--border);
  border-right: 1px solid var(--border);
}
.weekend-sep-header[data-v-94d87dfd] {
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.weekend-sep-header span[data-v-94d87dfd] {
  font-size: 10px;
  font-weight: 700;
  color: var(--text-light);
  letter-spacing: 0.05em;
}
.weekend-sep-body[data-v-94d87dfd] {
  background: repeating-linear-gradient(
    -45deg,
    transparent,
    transparent 4px,
    var(--border-light) 4px,
    var(--border-light) 5px
  );
}

/* Blocks */
.wblock[data-v-94d87dfd] {
  position: absolute;
  border-radius: 4px;
  overflow: hidden;
  padding: 2px 4px;
  display: flex;
  align-items: flex-start;
  gap: 2px;
}
.wblock[data-v-94d87dfd]:not(.locked) { cursor: grab;
}
.wblock[data-v-94d87dfd]:not(.locked):active { cursor: grabbing;
}
.wblock.locked[data-v-94d87dfd] { cursor: default;
}
.wblock-label[data-v-94d87dfd] {
  font-size: 11px;
  font-weight: 600;
  color: var(--text);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 1;
  line-height: 1.3;
}
.wblock-cat-badge[data-v-94d87dfd] {
  display: inline-block; font-size: 9px; font-weight: 700; letter-spacing: 0.3px;
  color: white; padding: 1px 4px; border-radius: 3px; margin-right: 4px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
  flex-shrink: 0;
}
.wblock-dur[data-v-94d87dfd] {
  font-size: 10px;
  color: var(--text-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.wblock-dayblock[data-v-94d87dfd] {
  background: var(--block-template);
  border: 1px solid var(--border);
}
.wblock-outlook-soft[data-v-94d87dfd] {
  background: var(--pastel-bg, var(--block-outlook));
  border: 1px dashed var(--project-color, var(--block-outlook-border));
  border-left: 3px dashed var(--project-color, var(--block-outlook-border));
  opacity: 0.45;
  z-index: 1;
  cursor: pointer;
  pointer-events: auto;
}
.wblock-outlook-soft .wblock-label[data-v-94d87dfd] { color: var(--text-muted); font-weight: 500; font-style: italic;
}
.wblock-outlook[data-v-94d87dfd] {
  background: var(--pastel-bg, var(--block-outlook));
  border: 1px solid var(--project-color, var(--block-outlook-border));
  border-left: 4px solid var(--project-color, var(--block-outlook-border));
  /* Hachures diagonales subtiles pour distinguer des taches */
  background-image:
    linear-gradient(var(--pastel-bg, var(--block-outlook)), var(--pastel-bg, var(--block-outlook))),
    repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,0.06) 6px 8px);
  background-blend-mode: multiply;
  cursor: pointer;
}
.wblock-outlook .wblock-label[data-v-94d87dfd] { color: var(--text); font-weight: 600;
}
.wblock-outlook[data-v-94d87dfd]::before {
  content: '📅';
  position: absolute;
  top: 2px; right: 4px;
  font-size: 9px;
  opacity: 0.7;
}
.wblock-outlook-oof[data-v-94d87dfd] {
  background: repeating-linear-gradient(
    45deg,
    rgba(220, 38, 38, 0.18),
    rgba(220, 38, 38, 0.18) 10px,
    rgba(220, 38, 38, 0.32) 10px,
    rgba(220, 38, 38, 0.32) 20px
  );
  border: 2px solid rgba(220, 38, 38, 0.6);
  z-index: 30;
  cursor: pointer;
}
.wblock-outlook-oof .wblock-label[data-v-94d87dfd] { color: #7f1d1d; font-weight: 700; text-shadow: 0 0 4px rgba(255,255,255,0.6);
}
.wresize[data-v-94d87dfd] { position: absolute; bottom: 0; left: 0; right: 0; height: 10px; cursor: ns-resize; z-index: 10;
}
.wresize[data-v-94d87dfd]:hover { background: rgba(99, 102, 241, 0.15);
}
.wblock-task[data-v-94d87dfd] {
  background: var(--pastel-bg, var(--bg-card));
  border: 1px solid var(--border);
  border-left: 3px solid var(--project-color, var(--accent));
  padding-bottom: 10px;
  box-shadow: var(--shadow-sm);
}
.wlock-btn[data-v-94d87dfd] {
  width: 16px;
  height: 16px;
  border: none;
  background: transparent;
  color: var(--text-light);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.3;
  flex-shrink: 0;
}
.wlock-btn[data-v-94d87dfd]:hover { opacity: 1;
}
.locked .wlock-btn[data-v-94d87dfd] { opacity: 0.6;
}
.wdel-btn[data-v-94d87dfd] {
  width: 14px; height: 14px;
  border: none; background: transparent;
  color: var(--text-light); cursor: pointer;
  font-size: 13px; line-height: 1;
  opacity: 0.3;
  display: flex; align-items: center; justify-content: center;
}
.wdel-btn[data-v-94d87dfd]:hover { opacity: 1; color: var(--danger);
}

/* Ghost */
.wghost[data-v-94d87dfd] {
  position: absolute;
  left: 2px;
  right: 2px;
  border-radius: 4px;
  background: color-mix(in srgb, var(--ghost-color) 12%, transparent);
  border: 2px dashed var(--ghost-color);
  pointer-events: none;
  z-index: 40;
  display: flex;
  align-items: center;
  padding: 2px 4px;
  transition: top 80ms ease, height 80ms ease;
}
.wghost-label[data-v-94d87dfd] {
  font-size: 10px;
  font-weight: 600;
  color: var(--ghost-color);
  opacity: 0.8;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.rt-list[data-v-c3635e46] { display: flex; flex-direction: column; gap: 4px;
}
.rt-card[data-v-c3635e46] {
  display: flex; align-items: center; gap: 6px; padding: 5px 8px;
  background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm);
  cursor: grab; transition: all 150ms;
}
.rt-card[data-v-c3635e46]:hover { box-shadow: var(--shadow-sm);
}
.rt-card[data-v-c3635e46]:active { cursor: grabbing;
}
.rt-name[data-v-c3635e46] { font-size: 12px; font-weight: 500; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.rt-dur[data-v-c3635e46] { font-size: 11px; color: var(--text-muted); flex-shrink: 0;
}
.rt-del[data-v-c3635e46] { width: 16px; height: 16px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 14px; opacity: 0; flex-shrink: 0;
}
.rt-card:hover .rt-del[data-v-c3635e46] { opacity: 1;
}
.rt-del[data-v-c3635e46]:hover { color: var(--danger);
}
.add-btn[data-v-c3635e46] { margin-top: 4px;
}
.rt-create[data-v-c3635e46] { display: flex; gap: 4px; margin-top: 4px;
}
.rt-create .input[data-v-c3635e46] { font-size: 12px;
}
.rt-dur-input[data-v-c3635e46] { width: 55px; text-align: center;
}

.residual-panel[data-v-307177cc] {
  flex: 1; min-width: 0;
  border-left: 1px solid var(--border);
  background: var(--bg-card);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.rp-header[data-v-307177cc] {
  padding: 10px 12px 6px; font-size: 10px; font-weight: 700;
  letter-spacing: 0.05em; color: var(--text-muted); text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}
.rp-body[data-v-307177cc] { flex: 1; overflow-y: auto; padding: 6px 10px; display: flex; flex-direction: column; gap: 3px;
}
.rp-group-label[data-v-307177cc] { font-size: 11px; font-weight: 600; padding: 6px 0 2px;
}
.rp-task[data-v-307177cc] {
  display: flex; align-items: center; gap: 4px;
  padding: 4px 8px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  cursor: grab; font-size: 12px; position: relative; overflow: hidden;
  background: var(--bg);
}
.rp-task[data-v-307177cc]:hover { box-shadow: var(--shadow-sm);
}
.rp-task[data-v-307177cc]:active { cursor: grabbing;
}
.rp-task-bar[data-v-307177cc] { position: absolute; left: 0; top: 0; bottom: 0; opacity: 0.12;
}
.rp-cat[data-v-307177cc] { font-size: 8px; font-weight: 700; color: white; padding: 1px 3px; border-radius: 2px; flex-shrink: 0; z-index: 1;
}
.rp-task-name[data-v-307177cc] { flex: 1; font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; z-index: 1;
}
.rp-task-dur[data-v-307177cc] { font-size: 11px; color: var(--text-muted); flex-shrink: 0; z-index: 1;
}
.rp-empty-projects[data-v-307177cc] { padding: 8px 4px; color: var(--text-light); font-size: 11px; font-style: italic;
}
.rp-recurring[data-v-307177cc] { border-top: 1px solid var(--border); margin-top: 12px; padding-top: 4px;
}
.rp-rec-header[data-v-307177cc] {
  padding: 8px 0 4px; font-size: 10px; font-weight: 700;
  letter-spacing: 0.05em; color: var(--text-muted); text-transform: uppercase;
}

.memo-panel[data-v-52bc35dc] {
  flex: 0.5; min-width: 0;
  border-left: 1px solid var(--border);
  background: var(--bg-card);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.mp-section[data-v-52bc35dc] { display: flex; flex-direction: column; overflow: hidden;
}
.mp-section + .mp-section[data-v-52bc35dc] { border-top: 1px solid var(--border);
}
.mp-header[data-v-52bc35dc] { padding: 10px 10px 6px; display: flex; align-items: center; gap: 6px; border-bottom: 1px solid var(--border);
}
.mp-title[data-v-52bc35dc] { font-size: 10px; font-weight: 700; letter-spacing: 0.05em; color: var(--text-muted); text-transform: uppercase;
}
.mp-badge[data-v-52bc35dc] { font-size: 9px; padding: 1px 5px; background: var(--accent); color: white; border-radius: 999px; font-weight: 700;
}
.mp-badge.overdue[data-v-52bc35dc] { background: var(--danger);
}
.mp-body[data-v-52bc35dc] { flex: 1; overflow-y: auto; padding: 6px 8px; display: flex; flex-direction: column; gap: 4px;
}
.memo-card[data-v-52bc35dc] {
  display: flex; align-items: flex-start; gap: 5px;
  padding: 5px 6px; background: var(--bg); border: 1px solid var(--border);
  border-left: 3px solid var(--accent); border-radius: var(--radius-sm);
}
.memo-card.overdue[data-v-52bc35dc] { border-left-color: var(--danger); background: var(--danger-light);
}
.memo-card input[data-v-52bc35dc] { margin-top: 2px; flex-shrink: 0;
}
.memo-body[data-v-52bc35dc] { flex: 1; display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.memo-desc[data-v-52bc35dc] { font-size: 11px; font-weight: 500; line-height: 1.3;
}
.memo-meta[data-v-52bc35dc] { display: flex; gap: 4px; font-size: 9px; color: var(--text-muted); flex-wrap: wrap;
}
.memo-deadline[data-v-52bc35dc] { font-weight: 600;
}
.memo-card.overdue .memo-deadline[data-v-52bc35dc] { color: var(--danger);
}
.memo-project[data-v-52bc35dc] { color: var(--accent);
}
.memo-auto[data-v-52bc35dc] { background: var(--warning-light); color: var(--warning); padding: 0 3px; border-radius: 2px; font-weight: 600;
}
.mp-empty[data-v-52bc35dc] { padding: 12px 8px; color: var(--text-light); font-size: 11px; text-align: center; font-style: italic;
}

/* Micro-taches groupees */
.mt-group[data-v-52bc35dc] { display: flex; flex-direction: column; gap: 2px; margin-bottom: 4px;
}
.mt-group-header[data-v-52bc35dc] {
  display: flex; align-items: center; gap: 4px;
  padding: 2px 4px; font-size: 10px; font-weight: 600;
  color: var(--text-muted);
}
.mt-dot[data-v-52bc35dc] { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}
.mt-task-name[data-v-52bc35dc] { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.mt-all-done[data-v-52bc35dc] { color: var(--success); font-weight: 700;
}
.mt-card[data-v-52bc35dc] { border-left-color: var(--success); margin-left: 8px;
}

.summary-panel[data-v-4a33cbe4] {
  flex: 0.5; min-width: 0;
  border-left: 1px solid var(--border);
  background: var(--bg-card);
  display: flex; flex-direction: column;
  overflow-y: auto;
}
.sp-section + .sp-section[data-v-4a33cbe4] { border-top: 1px solid var(--border);
}
.sp-header[data-v-4a33cbe4] {
  padding: 10px 12px 4px; font-size: 10px; font-weight: 700;
  letter-spacing: 0.05em; color: var(--text-muted); text-transform: uppercase;
}
.sp-body[data-v-4a33cbe4] { padding: 4px 10px 8px; display: flex; flex-direction: column; gap: 6px;
}

/* Projets */
.sp-project[data-v-4a33cbe4] { padding: 2px 0;
}
.sp-proj-row[data-v-4a33cbe4] { display: flex; align-items: center; gap: 4px;
}
.sp-dot[data-v-4a33cbe4] { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}
.sp-proj-name[data-v-4a33cbe4] { flex: 1; font-size: 12px; font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.sp-status-dot[data-v-4a33cbe4] { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0;
}
.sp-proj-meta[data-v-4a33cbe4] { font-size: 10px; color: var(--text-muted); padding-left: 10px;
}
.sp-progress[data-v-4a33cbe4] { height: 3px; background: var(--border); border-radius: 2px; margin-top: 2px; overflow: hidden;
}
.sp-progress-fill[data-v-4a33cbe4] { height: 100%; border-radius: 2px;
}

/* Livrables */
.sp-deliv[data-v-4a33cbe4] { padding: 3px 0;
}
.sp-deliv-row[data-v-4a33cbe4] { display: flex; align-items: center; gap: 4px;
}
.sp-deliv-name[data-v-4a33cbe4] { flex: 1; font-size: 11px; font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.sp-deliv-type[data-v-4a33cbe4] { font-size: 9px; color: var(--text-muted);
}
.sp-deliv-bar-row[data-v-4a33cbe4] { display: flex; align-items: center; gap: 4px; margin-top: 2px;
}
.sp-deliv-bar[data-v-4a33cbe4] { flex: 1; height: 3px; background: var(--border); border-radius: 2px; overflow: hidden;
}
.sp-deliv-fill[data-v-4a33cbe4] { height: 100%; border-radius: 2px;
}
.sp-deliv-pct[data-v-4a33cbe4] { font-size: 9px; font-weight: 600; color: var(--text-muted); min-width: 24px; text-align: right;
}

.modal-backdrop[data-v-a1d3d0d5] {
  position: fixed; inset: 0; background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.modal[data-v-a1d3d0d5] {
  background: var(--bg-card); border-radius: var(--radius-lg);
  width: 420px; max-width: 92vw; padding: 18px 22px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.25);
}
header[data-v-a1d3d0d5] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
header h3[data-v-a1d3d0d5] { font-size: 16px; font-weight: 700;
}
.x[data-v-a1d3d0d5] { background: none; border: none; font-size: 22px; cursor: pointer; color: var(--text-muted);
}
.info[data-v-a1d3d0d5] { font-size: 12px; color: var(--text-muted); margin-bottom: 14px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
}
.badge[data-v-a1d3d0d5] { font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 999px;
}
.badge.oof[data-v-a1d3d0d5] { background: rgba(220,38,38,0.12); color: var(--danger);
}
.badge.tent[data-v-a1d3d0d5] { background: rgba(234,179,8,0.15); color: var(--warning);
}
.badge.rec[data-v-a1d3d0d5] { background: rgba(99,102,241,0.12); color: var(--accent);
}
.form[data-v-a1d3d0d5] { display: flex; flex-direction: column; gap: 12px;
}
.form label[data-v-a1d3d0d5] { display: flex; align-items: center; gap: 6px; font-size: 13px;
}
.lbl[data-v-a1d3d0d5] { display: block; font-size: 12px; color: var(--text-muted); margin-bottom: 4px;
}
.lbl-inline[data-v-a1d3d0d5] { font-size: 12px; color: var(--text-muted);
}
.input[data-v-a1d3d0d5] { width: 100%; padding: 6px 10px; font-size: 13px;
}
footer[data-v-a1d3d0d5] { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px;
}

.agenda-view[data-v-16ceb3b2] {
  display: flex;
  flex-direction: column;
  height: 100vh;
}
.agenda-body[data-v-16ceb3b2] {
  flex: 1;
  display: flex;
  overflow: hidden;
}
.outlook-sync-btn[data-v-16ceb3b2] {
  position: fixed;
  bottom: 16px;
  right: 16px;
  padding: 8px 14px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text);
  cursor: pointer;
  box-shadow: var(--shadow-md);
  z-index: 50;
}
.outlook-sync-btn[data-v-16ceb3b2]:hover { background: var(--bg-hover);
}
.outlook-sync-btn[data-v-16ceb3b2]:disabled { opacity: 0.6; cursor: wait;
}
.mail-badge[data-v-16ceb3b2] {
  background: var(--success); color: white; font-size: 10px; font-weight: 700;
  padding: 2px 6px; border-radius: 999px; margin-left: 4px;
  animation: pop-16ceb3b2 0.3s ease;
}
@keyframes pop-16ceb3b2 {
0% { transform: scale(0.5);
}
100% { transform: scale(1);
}
}

.inbox-view[data-v-cbd23152] {
  display: flex;
  flex-direction: column;
  gap: 24px;
  max-width: 800px;
  margin: 0 auto;
  padding: 24px;
}
.capture-zone[data-v-cbd23152] {
  padding: 20px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
}
.capture-input-wrap[data-v-cbd23152] {
  display: flex;
  gap: 8px;
}
.capture-input[data-v-cbd23152] {
  flex: 1;
  font-size: 16px;
  padding: 12px 16px;
}
.capture-btn[data-v-cbd23152] {
  padding: 12px 24px;
  font-size: 15px;
  white-space: nowrap;
}
.capture-hint[data-v-cbd23152] {
  margin-top: 8px;
  font-size: 13px;
  color: var(--text-muted);
  font-style: italic;
}
.section-title[data-v-cbd23152] {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 12px;
}
.inbox-items[data-v-cbd23152] {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.inbox-card[data-v-cbd23152] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
}
.inbox-card.processing[data-v-cbd23152] {
  opacity: 0.5;
  pointer-events: none;
}
.inbox-card-body[data-v-cbd23152] {
  flex: 1;
  min-width: 0;
}
.inbox-text[data-v-cbd23152] {
  font-size: 15px;
  word-break: break-word;
}
.inbox-time[data-v-cbd23152] {
  font-size: 12px;
  color: var(--text-muted);
}
.inbox-actions[data-v-cbd23152] {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-shrink: 0;
}
.link-select[data-v-cbd23152] {
  width: 130px;
  padding: 4px 8px;
  font-size: 13px;
}
.inbox-empty[data-v-cbd23152] {
  text-align: center;
  padding: 60px 20px;
  color: var(--text-muted);
}
.inbox-empty p[data-v-cbd23152]:first-child {
  font-size: 18px;
  font-weight: 600;
  color: var(--text);
  margin-bottom: 8px;
}
.text-muted[data-v-cbd23152] { color: var(--text-muted);
}

/* Transitions */
.list-enter-active[data-v-cbd23152] { transition: all 200ms ease;
}
.list-leave-active[data-v-cbd23152] { transition: all 150ms ease;
}
.list-enter-from[data-v-cbd23152] { opacity: 0; transform: translateY(-10px);
}
.list-leave-to[data-v-cbd23152] { opacity: 0; transform: translateX(20px);
}
.list-move[data-v-cbd23152] { transition: transform 200ms ease;
}

.project-detail[data-v-afefc2ec] {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 800px;
  margin: 0 auto;
  padding: 24px;
}
.detail-header[data-v-afefc2ec] { margin-bottom: 4px;
}
.project-info .info-header[data-v-afefc2ec] {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}
.info-title[data-v-afefc2ec] {
  display: flex;
  align-items: center;
  gap: 10px;
}
.color-dot[data-v-afefc2ec] {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  flex-shrink: 0;
}
.info-header h2[data-v-afefc2ec] { font-size: 22px; font-weight: 700;
}
.info-actions[data-v-afefc2ec] { display: flex; gap: 6px;
}
.project-meta[data-v-afefc2ec] {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 8px;
}
.meta-item[data-v-afefc2ec] { font-size: 14px; color: var(--text-muted);
}
.meta-item strong[data-v-afefc2ec] { color: var(--text);
}
.project-outcome[data-v-afefc2ec] {
  font-size: 14px;
  color: var(--text-muted);
  margin-top: 8px;
  line-height: 1.6;
}

/* Edit form */
.edit-form[data-v-afefc2ec] { display: flex; flex-direction: column; gap: 14px;
}
.field label[data-v-afefc2ec] { display: block; font-size: 13px; font-weight: 500; margin-bottom: 4px;
}
.field-row[data-v-afefc2ec] { display: flex; gap: 12px;
}
.field-row .field[data-v-afefc2ec] { flex: 1;
}
.edit-actions[data-v-afefc2ec] { display: flex; gap: 8px; justify-content: flex-end;
}

/* Color picker */
.color-picker[data-v-afefc2ec] { display: flex; gap: 6px;
}
.color-swatch[data-v-afefc2ec] {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: all 150ms ease;
}
.color-swatch[data-v-afefc2ec]:hover { transform: scale(1.1);
}
.color-swatch.active[data-v-afefc2ec] { border-color: var(--text); box-shadow: 0 0 0 2px var(--bg-card);
}

/* Phases */
.phases-section h3[data-v-afefc2ec] { font-size: 18px; font-weight: 600; margin-bottom: 12px;
}
.phase-block[data-v-afefc2ec] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 14px 16px;
  margin-bottom: 10px;
}
.phase-header[data-v-afefc2ec] {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  gap: 8px;
}
.phase-info[data-v-afefc2ec] { display: flex; align-items: center; gap: 8px;
}
.phase-name[data-v-afefc2ec] { font-weight: 600; font-size: 15px;
}
.phase-actions[data-v-afefc2ec] { display: flex; gap: 4px; align-items: center;
}
.phase-deadline[data-v-afefc2ec] {
  width: 130px;
  padding: 3px 6px !important;
  font-size: 12px !important;
}
.badge-type[data-v-afefc2ec] { background: var(--warning); color: black;
}

/* Tasks */
.task-list[data-v-afefc2ec] { display: flex; flex-direction: column; gap: 4px;
}
.task-item[data-v-afefc2ec] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--radius);
  transition: background var(--transition);
}
.task-item[data-v-afefc2ec]:hover { background: var(--bg-hover);
}
.task-item.done[data-v-afefc2ec] { opacity: 0.5;
}
.task-item.done .task-name[data-v-afefc2ec] { text-decoration: line-through;
}
.task-check[data-v-afefc2ec] {
  width: 20px; height: 20px;
  border: 2px solid var(--border);
  border-radius: 4px;
  background: transparent;
  color: var(--success);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; flex-shrink: 0;
}
.task-item.done .task-check[data-v-afefc2ec] { border-color: var(--success); background: var(--success); color: white;
}
.task-name[data-v-afefc2ec] { flex: 1; font-size: 14px;
}
.task-type[data-v-afefc2ec] { font-size: 11px; color: var(--warning); font-style: italic;
}
.task-estimate[data-v-afefc2ec] { font-size: 12px; color: var(--text-muted); background: var(--bg); padding: 1px 6px; border-radius: 4px;
}
.task-residual[data-v-afefc2ec] { font-size: 11px; color: var(--warning); font-style: italic;
}
.task-delete[data-v-afefc2ec] { opacity: 0; transition: opacity var(--transition);
}
.task-item:hover .task-delete[data-v-afefc2ec] { opacity: 1;
}
.no-tasks[data-v-afefc2ec] { font-size: 13px; color: var(--text-muted); padding: 4px 8px;
}

/* Add task form */
.add-task-form[data-v-afefc2ec] {
  margin-top: 10px;
  padding: 12px;
  background: var(--bg);
  border-radius: var(--radius);
  border: 1px solid var(--border);
}
.add-task-main .input[data-v-afefc2ec] { font-size: 14px; margin-bottom: 8px;
}
.add-task-estimation[data-v-afefc2ec] {
  display: flex;
  gap: 10px;
  align-items: flex-end;
  margin-bottom: 10px;
}
.est-field[data-v-afefc2ec] { flex: 1;
}
.est-field label[data-v-afefc2ec] { display: block; font-size: 11px; color: var(--text-muted); margin-bottom: 3px;
}
.est-field .input[data-v-afefc2ec] { font-size: 13px;
}
.est-total[data-v-afefc2ec] {
  font-size: 14px;
  font-weight: 600;
  color: var(--accent);
  white-space: nowrap;
  padding-bottom: 6px;
}
.add-task-actions[data-v-afefc2ec] { display: flex; gap: 6px;
}
.add-phase[data-v-afefc2ec] { display: flex; gap: 8px; margin-top: 8px;
}
.add-phase .input[data-v-afefc2ec] { flex: 1;
}
.loading[data-v-afefc2ec] { text-align: center; padding: 40px; color: var(--text-muted);
}

.intake-3col[data-v-e27b4f78] {
  display: grid;
  grid-template-columns: 240px 1fr 260px;
  gap: 12px;
  height: calc(100vh - 52px);
  padding: 12px;
  overflow: hidden;
}

/* Colonnes */
.col-left[data-v-e27b4f78], .col-right[data-v-e27b4f78] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 12px;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}
.col-center[data-v-e27b4f78] {
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
  min-width: 0;
}
.col-header[data-v-e27b4f78] {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 10px; flex-shrink: 0;
}
.col-header h3[data-v-e27b4f78] { font-size: 14px; font-weight: 700;
}

/* Liste intakes */
.list-section[data-v-e27b4f78] { margin-bottom: 14px;
}
.section-label[data-v-e27b4f78] {
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  margin-bottom: 6px; padding: 2px 6px; border-radius: 4px; display: inline-block;
}
.section-label.red[data-v-e27b4f78] { background: rgba(220,38,38,0.12); color: var(--danger);
}
.section-label.green[data-v-e27b4f78] { background: rgba(34,197,94,0.12); color: var(--success);
}
.empty-mini[data-v-e27b4f78] { font-size: 12px; color: var(--text-muted); padding: 4px 6px;
}
.intake-row[data-v-e27b4f78] {
  padding: 7px 10px; margin-bottom: 4px; border-radius: 6px;
  cursor: pointer; font-size: 13px; border-left: 3px solid transparent;
  transition: background 0.1s;
}
.intake-row[data-v-e27b4f78]:hover { background: var(--bg);
}
.intake-row.active[data-v-e27b4f78] { background: var(--bg); border-left-color: var(--accent);
}
.intake-row.in-progress[data-v-e27b4f78] { border-left-color: var(--danger);
}
.intake-row.finalized[data-v-e27b4f78] { border-left-color: var(--success); color: var(--text-muted);
}
.intake-row.finalized.active[data-v-e27b4f78] { color: var(--text);
}

/* Centre */
.center-header[data-v-e27b4f78] {
  display: flex; align-items: center; gap: 10px; flex-shrink: 0;
}
.intake-name[data-v-e27b4f78] { flex: 1; font-size: 16px; font-weight: 600; padding: 6px 12px;
}
.status-pill[data-v-e27b4f78] {
  font-size: 11px; font-weight: 600; color: white;
  padding: 3px 10px; border-radius: 999px;
}
.saving[data-v-e27b4f78] { font-size: 11px; color: var(--text-muted); font-style: italic;
}
.header-actions[data-v-e27b4f78] { display: flex; gap: 6px;
}

/* Cards groupes */
.g1-card[data-v-e27b4f78], .g-card[data-v-e27b4f78] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-top: 4px solid var(--gc);
  border-radius: var(--radius-lg);
  padding: 12px 14px;
  display: flex; flex-direction: column;
  overflow: hidden;
}
.g1-card[data-v-e27b4f78] { flex-shrink: 0;
}
.g-head[data-v-e27b4f78] { display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
}
.g-head .dot[data-v-e27b4f78] { width: 9px; height: 9px; border-radius: 50%; background: var(--gc);
}
.g-head h4[data-v-e27b4f78] { font-size: 13px; font-weight: 600;
}
.g1-grid[data-v-e27b4f78] {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
}
.g1-cell[data-v-e27b4f78] { display: flex; flex-direction: column;
}
.g1-cell label[data-v-e27b4f78] { font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.g1-cell label.mt8[data-v-e27b4f78] { margin-top: 8px;
}
.g1-cell textarea[data-v-e27b4f78] { min-height: 70px; resize: vertical; font-size: 13px;
}
.g1-cell .input[data-v-e27b4f78] { font-size: 13px; padding: 5px 9px;
}
.g1-cell .hint[data-v-e27b4f78] { font-size: 11px; color: var(--text-light); margin-top: 6px; font-style: italic;
}
.mt8[data-v-e27b4f78] { margin-top: 8px;
}
.g234-grid[data-v-e27b4f78] {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 12px;
  flex: 1;
  min-height: 0;
}
.g-fields[data-v-e27b4f78] { display: flex; flex-direction: column; gap: 8px; flex: 1; overflow-y: auto;
}
.gfield label[data-v-e27b4f78] { display: block; font-size: 11px; color: var(--text-muted); margin-bottom: 2px;
}
.gfield .input[data-v-e27b4f78] { font-size: 13px; padding: 5px 9px; width: 100%;
}
.gfield textarea.input[data-v-e27b4f78] { min-height: 50px; resize: vertical;
}
.unclear-item[data-v-e27b4f78] { display: flex; gap: 6px;
}
.unclear-item textarea[data-v-e27b4f78] { flex: 1; min-height: 44px; font-size: 13px; padding: 5px 9px; resize: vertical;
}
.unclear-item .del[data-v-e27b4f78] {
  width: 22px; border: none; background: transparent;
  color: var(--text-light); cursor: pointer; font-size: 17px;
}
.unclear-item .del[data-v-e27b4f78]:hover { color: var(--danger);
}
.all-clear[data-v-e27b4f78] { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); padding: 6px; cursor: pointer;
}

/* Colonne droite */
.clarif-row[data-v-e27b4f78] {
  padding: 8px 10px; margin-bottom: 6px; border-radius: 6px;
  background: var(--bg); cursor: pointer;
  border-left: 3px solid var(--warning);
}
.clarif-row[data-v-e27b4f78]:hover { background: var(--border);
}
.clarif-text[data-v-e27b4f78] { font-size: 12px; line-height: 1.4;
}
.clarif-from[data-v-e27b4f78] { font-size: 10px; color: var(--text-muted); margin-top: 3px;
}

.settings-page[data-v-70462b05] {
  max-width: 600px;
  margin: 0 auto;
  padding: 32px 24px;
}
.settings-page h1[data-v-70462b05] {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 32px;
}
.about-row[data-v-70462b05] { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; font-size: 13px;
}
.about-value[data-v-70462b05] { font-weight: 600; color: var(--text); font-family: ui-monospace, monospace;
}
.settings-section[data-v-70462b05] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 24px;
  margin-bottom: 24px;
}
.settings-section h2[data-v-70462b05] {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 20px;
}
.lock-status[data-v-70462b05] { display: flex; align-items: center; gap: 10px;
}
.lock-status.locked span[data-v-70462b05] { color: var(--success); font-weight: 500;
}
.lock-status.unlocked span[data-v-70462b05] { color: var(--warning); font-weight: 500; font-size: 13px;
}
.btn-warning[data-v-70462b05] { background: var(--warning); color: white; border-color: var(--warning);
}
.section-hint[data-v-70462b05] {
  font-size: 13px;
  color: var(--text-muted);
  margin-bottom: 12px;
}
.update-steps[data-v-70462b05] { font-size: 13px; color: var(--text); padding-left: 20px; line-height: 1.6;
}
.update-steps code[data-v-70462b05] { background: var(--bg); padding: 1px 6px; border-radius: 4px; font-size: 12px;
}
.field-row[data-v-70462b05] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
}
.field-row label[data-v-70462b05] {
  font-size: 14px;
  font-weight: 500;
  color: var(--text);
}
.time-input[data-v-70462b05] {
  display: flex;
  align-items: center;
  gap: 4px;
}
.time-input span[data-v-70462b05] {
  font-size: 14px;
  color: var(--text-muted);
}
.time-num[data-v-70462b05] {
  width: 60px;
  text-align: center;
}

/* Categories de taches */
.cat-list[data-v-70462b05] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px;
}
.cat-row[data-v-70462b05] { display: flex; align-items: center; gap: 8px;
}
.cat-badge[data-v-70462b05] {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 28px; border-radius: 6px;
  color: white; font-size: 11px; font-weight: 700; letter-spacing: 0.5px;
  flex-shrink: 0;
}
.cat-name[data-v-70462b05] { flex: 1; font-size: 13px;
}
.cat-acronym[data-v-70462b05] { width: 58px; font-size: 12px; text-align: center; text-transform: uppercase; font-weight: 600;
}
.cat-color-input[data-v-70462b05] { width: 30px; height: 28px; border: 1px solid var(--border); border-radius: 4px; cursor: pointer; padding: 0; background: none;
}
.btn-icon[data-v-70462b05] { width: 28px; height: 28px; padding: 0; display: flex; align-items: center; justify-content: center; font-size: 16px; line-height: 1;
}
.cat-empty[data-v-70462b05] { font-size: 13px; color: var(--text-muted); font-style: italic; padding: 4px 0;
}
.cat-new[data-v-70462b05] { display: flex; align-items: center; gap: 8px; padding-top: 12px; border-top: 1px solid var(--border-light);
}
.cat-color-picker[data-v-70462b05] { display: flex; gap: 3px; flex-shrink: 0;
}
.cat-swatch[data-v-70462b05] { width: 18px; height: 18px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; padding: 0;
}
.cat-swatch.active[data-v-70462b05] { border-color: var(--text);
}

.editor-page[data-v-cd877c72] {
  padding: 24px;
  height: 100vh;
  display: flex;
  flex-direction: column;
}
.editor-header[data-v-cd877c72] {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}
.editor-header h1[data-v-cd877c72] { font-size: 22px; font-weight: 700;
}
.editor-layout[data-v-cd877c72] {
  display: flex;
  gap: 24px;
  flex: 1;
  overflow: hidden;
}
.editor-sidebar[data-v-cd877c72] {
  width: 300px;
  min-width: 300px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  overflow-y: auto;
}
.editor-section[data-v-cd877c72] {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px;
}
.editor-section h3[data-v-cd877c72] {
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  margin-bottom: 12px;
}
.rt-list[data-v-cd877c72], .tpl-list[data-v-cd877c72] {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 12px;
}
.rt-item[data-v-cd877c72] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--radius-sm);
  background: var(--bg);
  border: 1px solid var(--border);
  cursor: grab;
}
.rt-item[data-v-cd877c72]:active { cursor: grabbing;
}
.rt-name[data-v-cd877c72] { flex: 1; font-size: 13px; font-weight: 500;
}
.rt-dur[data-v-cd877c72] { font-size: 12px; color: var(--text-muted);
}
.rt-del[data-v-cd877c72] {
  width: 20px; height: 20px; border: none; background: transparent;
  color: var(--text-light); cursor: pointer; font-size: 16px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 4px;
}
.rt-del[data-v-cd877c72]:hover { background: var(--danger-light); color: var(--danger);
}
.rt-add[data-v-cd877c72] {
  display: flex;
  gap: 6px;
}
.rt-dur-input[data-v-cd877c72] { width: 60px; text-align: center;
}
.tpl-item[data-v-cd877c72] {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 150ms ease;
  border: 1px solid transparent;
}
.tpl-item[data-v-cd877c72]:hover { background: var(--bg-hover);
}
.tpl-item.active[data-v-cd877c72] {
  background: var(--accent-light);
  border-color: var(--accent);
}
.tpl-item span[data-v-cd877c72]:first-child { flex: 1; font-size: 14px; font-weight: 500;
}
.tpl-slots[data-v-cd877c72] { font-size: 12px; color: var(--text-muted);
}

/* Timeline */
.editor-timeline[data-v-cd877c72] {
  flex: 1;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px;
  display: flex;
  flex-direction: column;
}
.editor-timeline.empty[data-v-cd877c72] {
  align-items: center;
  justify-content: center;
  color: var(--text-muted);
}
.editor-timeline h3[data-v-cd877c72] { font-size: 16px; font-weight: 600; margin-bottom: 4px;
}
.tpl-name-input[data-v-cd877c72] {
  font-size: 16px; font-weight: 600; margin-bottom: 4px;
  border: 1px solid transparent; border-radius: var(--radius-sm);
  padding: 4px 6px; background: transparent; width: 100%;
  font-family: inherit;
}
.tpl-name-input[data-v-cd877c72]:hover { border-color: var(--border);
}
.tpl-name-input[data-v-cd877c72]:focus { border-color: var(--accent); outline: none; background: var(--bg);
}
.hint[data-v-cd877c72] { font-size: 13px; color: var(--text-muted); margin-bottom: 12px;
}
.timeline-scroll[data-v-cd877c72] {
  flex: 1;
  overflow-y: auto;
}
.timeline[data-v-cd877c72] {
  position: relative;
  margin-left: 44px;
}
.hour-line[data-v-cd877c72] {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid var(--border-light);
  pointer-events: none;
}
.hour-label[data-v-cd877c72] {
  position: absolute;
  left: -44px;
  top: -9px;
  font-size: 12px;
  color: var(--text-light);
  width: 36px;
  text-align: right;
}
.slot-block[data-v-cd877c72] {
  position: absolute;
  left: 4px;
  right: 4px;
  background: var(--block-template);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 4px 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: grab;
}
.slot-block[data-v-cd877c72]:active { cursor: grabbing;
}
.slot-resize[data-v-cd877c72] {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 6px;
  cursor: ns-resize;
}
.slot-resize[data-v-cd877c72]:hover { background: rgba(99, 102, 241, 0.2);
}
.slot-name[data-v-cd877c72] { flex: 1; font-size: 13px; font-weight: 600;
}
.slot-dur[data-v-cd877c72] { font-size: 12px; color: var(--text-muted);
}
.slot-del[data-v-cd877c72] {
  width: 20px; height: 20px; border: none; background: transparent;
  color: var(--text-light); cursor: pointer; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 4px;
}
.slot-del[data-v-cd877c72]:hover { background: var(--danger-light); color: var(--danger);
}
.drop-ghost[data-v-cd877c72] {
  position: absolute;
  left: 4px;
  right: 4px;
  border: 2px dashed var(--accent);
  background: var(--accent-light);
  border-radius: var(--radius);
  pointer-events: none;
  z-index: 40;
}

.gantt-chart[data-v-c59af630] { flex: 1; display: flex; overflow: hidden; user-select: none; min-width: 0; position: relative;
}
.gantt-labels[data-v-c59af630] { width: 200px; border-right: 1px solid var(--border); background: var(--bg-card); display: flex; flex-direction: column; overflow: hidden; flex-shrink: 0; flex-grow: 0; z-index: 10;
}
.label-header[data-v-c59af630] { height: 50px; display: flex; align-items: center; padding: 0 12px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); border-bottom: 1px solid var(--border); flex-shrink: 0;
}
.labels-body[data-v-c59af630] { position: relative; overflow: hidden;
}
.label-row[data-v-c59af630] { position: absolute; left: 0; right: 0; display: flex; align-items: flex-end; gap: 6px; padding: 0 12px; padding-bottom: 8px; font-size: 13px; border-bottom: 1px solid var(--border-light); cursor: pointer; transition: background 100ms;
}
.label-row[data-v-c59af630]:hover { background: var(--bg-hover);
}
.label-active-proj[data-v-c59af630] { background: rgba(99, 102, 241, 0.04);
}
.label-project[data-v-c59af630] { font-weight: 700;
}
.label-group[data-v-c59af630] { font-weight: 600; font-style: italic;
}
.ldot[data-v-c59af630] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.ldiamond[data-v-c59af630] { font-size: 10px; flex-shrink: 0;
}
.reorder-radio[data-v-c59af630] { font-size: 14px; color: var(--text-light); flex-shrink: 0; cursor: pointer;
}
.reorder-radio.selected[data-v-c59af630] { color: var(--accent);
}
.label-reorder-selected[data-v-c59af630] { background: var(--accent-light) !important; border-left: 3px solid var(--accent);
}
.ltext[data-v-c59af630] { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.lwork[data-v-c59af630] { font-size: 11px; color: var(--text-muted);
}
.lwork-calc[data-v-c59af630] { color: var(--accent); font-weight: 600;
}
.gantt-scroll[data-v-c59af630] { flex: 1; overflow-x: auto; overflow-y: auto; background: var(--bg-card); min-width: 0;
}
.gantt-scroll svg[data-v-c59af630] { display: block;
}
.tlabel[data-v-c59af630] { font-size: 11px; fill: var(--text-muted);
}
.bar-phase[data-v-c59af630] { cursor: grab;
}
.bar-phase[data-v-c59af630]:active { cursor: grabbing;
}
.bar-phase-ro[data-v-c59af630] { cursor: default;
}
.bar-resize[data-v-c59af630] { cursor: ew-resize;
}
.bar-group[data-v-c59af630] { cursor: pointer;
}
.bar-ms[data-v-c59af630] { cursor: grab;
}
.bar-ms[data-v-c59af630]:active { cursor: grabbing;
}
.bar-ms-ro[data-v-c59af630] { cursor: default;
}
.bar-ms-link-target[data-v-c59af630] { cursor: crosshair; filter: drop-shadow(0 0 4px var(--accent));
}
.task-ms-link[data-v-c59af630] { stroke: #475569; stroke-width: 1.2; stroke-dasharray: 2,3; fill: none; opacity: 0.55;
}
.task-ms-dot[data-v-c59af630] { fill: #475569; opacity: 0.7;
}
.bar-ann[data-v-c59af630] { cursor: pointer;
}
.ann-text[data-v-c59af630] { font-size: 11px; fill: var(--text-muted); font-style: italic;
}
.connector[data-v-c59af630] { fill: var(--bg-card); stroke: var(--accent); stroke-width: 1.5; opacity: 0; cursor: crosshair; transition: opacity 150ms;
}
g:hover > .connector[data-v-c59af630] { opacity: 1;
}
.bar-name[data-v-c59af630] { font-size: 10px; fill: white; pointer-events: none; font-weight: 500;
}
.ms-name[data-v-c59af630] { font-size: 10px; fill: var(--text-muted); pointer-events: none;
}
.ms-name-center[data-v-c59af630] { text-anchor: middle;
}
.dep-hit[data-v-c59af630] { cursor: pointer;
}
.dep-group:hover .dep-line[data-v-c59af630] { stroke: var(--accent); stroke-width: 2;
}
.bubble-group[data-v-c59af630] { cursor: pointer;
}
.bubble-text[data-v-c59af630] { font-size: 10px; fill: var(--text);
}

.gantt-panel[data-v-27662fee] { width: 400px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.12); display: flex; flex-direction: column; overflow-y: auto; max-height: 80vh;
}
.panel-header[data-v-27662fee] { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--border);
}
.panel-header h3[data-v-27662fee] { font-size: 15px; font-weight: 600;
}
.close-btn[data-v-27662fee] { width: 28px; height: 28px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer; border-radius: 4px;
}
.close-btn[data-v-27662fee]:hover { background: var(--bg-hover);
}
.panel-actions[data-v-27662fee] { padding: 16px;
}
.hint[data-v-27662fee] { font-size: 13px; color: var(--text-muted); margin-bottom: 16px; line-height: 1.5;
}
.add-buttons[data-v-27662fee] { display: flex; flex-direction: column; gap: 6px;
}
.panel-form[data-v-27662fee] { padding: 16px; display: flex; flex-direction: column; gap: 12px;
}
.field label[data-v-27662fee] { display: block; font-size: 12px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.field .input[data-v-27662fee] { font-size: 13px; padding: 6px 10px;
}
.field-row[data-v-27662fee] { display: flex; gap: 8px;
}
.field-row .field[data-v-27662fee] { flex: 1;
}
.task-picker[data-v-27662fee] { max-height: 180px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 4px;
}
.task-pick-item[data-v-27662fee] { display: flex; align-items: center; gap: 6px; padding: 4px 8px; border-radius: 4px; cursor: pointer; font-size: 12px; transition: filter 100ms;
}
.task-pick-item[data-v-27662fee]:hover { filter: brightness(0.95);
}
.pick-orphan[data-v-27662fee] { background: rgba(34, 197, 94, 0.1);
}
.pick-assigned[data-v-27662fee] { background: rgba(239, 68, 68, 0.08);
}
.pick-name[data-v-27662fee] { flex: 1; font-weight: 500; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.pick-phase[data-v-27662fee] { font-size: 11px; color: var(--text-muted); flex-shrink: 0;
}
.pick-free[data-v-27662fee] { color: var(--success); font-style: italic;
}
.children-list[data-v-27662fee] { display: flex; flex-direction: column; gap: 4px; max-height: 200px; overflow-y: auto;
}
.child-item[data-v-27662fee] { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; padding: 3px 0;
}
.child-item input[data-v-27662fee] { margin: 0;
}
.field-hint[data-v-27662fee] { font-size: 12px; color: var(--text-muted); font-style: italic; padding: 4px 0;
}
.workload-row[data-v-27662fee] { display: flex; gap: 4px; align-items: center;
}
.workload-row .input[data-v-27662fee] { flex: 1;
}
.sync-btn[data-v-27662fee] { font-size: 11px; white-space: nowrap; color: var(--accent); padding: 4px 6px;
}
.symbol-picker[data-v-27662fee] { display: flex; gap: 4px; flex-wrap: wrap;
}
.symbol-btn[data-v-27662fee] { width: 28px; height: 28px; border: 2px solid transparent; border-radius: 4px; background: var(--bg); cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.symbol-btn[data-v-27662fee]:hover { border-color: var(--border);
}
.symbol-btn.active[data-v-27662fee] { border-color: var(--accent); background: var(--accent-light);
}
.scale-slider[data-v-27662fee] { width: 100%; margin: 4px 0;
}
.scale-preview[data-v-27662fee] { display: flex; justify-content: center;
}
.child-item-full[data-v-27662fee] { display: flex; align-items: center; gap: 6px; padding: 3px 0;
}
.child-check[data-v-27662fee] { display: flex; align-items: center; gap: 6px; font-size: 13px; cursor: pointer; flex: 1;
}
.child-check input[data-v-27662fee] { margin: 0;
}
.symbol-select[data-v-27662fee] { width: 90px; font-size: 11px; padding: 2px 4px;
}
.child-date[data-v-27662fee] { font-size: 11px; color: var(--text-light);
}
.ml-new-list[data-v-27662fee] { display: flex; flex-direction: column; gap: 4px; margin-bottom: 6px;
}
.ml-new-item[data-v-27662fee] { display: flex; gap: 4px; align-items: center;
}
.ml-new-item .input[data-v-27662fee] { font-size: 12px;
}
.btn-icon[data-v-27662fee] { width: 20px; height: 20px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 16px;
}
.btn-icon[data-v-27662fee]:hover { color: var(--danger);
}
.panel-readonly[data-v-27662fee] { padding: 24px 16px; text-align: center; color: var(--text-light); font-size: 13px; font-style: italic;
}
.panel-footer[data-v-27662fee] { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; padding-top: 12px; border-top: 1px solid var(--border-light);
}

.ctx-overlay[data-v-962f9f57] {
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.ctx-menu[data-v-962f9f57] {
  position: absolute;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  min-width: 200px;
  padding: 4px;
  z-index: 1001;
}
.ctx-title[data-v-962f9f57] {
  padding: 6px 12px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border-light);
  margin-bottom: 2px;
}
.ctx-item[data-v-962f9f57] {
  display: block;
  width: 100%;
  text-align: left;
  padding: 7px 12px;
  font-size: 13px;
  border: none;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  border-radius: 4px;
}
.ctx-item[data-v-962f9f57]:hover { background: var(--bg-hover);
}
.ctx-item.danger[data-v-962f9f57] { color: var(--danger);
}
.ctx-item.danger[data-v-962f9f57]:hover { background: var(--danger-light);
}
.ctx-sep[data-v-962f9f57] {
  height: 1px;
  background: var(--border-light);
  margin: 4px 0;
}

.tasks-view[data-v-bf03db86] { padding: 16px 20px; overflow-y: auto; flex: 1;
}
.tasks-empty[data-v-bf03db86] { display: flex; align-items: center; justify-content: center; height: 200px; color: var(--text-muted);
}
.tasks-header[data-v-bf03db86] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px;
}
.tasks-title[data-v-bf03db86] { display: flex; align-items: center; gap: 10px;
}
.tasks-title h3[data-v-bf03db86] { font-size: 18px; font-weight: 600;
}
.project-dot[data-v-bf03db86] { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0;
}

/* Forms */
.task-form[data-v-bf03db86] { margin-bottom: 16px; padding: 16px;
}
.edit-form[data-v-bf03db86] { border-left: 4px solid var(--accent);
}
.form-row[data-v-bf03db86] { display: flex; gap: 10px; align-items: flex-end; margin-bottom: 10px;
}
.field[data-v-bf03db86] { display: flex; flex-direction: column;
}
.field.grow[data-v-bf03db86] { flex: 1;
}
.field label[data-v-bf03db86] { font-size: 12px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.field .input[data-v-bf03db86] { font-size: 13px; padding: 6px 10px;
}
.time-input[data-v-bf03db86] { display: flex; align-items: center; gap: 4px;
}
.time-input span[data-v-bf03db86] { font-size: 13px; color: var(--text-muted);
}
.time-num[data-v-bf03db86] { width: 55px; text-align: center;
}
.est-total[data-v-bf03db86] { font-size: 14px; font-weight: 600; color: var(--accent); padding-bottom: 6px; white-space: nowrap;
}
.form-actions[data-v-bf03db86] { display: flex; gap: 6px; align-items: center;
}

/* Modal tache */
.modal-overlay[data-v-bf03db86] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); display: flex; align-items: center; justify-content: center; z-index: 500;
}
.task-modal[data-v-bf03db86] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; width: 500px; box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
.task-modal h3[data-v-bf03db86] { font-size: 16px; font-weight: 600; margin-bottom: 16px;
}

/* Phases */
.phases-list[data-v-bf03db86] {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 1fr; /* toutes les lignes ont la meme hauteur = la plus haute */
  gap: 8px;
}
.phase-row[data-v-bf03db86] {
  display: flex; align-items: stretch; gap: 12px;
  padding: 10px 12px; border: 2px solid transparent;
  border-radius: var(--radius-lg); background: var(--bg-card);
  transition: border-color 150ms; min-height: 52px;
}
.phase-row.drop-target[data-v-bf03db86] { border-color: var(--accent); background: var(--accent-light);
}
.phase-label[data-v-bf03db86] { width: 140px; min-width: 140px; flex-shrink: 0; display: flex; align-items: center; gap: 6px;
}
.phase-name[data-v-bf03db86] { font-size: 14px; font-weight: 600;
}
.phase-count[data-v-bf03db86] { font-size: 11px; background: var(--bg); color: var(--text-muted); padding: 1px 6px; border-radius: 999px;
}
.phase-edit-btn[data-v-bf03db86] { border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 14px; opacity: 0; transition: opacity 150ms;
}
.phase-label:hover .phase-edit-btn[data-v-bf03db86] { opacity: 1;
}
.phase-edit-btn[data-v-bf03db86]:hover { color: var(--accent);
}
.phase-empty[data-v-bf03db86] { font-size: 12px; color: var(--text-light); padding: 8px; font-style: italic;
}
.insert-indicator[data-v-bf03db86] {
  width: 3px; min-height: 40px; background: var(--accent); border-radius: 2px;
  flex-shrink: 0; animation: pulse-insert-bf03db86 0.8s ease infinite alternate;
}
@keyframes pulse-insert-bf03db86 {
from { opacity: 0.4;
}
to { opacity: 1;
}
}

/* Phase tasks row - hauteur harmonisee */
.phase-tasks[data-v-bf03db86] { flex: 1; display: flex; flex-wrap: nowrap; gap: 4px; min-height: 52px; align-items: stretch; overflow-x: auto;
}

/* Task tile */
.task-tile[data-v-bf03db86] {
  display: flex; flex-direction: column; justify-content: center;
  padding: 5px 10px; background: var(--bg);
  border: 1px solid var(--border); border-radius: var(--radius);
  cursor: grab; transition: all 150ms; flex-shrink: 0;
  position: relative; overflow: hidden; min-height: 48px;
}
.task-tile[data-v-bf03db86]:hover { box-shadow: var(--shadow); border-color: #d1d5db;
}
.task-tile[data-v-bf03db86]:active { cursor: grabbing;
}
.task-tile.dragging[data-v-bf03db86] { opacity: 0.4;
}
.task-tile.selected[data-v-bf03db86] { border-color: var(--accent); background: var(--accent-light);
}
.task-tile.orphan[data-v-bf03db86] { border-left: 3px solid var(--text-light);
}
.tile-content[data-v-bf03db86] { flex: 1; min-width: 0; cursor: pointer;
}
.tile-name[data-v-bf03db86] { font-size: 13px; font-weight: 500; display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.tile-meta[data-v-bf03db86] { font-size: 10px; color: var(--text-muted);
}
.cat-acronym-badge[data-v-bf03db86] {
  position: absolute; top: 3px; left: 3px;
  font-size: 9px; font-weight: 700; letter-spacing: 0.4px;
  color: white; padding: 1px 4px; border-radius: 3px;
  line-height: 1.2; pointer-events: none;
  box-shadow: 0 1px 2px rgba(0,0,0,0.15);
}
.task-tile .tile-content[data-v-bf03db86] { padding-left: 24px;
}

/* Barre de progression en bas de la tuile */
.tile-progress[data-v-bf03db86] {
  position: absolute; bottom: 0; left: 0; right: 0; height: 4px;
  display: flex; background: var(--border-light);
}
.progress-done[data-v-bf03db86] { height: 100%; background: var(--success);
}
.progress-placed[data-v-bf03db86] { height: 100%; background: var(--accent); opacity: 0.5;
}

/* Zone restante pointillee */
.phase-remaining[data-v-bf03db86] {
  border: 2px dashed var(--border); border-radius: var(--radius);
  min-height: 48px; flex-shrink: 0; background: transparent;
}

/* Orphan section */
.orphan-section[data-v-bf03db86] {
  margin-top: 16px; padding: 10px 12px;
  border: 2px dashed var(--border); border-radius: var(--radius-lg);
  display: flex; align-items: flex-start; gap: 12px;
  transition: border-color 150ms;
}
.orphan-section.drop-target[data-v-bf03db86] { border-color: var(--accent); background: var(--accent-light);
}
.orphan-section .phase-tasks[data-v-bf03db86] { flex-wrap: wrap; overflow-x: visible;
}
.orphan-label[data-v-bf03db86] { color: var(--text-muted); font-style: italic;
}

/* Liens & livrables */
.link-section[data-v-bf03db86] { margin-top: 4px;
}
.link-label[data-v-bf03db86] { display: block; font-size: 12px; font-weight: 500; color: var(--text-muted); margin-bottom: 4px;
}
.link-item[data-v-bf03db86] { display: inline-flex; align-items: center; gap: 2px; margin-right: 6px; margin-bottom: 4px;
}
.link-tag[data-v-bf03db86] { font-size: 12px; padding: 2px 8px; border-radius: 999px; font-weight: 500;
}
.milestone-tag[data-v-bf03db86] { background: #fef3c7; color: #92400e;
}
.deliverable-tag[data-v-bf03db86] { background: #dbeafe; color: #1e40af;
}
.btn-icon-sm[data-v-bf03db86] { width: 18px; height: 18px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 14px; line-height: 1; border-radius: 50%;
}
.btn-icon-sm[data-v-bf03db86]:hover { background: var(--bg-hover); color: var(--danger, #ef4444);
}

/* Micro-taches */
.micro-section[data-v-bf03db86] { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border);
}
.micro-header[data-v-bf03db86] { display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.micro-progress[data-v-bf03db86] { font-size: 11px; color: var(--text-muted);
}
.micro-all-done[data-v-bf03db86] { font-size: 11px; color: var(--success); font-weight: 600; background: var(--success-light, #dcfce7); padding: 1px 6px; border-radius: 999px;
}
.micro-list[data-v-bf03db86] { list-style: none; padding: 0; margin: 0 0 6px 0; display: flex; flex-direction: column; gap: 2px;
}
.micro-item[data-v-bf03db86] {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 6px; border-radius: var(--radius-sm);
  background: var(--bg); border: 1px solid var(--border);
  transition: background 100ms;
}
.micro-item[data-v-bf03db86]:hover { background: var(--bg-hover, #f5f5f5);
}
.micro-item.micro-dragging[data-v-bf03db86] { opacity: 0.4;
}
.micro-item.micro-drop-before[data-v-bf03db86] { box-shadow: 0 -2px 0 var(--accent);
}
.micro-item.micro-drop-after[data-v-bf03db86] { box-shadow: 0 2px 0 var(--accent);
}
.micro-grip[data-v-bf03db86] { cursor: grab; color: var(--text-light); font-size: 10px; user-select: none; line-height: 1; letter-spacing: -2px;
}
.micro-grip[data-v-bf03db86]:active { cursor: grabbing;
}
.micro-desc[data-v-bf03db86] { flex: 1; font-size: 12px; cursor: text; padding: 2px 4px; border-radius: 3px;
}
.micro-desc[data-v-bf03db86]:hover { background: var(--bg-card);
}
.micro-desc.micro-done[data-v-bf03db86] { color: var(--text-light); text-decoration: line-through;
}
.micro-add[data-v-bf03db86] { display: flex; gap: 6px; align-items: center;
}
.micro-add .grow[data-v-bf03db86] { flex: 1;
}

/* Split / Coupure */
.split-section[data-v-bf03db86] { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border);
}
.split-section h4[data-v-bf03db86] { font-size: 14px; font-weight: 600; margin-bottom: 8px;
}
.split-hint[data-v-bf03db86] { font-size: 12px; color: var(--text-muted); margin-bottom: 12px;
}
.split-part[data-v-bf03db86] { display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
}
.split-part-num[data-v-bf03db86] { font-size: 13px; font-weight: 600; color: var(--text-muted); width: 20px; flex-shrink: 0;
}
.split-part .grow[data-v-bf03db86] { flex: 1;
}
.split-error[data-v-bf03db86] { font-size: 12px; color: var(--danger, #ef4444); margin-top: 8px;
}
.btn-icon[data-v-bf03db86] { width: 28px; height: 28px; padding: 0; display: flex; align-items: center; justify-content: center;
}

.gantt-view[data-v-4c951085] { display: flex; flex-direction: column; height: 100%; overflow: hidden; min-width: 0;
}

/* ===== Sidebar gauche ===== */
.gantt-leftbar[data-v-4c951085] {
  width: 220px; min-width: 220px; flex-shrink: 0;
  border-right: 1px solid var(--border); background: var(--bg-card);
  display: flex; flex-direction: column; padding: 12px 10px; gap: 12px;
  overflow-y: auto; overflow-x: hidden;
  position: sticky; top: 0; align-self: flex-start; max-height: 100%;
}
.tab-toggle[data-v-4c951085] {
  display: flex; background: var(--bg); border-radius: var(--radius);
  border: 1px solid var(--border); overflow: hidden;
}
.tab-btn[data-v-4c951085] {
  flex: 1; padding: 6px 0; font-size: 13px; font-weight: 500;
  border: none; background: transparent; color: var(--text-muted); cursor: pointer; transition: all 150ms;
}
.tab-btn.active[data-v-4c951085] { background: var(--bg-card); color: var(--text); box-shadow: var(--shadow-sm);
}
.lb-section[data-v-4c951085] { display: flex; flex-direction: column; gap: 4px;
}
.lb-section-header[data-v-4c951085] {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 11px; font-weight: 700; text-transform: uppercase; color: var(--text-muted);
  padding: 0 4px;
}
.lb-add-btn[data-v-4c951085] {
  width: 22px; height: 22px; border: 1px solid var(--border); background: var(--bg);
  border-radius: 4px; color: var(--text); cursor: pointer; font-size: 16px; line-height: 1;
  display: flex; align-items: center; justify-content: center;
}
.lb-add-btn[data-v-4c951085]:hover { background: var(--accent); color: white; border-color: var(--accent);
}
.project-list-section[data-v-4c951085] { flex: 1; min-height: 0;
}
.project-list[data-v-4c951085] { display: flex; flex-direction: column; gap: 2px; overflow-y: auto; flex: 1;
}
.proj-row[data-v-4c951085] {
  display: flex; align-items: center; gap: 4px;
  padding: 4px 6px; border-radius: 6px; border-left: 3px solid transparent;
  opacity: 0.55; transition: all 120ms; cursor: pointer;
}
.proj-row.visible[data-v-4c951085] { opacity: 1;
}
.proj-row.active[data-v-4c951085] { background: color-mix(in srgb, var(--pc) 10%, transparent); border-left-color: var(--pc);
}
.proj-row[data-v-4c951085]:hover { background: var(--bg-hover);
}
.proj-name-btn[data-v-4c951085] {
  flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px;
  border: none; background: transparent; color: var(--text-muted); cursor: pointer;
  font-size: 13px; text-align: left; padding: 0;
}
.proj-row.visible .proj-name-btn[data-v-4c951085] { color: var(--text);
}
.proj-row.active .proj-name-btn[data-v-4c951085] { font-weight: 600;
}
.proj-name[data-v-4c951085] { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.fdot[data-v-4c951085] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.eye-btn[data-v-4c951085] {
  display: flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border: none; background: transparent;
  color: var(--text-light); cursor: pointer; border-radius: 4px; flex-shrink: 0;
}
.proj-row.visible .eye-btn[data-v-4c951085] { color: var(--pc);
}
.eye-btn[data-v-4c951085]:hover { background: rgba(0,0,0,0.06);
}
.lb-bottom[data-v-4c951085] { margin-top: auto; display: flex; flex-direction: column; gap: 12px; padding-top: 8px; border-top: 1px solid var(--border);
}
.reorder-row[data-v-4c951085] { display: flex; gap: 4px; align-items: center;
}
.reorder-main[data-v-4c951085] { flex: 1;
}
.icon-arrow[data-v-4c951085] { padding: 4px 6px; display: inline-flex; align-items: center; justify-content: center;
}
.display-opts .opt-row[data-v-4c951085] {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; color: var(--text-muted); cursor: pointer; padding: 2px 4px;
}
.display-opts .opt-row[data-v-4c951085]:hover { color: var(--text);
}
.readonly-badge[data-v-4c951085] { font-size: 12px; color: var(--text-light); font-style: italic; padding: 4px 10px; background: var(--bg); border-radius: 999px; border: 1px solid var(--border); display: inline-block;
}
.sidebar-hint[data-v-4c951085] { font-size: 12px; color: var(--text-light); font-style: italic; padding: 8px;
}

/* ===== Centre ===== */
.gantt-center[data-v-4c951085] { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden;
}

/* ===== Sidebar droite ===== */
.gantt-rightbar[data-v-4c951085] {
  width: 280px; min-width: 280px; flex-shrink: 0;
  border-left: 1px solid var(--border); background: var(--bg-card);
  display: flex; flex-direction: column; padding: 12px 10px; gap: 12px; overflow-y: auto;
}
.rb-section[data-v-4c951085] { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg); overflow: hidden;
}
.rb-section-header[data-v-4c951085] {
  display: flex; align-items: center; gap: 6px; width: 100%;
  padding: 8px 10px; border: none; background: var(--bg-card); cursor: pointer;
  font-size: 12px; font-weight: 700; text-transform: uppercase; color: var(--text);
  border-bottom: 1px solid var(--border);
}
.rb-section-header svg[data-v-4c951085] { transition: transform 150ms; flex-shrink: 0;
}
.rb-section-header[data-v-4c951085]:hover { background: var(--bg-hover);
}
.rb-section-header.header-ok[data-v-4c951085] { color: var(--success); background: var(--success-light);
}
.rb-section-header.header-ko[data-v-4c951085] { color: var(--danger); background: var(--danger-light);
}
.rb-section-header span[data-v-4c951085]:nth-of-type(1) { flex: 1; text-align: left;
}
.rb-count[data-v-4c951085] { font-size: 11px; background: var(--accent); color: white; border-radius: 999px; padding: 1px 7px; font-weight: 600;
}
.header-ok .rb-count[data-v-4c951085] { background: var(--success);
}
.header-ko .rb-count[data-v-4c951085] { background: var(--danger);
}
.rb-section-body[data-v-4c951085] { padding: 8px; display: flex; flex-direction: column; gap: 6px;
}
.rb-empty[data-v-4c951085] { font-size: 12px; color: var(--text-muted); font-style: italic; padding: 8px; text-align: center;
}
.rb-item[data-v-4c951085] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px 8px; font-size: 12px;
}
.rb-pending[data-v-4c951085] { display: flex; align-items: center; gap: 6px; border-left: 3px solid var(--warning);
}
.pending-type[data-v-4c951085] { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--warning); padding: 2px 6px; background: var(--warning-light); border-radius: 4px; flex-shrink: 0;
}
.pending-desc[data-v-4c951085] { flex: 1;
}
.rb-icon-btn[data-v-4c951085] { width: 22px; height: 22px; border: none; background: transparent; color: var(--text-muted); cursor: pointer; border-radius: 4px; font-size: 13px;
}
.rb-icon-btn[data-v-4c951085]:hover { background: var(--bg-hover); color: var(--text);
}
.rb-deliv[data-v-4c951085] { display: flex; flex-direction: column; gap: 4px;
}
.rb-deliv-ko[data-v-4c951085] { border-left: 3px solid var(--danger);
}
.rb-deliv-line[data-v-4c951085] { display: flex; align-items: center; gap: 6px;
}
.rb-deliv-name[data-v-4c951085] { flex: 1; font-weight: 500; cursor: pointer;
}
.rb-deliv-name[data-v-4c951085]:hover { color: var(--accent);
}
.rb-deliv-warn[data-v-4c951085] { font-size: 11px; color: var(--danger);
}
.rb-deliv-progress[data-v-4c951085] { position: relative; height: 6px; background: var(--border); border-radius: 3px; overflow: hidden;
}
.rb-deliv-progress .progress-fill[data-v-4c951085] { height: 100%; background: var(--success);
}
.rb-deliv-progress .progress-label[data-v-4c951085] { position: absolute; right: 4px; top: -2px; font-size: 9px; font-weight: 600; color: var(--text-muted);
}
.rb-add-buttons[data-v-4c951085] { display: flex; flex-direction: column; gap: 4px; padding: 8px 4px;
}
.rb-add-buttons .btn[data-v-4c951085] { font-size: 12px; text-align: left;
}
.badge-count[data-v-4c951085] { font-size: 11px; background: var(--accent); color: white; border-radius: 999px; padding: 0 6px; margin-left: 4px;
}
.badge-dot[data-v-4c951085] { width: 8px; height: 8px; background: var(--danger, #ef4444); border-radius: 50%; display: inline-block; margin-left: 4px; vertical-align: middle;
}
.btn-icon-sm[data-v-4c951085] { width: 18px; height: 18px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 14px; line-height: 1; border-radius: 50%; flex-shrink: 0;
}
.btn-icon-sm[data-v-4c951085]:hover { background: var(--bg-hover); color: var(--danger, #ef4444);
}

/* Modal livrables */
.deliverable-modal[data-v-4c951085] { width: 720px;
}
.modal-box-header[data-v-4c951085] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;
}
.modal-box-header h3[data-v-4c951085] { font-size: 18px; font-weight: 600;
}
.close-btn[data-v-4c951085] { width: 28px; height: 28px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer; border-radius: 4px;
}
.close-btn[data-v-4c951085]:hover { background: var(--bg-hover);
}
.deliverable-list[data-v-4c951085] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; max-height: 400px; overflow-y: auto;
}
.deliv-row[data-v-4c951085] { padding: 10px 12px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
}
.deliv-row.deliv-editing[data-v-4c951085] { border-color: var(--accent); background: var(--accent-light);
}
.deliv-name[data-v-4c951085] { font-size: 14px; font-weight: 500; cursor: pointer; flex: 1;
}
.deliv-name[data-v-4c951085]:hover { color: var(--accent);
}
.deliv-type-badge[data-v-4c951085] { font-size: 11px; color: var(--text-muted); background: var(--bg-card); padding: 2px 8px; border-radius: 999px; border: 1px solid var(--border);
}
.deliv-type-select[data-v-4c951085] { width: 120px;
}
.deliv-assocs[data-v-4c951085] { width: 100%; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; margin-top: 2px;
}
.assoc-label[data-v-4c951085] { font-size: 11px; font-weight: 600; color: var(--text-muted); min-width: 38px;
}
.assoc-tag[data-v-4c951085] { font-size: 12px; padding: 2px 8px; border-radius: 999px; background: #fef3c7; color: #92400e; display: inline-flex; align-items: center; gap: 3px;
}
.assoc-tag.assoc-task[data-v-4c951085] { background: #dbeafe; color: #1e40af;
}
.assoc-remove[data-v-4c951085] { border: none; background: transparent; color: inherit; cursor: pointer; font-size: 13px; line-height: 1; opacity: 0.6;
}
.assoc-remove[data-v-4c951085]:hover { opacity: 1;
}
.assoc-add[data-v-4c951085] { width: auto; min-width: 100px; font-size: 11px; padding: 2px 6px;
}
.deliv-empty[data-v-4c951085] { font-size: 13px; color: var(--text-muted); font-style: italic; padding: 12px; text-align: center;
}
.deliv-noncompliant[data-v-4c951085] { border-left: 3px solid var(--danger); padding-left: 8px;
}
.deliv-warn[data-v-4c951085] { font-size: 11px; color: var(--danger); font-weight: 600; padding: 2px 0;
}
.status-btn.status-ok[data-v-4c951085] { background: var(--success-light); color: var(--success); border-color: var(--success);
}
.status-btn.status-ko[data-v-4c951085] { background: var(--danger-light); color: var(--danger); border-color: var(--danger);
}
.status-btn.status-ok[data-v-4c951085]:hover { background: var(--success); color: white;
}
.status-btn.status-ko[data-v-4c951085]:hover { background: var(--danger); color: white;
}
.pending-row[data-v-4c951085] { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); border-left: 3px solid var(--warning); margin-bottom: 6px;
}
.pending-type[data-v-4c951085] { font-size: 10px; font-weight: 700; text-transform: uppercase; color: var(--warning); padding: 2px 6px; background: var(--warning-light); border-radius: 4px; flex-shrink: 0;
}
.pending-desc[data-v-4c951085] { flex: 1; font-size: 13px;
}
.deliv-details[data-v-4c951085] { width: 100%; display: flex; flex-direction: column; gap: 6px; margin-top: 4px;
}
.deliv-progress-row[data-v-4c951085] { display: flex; align-items: center; gap: 8px; width: 100%;
}
.deliv-progress-bar[data-v-4c951085] { flex: 1; height: 6px; background: var(--border); border-radius: 3px; position: relative; overflow: hidden;
}
.progress-fill[data-v-4c951085] { height: 100%; background: var(--success); border-radius: 3px; transition: width 200ms;
}
.progress-pct[data-v-4c951085] { font-size: 12px; font-weight: 600; color: var(--text); min-width: 36px; text-align: right;
}
.weight-warning[data-v-4c951085] { font-size: 11px; color: var(--danger, #ef4444); font-weight: 500;
}
.chapter-list[data-v-4c951085] { display: flex; flex-direction: column; gap: 4px;
}
.chapter-row[data-v-4c951085] { display: flex; align-items: center; gap: 6px;
}
.chapter-name[data-v-4c951085] { flex: 1; min-width: 80px;
}
.chapter-weight[data-v-4c951085] { display: flex; align-items: center; gap: 2px; flex-shrink: 0;
}
.chapter-weight span[data-v-4c951085] { font-size: 11px; color: var(--text-muted);
}
.chapter-num[data-v-4c951085] { width: 58px; text-align: center; font-size: 13px;
}
.chapter-progress[data-v-4c951085] { display: flex; align-items: center; gap: 4px; flex-shrink: 0;
}
.chapter-slider[data-v-4c951085] { width: 80px;
}
.chapter-pct[data-v-4c951085] { font-size: 12px; font-weight: 500; color: var(--text); width: 36px; text-align: right;
}
.deliv-add-form[data-v-4c951085] { display: flex; gap: 8px; align-items: center; padding-top: 12px; border-top: 1px solid var(--border);
}
.gantt-body[data-v-4c951085] { flex: 1; display: flex; overflow: hidden; min-width: 0; height: 100%;
}
.gantt-empty[data-v-4c951085] { flex: 1; display: flex; align-items: center; justify-content: center; color: var(--text-muted);
}

/* Modal projet */
.modal-overlay[data-v-4c951085] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); display: flex; align-items: center; justify-content: center; z-index: 500;
}
.modal-box[data-v-4c951085] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 24px; width: 420px; box-shadow: 0 8px 32px rgba(0,0,0,0.12);
}
.modal-box h3[data-v-4c951085] { font-size: 18px; font-weight: 600; margin-bottom: 16px;
}
.modal-field[data-v-4c951085] { margin-bottom: 12px;
}
.modal-field label[data-v-4c951085] { display: block; font-size: 13px; font-weight: 500; color: var(--text-muted); margin-bottom: 4px;
}
.modal-field .input[data-v-4c951085] { font-size: 14px;
}
.modal-field textarea.input[data-v-4c951085] { min-height: 60px; resize: vertical;
}
.color-picker[data-v-4c951085] { display: flex; gap: 6px;
}
.color-swatch[data-v-4c951085] { width: 28px; height: 28px; border-radius: 6px; border: 2px solid transparent; cursor: pointer; transition: all 150ms;
}
.color-swatch[data-v-4c951085]:hover { transform: scale(1.1);
}
.color-swatch.active[data-v-4c951085] { border-color: var(--text); box-shadow: 0 0 0 2px var(--bg-card);
}
.modal-row[data-v-4c951085] { display: flex; gap: 12px; margin-bottom: 12px;
}
.modal-row .modal-field[data-v-4c951085] { flex: 1; margin-bottom: 0;
}
.modal-actions[data-v-4c951085] { display: flex; gap: 8px; margin-top: 16px; align-items: center;
}

.dashboard[data-v-330e8637] { padding: 24px; overflow-y: auto; height: 100vh;
}
.dashboard h2[data-v-330e8637] { font-size: 20px; font-weight: 700; margin-bottom: 20px;
}
.alloc-section[data-v-330e8637] {
  background: var(--bg-card); border: 1px solid var(--border);
  border-radius: var(--radius-lg); padding: 20px;
}
.alloc-section h3[data-v-330e8637] { font-size: 15px; font-weight: 600; margin-bottom: 16px;
}

/* Grille : colonnes = semaine + barre + N projets */
.alloc-grid[data-v-330e8637] {
  display: grid;
  gap: 0;
  font-size: 12px;
}
.grid-corner[data-v-330e8637] {
  padding: 6px 4px;
  font-size: 11px; font-weight: 700; color: var(--text-muted);
  text-transform: uppercase; border-bottom: 2px solid var(--border);
}
.bar-header[data-v-330e8637] { text-align: center;
}
.grid-proj-header[data-v-330e8637] {
  padding: 6px 4px; text-align: center;
  border-bottom: 2px solid var(--border);
  display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.proj-dot[data-v-330e8637] { width: 8px; height: 8px; border-radius: 50%;
}
.proj-name[data-v-330e8637] { font-size: 10px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 56px;
}
.proj-budget[data-v-330e8637] { font-size: 9px; color: var(--text-light); font-weight: 500;
}
.grid-week[data-v-330e8637] {
  padding: 6px 4px; font-size: 11px; font-weight: 500; color: var(--text-muted);
  border-bottom: 1px solid var(--border-light);
  display: flex; align-items: center; gap: 4px;
}
.grid-week.current[data-v-330e8637] { font-weight: 700; color: var(--accent);
}
.grid-week.past[data-v-330e8637] { font-style: italic; color: var(--text-light);
}
.abs-marker[data-v-330e8637] { font-size: 9px; background: var(--warning-light, #fef3c7); color: var(--warning, #92400e); padding: 0 4px; border-radius: 999px; font-weight: 600;
}
.grid-bar-cell[data-v-330e8637] {
  padding: 4px 8px; border-bottom: 1px solid var(--border-light);
  display: flex; align-items: center; gap: 8px;
}
.stacked-bar[data-v-330e8637] {
  flex: 1; height: 20px; background: var(--bg);
  border-radius: 4px; overflow: hidden; display: flex;
  border: 1px solid var(--border);
}
.stacked-bar.over[data-v-330e8637] { border-color: var(--danger);
}
.stacked-bar.ok[data-v-330e8637] { border-color: var(--success);
}
.bar-seg[data-v-330e8637] {
  height: 100%; display: flex; align-items: center; justify-content: center;
  min-width: 0; transition: width 200ms;
}
.seg-label[data-v-330e8637] { font-size: 9px; font-weight: 700; color: white;
}
.total-label[data-v-330e8637] {
  font-size: 11px; font-weight: 700; width: 36px; text-align: right; flex-shrink: 0;
}
.total-label.ok[data-v-330e8637] { color: var(--success);
}
.total-label.over[data-v-330e8637] { color: var(--danger);
}
.total-label.under[data-v-330e8637] { color: var(--warning);
}
.grid-cell[data-v-330e8637] {
  padding: 2px; border-bottom: 1px solid var(--border-light);
  display: flex; align-items: center; justify-content: center;
}
.grid-cell.past[data-v-330e8637] { background: var(--bg-hover, #f5f5f5);
}
.grid-cell.over[data-v-330e8637] { background: var(--danger-light, #fee2e2);
}
.grid-cell.over.past[data-v-330e8637] { background: #fecaca;
}
.alloc-input[data-v-330e8637] {
  width: 48px; text-align: center; font-size: 12px;
  padding: 3px 2px; border: 1px solid var(--border);
  border-radius: 4px; background: var(--bg);
}
.alloc-input[data-v-330e8637]:focus { border-color: var(--accent); outline: none;
}
.replicon-cell[data-v-330e8637] {
  width: 48px; text-align: center; font-size: 12px;
  padding: 3px 2px; color: var(--text-muted);
  font-style: italic; cursor: help;
}

.phase1[data-v-71e49b0e] { flex: 1; display: flex; flex-direction: column; overflow: hidden;
}
.phase1-columns[data-v-71e49b0e] { flex: 1; display: flex; gap: 6px; overflow: hidden;
}
.column[data-v-71e49b0e] { display: flex; flex-direction: column; overflow: hidden;
}
.col-planned[data-v-71e49b0e] { flex: 0.8; min-width: 0; padding-left: 26px;
}
.col-actual[data-v-71e49b0e] { flex: 0.8; min-width: 0; padding-left: 26px;
}
.col-right[data-v-71e49b0e] { flex: 1; min-width: 0;
}
.col-title[data-v-71e49b0e] { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted); padding: 6px 8px; border-bottom: 1px solid var(--border-light); flex-shrink: 0;
}

/* Tabs colonne droite */
.col-tabs[data-v-71e49b0e] { display: flex; border-bottom: 1px solid var(--border); flex-shrink: 0;
}
.tab[data-v-71e49b0e] { flex: 1; padding: 6px 4px; font-size: 11px; font-weight: 600; border: none; background: transparent; color: var(--text-muted); cursor: pointer; text-align: center; display: flex; align-items: center; justify-content: center; gap: 4px;
}
.tab.active[data-v-71e49b0e] { color: var(--text); border-bottom: 2px solid var(--accent);
}
.tab[data-v-71e49b0e]:hover:not(.active) { color: var(--text);
}
.tab-num[data-v-71e49b0e] { width: 16px; height: 16px; border-radius: 50%; background: var(--border); color: var(--text-muted); font-size: 9px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.tab.active .tab-num[data-v-71e49b0e] { background: var(--accent); color: white;
}
.tab.tab-ok[data-v-71e49b0e] { background: var(--success-light);
}
.tab.tab-ko[data-v-71e49b0e] { background: var(--danger-light);
}
.tab.tab-ok .tab-num[data-v-71e49b0e] { background: var(--success); color: white;
}
.tab.tab-ko .tab-num[data-v-71e49b0e] { background: var(--danger); color: white;
}
.tab.active.tab-ok[data-v-71e49b0e] { border-bottom-color: var(--success);
}
.tab.active.tab-ko[data-v-71e49b0e] { border-bottom-color: var(--danger);
}
.col-body[data-v-71e49b0e] { flex: 1; overflow-y: auto; padding: 6px;
}

/* Sections repliables (onglet Taches) */
.section-header[data-v-71e49b0e] { display: flex; align-items: center; gap: 4px; padding: 6px 6px; cursor: pointer; border-radius: var(--radius-sm); user-select: none;
}
.section-header[data-v-71e49b0e]:hover { background: var(--bg-hover);
}
.section-header.open[data-v-71e49b0e] { background: var(--accent-light);
}
.section-arrow[data-v-71e49b0e] { font-size: 10px; color: var(--text-muted); width: 12px; flex-shrink: 0;
}
.section-title[data-v-71e49b0e] { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--text-muted); flex: 1;
}
.section-add[data-v-71e49b0e] { width: 20px; height: 20px; border: 1px solid var(--border); border-radius: 4px; background: var(--bg); color: var(--text-muted); font-size: 14px; font-weight: 600; cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; line-height: 1;
}
.section-add[data-v-71e49b0e]:hover { background: var(--accent); color: white; border-color: var(--accent);
}
.section-body[data-v-71e49b0e] { padding: 4px 0;
}

/* Modal creation tache */
.modal-overlay[data-v-71e49b0e] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); z-index: 100; display: flex; align-items: center; justify-content: center;
}
.modal-box[data-v-71e49b0e] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.15); padding: 16px; width: 340px; max-width: 90vw;
}
.modal-header[data-v-71e49b0e] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 14px; font-weight: 600;
}
.close-btn[data-v-71e49b0e] { width: 24px; height: 24px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer; border-radius: 4px;
}
.close-btn[data-v-71e49b0e]:hover { background: var(--bg-hover);
}

/* Timeline */
.mini-timeline[data-v-71e49b0e] { position: relative; overflow-y: auto; overflow-x: visible; flex: 1; border-left: 1px solid var(--border);
}
.hour-line[data-v-71e49b0e] { position: absolute; left: 0; right: 0; border-top: 1px solid var(--border-light); pointer-events: none;
}
.hour-label[data-v-71e49b0e] { position: absolute; left: -24px; top: -7px; font-size: 9px; color: var(--text-light); width: 20px; text-align: right;
}
.mini-block[data-v-71e49b0e] { position: absolute; left: 3px; right: 3px; border-radius: 3px; padding: 1px 4px 10px; overflow: hidden; display: flex; align-items: center; gap: 3px;
}
.block-db[data-v-71e49b0e] { background: var(--block-template); border: 1px solid var(--border);
}
.block-tk[data-v-71e49b0e] { background: var(--bg); border: 1px solid var(--border);
}
.block-outlook-evt[data-v-71e49b0e] { background: var(--block-outlook, #fef3c7); border: 1px solid var(--block-outlook-border, #d97706); border-left: 3px solid var(--block-outlook-border, #d97706); z-index: 2; pointer-events: none;
}
.block-outlook-evt .mn[data-v-71e49b0e] { font-size: 9px; color: #92400e; font-weight: 600;
}
.block-outlook-evt.soft[data-v-71e49b0e] { opacity: 0.45; border-style: dashed; z-index: 1;
}
.actual-db:hover .bk-del[data-v-71e49b0e] { opacity: 1;
}
.actual-bk[data-v-71e49b0e] { border-left: 3px solid var(--proj-color, var(--border)); cursor: grab;
}
.actual-bk[data-v-71e49b0e]:active { cursor: grabbing;
}
.actual-bk.validated[data-v-71e49b0e] { box-shadow: inset 0 0 0 1px var(--success);
}
.actual-bk.different[data-v-71e49b0e] { box-shadow: inset 0 0 0 1px var(--warning);
}
.actual-bk.validated.different[data-v-71e49b0e] { box-shadow: inset 0 0 0 1px var(--success);
}

/* Barre couleur projet en bas */
.proj-bar[data-v-71e49b0e] { position: absolute; bottom: 0; left: 0; right: 0; height: 2px;
}
.mn[data-v-71e49b0e] { font-size: 10px; font-weight: 500; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.md[data-v-71e49b0e] { font-size: 9px; color: var(--text-muted); flex-shrink: 0;
}
.bk-check[data-v-71e49b0e] { width: 14px; height: 14px; border: 2px solid var(--border); border-radius: 3px; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; font-size: 9px; flex-shrink: 0; color: var(--success);
}
.actual-bk.validated .bk-check[data-v-71e49b0e] { border-color: var(--success); background: var(--success); color: white;
}
.residual-tag[data-v-71e49b0e] {
  font-size: 8px; font-weight: 700; color: white; background: var(--warning);
  padding: 0 3px; border-radius: 3px; flex-shrink: 0; line-height: 1.4;
}
.bk-del[data-v-71e49b0e] { width: 14px; height: 14px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 12px; flex-shrink: 0; opacity: 0;
}
.actual-bk:hover .bk-del[data-v-71e49b0e] { opacity: 1;
}
.actual-db[data-v-71e49b0e] { cursor: grab;
}
.actual-db[data-v-71e49b0e]:active { cursor: grabbing;
}
.bk-resize[data-v-71e49b0e] { position: absolute; bottom: 0; left: 0; right: 0; height: 10px; cursor: ns-resize; z-index: 10;
}
.bk-resize[data-v-71e49b0e]:hover { background: rgba(99, 102, 241, 0.15);
}
.drop-ghost[data-v-71e49b0e] { position: absolute; left: 3px; right: 3px; border: 2px dashed var(--accent); background: var(--accent-light); border-radius: 3px; pointer-events: none; z-index: 40; transition: top 80ms ease, height 80ms ease;
}

/* Commentaires */
.cmt-item[data-v-71e49b0e] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 6px; border-left: 3px solid var(--danger); margin-bottom: 6px;
}
.cmt-item.filled[data-v-71e49b0e] { border-left-color: var(--success);
}
.cmt-item.general[data-v-71e49b0e] { border-left-color: var(--accent);
}
.cmt-head[data-v-71e49b0e] { display: flex; align-items: center; gap: 4px; margin-bottom: 3px;
}
.cmt-label[data-v-71e49b0e] { font-size: 11px; font-weight: 500;
}
.diff-tag[data-v-71e49b0e] { font-size: 9px; font-weight: 600; padding: 1px 5px; border-radius: 999px; color: white;
}
.diff-tag.added[data-v-71e49b0e] { background: var(--accent);
}
.diff-tag.moved[data-v-71e49b0e] { background: var(--warning);
}
.diff-tag.removed[data-v-71e49b0e] { background: var(--danger);
}
.cmt-mini[data-v-71e49b0e] { cursor: pointer; padding: 3px; border-radius: 3px; font-size: 11px; color: var(--text); min-height: 18px;
}
.cmt-mini[data-v-71e49b0e]:hover { background: var(--bg-hover);
}
.cmt-prompt[data-v-71e49b0e] { color: var(--text-light); font-style: italic; font-size: 10px;
}
.cmt-ta[data-v-71e49b0e] { font-size: 11px; padding: 4px; min-height: 32px; resize: vertical;
}
.cmt-ta.zoomed[data-v-71e49b0e] { min-height: 60px;
}
.no-diff[data-v-71e49b0e] { font-size: 11px; color: var(--text-muted); font-style: italic; padding: 6px;
}

/* Tuiles taches (droite) */
.right-hint[data-v-71e49b0e] { font-size: 10px; color: var(--text-muted); font-style: italic; padding: 4px 0 6px;
}
.group-label[data-v-71e49b0e] { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; margin: 6px 0 3px;
}
.task-card[data-v-71e49b0e] { display: flex; align-items: center; gap: 6px; padding: 5px 8px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: grab; margin-bottom: 4px;
}
.task-card[data-v-71e49b0e]:hover { box-shadow: var(--shadow-sm);
}
.task-card[data-v-71e49b0e]:active { cursor: grabbing;
}
.tc-name[data-v-71e49b0e] { font-size: 11px; font-weight: 500; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.tc-dur[data-v-71e49b0e] { font-size: 10px; color: var(--text-muted); flex-shrink: 0;
}
.tc-residual[data-v-71e49b0e] { font-size: 10px; font-weight: 700; color: white; background: var(--warning); padding: 1px 5px; border-radius: 3px; flex-shrink: 0;
}

/* Formulaire creation */
.create-form[data-v-71e49b0e] { display: flex; flex-direction: column; gap: 8px;
}
.cf-field[data-v-71e49b0e] { display: flex; flex-direction: column;
}
.cf-field label[data-v-71e49b0e] { font-size: 10px; font-weight: 500; color: var(--text-muted); margin-bottom: 2px;
}
.cf-field .input[data-v-71e49b0e] { font-size: 12px; padding: 4px 8px;
}
.cf-row[data-v-71e49b0e] { display: flex; gap: 6px; align-items: flex-end;
}
.cf-row .cf-field[data-v-71e49b0e] { flex: 1;
}
.time-input[data-v-71e49b0e] { display: flex; align-items: center; gap: 3px;
}
.time-input span[data-v-71e49b0e] { font-size: 11px; color: var(--text-muted);
}
.tn[data-v-71e49b0e] { width: 42px; text-align: center;
}
.cf-total[data-v-71e49b0e] { font-size: 13px; font-weight: 600; color: var(--accent); padding-bottom: 4px; white-space: nowrap;
}

/* Livrables rituel */
.tab-dot[data-v-71e49b0e] { width: 6px; height: 6px; background: var(--danger, #ef4444); border-radius: 50%; display: inline-block; margin-left: 3px; vertical-align: top;
}
.deliv-review[data-v-71e49b0e] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 8px; margin-bottom: 8px; border-left: 3px solid var(--danger);
}
.deliv-review.reviewed[data-v-71e49b0e] { border-left-color: var(--success);
}
.deliv-review-header[data-v-71e49b0e] { display: flex; align-items: center; gap: 6px; margin-bottom: 4px;
}
.deliv-review-info[data-v-71e49b0e] { flex: 1; display: flex; flex-direction: column;
}
.deliv-review-name[data-v-71e49b0e] { font-size: 12px; font-weight: 600;
}
.deliv-review-project[data-v-71e49b0e] { font-size: 10px; font-weight: 500;
}
.deliv-review-pct[data-v-71e49b0e] { font-size: 14px; font-weight: 700; color: var(--accent); flex-shrink: 0;
}
.deliv-review-bar[data-v-71e49b0e] { width: 100%; height: 4px; background: var(--border); border-radius: 2px; margin-bottom: 6px; overflow: hidden;
}
.deliv-bar-fill[data-v-71e49b0e] { height: 100%; background: var(--success); border-radius: 2px; transition: width 200ms;
}
.deliv-chapter-row[data-v-71e49b0e] { display: flex; align-items: center; gap: 4px; padding: 1px 0;
}
.ch-name[data-v-71e49b0e] { font-size: 10px; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.ch-weight[data-v-71e49b0e] { font-size: 9px; color: var(--text-muted); width: 26px; text-align: right; flex-shrink: 0;
}
.ch-slider[data-v-71e49b0e] { width: 60px; flex-shrink: 0;
}
.ch-pct[data-v-71e49b0e] { font-size: 10px; color: var(--text-muted); width: 28px; text-align: right; flex-shrink: 0;
}

.phase2[data-v-907f3159] { flex: 1; display: flex; flex-direction: column; gap: 12px; overflow-y: auto;
}
.section[data-v-907f3159] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px;
}
.section-header[data-v-907f3159] { display: flex; align-items: center; gap: 8px; margin-bottom: 10px;
}
.section-header h4[data-v-907f3159] { font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted);
}
.count-badge[data-v-907f3159] { font-size: 11px; font-weight: 700; background: var(--warning); color: white; padding: 1px 7px; border-radius: 999px;
}
.count-badge.empty[data-v-907f3159] { background: var(--success);
}
.inbox-list[data-v-907f3159] { display: flex; flex-direction: column; gap: 6px;
}
.inbox-item[data-v-907f3159] { display: grid; grid-template-columns: 1fr auto; gap: 6px 12px; align-items: center; padding: 8px 10px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); border-left: 3px solid var(--danger);
}
.inbox-item.kept[data-v-907f3159] { border-left-color: var(--accent); background: var(--accent-light);
}
.inbox-item.treated[data-v-907f3159] { border-left-color: var(--success); background: var(--success-light);
}
.inbox-item.processing[data-v-907f3159] { opacity: 0.5; pointer-events: none;
}
.item-text[data-v-907f3159] { font-size: 13px; font-weight: 500; grid-column: 1;
}
.item-time[data-v-907f3159] { font-size: 11px; color: var(--text-muted); grid-column: 2; text-align: right;
}
.item-actions[data-v-907f3159] { grid-column: 1; display: flex; gap: 4px; align-items: center; flex-wrap: wrap;
}
.item-checks[data-v-907f3159] { grid-column: 2; display: flex; gap: 10px; align-items: center; justify-self: end;
}
.check-line[data-v-907f3159] { display: flex; align-items: center; gap: 4px; font-size: 12px; cursor: pointer; user-select: none; padding: 2px 6px; border-radius: 4px;
}
.check-line input[data-v-907f3159] { margin: 0;
}
.check-treated[data-v-907f3159]:has(input:checked) { background: var(--success-light); color: var(--success); font-weight: 600;
}
.check-kept[data-v-907f3159]:has(input:checked) { background: var(--accent-light); color: var(--accent); font-weight: 600;
}
.item-links[data-v-907f3159] { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; padding-top: 4px; border-top: 1px dashed var(--border-light);
}
.link-tag[data-v-907f3159] { font-size: 11px; padding: 2px 8px; border-radius: 4px; font-weight: 500;
}
.link-task[data-v-907f3159] { background: var(--success-light); color: var(--success);
}
.link-project[data-v-907f3159] { background: var(--accent-light); color: var(--accent);
}
.link-pending[data-v-907f3159] { background: var(--warning-light); color: var(--warning);
}
.inbox-empty[data-v-907f3159] { text-align: center; padding: 16px; color: var(--success); font-size: 14px; font-weight: 500;
}
.check-icon[data-v-907f3159] { font-size: 18px;
}
.issues-list[data-v-907f3159] { display: flex; flex-direction: column; gap: 4px;
}
.issue-item[data-v-907f3159] { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 12px;
}
.issue-project[data-v-907f3159] { font-weight: 600;
}
.issue-group[data-v-907f3159] { color: var(--text-muted);
}
.issue-text[data-v-907f3159] { flex: 1; font-style: italic; color: var(--text-muted); overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.issue-status-dot[data-v-907f3159] { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
}
.issue-item.orange .issue-status-dot[data-v-907f3159] { background: var(--warning);
}
.issue-item.red .issue-status-dot[data-v-907f3159] { background: var(--danger);
}

/* Modales */
.modal-overlay[data-v-907f3159] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); z-index: 100; display: flex; align-items: center; justify-content: center;
}
.modal-box[data-v-907f3159] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.15); padding: 16px; width: 420px; max-width: 90vw; max-height: 90vh; overflow-y: auto;
}
.modal-header[data-v-907f3159] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 14px; font-weight: 600;
}
.close-btn[data-v-907f3159] { width: 24px; height: 24px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer; border-radius: 4px;
}
.close-btn[data-v-907f3159]:hover { background: var(--bg-hover);
}
.form[data-v-907f3159] { display: flex; flex-direction: column; gap: 10px;
}
.field[data-v-907f3159] { display: flex; flex-direction: column;
}
.field label[data-v-907f3159] { font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.field .input[data-v-907f3159] { font-size: 13px; padding: 6px 10px;
}
.row[data-v-907f3159] { display: flex; gap: 8px;
}
.row .field[data-v-907f3159] { flex: 1;
}
.time-input[data-v-907f3159] { display: flex; align-items: center; gap: 3px;
}
.time-input span[data-v-907f3159] { font-size: 12px; color: var(--text-muted);
}
.tn[data-v-907f3159] { width: 50px; text-align: center;
}
.cf-total[data-v-907f3159] { font-size: 14px; font-weight: 600; color: var(--accent); align-self: flex-end; padding-bottom: 6px;
}
.color-input[data-v-907f3159] { padding: 2px; height: 32px;
}
.hint[data-v-907f3159] { font-size: 11px; color: var(--text-muted); font-style: italic;
}

.risk-list[data-v-485149f3] { display: flex; flex-direction: column; gap: 8px;
}
.project-card[data-v-485149f3] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px; border-left: 4px solid var(--success);
}
.project-card.has-risks[data-v-485149f3] { border-left-color: var(--danger);
}
.project-header[data-v-485149f3] { display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.project-dot[data-v-485149f3] { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
}
.project-name[data-v-485149f3] { font-size: 14px; font-weight: 600; flex: 1;
}
.project-status[data-v-485149f3] { font-size: 12px; font-weight: 700; color: var(--text-muted);
}
.has-risks .project-status[data-v-485149f3] { color: var(--danger);
}
.ok .project-status[data-v-485149f3] { color: var(--success);
}
.risk-items[data-v-485149f3] { display: flex; flex-direction: column; gap: 4px; padding-top: 6px; border-top: 1px dashed var(--border-light);
}
.risk-item[data-v-485149f3] { display: grid; grid-template-columns: auto auto 1fr auto; gap: 8px; align-items: center; padding: 4px 0; font-size: 12px;
}
.risk-type[data-v-485149f3] { font-size: 10px; font-weight: 700; color: white; padding: 1px 6px; border-radius: 4px; text-transform: uppercase;
}
.risk-target[data-v-485149f3] { font-weight: 600;
}
.risk-desc[data-v-485149f3] { color: var(--text-muted); font-size: 11px;
}
.risk-actions[data-v-485149f3] { display: flex; gap: 4px;
}

.arb-panel[data-v-5c3c6f59] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px;
}
.panel-header[data-v-5c3c6f59] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.section-title[data-v-5c3c6f59] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted);
}
.empty[data-v-5c3c6f59] { font-size: 12px; color: var(--text-muted); font-style: italic; padding: 8px; text-align: center;
}
.arb-list[data-v-5c3c6f59] { display: flex; flex-direction: column; gap: 6px;
}
.arb-item[data-v-5c3c6f59] { padding: 8px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); border-left: 3px solid var(--warning);
}
.arb-item.done[data-v-5c3c6f59] { border-left-color: var(--success); opacity: 0.7;
}
.arb-line[data-v-5c3c6f59] { display: flex; align-items: center; gap: 8px;
}
.arb-title[data-v-5c3c6f59] { flex: 1; font-size: 13px; font-weight: 600;
}
.arb-deadline[data-v-5c3c6f59] { font-size: 11px; color: var(--text-muted);
}
.arb-meta[data-v-5c3c6f59] { display: flex; flex-wrap: wrap; gap: 10px; font-size: 11px; color: var(--text-muted); margin-top: 4px; padding-left: 24px;
}
.arb-project[data-v-5c3c6f59] { color: var(--accent);
}
.modal-overlay[data-v-5c3c6f59] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); z-index: 100; display: flex; align-items: center; justify-content: center;
}
.modal-box[data-v-5c3c6f59] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.15); padding: 16px; width: 480px; max-width: 90vw; max-height: 90vh; overflow-y: auto;
}
.modal-header[data-v-5c3c6f59] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 14px; font-weight: 600;
}
.close-btn[data-v-5c3c6f59] { width: 24px; height: 24px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer;
}
.form[data-v-5c3c6f59] { display: flex; flex-direction: column; gap: 10px;
}
.field[data-v-5c3c6f59] { display: flex; flex-direction: column;
}
.field label[data-v-5c3c6f59] { font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.field .input[data-v-5c3c6f59] { font-size: 13px; padding: 6px 10px;
}
.row[data-v-5c3c6f59] { display: flex; gap: 8px;
}
.row .field[data-v-5c3c6f59] { flex: 1;
}
.risks-tags[data-v-5c3c6f59] { display: flex; flex-wrap: wrap; gap: 4px;
}
.risk-tag[data-v-5c3c6f59] { font-size: 10px; padding: 2px 6px; background: var(--warning-light); color: var(--warning); border-radius: 4px; font-family: monospace;
}

.action-panel[data-v-5de28346] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px;
}
.panel-header[data-v-5de28346] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.section-title[data-v-5de28346] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted);
}
.empty[data-v-5de28346] { font-size: 12px; color: var(--text-muted); font-style: italic; padding: 8px; text-align: center;
}
.action-list[data-v-5de28346] { display: flex; flex-direction: column; gap: 4px;
}
.action-item[data-v-5de28346] { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-sm); border-left: 3px solid var(--accent); font-size: 12px;
}
.action-item.overdue[data-v-5de28346] { border-left-color: var(--danger); background: var(--danger-light);
}
.action-item.done[data-v-5de28346] { border-left-color: var(--success); background: var(--success-light); opacity: 0.85;
}
.action-item.done .action-desc[data-v-5de28346] { text-decoration: line-through;
}
.action-desc[data-v-5de28346] { flex: 1;
}
.action-deadline[data-v-5de28346] { font-size: 11px; color: var(--text-muted); font-weight: 600;
}
.action-item.overdue .action-deadline[data-v-5de28346] { color: var(--danger);
}
.action-project[data-v-5de28346] { font-size: 11px; color: var(--accent);
}
.modal-overlay[data-v-5de28346] { position: fixed; inset: 0; background: rgba(0,0,0,0.3); z-index: 100; display: flex; align-items: center; justify-content: center;
}
.modal-box[data-v-5de28346] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: 0 8px 32px rgba(0,0,0,0.15); padding: 16px; width: 460px; max-width: 90vw;
}
.modal-header[data-v-5de28346] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 14px; font-weight: 600;
}
.close-btn[data-v-5de28346] { width: 24px; height: 24px; border: none; background: transparent; font-size: 18px; color: var(--text-muted); cursor: pointer;
}
.form[data-v-5de28346] { display: flex; flex-direction: column; gap: 10px;
}
.field[data-v-5de28346] { display: flex; flex-direction: column;
}
.field label[data-v-5de28346] { font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 3px;
}
.field .input[data-v-5de28346] { font-size: 13px; padding: 6px 10px;
}
.row[data-v-5de28346] { display: flex; gap: 8px;
}
.row .field[data-v-5de28346] { flex: 1;
}
.risks-tags[data-v-5de28346] { display: flex; flex-wrap: wrap; gap: 4px;
}
.risk-tag[data-v-5de28346] { font-size: 10px; padding: 2px 6px; background: var(--accent-light); color: var(--accent); border-radius: 4px; font-family: monospace;
}

.phase3[data-v-f8aca0ac] { flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 10px;
}
.section[data-v-f8aca0ac] { background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius); padding: 10px;
}
.section-header-line[data-v-f8aca0ac] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
}
.section-title[data-v-f8aca0ac] { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-muted);
}

.phase4[data-v-7e5263cf] { flex: 1; display: flex; flex-direction: column; overflow: hidden;
}
.tomorrow-header[data-v-7e5263cf] { display: flex; align-items: center; gap: 10px; padding: 6px 0; flex-shrink: 0;
}
.tomorrow-header h4[data-v-7e5263cf] { font-size: 16px; font-weight: 600;
}
.loc-pill[data-v-7e5263cf] { border: 1px solid; border-radius: 999px; padding: 3px 10px; font-size: 12px; font-weight: 600; cursor: pointer;
}
.loc-pill.loc-onsite[data-v-7e5263cf] { color: #1e40af; border-color: #93c5fd; background: #dbeafe;
}
.loc-pill.loc-remote[data-v-7e5263cf] { color: #166534; border-color: #86efac; background: #dcfce7;
}
.tpl-pop-wrap[data-v-7e5263cf] { position: relative;
}
.tpl-btn-h[data-v-7e5263cf] { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-card); padding: 3px 10px; font-size: 12px; cursor: pointer;
}
.tpl-pop[data-v-7e5263cf] { position: absolute; top: 100%; left: 0; margin-top: 4px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-md); min-width: 160px; z-index: 100; padding: 4px 0;
}
.tpl-pop-item[data-v-7e5263cf] { padding: 6px 12px; font-size: 13px; cursor: pointer;
}
.tpl-pop-item[data-v-7e5263cf]:hover { background: var(--bg);
}
.tpl-badge[data-v-7e5263cf] { font-size: 11px; font-weight: 600; color: var(--accent); background: var(--accent-light); padding: 2px 8px; border-radius: 999px;
}
.capacity-info[data-v-7e5263cf] { font-size: 12px; color: var(--text-muted); margin-left: auto;
}
.phase4-columns[data-v-7e5263cf] { flex: 1; display: flex; gap: 8px; overflow: hidden;
}
.column[data-v-7e5263cf] { display: flex; flex-direction: column; overflow: hidden;
}
.col-timeline[data-v-7e5263cf] { flex: 1.5; min-width: 0; padding-left: 36px; overflow-y: auto; overflow-x: visible;
}
.col-right[data-v-7e5263cf] { flex: 1; min-width: 0;
}

/* Timeline */
.timeline[data-v-7e5263cf] { position: relative; flex: 1; border-left: 1px solid var(--border);
}
.hour-line[data-v-7e5263cf] { position: absolute; left: 0; right: 0; border-top: 1px solid var(--border-light); pointer-events: none;
}
.hour-label[data-v-7e5263cf] { position: absolute; left: -36px; top: -8px; font-size: 11px; color: var(--text-light); width: 30px; text-align: right;
}
.block[data-v-7e5263cf] { position: absolute; left: 4px; right: 4px; border-radius: 4px; padding: 3px 6px 12px; overflow: hidden; display: flex; align-items: center; gap: 4px;
}
.block-db[data-v-7e5263cf] { background: var(--block-template); border: 1px solid var(--border); cursor: grab;
}
.block-db[data-v-7e5263cf]:active { cursor: grabbing;
}
.block-task[data-v-7e5263cf] { background: var(--bg-card); border: 1px solid var(--border); border-left: 4px solid var(--pc); cursor: grab; box-shadow: var(--shadow-sm);
}
.block-task[data-v-7e5263cf]:active { cursor: grabbing;
}
.block-outlook-evt[data-v-7e5263cf] { background: var(--block-outlook, #fef3c7); border: 1px solid var(--block-outlook-border, #d97706); border-left: 3px solid var(--block-outlook-border, #d97706); z-index: 2; pointer-events: none;
}
.block-outlook-evt .bk-name[data-v-7e5263cf] { font-size: 10px; color: #92400e; font-weight: 600;
}
.block-outlook-evt.soft[data-v-7e5263cf] { opacity: 0.45; border-style: dashed; z-index: 1;
}
.bk-name[data-v-7e5263cf] { font-size: 12px; font-weight: 500; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.bk-dur[data-v-7e5263cf] { font-size: 10px; color: var(--text-muted); flex-shrink: 0;
}
.bk-del[data-v-7e5263cf] { width: 16px; height: 16px; border: none; background: transparent; color: var(--text-light); cursor: pointer; font-size: 14px; flex-shrink: 0; opacity: 0;
}
.block:hover .bk-del[data-v-7e5263cf] { opacity: 1;
}
.bk-resize[data-v-7e5263cf] { position: absolute; bottom: 0; left: 0; right: 0; height: 10px; cursor: ns-resize; z-index: 10;
}
.bk-resize[data-v-7e5263cf]:hover { background: rgba(99, 102, 241, 0.15);
}
.drop-ghost[data-v-7e5263cf] { position: absolute; left: 4px; right: 4px; border: 2px dashed var(--ghost-color, var(--accent)); background: color-mix(in srgb, var(--ghost-color, var(--accent)) 10%, transparent); border-radius: 4px; pointer-events: none; z-index: 40; transition: top 80ms ease, height 80ms ease;
}

/* Colonne droite */
.col-tabs[data-v-7e5263cf] { display: flex; border-bottom: 1px solid var(--border); flex-shrink: 0;
}
.tab[data-v-7e5263cf] { flex: 1; padding: 6px 4px; font-size: 11px; font-weight: 600; border: none; background: transparent; color: var(--text-muted); cursor: pointer; text-align: center;
}
.tab.active[data-v-7e5263cf] { color: var(--text); border-bottom: 2px solid var(--accent);
}
.col-body[data-v-7e5263cf] { flex: 1; overflow-y: auto; padding: 8px;
}
.hint[data-v-7e5263cf] { font-size: 11px; color: var(--text-muted); font-style: italic; margin-bottom: 8px;
}
.group-label[data-v-7e5263cf] { font-size: 10px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; margin: 8px 0 4px;
}
.no-items[data-v-7e5263cf] { font-size: 12px; color: var(--text-muted); font-style: italic;
}
.task-card[data-v-7e5263cf] { display: flex; align-items: center; gap: 6px; padding: 6px 8px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: grab; margin-bottom: 4px;
}
.task-card[data-v-7e5263cf]:hover { box-shadow: var(--shadow-sm);
}
.task-card[data-v-7e5263cf]:active { cursor: grabbing;
}
.tc-name[data-v-7e5263cf] { font-size: 12px; font-weight: 500; flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;
}
.tc-dur[data-v-7e5263cf] { font-size: 11px; color: var(--text-muted);
}
.tc-residual[data-v-7e5263cf] { font-size: 11px; font-weight: 700; color: white; background: var(--warning); padding: 1px 6px; border-radius: 3px;
}
.create-form[data-v-7e5263cf] { display: flex; flex-direction: column; gap: 8px;
}
.cf-field[data-v-7e5263cf] { display: flex; flex-direction: column;
}
.cf-field label[data-v-7e5263cf] { font-size: 11px; font-weight: 500; color: var(--text-muted); margin-bottom: 2px;
}
.cf-field .input[data-v-7e5263cf] { font-size: 12px; padding: 5px 8px;
}
.cf-row[data-v-7e5263cf] { display: flex; gap: 8px; align-items: flex-end;
}
.cf-row .cf-field[data-v-7e5263cf] { flex: 1;
}
.time-input[data-v-7e5263cf] { display: flex; align-items: center; gap: 3px;
}
.time-input span[data-v-7e5263cf] { font-size: 12px; color: var(--text-muted);
}
.tn[data-v-7e5263cf] { width: 45px; text-align: center;
}
.cf-total[data-v-7e5263cf] { font-size: 14px; font-weight: 600; color: var(--accent); padding-bottom: 5px; white-space: nowrap;
}

.ritual-view[data-v-76c9545d] { padding: 20px 24px; height: 100vh; display: flex; flex-direction: column; overflow: hidden;
}
.ritual-header[data-v-76c9545d] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; flex-shrink: 0;
}
.ritual-header h2[data-v-76c9545d] { font-size: 20px; font-weight: 700;
}
.ritual-phases[data-v-76c9545d] { flex: 1; display: flex; gap: 8px; overflow: hidden;
}
.ritual-phase[data-v-76c9545d] {
  background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
  display: flex; flex-direction: column; overflow: hidden;
  transition: flex 400ms ease, opacity 300ms ease; position: relative; flex: 1; min-width: 0;
}
.phase-status-bar[data-v-76c9545d] { height: 4px; background: var(--status-color); flex-shrink: 0; transition: background 300ms ease;
}
.ritual-phase.active[data-v-76c9545d] { flex: 5;
}
.ritual-phase.collapsed[data-v-76c9545d] { flex: 0.5; cursor: pointer;
}
.ritual-phase.collapsed[data-v-76c9545d]:hover { background: var(--bg-hover);
}
.ritual-phase.validated[data-v-76c9545d] { opacity: 0.85;
}
.ritual-phase.locked[data-v-76c9545d] { opacity: 0.4; cursor: default;
}
.phase-compact[data-v-76c9545d] { padding: 12px; display: flex; flex-direction: column; align-items: center; gap: 8px; flex: 1; justify-content: center;
}
.collapsed .phase-compact[data-v-76c9545d] { padding: 8px 4px;
}
.collapsed .phase-desc[data-v-76c9545d] { display: none;
}
.collapsed .open-btn[data-v-76c9545d] { display: none;
}
.phase-icon[data-v-76c9545d] { font-size: 24px;
}
.phase-icon.large[data-v-76c9545d] { font-size: 28px;
}
.phase-info[data-v-76c9545d] { display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.phase-name[data-v-76c9545d] { font-size: 13px; font-weight: 600; text-align: center;
}
.phase-desc[data-v-76c9545d] { font-size: 12px; color: var(--text-muted); text-align: center;
}
.phase-badge[data-v-76c9545d] { width: 24px; height: 24px; background: var(--success); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700;
}
.locked-badge[data-v-76c9545d] { background: var(--text-light); font-size: 10px;
}
.phase-expanded[data-v-76c9545d] { flex: 1; display: flex; flex-direction: column; overflow: hidden;
}
.expanded-header[data-v-76c9545d] { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--border-light); flex-shrink: 0;
}
.expanded-header h3[data-v-76c9545d] { font-size: 16px; font-weight: 600;
}
.expanded-header .btn[data-v-76c9545d] { margin-left: auto;
}
.expanded-content[data-v-76c9545d] { flex: 1; padding: 12px; display: flex; flex-direction: column; gap: 12px; overflow: hidden;
}
.content-placeholder[data-v-76c9545d] { flex: 1; display: flex; align-items: center; justify-content: center; border: 2px dashed var(--border); border-radius: var(--radius); color: var(--text-muted);
}
.phase-actions[data-v-76c9545d] { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 10px; border-top: 1px solid var(--border-light); flex-shrink: 0;
}
.issues-list[data-v-76c9545d] { display: flex; flex-wrap: wrap; gap: 6px; flex: 1;
}
.issue-pill[data-v-76c9545d] {
  font-size: 11px; font-weight: 500;
  background: rgba(220,38,38,0.1); color: var(--danger);
  border: 1px solid rgba(220,38,38,0.3);
  padding: 3px 8px; border-radius: 999px;
  white-space: nowrap;
}
.validate-btn[data-v-76c9545d] { opacity: 0.4;
}
.validate-btn.ready[data-v-76c9545d] { opacity: 1;
}

.changelog-view[data-v-35b1684c] { padding: 20px 24px; height: 100vh; overflow-y: auto;
}
.header[data-v-35b1684c] { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px;
}
.header h2[data-v-35b1684c] { font-size: 20px; font-weight: 700;
}
.filters[data-v-35b1684c] { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 16px; padding: 12px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius);
}
.filters .input[data-v-35b1684c] { width: auto;
}
.input-sm[data-v-35b1684c] { font-size: 12px; padding: 5px 8px;
}
.check[data-v-35b1684c] { display: flex; align-items: center; gap: 4px; font-size: 12px;
}
.log-table[data-v-35b1684c] { width: 100%; border-collapse: collapse; font-size: 12px;
}
.log-table th[data-v-35b1684c] { text-align: left; padding: 8px; background: var(--bg); border-bottom: 2px solid var(--border); font-size: 11px; text-transform: uppercase; color: var(--text-muted);
}
.log-table td[data-v-35b1684c] { padding: 6px 8px; border-bottom: 1px solid var(--border-light); vertical-align: top;
}
.log-table tr.archived[data-v-35b1684c] { opacity: 0.5;
}
.ts[data-v-35b1684c] { white-space: nowrap; color: var(--text-muted);
}
.entity-tag[data-v-35b1684c] { font-family: monospace; font-size: 11px; padding: 2px 6px; background: var(--bg); border-radius: 3px;
}
.event-tag[data-v-35b1684c] { font-size: 10px; padding: 2px 6px; border-radius: 3px; background: var(--accent-light); color: var(--accent); font-weight: 600;
}
.event-tag.ev-delete[data-v-35b1684c] { background: var(--danger-light); color: var(--danger);
}
.event-tag.ev-mark_done[data-v-35b1684c] { background: var(--success-light); color: var(--success);
}
.src-tag[data-v-35b1684c] { font-size: 10px; padding: 1px 5px; border-radius: 3px; background: var(--bg); color: var(--text-muted); font-weight: 600; text-transform: uppercase;
}
.src-tag.src-risk[data-v-35b1684c] { background: var(--danger-light); color: var(--danger);
}
.src-tag.src-arbitration[data-v-35b1684c] { background: var(--warning-light); color: var(--warning);
}
.src-tag.src-ritual[data-v-35b1684c] { background: var(--accent-light); color: var(--accent);
}
.src-ref[data-v-35b1684c] { font-family: monospace; font-size: 10px; color: var(--text-muted); margin-left: 4px;
}
.detail[data-v-35b1684c] { font-family: monospace; font-size: 10px; color: var(--text-muted); max-width: 320px; overflow: hidden; text-overflow: ellipsis;
}
.comment[data-v-35b1684c] { font-style: italic; color: var(--text-muted); max-width: 200px;
}
.empty[data-v-35b1684c] { text-align: center; padding: 24px; color: var(--text-muted); font-style: italic;
}

.ts-view[data-v-cb3dd33f] { padding: 16px 24px; overflow-y: auto; height: calc(100vh - 52px);
}
.ts-header[data-v-cb3dd33f] { display: flex; align-items: center; gap: 12px; margin-bottom: 12px;
}
.ts-header h3[data-v-cb3dd33f] { font-size: 18px; font-weight: 700;
}
.nav-btn[data-v-cb3dd33f] {
  width: 32px; height: 32px; border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--bg-card); font-size: 18px; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.nav-btn[data-v-cb3dd33f]:hover { background: var(--bg-hover);
}
.alert-bar[data-v-cb3dd33f] {
  background: rgba(220,38,38,0.1); color: var(--danger); border: 1px solid rgba(220,38,38,0.3);
  border-radius: var(--radius); padding: 8px 14px; font-size: 13px; font-weight: 500; margin-bottom: 12px;
}
.ts-table-wrap[data-v-cb3dd33f] { overflow-x: auto; margin-bottom: 20px;
}
.ts-table[data-v-cb3dd33f] { width: 100%; border-collapse: collapse; font-size: 13px;
}
.ts-table th[data-v-cb3dd33f], .ts-table td[data-v-cb3dd33f] { padding: 5px 8px; border: 1px solid var(--border); text-align: center;
}
.ts-table th[data-v-cb3dd33f] { background: var(--bg); font-weight: 600; font-size: 12px;
}
.col-project[data-v-cb3dd33f] { text-align: left; min-width: 180px; white-space: nowrap;
}
.col-row-type[data-v-cb3dd33f] { width: 60px; min-width: 60px; font-size: 11px;
}
.col-day[data-v-cb3dd33f] { min-width: 70px;
}
.col-total[data-v-cb3dd33f] { min-width: 60px; font-weight: 600; background: var(--bg);
}
.day-head[data-v-cb3dd33f] { display: flex; flex-direction: column; align-items: center; gap: 1px;
}
.day-wd[data-v-cb3dd33f] { font-weight: 700;
}
.day-dt[data-v-cb3dd33f] { font-size: 11px; color: var(--text-muted);
}
.day-loc[data-v-cb3dd33f] { font-size: 11px;
}
.proj-dot[data-v-cb3dd33f] { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 6px; vertical-align: middle;
}
.proj-code[data-v-cb3dd33f] { font-size: 11px; font-weight: 600; color: var(--accent); margin-right: 4px;
}
.proj-name[data-v-cb3dd33f] { font-weight: 500;
}
.no-code[data-v-cb3dd33f] { color: var(--danger); font-size: 11px; font-weight: 700; margin-left: 4px;
}
.row-label[data-v-cb3dd33f] { font-weight: 500; color: var(--text-muted);
}
.replicon-label[data-v-cb3dd33f] { color: #92400e;
}
td.drift[data-v-cb3dd33f] { background: rgba(220,38,38,0.08);
}
td.validated[data-v-cb3dd33f] { background: rgba(34,197,94,0.08);
}
.cell-val[data-v-cb3dd33f] { cursor: default;
}
.cell-val.empty[data-v-cb3dd33f] { color: var(--text-light);
}
.cell-edit[data-v-cb3dd33f] { width: 55px; text-align: center; font-size: 13px; padding: 2px; border: 1px solid var(--accent); border-radius: 4px;
}
.replicon-cell[data-v-cb3dd33f] { background: #fffbeb;
}
.replicon-select[data-v-cb3dd33f] {
  width: 52px; border: 1px solid var(--border); border-radius: 4px; font-size: 12px;
  text-align: center; padding: 2px; background: white; cursor: pointer;
}
.replicon-total[data-v-cb3dd33f] { color: #92400e;
}
.replicon-foot[data-v-cb3dd33f] { color: #92400e;
}
.row-focale td[data-v-cb3dd33f] { border-bottom: none;
}
.row-replicon td[data-v-cb3dd33f] { border-top: none;
}
.row-off td[data-v-cb3dd33f] { background: #fef9ec;
}
.off-row-label[data-v-cb3dd33f] { text-align: left; font-size: 11px; font-weight: 600; color: #92400e; text-transform: uppercase; letter-spacing: 0.04em;
}
.cell-off[data-v-cb3dd33f] { background: #fef3c7 !important;
}
.off-tag[data-v-cb3dd33f] { display: inline-block; font-size: 11px; font-weight: 600; color: #92400e; background: #fde68a; border-radius: 4px; padding: 1px 5px; max-width: 62px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.foot-label[data-v-cb3dd33f] { font-weight: 700;
}
.foot-val[data-v-cb3dd33f] { font-weight: 700;
}
.val-check[data-v-cb3dd33f] { cursor: pointer;
}
.val-check input[data-v-cb3dd33f] { cursor: pointer;
}

/* Projection */
.projection[data-v-cb3dd33f] { margin-bottom: 16px; padding: 12px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
}
.projection h4[data-v-cb3dd33f] { font-size: 14px; font-weight: 600; margin-bottom: 8px;
}
.proj-days[data-v-cb3dd33f] { display: flex; gap: 6px; margin-bottom: 8px; flex-wrap: wrap;
}
.proj-day-pill[data-v-cb3dd33f] { font-size: 11px; padding: 2px 8px; border-radius: 999px; background: var(--bg); border: 1px solid var(--border);
}
.proj-day-pill.remote[data-v-cb3dd33f] { background: #dcfce7; border-color: #86efac;
}
.proj-day-pill.onsite[data-v-cb3dd33f] { background: #dbeafe; border-color: #93c5fd;
}
.proj-grid[data-v-cb3dd33f] { display: flex; flex-direction: column; gap: 4px;
}
.proj-row[data-v-cb3dd33f] { display: flex; align-items: center; gap: 6px; padding: 4px 0; font-size: 13px;
}
.proj-time[data-v-cb3dd33f] { margin-left: auto; font-weight: 600;
}
.no-proj[data-v-cb3dd33f] { font-size: 12px; color: var(--text-muted); font-style: italic;
}
.ts-loading[data-v-cb3dd33f] { padding: 40px; text-align: center; color: var(--text-muted);
}

/* Budget section */
.budget-section[data-v-cb3dd33f] { margin-top: 20px; padding: 16px; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg);
}
.budget-section h4[data-v-cb3dd33f] { font-size: 15px; font-weight: 600; margin-bottom: 12px;
}
.budget-table[data-v-cb3dd33f] { width: 100%; border-collapse: collapse; font-size: 13px;
}
.budget-table th[data-v-cb3dd33f], .budget-table td[data-v-cb3dd33f] { padding: 6px 10px; border: 1px solid var(--border);
}
.budget-table th[data-v-cb3dd33f] { background: var(--bg); font-weight: 600; font-size: 12px; text-align: center;
}
.bt-project[data-v-cb3dd33f] { text-align: left; min-width: 180px; white-space: nowrap;
}
.bt-num[data-v-cb3dd33f] { text-align: center; min-width: 90px; cursor: default;
}
.bt-num[class*="dblclick"][data-v-cb3dd33f] { cursor: pointer;
}
.consumed[data-v-cb3dd33f] { color: var(--text-muted);
}
.val-ok[data-v-cb3dd33f] { color: var(--success); font-weight: 600;
}
.val-warn[data-v-cb3dd33f] { color: var(--danger); font-weight: 600;
}

.modal-overlay[data-v-f220f176] {
  position: fixed; inset: 0; background: rgba(0,0,0,0.4);
  display: flex; align-items: center; justify-content: center; z-index: 1000;
}
.action-modal[data-v-f220f176] {
  background: var(--bg-card); border-radius: var(--radius-lg);
  padding: 24px; width: 520px; max-width: 95vw; max-height: 90vh; overflow-y: auto;
  box-shadow: 0 8px 32px rgba(0,0,0,0.2);
  display: flex; flex-direction: column; gap: 14px;
}
.action-modal h3[data-v-f220f176] { font-size: 16px; font-weight: 700;
}

/* Lien mail */
.mail-link-row[data-v-f220f176] {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  background: #fef3c7; border: 1px solid #f59e0b;
  border-radius: var(--radius); font-size: 13px;
}
.mail-icon[data-v-f220f176] { flex-shrink: 0;
}
.mail-subject[data-v-f220f176] { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #92400e; font-weight: 500;
}
.field[data-v-f220f176] { display: flex; flex-direction: column; gap: 4px;
}
.field label[data-v-f220f176] { font-size: 12px; font-weight: 600; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em;
}
.date-row[data-v-f220f176] { display: flex; align-items: center; gap: 12px;
}
.date-input[data-v-f220f176] { max-width: 180px;
}
.sans-heure-label[data-v-f220f176] { display: flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 500; color: var(--text-muted); cursor: pointer; user-select: none; text-transform: none; letter-spacing: 0;
}
.selected-time[data-v-f220f176] { font-size: 14px; font-weight: 700; color: var(--accent); text-transform: none; letter-spacing: 0;
}

/* Sélecteur d'heure en grille */
.time-grid[data-v-f220f176] { display: flex; flex-direction: column; gap: 4px;
}
.time-row[data-v-f220f176] {
  display: flex; flex-wrap: wrap; gap: 3px;
}
.time-btn[data-v-f220f176] {
  min-width: 32px; height: 28px; padding: 0 4px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--bg); color: var(--text-muted);
  font-size: 11px; font-weight: 500; cursor: pointer;
  transition: all 100ms;
}
.time-btn[data-v-f220f176]:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light);
}
.time-btn.active[data-v-f220f176] { background: var(--accent); color: white; border-color: var(--accent); font-weight: 700;
}
.min-row[data-v-f220f176] { margin-top: 2px; padding-top: 4px; border-top: 1px solid var(--border-light);
}
.min-btn[data-v-f220f176] { min-width: 36px;
}
.grow[data-v-f220f176] { flex: 1;
}
.reminders-header[data-v-f220f176] { display: flex; align-items: center; justify-content: space-between;
}
.reminder-row[data-v-f220f176] { display: flex; gap: 6px; align-items: center; margin-top: 4px;
}
.no-reminders[data-v-f220f176] { font-size: 12px; color: var(--text-light); font-style: italic; padding: 4px 0;
}
.modal-actions[data-v-f220f176] { display: flex; gap: 8px; justify-content: flex-end; padding-top: 4px;
}
.pipe-toggle[data-v-f220f176] { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; color: var(--text); cursor: pointer; user-select: none; padding: 8px 10px; background: var(--accent-light); border-radius: var(--radius);
}

.actions-page[data-v-32146587] { padding: 24px; max-width: 760px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px;
}
.actions-header[data-v-32146587] { display: flex; align-items: center; justify-content: space-between;
}
.actions-header h1[data-v-32146587] { font-size: 22px; font-weight: 700;
}
.actions-section[data-v-32146587] { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden;
}
.section-title[data-v-32146587] { display: flex; align-items: center; gap: 8px; padding: 12px 16px; font-size: 13px; font-weight: 700; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid var(--border);
}
.section-title.clickable[data-v-32146587] { cursor: pointer; user-select: none;
}
.section-title.clickable[data-v-32146587]:hover { background: var(--bg-hover);
}
.section-hint[data-v-32146587] { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--text-light); font-size: 12px;
}
.count-badge[data-v-32146587] { font-size: 11px; padding: 1px 7px; background: var(--accent); color: white; border-radius: 999px;
}
.count-reserve[data-v-32146587] { background: var(--text-light);
}
.count-done[data-v-32146587] { background: var(--text-light);
}
.toggle-icon[data-v-32146587] { margin-left: auto; font-size: 12px;
}
.actions-list[data-v-32146587] { display: flex; flex-direction: column;
}
.action-card[data-v-32146587] { display: flex; align-items: flex-start; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--border-light); transition: background 120ms;
}
.action-card[data-v-32146587]:last-child { border-bottom: none;
}
.action-card[data-v-32146587]:hover { background: var(--bg-hover);
}
.action-card.overdue[data-v-32146587] { border-left: 3px solid var(--danger); background: var(--danger-light);
}
.action-card.dragover[data-v-32146587] { box-shadow: inset 0 2px 0 var(--accent);
}
.action-card.dragging[data-v-32146587] { opacity: 0.4;
}
.reserve-card[data-v-32146587] { background: var(--bg);
}
.done-card[data-v-32146587] { opacity: 0.6;
}
.action-check[data-v-32146587] { margin-top: 3px; flex-shrink: 0; cursor: pointer;
}
.grip[data-v-32146587] { cursor: grab; color: var(--text-light); font-size: 16px; line-height: 1.2; user-select: none; flex-shrink: 0;
}
.grip[data-v-32146587]:active { cursor: grabbing;
}
.to-pipe-btn[data-v-32146587] { flex-shrink: 0; border: 1px solid var(--accent); background: var(--accent-light); color: var(--accent); border-radius: 999px; font-size: 11px; font-weight: 700; padding: 3px 10px; cursor: pointer; white-space: nowrap;
}
.to-pipe-btn[data-v-32146587]:hover { background: var(--accent); color: white;
}
.action-body[data-v-32146587] { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px;
}
.action-title[data-v-32146587] { font-size: 14px; font-weight: 500; color: var(--text);
}
.action-title.done-title[data-v-32146587] { text-decoration: line-through; color: var(--text-muted);
}
.action-meta[data-v-32146587] { display: flex; flex-wrap: wrap; gap: 5px;
}
.meta-chip[data-v-32146587] { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; padding: 1px 7px; border-radius: 999px; font-weight: 500; border: 1px solid transparent;
}
.chip-due[data-v-32146587] { background: var(--bg); border-color: var(--border); color: var(--text-muted);
}
.chip-overdue[data-v-32146587] { background: var(--danger-light); border-color: var(--danger); color: var(--danger);
}
.chip-task[data-v-32146587] { background: var(--accent-light); border-color: var(--accent); color: var(--accent);
}
.chip-mail[data-v-32146587] { background: #fef3c7; border-color: #f59e0b; color: #92400e; cursor: pointer;
}
.chip-reminder[data-v-32146587] { background: var(--warning-light); border-color: var(--warning); color: var(--warning);
}
.chip-done-at[data-v-32146587] { background: var(--success-light); color: var(--success); border-color: var(--success);
}
.action-btns[data-v-32146587] { display: flex; gap: 2px; flex-shrink: 0;
}
.empty-state[data-v-32146587] { padding: 20px 16px; text-align: center; color: var(--text-light); font-size: 13px; font-style: italic;
}

.intent-banner[data-v-3d0ae064] {
  position: fixed;
  top: 0;
  left: 56px; /* hauteur sidebar */
  right: 0;
  z-index: 95;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  background: var(--warning);
  color: white;
  box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  font-size: 13px;
}
.banner-left[data-v-3d0ae064] { display: flex; align-items: center; gap: 6px;
}
.banner-icon[data-v-3d0ae064] { font-size: 16px;
}
.banner-text[data-v-3d0ae064] { font-weight: 500;
}
.banner-text b[data-v-3d0ae064] { font-weight: 700;
}
.banner-comment[data-v-3d0ae064] {
  flex: 1;
  padding: 6px 10px;
  border: none;
  border-radius: 4px;
  font-size: 12px;
  background: rgba(255,255,255,0.95);
  color: var(--text);
  outline: none;
  max-width: 500px;
}
.banner-btn[data-v-3d0ae064] {
  padding: 5px 12px;
  border: 1px solid rgba(255,255,255,0.5);
  background: rgba(255,255,255,0.15);
  color: white;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}
.banner-btn[data-v-3d0ae064]:hover { background: rgba(255,255,255,0.3);
}

.cfm-overlay[data-v-c873340c] {
  position: fixed; inset: 0; z-index: 2000;
  background: rgba(15, 17, 22, 0.45);
  display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(2px);
}
.cfm-dialog[data-v-c873340c] {
  background: var(--bg-card);
  border-radius: var(--radius-lg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25), 0 4px 12px rgba(0, 0, 0, 0.1);
  width: 420px; max-width: calc(100vw - 32px);
  padding: 24px;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 4px 16px;
  animation: cfm-pop-c873340c 180ms cubic-bezier(0.22, 1.2, 0.5, 1);
}
.cfm-icon[data-v-c873340c] {
  grid-row: 1;
  grid-column: 1;
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--danger-light);
  color: var(--danger);
  flex-shrink: 0;
}
.cfm-body[data-v-c873340c] { grid-row: 1; grid-column: 2; padding-top: 4px;
}
.cfm-title[data-v-c873340c] { font-size: 16px; font-weight: 600; color: var(--text); margin-bottom: 6px;
}
.cfm-message[data-v-c873340c] { font-size: 14px; color: var(--text-muted); line-height: 1.5; white-space: pre-line;
}
.cfm-actions[data-v-c873340c] {
  grid-row: 2;
  grid-column: 1 / span 2;
  display: flex; justify-content: flex-end; gap: 8px;
  margin-top: 16px;
}
@keyframes cfm-pop-c873340c {
from { opacity: 0; transform: translateY(8px) scale(0.96);
}
to { opacity: 1; transform: translateY(0) scale(1);
}
}
.cfm-fade-enter-active[data-v-c873340c], .cfm-fade-leave-active[data-v-c873340c] { transition: opacity 150ms ease;
}
.cfm-fade-enter-from[data-v-c873340c], .cfm-fade-leave-to[data-v-c873340c] { opacity: 0;
}

.reminder-overlay[data-v-a0700fb2] {
  position: fixed; inset: 0; background: rgba(0,0,0,0.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 2000;
}
.reminder-popup[data-v-a0700fb2] {
  background: var(--bg-card);
  border: 2px solid var(--accent);
  border-radius: var(--radius-lg);
  padding: 28px 32px;
  width: 360px; max-width: 95vw;
  box-shadow: 0 12px 40px rgba(0,0,0,0.3);
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  text-align: center;
}
.reminder-icon[data-v-a0700fb2] { font-size: 36px;
}
.reminder-title[data-v-a0700fb2] {
  font-size: 16px; font-weight: 700; color: var(--text);
  line-height: 1.3;
}
.reminder-count[data-v-a0700fb2] { font-size: 12px; color: var(--text-muted);
}
.reminder-actions[data-v-a0700fb2] { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center;
}

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
:root {
  --bg: #f8f9fa;
  --bg-card: #ffffff;
  --bg-hover: #f0f1f3;
  --bg-input: #ffffff;
  --border: #e2e5e9;
  --border-light: #f0f1f3;
  --text: #1a1d23;
  --text-muted: #6b7280;
  --text-light: #9ca3af;
  --accent: #6366f1;
  --accent-hover: #5558e6;
  --accent-light: rgba(99, 102, 241, 0.08);
  --success: #22c55e;
  --success-light: rgba(34, 197, 94, 0.1);
  --warning: #f97316;
  --warning-light: rgba(249, 115, 22, 0.1);
  --danger: #ef4444;
  --danger-light: rgba(239, 68, 68, 0.1);
  --block-template: #f3f4f6;
  --block-outlook: #fef3c7;
  --block-outlook-border: #f59e0b;
  --radius: 8px;
  --radius-lg: 12px;
  --radius-sm: 6px;
  --transition: 150ms ease;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
}
body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
.app-layout {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}
.app-main {
  margin-top: 52px;
  flex: 1;
  min-height: calc(100vh - 52px);
  min-width: 0;
  overflow: hidden;
}
.app-layout.has-intent .app-main { margin-top: 92px;
}

/* Shared utilities */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all var(--transition);
  background: var(--bg-card);
  color: var(--text);
}
.btn:hover { background: var(--bg-hover); border-color: #d1d5db;
}
.btn-primary { background: var(--accent); color: white; border-color: var(--accent);
}
.btn-primary:hover { background: var(--accent-hover); border-color: var(--accent-hover);
}
.btn-success { background: var(--success); color: white; border-color: var(--success);
}
.btn-danger { background: var(--danger); color: white; border-color: var(--danger);
}
.btn-sm { padding: 4px 10px; font-size: 13px;
}
.btn-ghost { background: transparent; border-color: transparent;
}
.btn-ghost:hover { background: var(--bg-hover);
}
.btn:disabled { opacity: 0.4; cursor: not-allowed; pointer-events: auto;
}
.btn:disabled:hover { background: inherit; border-color: inherit;
}
.input {
  width: 100%;
  padding: 8px 12px;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  font-size: 14px;
  outline: none;
  transition: border-color var(--transition);
}
.input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-light);
}
.input::placeholder { color: var(--text-light);
}
textarea.input {
  resize: vertical;
  min-height: 80px;
}
select.input {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
}
.card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px;
  box-shadow: var(--shadow-sm);
  transition: border-color var(--transition);
}
.placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 60vh;
  color: var(--text-muted);
}
.placeholder h2 { font-size: 24px; margin-bottom: 8px; color: var(--text);
}
.fade-enter-active, .fade-leave-active { transition: opacity 200ms ease;
}
.fade-enter-from, .fade-leave-to { opacity: 0;
}
