/* Forms (v6) */
.form-group { margin-bottom: 1.15rem; }
label, .form-label, .filter-label { display: block; font-size: .88rem; font-weight: 600; color: var(--ink-2); margin-bottom: .45rem; }

input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .input-field, .form-input, .search-input, select, .filter-select, .category-filter, textarea {
    width: 100%; background: #fff; border: 1px solid var(--line-2); border-radius: 10px;
    padding: .8rem 1rem; color: var(--ink); font-size: .98rem; line-height: 1.4; outline: none;
    transition: border-color .18s var(--ease), box-shadow .18s var(--ease), background .18s var(--ease);
}
textarea { resize: vertical; min-height: 6rem; }
input:focus, .input-field:focus, .form-input:focus, .search-input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: var(--ring); }
input::placeholder, textarea::placeholder { color: var(--ink-3); }
input:disabled, .input-field:disabled, textarea:disabled, select:disabled { opacity: .55; cursor: not-allowed; background: var(--bg-soft); }
input[type="checkbox"], input[type="radio"] { width: 16px; height: 16px; accent-color: var(--blue); cursor: pointer; }

select, .filter-select, .category-filter {
    appearance: none; -webkit-appearance: none; padding-right: 2.4rem; cursor: pointer;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%234B5168' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right .9rem center;
}

.input-help, .form-hint { display: block; margin-top: .4rem; font-size: .82rem; color: var(--ink-3); }
.form-actions { display: flex; gap: .6rem; justify-content: flex-end; margin-top: .5rem; }
.char-count { display: block; text-align: right; font-size: .8rem; color: var(--ink-3); margin-top: .35rem; }

/* Search box with a leading icon */
.search-box { position: relative; }
.search-box .search-icon { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--ink-3); pointer-events: none; }
.search-box .search-input, .search-box input.search-input { padding-left: 2.6rem !important; }

/* Divider with a word */
.divider { display: flex; align-items: center; gap: 1rem; margin: 1.25rem 0; color: var(--ink-3); font-size: .85rem; }
.divider::before, .divider::after { content: ''; flex: 1; height: 1px; background: var(--line); }

/* Sign-in toggle */
.toggle-mode { text-align: center; margin-top: 1.25rem; font-size: .92rem; color: var(--ink-3); }
.toggle-link { color: var(--blue-ink); font-weight: 600; cursor: pointer; }
.toggle-link:hover { color: var(--violet-ink); }

/* Validation / status */
.error-message, .form-message { display: none; border-radius: 10px; padding: .75rem .9rem; font-size: .9rem; margin: 0 0 1rem; }
.error-message.show, .form-message.error, .form-message.success { display: block; }
.error-message.show, .form-message.error { background: var(--rose); color: var(--coral-ink); }
.error-message.show.success, .form-message.success { background: var(--mintT); color: var(--mint-ink); }
.honeypot { position: absolute; left: -9999px; opacity: 0; height: 0; }
