* { margin: 0; padding: 0; box-sizing: border-box; }
    body { font-family: 'Space Grotesk', sans-serif; background: #09090b; color: #fafafa; }
    ::-webkit-scrollbar { width: 6px; height: 6px; }
    ::-webkit-scrollbar-track { background: transparent; }
    ::-webkit-scrollbar-thumb { background: #27272a; border-radius: 3px; }
    ::-webkit-scrollbar-thumb:hover { background: #3f3f46; }

    /* Propriétés éditeur */
    .prop-label { display: block; font-size: 10px; font-weight: 600; color: #71717a; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.06em; }
    .prop-input { width: 100%; background: #09090b; border: 1px solid #27272a; border-radius: 6px; padding: 5px 8px; font-size: 12px; color: #fafafa; outline: none; font-family: 'Space Grotesk', sans-serif; transition: border-color 0.15s; }
    .prop-input:focus { border-color: #3f3f46; }
    .prop-textarea { width: 100%; background: #09090b; border: 1px solid #27272a; border-radius: 6px; padding: 5px 8px; font-size: 12px; color: #fafafa; outline: none; resize: vertical; font-family: 'Space Grotesk', sans-serif; transition: border-color 0.15s; line-height: 1.4; }
    .prop-textarea:focus { border-color: #3f3f46; }
    .prop-select { width: 100%; background: #09090b; border: 1px solid #27272a; border-radius: 6px; padding: 5px 8px; font-size: 12px; color: #fafafa; outline: none; font-family: 'Space Grotesk', sans-serif; }
    .prop-color { width: 30px; height: 30px; border: 1px solid #27272a; border-radius: 6px; padding: 2px; background: #09090b; cursor: pointer; flex-shrink: 0; }
    .prop-prefix { position: absolute; left: 8px; top: 50%; transform: translateY(-50%); font-size: 10px; color: #52525b; font-weight: 600; }
    .prop-align-btn { flex: 1; padding: 5px; background: #09090b; border: 1px solid #27272a; border-radius: 5px; color: #52525b; cursor: pointer; font-size: 11px; transition: all 0.15s; }
    .prop-align-btn:hover { border-color: #3f3f46; color: #a1a1aa; }
    .prop-align-btn.active { background: #27272a; border-color: #52525b; color: #fafafa; }

    /* Animations toast */
    @keyframes toastIn { from { opacity: 0; transform: translateY(12px) scale(0.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
    @keyframes toastOut { from { opacity: 1; transform: translateY(0) scale(1); } to { opacity: 0; transform: translateY(-8px) scale(0.96); } }

    /* Ligne animée sous la nav */
    .nav-line { height: 1px; background: linear-gradient(90deg, transparent, #3f3f46 30%, #52525b 50%, #3f3f46 70%, transparent); background-size: 200% 100%; animation: navLine 4s ease-in-out infinite; }
    @keyframes navLine { 0%, 100% { background-position: 200% 0; } 50% { background-position: -200% 0; } }

    /* Pulse pour empty state */
    @keyframes subtlePulse { 0%, 100% { opacity: 0.25; } 50% { opacity: 0.4; } }
    .empty-pulse { animation: subtlePulse 3s ease-in-out infinite; }

    /* Transition pages */
    .page { animation: pageIn 0.25s ease; }
    @keyframes pageIn { from { opacity: 0; } to { opacity: 1; } }

    /* Palette item drag */
    .palette-item:active { cursor: grabbing !important; }
    .palette-item { -webkit-user-drag: none; user-select: none; }