html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video, canvas, iframe { max-width: 100%; }
.animation-delay-2000 { animation-delay: 2s; }

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.card { background: #fff; border: 1px solid #e5e7eb; border-radius: 1rem; padding: 1rem; }
.field {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: .75rem;
    padding: .625rem .75rem;
    background: #fff;
}
.field:focus {
    outline: none;
    border-color: #3a86ff;
    box-shadow: 0 0 0 3px rgba(58, 134, 255, 0.2);
}
.space-y > * + * { margin-top: .75rem; }
.alert { border-radius: .75rem; padding: .625rem .75rem; }
.alert-error { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
.alert-success { background: #dcfce7; color: #166534; border: 1px solid #bbf7d0; }
.muted { color: #6b7280; }
.custom-scrollbar::-webkit-scrollbar { width: 4px; height: 4px; }
.custom-scrollbar::-webkit-scrollbar-track { background: #f8fafc; border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 10px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.break-anywhere { overflow-wrap: anywhere; word-break: break-word; }

@media (max-width: 360px) {
    .force-single-col-360 { grid-template-columns: minmax(0, 1fr) !important; }
}
