button, input, textarea { font: inherit; }
button { cursor: pointer; border: 0; }

.form-card { display: grid; gap: 14px; margin-top: 14px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

label { display: grid; gap: 6px; color: var(--navy); font-weight: 950; }
label span, label small, p { color: #435070; font-weight: 800; }

input, textarea {
  width: 100%; border: 4px solid var(--navy); border-radius: 16px; min-height: 50px;
  padding: 11px 14px; color: var(--navy); background: white; outline: none; box-shadow: inset 0 -4px 0 rgba(23, 35, 69, .08);
}
textarea { min-height: 430px; resize: vertical; line-height: 1.45; font-family: ui-monospace, SFMono-Regular, monospace; font-size: .92rem; }
input:focus, textarea:focus { border-color: var(--aqua-dark); box-shadow: 0 0 0 4px rgba(78, 220, 225, .25), inset 0 -4px 0 rgba(23, 35, 69, .08); }
input:disabled, button:disabled, button[disabled] { opacity: .75; background: #edf0f8; cursor: not-allowed; filter: grayscale(.45); }

.switch-line { display: flex; align-items: center; gap: 10px; }
.switch-line input { width: 22px; height: 22px; min-height: auto; accent-color: var(--purple); }

.primary-btn, .soft-btn, .danger-btn, .primary-link, .soft-link { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 10px 16px; border-radius: 17px; font-weight: 950; text-decoration: none; border: 4px solid var(--navy); box-shadow: 0 6px 0 rgba(23, 35, 69, .24); }
.primary-btn, .primary-link { color: var(--navy); background: linear-gradient(180deg, #91f9ff, var(--aqua-dark)); }
.primary-btn.compact { min-height: 44px; }
.soft-btn, .soft-link { color: var(--navy); background: linear-gradient(180deg, #fff, #e5f8ff); }
.soft-btn.compact, .danger-btn.compact { min-height: 38px; padding: 6px 10px; font-size: .82rem; }
.danger-btn { color: white; background: linear-gradient(180deg, #ff86a7, #ef4e74); text-shadow: 0 2px 0 #8f193b; }
button:active:not(:disabled) { transform: translateY(2px); box-shadow: 0 4px 0 rgba(23, 35, 69, .22); }

.message { margin: 12px 0; padding: 12px 14px; border-radius: 18px; border: 4px solid var(--navy); font-weight: 950; box-shadow: 0 6px 0 rgba(23, 35, 69, .15); }
.message.error { background: #ffd5dd; }
.message.success { background: #d8ffe1; }
.message.warning { background: #fff2a8; }

@media (max-width: 700px) { .form-grid { grid-template-columns: 1fr; } }
.nav-tab:disabled {
  cursor: not-allowed;
  opacity: .45;
  filter: grayscale(1);
}

