:root {
    --bg-color: #ffffff;
    --text-color: #1f2937;
    --surface-color: #f3f4f6;
    --border-color: #e5e7eb;
}

.dark {
    --bg-color: #000000;
    --text-color: #e5e7eb;
    --surface-color: #121212;
    --border-color: #2a2a2a;
}

body {
    background-color: var(--bg-color);
    color: var(--text-color);
}

.surface {
    background-color: var(--surface-color);
}

.border {
    border: 1px solid var(--border-color);
}

.input-field {
    background-color: transparent;
    border-color: var(--border-color);
    color: var(--text-color);
}

.dark .input-field {
    background-color: #000000;
    border-color: #333;
    color: white;
}

.input-field:focus {
    border-color: #0070d1;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

main {
    animation: fadeIn 0.4s ease-out;
}

.draggable-item {
    cursor: grab;
    transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.2s;
}

.draggable-item.dragging {
    opacity: 0.5;
    background: rgba(0, 67, 156, 0.2);
    border-color: #00439c;
    transform: scale(0.98);
}

@keyframes slideUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes pulse-subtle {
    0% { box-shadow: 0 0 0 0 rgba(0, 112, 209, 0.2); }
    70% { box-shadow: 0 0 0 10px rgba(0, 112, 209, 0); }
    100% { box-shadow: 0 0 0 0 rgba(0, 112, 209, 0); }
}

.animate-section {
    animation: slideUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.stagger-1 { animation-delay: 0.1s; }
.stagger-2 { animation-delay: 0.2s; }
.stagger-3 { animation-delay: 0.3s; }

section {
    transition: transform 0.2s ease, border-color 0.2s ease;
}

section:hover {
    transform: translateY(-2px);
    border-color: rgba(0, 112, 209, 0.4) !important;
}

.save-btn-active {
    animation: pulse-subtle 2s infinite;
}

html.dark body { background-color: #000000; color: #e5e5e5; }
html.dark .surface { background-color: #121212; border-color: #2a2a2a; }
html.dark .input-field { background-color: #000000; border-color: #333; color: white; }

html:not(.dark) body { background-color: #f3f4f6; color: #111827; }
html:not(.dark) .surface { background-color: #ffffff; border-color: #e5e7eb; box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); }
html:not(.dark) .input-field { background-color: #f9fafb; border-color: #d1d5db; color: #111827; }

html:not(.dark) .peer-checked\:bg-brand-blue:checked ~ div { background-color: #00439c; }

html:not(.dark) input[type="number"],
html:not(.dark) input[type="text"] {
    background-color: #f9fafb;
    border-color: #d1d5db;
    color: #111827;
}
